AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Zombie Plague Mod (https://forums.alliedmods.net/forumdisplay.php?f=126)
-   -   [HELP]Make bot choose random human classes zp4.3fix5a (https://forums.alliedmods.net/showthread.php?t=262709)

NewKidz 05-10-2015 15:44

[HELP]Make bot choose random human classes zp4.3fix5a
 
Hello guys, i edited [ZP]Addon: Human classes by fiendshard.
I want make cz bots can choose random human classes.
It compile without any problems, but the bot won't choose the class.
Could you help me?

PHP Code:

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <zombieplague>

const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)

new 
g_ent_playermodel[33];
new 
g_ent_weaponmodel[33];
new 
g_currentweapon[33];

new 
g_player_class[33]
new 
g_hamczbots
new cvar_botquota

new g_isbot[33]

public 
plugin_init()
{
    
register_plugin("[ZP] Addon: Human Classes""1.3""fiendshard")
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1)
    
    
cvar_botquota get_cvar_pointer("bot_quota")
}

public 
plugin_precache()
{
                        
// Change paths and names of your models below. Beware of typos.
    
engfunc(EngFunc_PrecacheModel"models/player/arctic/arctic.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/gsg9/gsg9.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/guerilla/guerilla.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/leet/leet.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/sas/sas.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/terror/terror.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/urban/urban.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/spetsnaz/spetsnaz.mdl")
}

public 
client_putinserver(id)
{
    
g_isbot[id] = true
    
    
if (!g_hamczbots && cvar_botquota)
        {
            
// Set a task to let the private data initialize
            
set_task(0.1"register_ham_czbots"id)
        }
}

public 
register_ham_czbots(id)
{
    if (
g_hamczbots || !is_user_connected(id) || !get_pcvar_num(cvar_botquota))
        return;
    
    
RegisterHamFromEntity(Ham_Spawnid"fwHamPlayerSpawnPost"1)
    
    
g_hamczbots true

    
if (is_user_alive(id)) fwHamPlayerSpawnPost(id)
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
{
    if (!
is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
        return;
    static 
weapon
    weapon 
get_msg_arg_int(2)
    
g_currentweapon[msg_entity] = weapon
    fm_set_weaponmodel_ent
(msg_entity)
}


public 
fwHamPlayerSpawnPost(id)
{
    if(!
is_user_bot(id))
        
set_task(get_cvar_float("zp_delay")+5.0"ClCmdSelectModel",id)
}

public 
ClCmdSelectModel(idmenuid)
{
    if(
zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
    {
        return 
PLUGIN_HANDLED;
    }
    
    else if(!
is_user_alive(id))
    {
        return 
PLUGIN_HANDLED;
    }
    else
    {
        
human_menu(id)
    }
    return 
PLUGIN_CONTINUE;
}

public 
human_menu(id)
{
    new 
menu menu_create("\rChoose your perk:^n(Press 'H' for details)""human_menu_handler")
    
menu_additem(menu"\wAntighost""1"0)
    
menu_additem(menu"\wTank""2"0)
    
menu_additem(menu"\wParkour""3"0)
    
menu_additem(menu"\wColdman""4"0)
    
menu_additem(menu"\wDemolition""5"0)
    
menu_additem(menu"\wLightbringer""6"0)
    
menu_additem(menu"\wSharpshooter""7"0)
    
menu_additem(menu"\wBalance",    "8"0)
    
menu_display(idmenu0)
    if (
g_isbot[id])
    {
        
g_player_class[id] = 8
        
return;
    }
}

public 
human_menu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    new 
data[6], iName[64]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessdata5iName63callback)
    new 
key str_to_num(data)
    switch(
key)
    {
        case 
1:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 1
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/arctic/arctic.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_mac10")
            
give_item(id,"weapon_fiveseven")
            
give_item(id,"weapon_smokegrenade")
            
set_user_health(id150)
            
set_user_armor(id75)
            
cs_set_user_bpammo(idCSW_MAC10200)
            
cs_set_user_bpammo(idCSW_FIVESEVEN200)
            
client_print(idprint_chat,"You chose Antighost (Press 'H'>'About' for details')")
        }
        case 
2:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 2
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/gsg9/gsg9.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_m3")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id250)
            
set_user_armor(id45)
            
set_user_gravity(id1.15)
            
cs_set_user_bpammo(idCSW_M350)
            
cs_set_user_bpammo(idCSW_DEAGLE200)
            
client_print(idprint_chat,"You chose Tank (Press 'H'>'About' for details')");
        }
        case 
3
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 3
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/guerilla/guerilla.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_mp5navy")
            
give_item(id,"weapon_p228")
            
set_user_health(id150)
            
set_user_armor(id45)
            
set_user_gravity(id0.68)
            
set_user_maxspeed(idget_cvar_float("zp_human_speed") + 40)
            
cs_set_user_bpammo(idCSW_MP5NAVY200)
            
cs_set_user_bpammo(idCSW_P228200)
            
client_cmd(id,"say /napalm")
            
client_print(idprint_chat,"You chose Parkour (Press 'H'>'About' for details')");
        }
        case 
