Member
|
05-10-2015
, 15:44
[HELP]Make bot choose random human classes zp4.3fix5a
|
#1
|
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_Spawn, id, "fwHamPlayerSpawnPost", 1) g_hamczbots = true
if (is_user_alive(id)) fwHamPlayerSpawnPost(id) }
public message_cur_weapon(msg_id, msg_dest, msg_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(id, menuid) { 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(id, menu, 0) if (g_isbot[id]) { g_player_class[id] = 8 return; } }
public human_menu_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new access, callback menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback) 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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 150) set_user_armor(id, 75) cs_set_user_bpammo(id, CSW_MAC10, 200) cs_set_user_bpammo(id, CSW_FIVESEVEN, 200) client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 250) set_user_armor(id, 45) set_user_gravity(id, 1.15) cs_set_user_bpammo(id, CSW_M3, 50) cs_set_user_bpammo(id, CSW_DEAGLE, 200) client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 150) set_user_armor(id, 45) set_user_gravity(id, 0.68) set_user_maxspeed(id, get_cvar_float("zp_human_speed") + 40) cs_set_user_bpammo(id, CSW_MP5NAVY, 200) cs_set_user_bpammo(id, CSW_P228, 200) client_cmd(id,"say /napalm") client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 135) set_user_armor(id, 45) cs_set_user_bpammo(id, CSW_GALIL, 200) cs_set_user_bpammo(id, CSW_GLOCK18, 200) cs_set_user_bpammo(id, CSW_FLASHBANG, 3) client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 200) set_user_armor(id, 30) set_user_gravity(id, 0.9) cs_set_user_bpammo(id, CSW_TMP, 200) cs_set_user_bpammo(id, CSW_USP, 200) cs_set_user_bpammo(id, CSW_HEGRENADE, 3) client_cmd(id,"say /napalm") client_cmd(id,"say /napalm") client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 100) set_user_armor(id, 10) set_user_gravity(id, 0.9) cs_set_user_bpammo(id, CSW_SG552, 200) cs_set_user_bpammo(id, CSW_ELITE, 200) cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 5) set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT) client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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_id, 25); } set_user_health(id, 185) set_user_armor(id, 60) set_user_gravity(id, 1.05) cs_set_user_bpammo(id, CSW_AWP, 50) cs_set_user_bpammo(id, CSW_P228, 200) client_print(id, print_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_playermodel[id], pev_aiment, id) set_pev(g_ent_playermodel[id], pev_owner, id) // Change name of your model below. engfunc(EngFunc_SetModel, g_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(id, 200) set_user_armor(id, 50) cs_set_user_bpammo(id, CSW_M4A1, 200) cs_set_user_bpammo(id, CSW_USP, 200) client_print(id, print_chat,"You chose Balance (Press 'H'>'About' for details')") } } menu_destroy(menu) return PLUGIN_HANDLED }
public zp_user_infected_post(id, infector) { fm_remove_model_ents(id) }
stock fm_remove_model_ents(id) { if (pev_valid(g_ent_playermodel[id])) { engfunc(EngFunc_RemoveEntity, g_ent_playermodel[id]) g_ent_playermodel[id] = 0 } if (pev_valid(g_ent_weaponmodel[id])) { engfunc(EngFunc_RemoveEntity, g_ent_weaponmodel[id]) g_ent_weaponmodel[id] = 0 } }
stock fm_set_weaponmodel_ent(id) { static model[100] pev(id, pev_weaponmodel2, model, sizeof model - 1) if (!pev_valid(g_ent_weaponmodel[id])) { g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW) set_pev(g_ent_weaponmodel[id], pev_aiment, id) set_pev(g_ent_weaponmodel[id], pev_owner, id) } engfunc(EngFunc_SetModel, g_ent_weaponmodel[id], model) }
stock drop_primary_weapons(id) { static weapons [ 32 ], num, i, weaponid num = 0 get_user_weapons (id, weapons, num ) for ( i = 0; i < num; i++ ) { weaponid = weapons [ i ] if ( ( (1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) ) { static wname[32] get_weaponname(weaponid, wname, charsmax(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
Last edited by NewKidz; 05-10-2015 at 18:33.
|
|