Personajes
#1
Este plugin capaz le sirva a aquellos que no saben poner clases humanas en un zombie plague.. O bueno esto les puede servir para otra cosa, en si creo que ya esta fixeado porque si le dabas a la E o cambiabas arma se te ponía la velocidad en default, si encuentran algún bug avisan, capaz me haya olvidado uno que otro por fixear...

Código PHP:
/*
  == DESCRIPCION ==
    - Estaba aburrido.
    
  == CARACTERISTICAS DE LOS PJ ==
    - Velocidad
    - Daño
    - Gravedad
    - Modelo

  == FIN ==
*/

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cc>
#include <fun>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "[AMXX] Plugin"
#define VERSION "1.0.0"
#define AUTHOR "Nazy.-"

enum _:PJ_Data 
{
    
PJ[50],
    
PJ_MODEL[80],
    
Float:PJ_SPEED,
    
Float:PJ_GRAVITY,
    
Float:PJ_DAMAGE
}

new const 
g_szPersonajes[][PJ_Data] = 
{
    { 
"Predeterminado""sas"250.00.81.0 },
    { 
"Halo Master""dg_master"270.00.65.0 },
    { 
"Chikenator""dg_c_chicken"300.00.510.0 },
    { 
"Tu Mama Enojada""zombie"600.00.3100.0 }
    
}

new 
g_iPJSelected[33];
new 
Ham:Ham_Player_ResetMaxSpeed Ham_Item_PreFrame

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /personajes""Clcmd_Personajes")
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn"1)
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""fw_ResetMaxSpeed_Post"1)
    
register_clcmd("+use""Clcmd__Use")
}

public 
plugin_precache() {
    
    static 
szBuffer[101];
    for(new 
0sizeof(g_szPersonajes); i++) {
        
formatex(szBuffercharsmax(szBuffer), "models/player/%s/%s.mdl"g_szPersonajes[i][PJ_MODEL], g_szPersonajes[i][PJ_MODEL])
        
precache_model(szBuffer);
    }
}
public 
client_putinserver(id) {
    
g_iPJSelected[id] = 0
}
public 
Clcmd_Personajes(id) {
    
    new 
menu menu_create("Personajes""HM_Personajes")
    static 
szBuffer[101];
    
    for(new 
0sizeof(g_szPersonajes); i++) {
        if(
== g_iPJSelected[id])
            
formatex(szBuffercharsmax(szBuffer), "\w%s \y(En uso)"g_szPersonajes[i][PJ])
        else
            
formatex(szBuffercharsmax(szBuffer), "\w%s"g_szPersonajes[i][PJ])
        
        
menu_additem(menuszBuffer);
    }
    
    
menu_display(idmenu0)
}

public 
HM_Personajes(idmenuitem) {
    
    switch(
item) {
        case 
0menu_destroy(menu);
        default: {
            if(
g_iPJSelected[id] == item) return PLUGIN_HANDLED;
            
            new 
menu menu_create("Personajes""HM_PersonajesPS")
            static 
szBuffer[101], szPJSpeed[101], szPJGrav[101], szPJDmg[101];
            
g_iPJSelected[id] = item
            
            formatex
(szBuffercharsmax(szBuffer), "\w%s \d(%d)"g_szPersonajes[item][PJ], g_iPJSelected[id])
            
menu_additem(menuszBuffer)
            
            
menu_addtext(menu"\wCARACTERISTICAS:")
            
formatex(szPJSpeedcharsmax(szPJSpeed), "\d• \wVelocidad: \y%0.2f%%"g_szPersonajes[item][PJ_SPEED])
            
menu_addtext(menuszPJSpeed0)
            
            
formatex(szPJGravcharsmax(szPJGrav), "\d• \wGravedad: \y%0.2f%%"g_szPersonajes[item][PJ_GRAVITY])
            
menu_addtext(menuszPJGrav0)
            
            
formatex(szPJDmgcharsmax(szPJDmg), "\d• \wDaño: \y%0.2f%%^n^n^n"g_szPersonajes[item][PJ_DAMAGE])
            
menu_addtext(menuszPJDmg0)
            
            
menu_additem(menu"\wSeleccionar")
            
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
            
menu_display(idmenu0)
        }
    }
    
    return 
PLUGIN_HANDLED;
}

public 
HM_PersonajesPS(idmenuitem) {
    
    switch(
item) {
        case 
0menu_display(idmenu0)
        default: {
            
set_task(0.1"Task__SetPJ"id)
            
colorChat(idprint_chat"!g[PJ] !yHas seleccionado a !g%s"g_szPersonajes[g_iPJSelected[id]][PJ])
        }
    }
}

public 
fw_PlayerSpawn(id) {
    
    if(
g_iPJSelected[id] == 0) {
        
        return 
HAM_IGNORED;
        
    } else if(
g_iPJSelected[id] >= 1) {
        if(!
is_user_connected(id) || !is_user_alive(id)) return PLUGIN_HANDLED;
        
        
set_user_gravity(idg_szPersonajes[g_iPJSelected[id]][PJ_GRAVITY])
        
ExecuteHamB(Ham_Player_ResetMaxSpeedid)
        
        
cs_set_user_model(idg_szPersonajes[g_iPJSelected[id]][PJ_MODEL])
    }
    
    return 
HAM_IGNORED;
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type) {
    
    if(
g_iPJSelected[attacker] == 0) {
        return 
HAM_IGNORED;
    } else if(
g_iPJSelected[attacker] >= 1) {
        if(!
is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED;
        
        
SetHamParamFloat(4damage *= g_szPersonajes[g_iPJSelected[attacker]][PJ_DAMAGE])
    }
    
    return 
HAM_IGNORED;
}

public 
Task__SetPJ(id) {
    
    if(
g_iPJSelected[id] == 0) {
        return 
HAM_IGNORED;
    } else if(
g_iPJSelected[id] >= 1) {
        if(!
is_user_connected(id) || !is_user_alive(id)) return PLUGIN_HANDLED;
        
        
set_user_gravity(idg_szPersonajes[g_iPJSelected[id]][PJ_GRAVITY])
        
cs_set_user_model(idg_szPersonajes[g_iPJSelected[id]][PJ_MODEL])
        
set_pev(idpev_fov120.0)
        
ExecuteHamB(Ham_Player_ResetMaxSpeedid)
    }
    
    return 
PLUGIN_HANDLED;
}

public 
fw_ResetMaxSpeed_Post(id) {
    
    if(!
is_user_alive(id)) return HAM_IGNORED;
    
    if(
g_iPJSelected[id] == 0) {
        return 
HAM_IGNORED;
    } else if(
g_iPJSelected[id] >= 1) {
        
set_pev(idpev_maxspeedg_szPersonajes[g_iPJSelected[id]][PJ_SPEED])
        
    }
    
    return 
HAM_IGNORED;
}

public 
ResetStats(id) {
    if(!
is_user_alive(id)) return HAM_IGNORED;
    
    if(
g_iPJSelected[id] == 0) {
        return 
HAM_IGNORED;
    } else if(
g_iPJSelected[id] >= 1) {
        
set_pev(idpev_gravityg_szPersonajes[g_iPJSelected[id]][PJ_GRAVITY])
        
    }
    
    return 
HAM_IGNORED;
    
}
public 
Clcmd__Use(id) {
    
    
ExecuteHamB(Ham_Player_ResetMaxSpeedid)
    
ResetStats(id)
    return 
PLUGIN_CONTINUE;
    


Saludos.


Archivos adjuntos
.sma   Descargar AMXX / PJ.sma (Tamaño: 5.19 KB / Descargas: 1)
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)