4
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 4
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/leet/leet.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_galil")
            
give_item(id,"weapon_glock18")
            
give_item(id,"weapon_flashbang")
            
set_user_health(id135)
            
set_user_armor(id45)
            
cs_set_user_bpammo(idCSW_GALIL200)
            
cs_set_user_bpammo(idCSW_GLOCK18200)
            
cs_set_user_bpammo(idCSW_FLASHBANG3)
            
client_print(idprint_chat,"You chose Coldman (Press 'H'>'About' for details')");
        }
        case 
5
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 5
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/sas/sas.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_tmp")
            
give_item(id,"weapon_usp")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id200)
            
set_user_armor(id30)
            
set_user_gravity(id0.9)
            
cs_set_user_bpammo(idCSW_TMP200)
            
cs_set_user_bpammo(idCSW_USP200)
            
cs_set_user_bpammo(idCSW_HEGRENADE3)
            
client_cmd(id,"say /napalm")
            
client_cmd(id,"say /napalm")
            
client_print(idprint_chat,"You chose Demolition (Press 'H'>'About' for details')")
        }
        case 
6
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 6
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/terror/terror.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_sg552")
            
give_item(id,"weapon_elite")
            
give_item(id,"weapon_smokegrenade")
            
give_item(id,"weapon_flashbang")
            
set_user_health(id100)
            
set_user_armor(id10)
            
set_user_gravity(id0.9)
            
cs_set_user_bpammo(idCSW_SG552200)
            
cs_set_user_bpammo(idCSW_ELITE200)
            
cs_set_user_bpammo(idCSW_SMOKEGRENADE5)
            
set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
            
client_print(idprint_chat,"You chose Lightbringer (Press 'H'>'About' for details')");
        }
        case 
7
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 7
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/urban/urban.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_awp")
            
give_item(id,"weapon_p228")
            
give_item(id,"weapon_flashbang")
            new 
weapon_id fm_find_ent_by_owner(-1"weapon_awp"id); 
            if(
weapon_id
            { 
                
cs_set_weapon_ammo(weapon_id25); 
            }
            
set_user_health(id185)
            
set_user_armor(id60)
            
set_user_gravity(id1.05)
            
cs_set_user_bpammo(idCSW_AWP50)
            
cs_set_user_bpammo(idCSW_P228200)
            
client_print(idprint_chat,"You chose Sharpshooter (Press 'H'>'About' for details')");
        }
        case 
8:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 8
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/spetsnaz/spetsnaz.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_m4a1")
            
give_item(id,"weapon_usp")
            
give_item(id,"weapon_flashbang")
            
give_item(id,"weapon_smokegrenade")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id200)
            
set_user_armor(id50)
            
cs_set_user_bpammo(idCSW_M4A1200)
            
cs_set_user_bpammo(idCSW_USP200)
            
client_print(idprint_chat,"You chose Balance (Press 'H'>'About' for details')")
        }
    }
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
zp_user_infected_post(idinfector)
{
    
fm_remove_model_ents(id)
}

