[ZP] Clases Humanas Nivel y Reset
#1
el menu funciona si no cumplo con los requisitos de nivel y reset me muestra que estan bloqueados, pero al escoger si me deja y me da al humano que selecciono,
solo con niveles funciona, yo le agregue los resets pero no me funciono xd, cuando lo probé tenia nivel 10, y reset 0






Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <humanoplague>
#include <engine>
#include <fun>
#include <xs>

#define PLUGIN "Clases Humanas C/Restriccion"
#define VERSION "2.0"
#define AUTHOR "~3MCy Daimon't~>"

#define T4G "[T4G]"


new g_pushed_class[33] , g_class_pre[33]
new 
g_conectado[33]
new 
g_msgSayTextg_msgHostageAdd g_msgHostageDelg_MaxPlayers
new Floatcl_pushangle[33][3]
new 
weapon_name[24]
new 
jumpdoz[33][2

const 
WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)

enum {
    CLASICO ,
    BERSERKER ,
    ATLETA ,
    ASTRONAUTA ,
    MULTIJUMP ,
    TIRADOR ,
    AURA 
    RADAR 
    NINJA 
    PRECISO
}

enum _:human_class {
    class_name[90],
    class_ability[90],
    class_level,
    v_model[90],
    p_model[90],
    class_Reset
}


new const 
human_clase[][human_class] = {
    {"Humano Clasico""Ninguna Abilidad"0"models/v_knife.mdl""models/p_knife.mdl"1},
    {"Humano Berseker""x3 Damage Cuchillos"5"models/v_berserker_knife.mdl""models/p_berserker_knife.mdl"2},
    {"Humano Atleta""+Rapido"10"models/v_atleta_knife.mdl""models/p_atleta_knife.mdl"3},
    {"Humano Astronauta""+Gravedad"15"models/v_astronauta_knife.mdl""models/p_astronauta_knife.mdl"3},
    {"Humano MultiJump""Triple Salto"20"models/v_multijump_knife.mdl""models/p_multijump_knife.mdl"4},
    {"Humano Preciso""Semi-Recoil"25"models/v_preciso_knife.mdl""models/p_preciso_knife.mdl"4},
    {"Humano Iluminado""Aura Luminoza"29"models/v_iluminado_knife.mdl""models/p_iluminado_knife.mdl"5},
    {"Humano Rastreador""Zombie en Radar"10"models/v_rastreador_knife.mdl""models/p_rastreador_knife.mdl"0},
    {"Humano Ninja""Silencioso +Gravedad"15"models/v_ninja_knife.mdl""models/p_ninja_knife.mdl"0},
    {"Humano Tirador""x2 Damage HeadShot"40"models/v_tirador_knife.mdl""models/p_tirador_knife.mdl"0}
}

public 
plugin_init() {
    register_plugin(PLUGINVERSIONAUTHOR)
    
    register_event
"CurWeapon""Ev_CurWeapon""be""1=1" )
    
    RegisterHam
(Ham_Spawn "player" "Fw_PlayerSpawn")
    RegisterHam(Ham_TakeDamage"player""Fw_TakeDamage")

    register_forward(FM_PlayerPreThink,        "Fw_PlayerPreThink"

    register_clcmd("say /clase""menu_hclasses")

    g_MaxPlayers get_maxplayers()
    g_msgSayText get_user_msgid("SayText"
    g_msgHostageAdd get_user_msgid("HostagePos")
    g_msgHostageDel get_user_msgid("HostageK")
        
    set_task 
(1.0,"radar_scan",_,_,_,"b");

    for (new 1<= 30i++) {
        if (!(WEAPONS_BITSUM << i) && get_weaponname(iweapon_name23)) {
            RegisterHam(Ham_Weapon_PrimaryAttackweapon_name"fw_Weapon_PrimaryAttack_Pre")
            RegisterHam(Ham_Weapon_PrimaryAttackweapon_name"fw_Weapon_PrimaryAttack_Post"1)
        }
    }
}

public 
plugin_natives()
{
    register_native("clasehumanos""menu_hclasses"1)
}

public 
plugin_precache() {
    for( new 0sizeof human_clasei++ ) precache_modelhuman_clase[i][v_model] )
    for( new 0sizeof human_clasei++ ) precache_modelhuman_clase[i][p_model] )
}