stock fm_remove_model_ents(id)
{
    if (
pev_valid(g_ent_playermodel[id]))
    {
        
engfunc(EngFunc_RemoveEntityg_ent_playermodel[id])
        
g_ent_playermodel[id] = 0
    
}
    if (
pev_valid(g_ent_weaponmodel[id]))
    {
        
engfunc(EngFunc_RemoveEntityg_ent_weaponmodel[id])
        
g_ent_weaponmodel[id] = 0
    
}
}

stock fm_set_weaponmodel_ent(id)
{
    static 
model[100]
    
pev(idpev_weaponmodel2modelsizeof model 1)
    
    if (!
pev_valid(g_ent_weaponmodel[id]))
    {
        
g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
        if (!
pev_valid(g_ent_weaponmodel[id])) return;
        
        
set_pev(g_ent_weaponmodel[id], pev_classname"weapon_model")
        
set_pev(g_ent_weaponmodel[id], pev_movetypeMOVETYPE_FOLLOW)
        
set_pev(g_ent_weaponmodel[id], pev_aimentid)
        
set_pev(g_ent_weaponmodel[id], pev_ownerid)
    }
    
    
engfunc(EngFunc_SetModelg_ent_weaponmodel[id], model)
}

stock drop_primary_weapons(id)    
{
    static 
weapons 32 ], numiweaponid
    num 

    get_user_weapons 
(idweaponsnum )
    
    for ( 
0numi++ )
    {
        
weaponid weapons ]
        if  ( ( (
1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )        
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
engclient_cmd(id"drop"wname)
        }
    }


Someone please response this to me, i already post for help here: https://forums.alliedmods.net/showth...133055&page=21
This is very important to me, thankyou before :)

SergiCruz 05-10-2015 15:54

Re: [HELP]Make bot choose random human classes zp4.3fix5a
 
Try adding this to your code. It should work with any kind of bots.
PHP Code:

#define MAX_HUMAN_CLASS 8 // Set to the number of classes you have
#define TASK_SET_CLASS 19825
#define ID_SET_CLASS (taskid - TASK_SET_CLASS)

public client_putinserver(id)
    if (
is_user_bot(id))
    {
        
remove_task(id+TASK_SET_CLASS)
        
set_task(1.0"SetBotRandomClass"id+TASK_SET_CLASS)
    }

public 
client_disconnect(id)
    
remove_task(id+TASK_SET_CLASS)

public 
SetBotRandomClass(taskid)
    
g_player_class[ID_SET_CLASS] = random_num(1MAX_HUMAN_CLASS


NewKidz 05-10-2015 15:55

Re: [HELP]Make bot choose random human classes zp4.3fix5a
 
EDIT: It's not work for me
Am i wrong when i put your code?

PHP Code:

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <zombieplague>

#define MAX_HUMAN_CLASS 8 // Set to the number of classes you have
#define TASK_SET_CLASS 19825
#define ID_SET_CLASS (taskid - TASK_SET_CLASS)

const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)


new 
g_ent_playermodel[33];
new 
g_ent_weaponmodel[33];
new 
g_currentweapon[33];

new 
g_player_class[33]

public 
plugin_init()
{
    
register_plugin("[ZP] Addon: Human Classes""1.3""fiendshard")
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1)
}

public 
plugin_precache()
{
                        
// Change paths and names of your models below. Beware of typos.
    
engfunc(EngFunc_PrecacheModel"models/player/arctic/arctic.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/gsg9/gsg9.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/guerilla/guerilla.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/leet/leet.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/sas/sas.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/terror/terror.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/urban/urban.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/spetsnaz/spetsnaz.mdl")
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
{
    if (!
is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
        return;
    static 
weapon
    weapon 
get_msg_arg_int(2)
    
g_currentweapon[msg_entity] = weapon
    fm_set_weaponmodel_ent
(msg_entity)
}


public 
fwHamPlayerSpawnPost(id)
{
    
set_task(get_cvar_float("zp_delay")+5.0"ClCmdSelectModel",id)
}

public 
ClCmdSelectModel(idmenuid)
{
    if(
zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
    {
        return 
PLUGIN_HANDLED;
    }
    
    else if(!
is_user_alive(id))
    {
        return 
PLUGIN_HANDLED;
    }
    else
    {
        
human_menu(id)
    }
    return 
PLUGIN_CONTINUE;
}

public 
human_menu(id)
{
    new 
menu menu_create("\rChoose your perk:^n(Press 'H' for details)""human_menu_handler")
    
menu_additem(menu"\wAntighost""1"0)
    
menu_additem(menu"\wTank""2"0)
    
menu_additem(menu"\wParkour""3"0)
    
menu_additem(menu"\wColdman""4"0)
    
menu_additem(menu"\wDemolition""5"0)
    
menu_additem(menu"\wLightbringer""6"0)
    
menu_additem(menu"\wSharpshooter""7"0)
    
menu_additem(menu"\wBalance",    "8"0)
    
menu_display(idmenu0)
}
public 
human_menu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    new 
data[6], iName[64]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessdata5iName63callback)
    new 
key str_to_num(data)
    switch(
key)
    {
        case 
1:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 1
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/arctic/arctic.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_mac10")
            
give_item(id,"weapon_fiveseven")
            
give_item(id,"weapon_smokegrenade")
            
set_user_health(id150)
            
set_user_armor(id75)
            
cs_set_user_bpammo(idCSW_MAC10200)
            
cs_set_user_bpammo(idCSW_FIVESEVEN200)
            
client_print(idprint_chat,"You chose Antighost (Press 'H'>'About' for details')")
        }
        case 
2:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 2
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/gsg9/gsg9.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_m3")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id250)
            
set_user_armor(id45)
            
set_user_gravity(id1.15)
            
cs_set_user_bpammo(idCSW_M350)
            
cs_set_user_bpammo(idCSW_DEAGLE200)
            
client_print(idprint_chat,"You chose Tank (Press 'H'>'About' for details')");
        }
        case 
3
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 3
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/guerilla/guerilla.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_mp5navy")
            
give_item(id,"weapon_p228")
            
set_user_health(id150)
            
set_user_armor(id45)
            
set_user_gravity(id0.68)
            
set_user_maxspeed(idget_cvar_float("zp_human_speed") + 40)
            
cs_set_user_bpammo(idCSW_MP5NAVY200)
            
cs_set_user_bpammo(idCSW_P228200)
            
client_cmd(id,"say /napalm")
            
client_print(idprint_chat,"You chose Parkour (Press 'H'>'About' for details')");
        }
        case 
4
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 4
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/leet/leet.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_galil")
            
give_item(id,"weapon_glock18")
            
give_item(id,"weapon_flashbang")
            
set_user_health(id135)
            
set_user_armor(id45)
            
cs_set_user_bpammo(idCSW_GALIL200)
            
cs_set_user_bpammo(idCSW_GLOCK18200)
            
cs_set_user_bpammo(idCSW_FLASHBANG3)
            
client_print(idprint_chat,"You chose Coldman (Press 'H'>'About' for details')");
        }
        case 
5
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 5
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/sas/sas.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_tmp")
            
give_item(id,"weapon_usp")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id200)
            
set_user_armor(id30)
            
set_user_gravity(id0.9)
            
cs_set_user_bpammo(idCSW_TMP200)
            
cs_set_user_bpammo(idCSW_USP200)
            
cs_set_user_bpammo(idCSW_HEGRENADE3)
            
client_cmd(id,"say /napalm")
            
client_cmd(id,"say /napalm")
            
client_print(idprint_chat,"You chose Demolition (Press 'H'>'About' for details')")
        }
        case 
6
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 6
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/terror/terror.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_sg552")
            
give_item(id,"weapon_elite")
            
give_item(id,"weapon_smokegrenade")
            
give_item(id,"weapon_flashbang")
            
set_user_health(id100)
            
set_user_armor(id10)
            
set_user_gravity(id0.9)
            
cs_set_user_bpammo(idCSW_SG552200)
            
cs_set_user_bpammo(idCSW_ELITE200)
            
cs_set_user_bpammo(idCSW_SMOKEGRENADE5)
            
set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
            
client_print(idprint_chat,"You chose Lightbringer (Press 'H'>'About' for details')");
        }
        case 
7
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 7
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/urban/urban.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_awp")
            
give_item(id,"weapon_p228")
            