public 
client_putinserver(id) {
    g_conectado[id] = 
    jumpdoz
[id][0] = 0
    jumpdoz
[id][1] = 0
}


public 
client_disconnect(id) {
    g_conectado[id] = 0
    jumpdoz
[id][0] = 0
    jumpdoz
[id][1] = 0
}

public 
Fw_PlayerPreThink(id) {
    if(zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return
    
    
if(is_user_alive(id)){
    
    
if(g_pushed_class[id] == ATLETA)    
        set_pev
(idpev_maxspeed290.0)
        
    
if(g_pushed_class[id] == ASTRONAUTA || g_pushed_class[id] == NINJA)
        set_pev(idpev_gravity0.6)
        
    
if(g_pushed_class[id] == NINJA)
        set_pev(idpev_flTimeStepSound999); 
        
    
if(g_pushed_class[id] == AURA)
        set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
    }
}


public 
Fw_PlayerSpawn(id) {    
    g_pushed_class
[id] = g_class_pre[id]
    colored_print(id"^x04%s^x01 Este server corre con^x04 Clases Humanas V2.0^x01 , Escribe^x04 /clase^x01 para seleccionar tu^x04 clase de Humano"T4G)
}

public 
fw_Weapon_PrimaryAttack_Post(entity) {
    new id pev(entitypev_owner)
    if (!zp_get_user_zombieid ) && is_user_alive id ) && g_pushed_class[id] == TIRADOR) {

    new Floatpush[3
    pev(idpev_punchanglepush
    xs_vec_sub(pushcl_pushangle[id], push
    xs_vec_mul_scalar(push0.4 push
    xs_vec_add(pushcl_pushangle[id], push
    set_pev(idpev_punchanglepush
    return HAM_IGNORED;
    }
    return PLUGIN_HANDLED
}


public 
fw_Weapon_PrimaryAttack_Pre(entity) {
    new id pev(entitypev_owner)
    if (!zp_get_user_zombie(id) && is_user_alive id ) && g_pushed_class[id] == TIRADOR) {
        pev(idpev_punchanglecl_pushangle[id])
        return HAM_IGNORED;
    }
    return HAM_IGNORED;
}

public 
client_PreThink(id) {
    if(!is_user_alive(id) || zp_get_user_zombie(id))
    return PLUGIN_CONTINUE

    
if(zp_get_user_nemesis(id) || zp_get_user_survivor(id)) 
    return PLUGIN_CONTINUE

    
new nzbut get_user_button(id)
    new ozbut get_user_oldbutton(id)

    if(g_pushed_class[id] == MULTIJUMP && (nzbut IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(ozbut IN_JUMP)) {
        if(jumpdoz[id][0] < 2) {
        jumpdoz[id][1] = 1
        jumpdoz
[id][0]++
        return PLUGIN_CONTINUE
    
}
}
    if((nzbut IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) {
        jumpdoz[id][0] = 0
        
return PLUGIN_CONTINUE
    
}    
    
return PLUGIN_CONTINUE
}

public 
client_PostThink(id) {
    if(zp_get_user_nemesis(id)  || zp_get_user_survivor(id)) 
    return PLUGIN_CONTINUE
    
if(jumpdoz[id][1] == 1) {
        new Float:velocity[3]    
        entity_get_vector
(id,EV_VEC_velocity,velocity)
        velocity[2] = random_float(265.0,285.0)
        entity_set_vector(id,EV_VEC_velocity,velocity)
        jumpdoz[id][1] = 0
        
return PLUGIN_CONTINUE
    
}
    return PLUGIN_CONTINUE
}

public 
Ev_CurWeaponid ) {
    if(zp_get_user_zombie(id) || !is_user_alive(id)) return
    
    
if(get_user_weapon(id) == CSW_KNIFE
        replace_models(id)
}

replace_models(id) {
    if(zp_get_user_zombie(id) || !is_user_alive(id)) return
    
    set_pev
idpev_viewmodel2human_clase[g_class_pre[id]][v_model])
    set_pevidpev_weaponmodel2human_clase[g_class_pre[id]][p_model])
}


public 
Fw_TakeDamage(victiminflictorattackerFloat:damagedamage_typeiDmgBits) {
    if(zp_get_user_zombie(attacker) && is_user_alive(attacker)) {    
        
if(get_user_weapon(attacker) == CSW_KNIFE && g_pushed_class[attacker] == BERSERKER)
        SetHamParamFloat(4damage *= 3.0 )
        
        
if(get_pdata_int(victim75) == HIT_HEAD && g_pushed_class[attacker] == PRECISO)
        SetHamParamFloat(4damage 2.0)
    }
}
public 
menu_hclasses(id) {    
    
new class_menu menu_create("\wElegir clase de \r Humano:^n^n""menu_handler"
    
    
new num[3], len[1024]
    for (new 0sizeof human_clase i++) {
        num_to_str(inum2)
        if(g_class_pre[id] != i) {
            if(zp_get_user_level(id) >= human_clase[i][class_level] && zp_get_user_reset(id) >= human_clase[i][class_Reset]) 
                formatex(lensizeof len 1"\w %s \y [%s] \w- \r[Disponible]" human_clase[i][class_name] , human_clase[i][class_ability])
            else  
                formatex
(lensizeof len 1"\d %s \w - \r[Nivel: %d] r: %d" human_clase[i][class_name] , human_clase[i][class_level], human_clase[i][class_Reset])
        }
        else
            formatex(lensizeof len 1"\d %s [%s] - [Elegido]" human_clase[i][class_name] , human_clase[i][class_ability])
        
        menu_additem
(class_menulennum)
        }
    
    menu_setprop
(class_menuMPROP_BACKNAME"\yAtras"
    menu_setprop(class_menuMPROP_NEXTNAME"\ySiguiente"
    menu_setprop(class_menuMPROP_EXITNAME"\ySalir"
    menu_display(idclass_menu0
}

public 
menu_handler(idclass_menuitem) {
    if(item == MENU_EXIT) { 
        menu_destroy(class_menu
        return PLUGIN_HANDLED 
    

    
    
if (!g_conectado[id]) return PLUGIN_HANDLED;
    
    
new data[6], iName[64
    new accesscallback 
    menu_item_getinfo
(class_menuitemaccessdata,5iName63callback
    
    
if(zp_get_user_level(id) < human_clase[item][class_level] && zp_get_user_reset(id) < human_clase[item][class_Reset]) {    
        colored_print
(id"^x04%s^x01 Para elegir esta^x04 Clase Humana^x01 necesitas ser^x04 Nivel^x01 :^x04 %d^x01 Reset^x01 :^x04 %d^x01."T4Ghuman_clase[item][class_level], human_clase[item][class_Reset] )
        menu_hclasses(id)
        return PLUGIN_HANDLED;
    }
    
    
if(g_class_pre[item] && get_user_weapon(id) == CSW_KNIFE) { 
        replace_models(item)
    }    
    
    g_class_pre
[id] = item
    colored_print
(id"^x04%s^x01 En Tu Proximo Spawn, Tu Clase Sera^x03 %s"T4Ghuman_clase[item][class_name])
    return PLUGIN_HANDLED
}

public 
radar_scan() {    
    
new zombie_count 0;
    new zombie_list[32];
    new ZombieCoords[3];
    new idi;
        
    
for (new id=1id<=g_MaxPlayersid++) {
            
        
if ((zp_get_user_zombie(id))&&(is_user_alive(id))) {
            zombie_count++;
            zombie_list[zombie_count]=id;
        }
            
    
}
        
    
for (id=1id<=g_MaxPlayersid++) {
        if (!is_user_alive(id)) continue;
            
        
if (g_pushed_class[id] != RADAR || zp_get_user_zombie(id)) continue; 
            
        
for (i=1;i<=zombie_count;i++) {            
            get_user_origin
(zombie_list[i], ZombieCoords)
                
            message_begin
(MSG_ONE_UNRELIABLEg_msgHostageAdd, {0,0,0}, id)
            write_byte(id)
            write_byte(i)        
            write_coord
(ZombieCoords[0])
            write_coord(ZombieCoords[1])
            write_coord(ZombieCoords[2])
            message_end()
                
            message_begin
(MSG_ONE_UNRELIABLEg_msgHostageDel, {0,0,0}, id)
            write_byte(i)
            message_end()
        }
    }
}


stock colored_print(id, const mensaje[], any:...) /* Stock de r0ma */ {
    if(!g_conectado[id])
        return
    
    
static buffer[192]
    vformat(buffercharsmax(buffer), mensaje3)
    
    message_begin
(MSG_ONE_UNRELIABLEg_msgSayText_id)
    write_byte(id)
    write_string(buffer)
    message_end()    



Archivos adjuntos Miniatura(s)
       
Responder
#2
Pon la parte original y la parte que has modificado, por separado.
Responder
#3
(08/04/2021, 06:18 PM)MarLeo94 escribió: Pon la parte original y la parte que has modificado, por separado.

Sin ninguna Modificacion

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <engine>
#include <fun>
#include <xs>

#define PLUGIN "Clases Humanas C/Restriccion"
#define VERSION "2.0"
#define AUTHOR "~3MCy Daimon't~>"

#define T4G "[T4G]"


new g_pushed_class[33] , g_class_pre[33]
new 
g_conectado[33]
new 
g_msgSayTextg_msgHostageAdd g_msgHostageDelg_MaxPlayers
new Floatcl_pushangle[33][3]
new 
weapon_name[24]
new 
jumpdoz[33][2

const 
WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)

enum {
    
CLASICO ,
    
BERSERKER ,
    
ATLETA ,
    
ASTRONAUTA ,
    
MULTIJUMP ,
    
TIRADOR ,
    
AURA 
    
RADAR 
    
NINJA 
    
PRECISO
}

enum _:human_class {
    
class_name[90],
    
class_ability[90],
    
class_level,
    
v_model[90],
    
p_model[90]
}


new const 
human_clase[][human_class] = {
    {
"Humano Clasico""Ninguna Abilidad"0"models/v_knife.mdl""models/p_knife.mdl"},
    {
"Humano Berseker""x3 Damage Cuchillos"5"models/v_berserker_knife.mdl""models/p_berserker_knife.mdl"},
    {
"Humano Atleta""+Rapido"10"models/v_atleta_knife.mdl""models/p_atleta_knife.mdl"},
    {
"Humano Astronauta""+Gravedad"15"models/v_astronauta_knife.mdl""models/p_astronauta_knife.mdl"},
    {
"Humano MultiJump""Triple Salto"20"models/v_multijump_knife.mdl""models/p_multijump_knife.mdl"},
    {
"Humano Preciso""Semi-Recoil"25"models/v_preciso_knife.mdl""models/p_preciso_knife.mdl"},
    {
"Humano Iluminado""Aura Luminoza"30"models/v_iluminado_knife.mdl""models/p_iluminado_knife.mdl"},
    {
"Humano Rastreador""Zombie en Radar"35"models/v_rastreador_knife.mdl""models/p_rastreador_knife.mdl"},
    {
"Humano Ninja""Silencioso +Gravedad"40"models/v_ninja_knife.mdl""models/p_ninja_knife.mdl"},
    {
"Humano Tirador""x2 Damage HeadShot"45"models/v_tirador_knife.mdl""models/p_tirador_knife.mdl"}
}

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event"CurWeapon""Ev_CurWeapon""be""1=1" )
    
    
RegisterHam(Ham_Spawn "player" "Fw_PlayerSpawn")
    
RegisterHam(Ham_TakeDamage"player""Fw_TakeDamage")

    
register_forward(FM_PlayerPreThink,         "Fw_PlayerPreThink"

    
register_clcmd("say /clase""menu_hclasses")

    
g_MaxPlayers get_maxplayers()
    
g_msgSayText get_user_msgid("SayText"
    
g_msgHostageAdd get_user_msgid("HostagePos")
    
g_msgHostageDel get_user_msgid("HostageK")
        
    
set_task (1.0,"radar_scan",_,_,_,"b");

    for (new 
1<= 30i++) {
        if (!(
WEAPONS_BITSUM << i) && get_weaponname(iweapon_name23)) {
            
RegisterHam(Ham_Weapon_PrimaryAttackweapon_name"fw_Weapon_PrimaryAttack_Pre")
            
RegisterHam(Ham_Weapon_PrimaryAttackweapon_name"fw_Weapon_PrimaryAttack_Post"1)
        }
    }
}

public 
plugin_precache() {
    for( new 
0sizeof human_clasei++ ) precache_modelhuman_clase[i][v_model] )
    for( new 
0sizeof human_clasei++ ) precache_modelhuman_clase[i][p_model] )
}

public 
client_putinserver(id) {
    
g_conectado[id] = 
    jumpdoz
[id][0] = 0
    jumpdoz
[id][1] = 0
}


public 
client_disconnect(id) {
    
g_conectado[id] = 0
    jumpdoz
[id][0] = 0
    jumpdoz
[id][1] = 0
}

public 
Fw_PlayerPreThink(id) {
    if(
zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return
    
    if(
is_user_alive(id)){
    
    if(
g_pushed_class[id] == ATLETA)    
        
set_pev(idpev_maxspeed290.0)
        
    if(
g_pushed_class[id] == ASTRONAUTA || g_pushed_class[id] == NINJA)
        
set_pev(idpev_gravity0.6)
        
    if(
g_pushed_class[id] == NINJA)
        
set_pev(idpev_flTimeStepSound999); 
        
    if(
g_pushed_class[id] == AURA)
        
set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
    }
}


public 
Fw_PlayerSpawn(id) {    
    
g_pushed_class[id] = g_class_pre[id]
    
colored_print(id"^x04%s^x01 Este server corre con^x04 Clases Humanas V2.0^x01 , Escribe^x04 /clase^x01 para seleccionar tu^x04 clase de Humano"T4G)
}

public 
fw_Weapon_PrimaryAttack_Post(entity) {
    new 
id pev(entitypev_owner)
    if (!
zp_get_user_zombieid ) && is_user_alive id ) && g_pushed_class[id] == TIRADOR) {

    new 
Floatpush[3
    
pev(idpev_punchanglepush
    
xs_vec_sub(pushcl_pushangle[id], push
    
xs_vec_mul_scalar(push0.4 push
    
xs_vec_add(pushcl_pushangle[id], push
    
set_pev(idpev_punchanglepush
    return 
HAM_IGNORED;
    }
    return 
PLUGIN_HANDLED
}


public 
fw_Weapon_PrimaryAttack_Pre(entity) {
    new 
id pev(entitypev_owner)
    if (!
zp_get_user_zombie(id) && is_user_alive id ) && g_pushed_class[id] == TIRADOR) {
        
pev(idpev_punchanglecl_pushangle[id])
        return 
HAM_IGNORED;
    }
    return 
HAM_IGNORED;
}

public 
client_PreThink(id) {
    if(!
is_user_alive(id) || zp_get_user_zombie(id))
    return 
PLUGIN_CONTINUE

    
if(zp_get_user_nemesis(id) || zp_get_user_survivor(id)) 
    return 
PLUGIN_CONTINUE

    
new nzbut get_user_button(id)
    new 
ozbut get_user_oldbutton(id)

    if(
g_pushed_class[id] == MULTIJUMP && (nzbut IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(ozbut IN_JUMP)) {
        if(
jumpdoz[id][0] < 2) {
        
jumpdoz[id][1] = 1
        jumpdoz
[id][0]++
        return 
PLUGIN_CONTINUE
    
}
}
    if((
nzbut IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) {
        
jumpdoz[id][0] = 0
        
return PLUGIN_CONTINUE
    
}    
    return 
PLUGIN_CONTINUE
}

public 
client_PostThink(id) {
    if(
zp_get_user_nemesis(id)  || zp_get_user_survivor(id)) 
    return 
PLUGIN_CONTINUE
    
if(jumpdoz[id][1] == 1) {
        new 
Float:velocity[3]    
        
entity_get_vector(id,EV_VEC_velocity,velocity)
        
velocity[2] = random_float(265.0,285.0)
        
entity_set_vector(id,EV_VEC_velocity,velocity)
        
jumpdoz[id][1] = 0
        
return PLUGIN_CONTINUE
    
}
    return 
PLUGIN_CONTINUE
}

public 
Ev_CurWeaponid ) {
    if(
zp_get_user_zombie(id) || !is_user_alive(id)) return
    
    if(
get_user_weapon(id) == CSW_KNIFE
        
replace_models(id)
}

replace_models(id) {
    if(
zp_get_user_zombie(id) || !is_user_alive(id)) return
    
    
set_pevidpev_viewmodel2human_clase[g_class_pre[id]][v_model])
    
set_pevidpev_weaponmodel2human_clase[g_class_pre[id]][p_model])
}


public 
Fw_TakeDamage(victiminflictorattackerFloat:damagedamage_typeiDmgBits) {
    if(
zp_get_user_zombie(attacker) && is_user_alive(attacker)) {     
        if(
get_user_weapon(attacker) == CSW_KNIFE && g_pushed_class[attacker] == BERSERKER)
        
SetHamParamFloat(4damage *= 3.0 )
        
        if(
get_pdata_int(victim75) == HIT_HEAD && g_pushed_class[attacker] == PRECISO)
        
SetHamParamFloat(4damage 2.0)
    }
}

public 
menu_hclasses(id) {    
    new 
class_menu menu_create("\wElegir clase de \r Humano:^n^n""menu_handler"
    
    new 
num[3], len[1024]
    for (new 
0sizeof human_clase i++) {
        
num_to_str(inum2)
        if(
g_class_pre[id] != i) {
            if(
zp_get_user_level(id) >= human_clase[i][class_level]) 
                
formatex(lensizeof len 1"\w %s \y [%s] \w- \r[Disponible]" human_clase[i][class_name] , human_clase[i][class_ability])
            else  
                
formatex(lensizeof len 1"\d %s \w - \r[Nivel: %d]" human_clase[i][class_name] , human_clase[i][class_level])
        }
        else
            
formatex(lensizeof len 1"\d %s [%s] - [Elegido]" human_clase[i][class_name] , human_clase[i][class_ability])
        
        
menu_additem(class_menulennum)
        }
    
    
menu_setprop(class_menuMPROP_BACKNAME"\yAtras"
    
menu_setprop(class_menuMPROP_NEXTNAME"\ySiguiente"
    
menu_setprop(class_menuMPROP_EXITNAME"\ySalir"
    
menu_display(idclass_menu0
}

public 
menu_handler(idclass_menuitem) {
    if(
item == MENU_EXIT) { 
        
menu_destroy(class_menu
        return 
PLUGIN_HANDLED 
    

    
    if (!
g_conectado[id]) return PLUGIN_HANDLED;
    
    new 
data[6], iName[64
    new 
accesscallback 
    menu_item_getinfo
(class_menuitemaccessdata,5iName63callback
    
    if(
zp_get_user_level(id) < human_clase[item][class_level]) {    
        
colored_print(id"^x04%s^x01 Para elegir esta^x04 Clase Humana^x01 necesitas ser^x04 Nivel^x01 :^x04 %d^x01."T4Ghuman_clase[item][class_level])
        
menu_hclasses(id)
        return 
PLUGIN_HANDLED;
    }
    
    if(
g_class_pre[item] && get_user_weapon(id) == CSW_KNIFE) { 
        
replace_models(item)
    }    
    
    
g_class_pre[id] = item
    colored_print
(id"^x04%s^x01 En Tu Proximo Spawn, Tu Clase Sera^x03 %s"T4Ghuman_clase[item][class_name])
    return 
PLUGIN_HANDLED
}

public 
radar_scan() {    
    new 
zombie_count 0;
    new 
zombie_list[32];
    new 
ZombieCoords[3];
    new 
idi;
        
    for (new 
id=1id<=g_MaxPlayersid++) {
            
        if ((
zp_get_user_zombie(id))&&(is_user_alive(id))) {
            
zombie_count++;
            
zombie_list[zombie_count]=id;
        }
            
    }
        
    for (
id=1id<=g_MaxPlayersid++) {
        if (!
is_user_alive(id)) continue;
            
        if (
g_pushed_class[id] != RADAR || zp_get_user_zombie(id)) continue; 
            
        for (
i=1;i<=zombie_count;i++) {            
            
get_user_origin(zombie_list[i], ZombieCoords)
                
            
message_begin(MSG_ONE_UNRELIABLEg_msgHostageAdd, {0,0,0}, id)
            
write_byte(id)
            
write_byte(i)        
            
write_coord(ZombieCoords[0])
            
write_coord(ZombieCoords[1])
            
write_coord(ZombieCoords[2])
            
message_end()
                
            
message_begin(MSG_ONE_UNRELIABLEg_msgHostageDel, {0,0,0}, id)
            
write_byte(i)
            
message_end()
        }
    }
}


stock colored_print(id, const mensaje[], any:...) /* Stock de r0ma */ {
    if(!
g_conectado[id])
        return
    
    static 
buffer[192]
    
vformat(buffercharsmax(buffer), mensaje3)
    
    
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_id)
    
write_byte(id)
    
write_string(buffer)
    
message_end()    

Responder
#4
Buah, pues parece que esta bien.. ¿Has revisado la parte del reset si esta bien hecha en el plugin principal?
Responder
#5
si estaba bueno, igual al de nivel solo que siendo reset, tambien probe haciendo native el nivel y reset y fue el mismo resultado
Responder
#6
Código PHP:
if(zp_get_user_level(id) < human_clase[item][class_level] && zp_get_user_reset(id) < human_clase[item][class_Reset]) 

------->

Código PHP:
if(zp_get_user_level(id) < human_clase[item][class_level] || zp_get_user_reset(id) < human_clase[item][class_Reset]) 
Responder
#7
Así lo uso yo

Código PHP:
// Zombie Class Menu
public show_menu_zclass(idtype)
{
    
// Player disconnected
    
if (!g_isconnected[id])
        return;
    
    static 
menuidmenu[128], class, buffer[32], buffer2[32]
    
    
// Title
    
formatex(menucharsmax(menu), "Clases %s"type == CLASS_ZOMBIE "Zombies" "Humanas");
    
menuid menu_create(menu"menu_zclass")
    
    
// Class List
    
for (class = 0; class < g_zclass_i; class++)
    {
        if(
type != ArrayGetCell(g_zclass_type, class))
            continue;
        

        
// Retrieve name and info
        
ArrayGetString(g_zclass_name, class, buffercharsmax(buffer))
        
ArrayGetString(g_zclass_info, class, buffer2charsmax(buffer2))
        static 
adminadmin get_user_flags(id);

        if(
ArrayGetCell(g_zclass_admin, class) == ADMIN_ALL)
        {
            if( 
g_iLevel[id] >= ArrayGetCell(g_zclass_level, class) && g_iReset[id] >= ArrayGetCell(g_zclass_reset, class) || g_iReset[id] > ArrayGetCell(g_zclass_reset, class))
            {
                if(
type == CLASS_ZOMBIE)
                {
                    
// Add to menu
                    
if (class == g_zombieclassnext[id])
                        
formatex(menucharsmax(menu), "\d%s %s"bufferbuffer2)
                    else
                        
formatex(menucharsmax(menu), "%s \y%s"bufferbuffer2)
                }
                else
                {
                    
// Add to menu
                    
if (class == g_humanclassnext[id])
                        
formatex(menucharsmax(menu), "\d%s %s"bufferbuffer2)
                    else
                        
formatex(menucharsmax(menu), "%s \y%s"bufferbuffer2)
                }
                
            }
            else
            {
                
formatex(menucharsmax(menu), "%s \r[ N: %d - RR %d ]"bufferArrayGetCell(g_zclass_level, class), ArrayGetCell(g_zclass_reset, class))
            }
        }
        else
        {
            if(
admin ArrayGetCell(g_zclass_admin, class))
            {
                if( 
g_iLevel[id] >= ArrayGetCell(g_zclass_level, class) && g_iReset[id] >= ArrayGetCell(g_zclass_reset, class) || g_iReset[id] > ArrayGetCell(g_zclass_reset, class))
                {
                    if(
type == CLASS_ZOMBIE)
                    {
                        
// Add to menu
                        
if (class == g_zombieclassnext[id])
                            
formatex(menucharsmax(menu), "\d%s %s"bufferbuffer2)
                        else
                            
formatex(menucharsmax(menu), "%s \y%s"bufferbuffer2)
                    }
                    else
                    {
                        
// Add to menu
                        
if (class == g_humanclassnext[id])
                            
formatex(menucharsmax(menu), "\d%s %s"bufferbuffer2)
                        else
                            
formatex(menucharsmax(menu), "%s \y%s"bufferbuffer2)
                    }
                    
                }
                else
                {
                    
formatex(menucharsmax(menu), "%s \r[ N: %d - RR %d ]"bufferArrayGetCell(g_zclass_level, class), ArrayGetCell(g_zclass_reset, class))
                }
            }
            else
                
formatex(menucharsmax(menu), "%s \r[ ADMIN ]"buffer)
        }

        
buffer[0] = class
        
buffer[1] = 0
        menu_additem
(menuidmenubuffer)
    }
    
    
// Back - Next - Exit
    
formatex(menucharsmax(menu), "%L"id"MENU_BACK")
    
menu_setprop(menuidMPROP_BACKNAMEmenu)
    
formatex(menucharsmax(menu), "%L"id"MENU_NEXT")
    
menu_setprop(menuidMPROP_NEXTNAMEmenu)
    
formatex(menucharsmax(menu), "%L"id"MENU_EXIT")
    
menu_setprop(menuidMPROP_EXITNAMEmenu)
    
    
menu_display(idmenuid)


saca usa las condiciones
Responder
#8
Tanto como en menu_hclasses y menu_handler, tenés que poner lo mismo
Código PHP:
if(tuvariablenibel >= human_clase[item][class_level] && tuvariablereset >= human_clase[item][class_Reset]) 
Responder
#9
Humano de pene grande lvl 10 rr 1

yo lvl 1 rr 10

(Ayer, 02:26 AM)Leo escribió: Tanto como en menu_hclasses y menu_handler, tenés que poner lo mismo
Código PHP:
if(tuvariablenibel >= human_clase[item][class_level] && tuvariablereset >= human_clase[item][class_Reset]) 


"si 1 >= 10 && 10 >= 1"

1 >= 10 = false

10 >= 1 = true

false && true = false

if( true )
tengo el humano
else
no lo tengo
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)