give_item(id,"weapon_flashbang")
            new 
weapon_id fm_find_ent_by_owner(-1"weapon_awp"id); 
            if(
weapon_id
            { 
                
cs_set_weapon_ammo(weapon_id25); 
            }
            
set_user_health(id185)
            
set_user_armor(id60)
            
set_user_gravity(id1.05)
            
cs_set_user_bpammo(idCSW_AWP50)
            
cs_set_user_bpammo(idCSW_P228200)
            
client_print(idprint_chat,"You chose Sharpshooter (Press 'H'>'About' for details')");
        }
        case 
8:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 1
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/spetsnaz/spetsnaz.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_m4a1")
            
give_item(id,"weapon_usp")
            
give_item(id,"weapon_flashbang")
            
give_item(id,"weapon_smokegrenade")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id200)
            
set_user_armor(id50)
            
cs_set_user_bpammo(idCSW_M4A1200)
            
cs_set_user_bpammo(idCSW_USP200)
            
client_print(idprint_chat,"You chose Balance (Press 'H'>'About' for details')")
        }
    }
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
zp_user_infected_post(idinfector)
{
    
fm_remove_model_ents(id)
}

stock fm_remove_model_ents(id)
{
    if (
pev_valid(g_ent_playermodel[id]))
    {
        
engfunc(EngFunc_RemoveEntityg_ent_playermodel[id])
        
g_ent_playermodel[id] = 0
    
}
    if (
pev_valid(g_ent_weaponmodel[id]))
    {
        
engfunc(EngFunc_RemoveEntityg_ent_weaponmodel[id])
        
g_ent_weaponmodel[id] = 0
    
}
}

stock fm_set_weaponmodel_ent(id)
{
    static 
model[100]
    
pev(idpev_weaponmodel2modelsizeof model 1)
    
    if (!
pev_valid(g_ent_weaponmodel[id]))
    {
        
g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
        if (!
pev_valid(g_ent_weaponmodel[id])) return;
        
        
set_pev(g_ent_weaponmodel[id], pev_classname"weapon_model")
        
set_pev(g_ent_weaponmodel[id], pev_movetypeMOVETYPE_FOLLOW)
        
set_pev(g_ent_weaponmodel[id], pev_aimentid)
        
set_pev(g_ent_weaponmodel[id], pev_ownerid)
    }
    
    
engfunc(EngFunc_SetModelg_ent_weaponmodel[id], model)
}

stock drop_primary_weapons(id)    
{
    static 
weapons 32 ], numiweaponid
    num 

    get_user_weapons 
(idweaponsnum )
    
    for ( 
0numi++ )
    {
        
weaponid weapons ]
        if  ( ( (
1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )        
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
engclient_cmd(id"drop"wname)
        }
    }
}

public 
client_putinserver(id)
    if (
is_user_bot(id))
    {
        
remove_task(id+TASK_SET_CLASS)
        
set_task(1.0"SetBotRandomClass"id+TASK_SET_CLASS)
    }

public 
client_disconnect(id)
    
remove_task(id+TASK_SET_CLASS)

public 
SetBotRandomClass(taskid)
    
g_player_class[ID_SET_CLASS] = random_num(1MAX_HUMAN_CLASS


SergiCruz 05-10-2015 16:31

Re: [HELP]Make bot choose random human classes zp4.3fix5a
 
1 Attachment(s)
Maybe this. I know cz bots are a bit problematic...

NewKidz 05-10-2015 16:42

Re: [HELP]Make bot choose random human classes zp4.3fix5a
 
Quote:

Originally Posted by SergiCruz (Post 2295333)
Maybe this. I know cz bots are a bit problematic...

Yeah sorry, but it still not work :(

SergiCruz 05-10-2015 16:50

Re: [HELP]Make bot choose random human classes zp4.3fix5a
 
https://forums.alliedmods.net/showthread.php?t=243959
Asking here is the only thing I can suggest now

NewKidz 05-10-2015 16:53

Re: [HELP]Make bot choose random human classes zp4.3fix5a
 
Okay i will try it, thankyou for your response sir :D


All times are GMT -4. The time now is 09:57.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.