MrGarfield |
08-23-2013 12:44 |
Re: Probleme Bot
voilà ce que j'ai fat moi je pense que ca doit etre ca mais ca marche pas
PHP Code:
/*----------------------------------------------------------------------------------------------------
CZ Bot Menu 2.2 by vato loco [GE-S]
Commands: amx_czbmenu -> Displays The CZ Bot Main Menu amx_czbmenu_enable < 1 | on / 0 | off > -> Turns Plugin on/off
Cvars: bot_enabled 1 <0/1> -> [Default: 1 ] Turns Plugin on/off bot_autokill 0 <0/1> -> [Default: 1 ] Turns Bot Autokill on/off bot_balance 1 <0/1> -> [Default: 1 ] Turns Bot Balance on/off bot_autoadd 5 <num> -> [Default: 10 ] How Many Bot Will Join Automatic The Server
Credits: EKS DokTor
FAQ: Do Not Change Cvar "bot_maxslots" !!! Cvar Will Be Set Automatic By The Number Of Server Slots !!! ------------------------------------------------------------------------------------------------------*/
#include <amxmodx> #include <amxmisc>
#define TASK_CZBOT_MODE 13371 #define TASK_CZBOT_SLOTS 14471
#define MENU_KEYS_CZBOT MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_0 #define MENU_KEYS_WEAPON MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 #define MENU_KEYS_CONTROL MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_9|MENU_KEY_0 #define MENU_KEYS_SPECI MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_9|MENU_KEY_0
new g_bot_mp_autoteambalance new g_bot_mp_limitteams
new g_bot_enabled new g_bot_diff new g_bot_balance new g_bot_autokill new g_bot_jap new g_bot_quota new g_bot_max new g_bot_maxslots
new g_bot_pistols new g_bot_shotguns new g_bot_machine_guns new g_bot_sub_mguns new g_bot_rifles new g_bot_snipers new g_bot_shield new g_bot_grenades
new bool:g_bBotAddT new bool:g_bBotAddCt
new g_SyncCzBot
new g_iPlayerCounter new g_iMaxPlayers
public plugin_init() { register_plugin("CZ Bot Menu vl", "2.2", "vato loco [GE-S]") register_menu("CZ Bot Menu",MENU_KEYS_CZBOT,"menu_handler_czbot") register_menu("CZ Bot Weapon Menu",MENU_KEYS_WEAPON,"menu_handler_weapon") register_menu("CZ Bot Control Menu",MENU_KEYS_CONTROL,"menu_handler_control") register_menu("CZ Bot Specific Bot Add Menu",MENU_KEYS_SPECI,"menu_handler_speci") register_concmd("amx_czbmenu","czbot_menu_show",ADMIN_KICK) register_concmd("amx_czbmenu_enable","enable_czbotmenu",ADMIN_KICK,"amx_czbmenu_enable < 1 | on / 0 | off >") register_event("DeathMsg","event_death","a") g_bot_enabled = register_cvar("bot_enabled","1") g_bot_autokill = register_cvar("bot_autokill","1") g_bot_balance = register_cvar("bot_balance","1") g_bot_max = register_cvar("bot_autoadd","5") //Do Not Change Cvar"bot_maxslots" !!! Read FAQ !!! g_bot_maxslots = register_cvar("bot_maxslots","32") g_bot_pistols = get_cvar_pointer("bot_allow_pistols") g_bot_shotguns = get_cvar_pointer("bot_allow_shotguns") g_bot_machine_guns = get_cvar_pointer("bot_allow_machine_guns") g_bot_sub_mguns = get_cvar_pointer("bot_allow_sub_machine_guns") g_bot_rifles = get_cvar_pointer("bot_allow_rifles") g_bot_snipers = get_cvar_pointer("bot_allow_snipers") g_bot_shield = get_cvar_pointer("bot_allow_shield") g_bot_grenades = get_cvar_pointer("bot_allow_grenades") g_bot_quota = get_cvar_pointer("bot_quota") g_bot_diff = get_cvar_pointer("bot_difficulty") g_bot_jap = get_cvar_pointer("bot_join_after_player") g_bot_mp_autoteambalance = get_cvar_pointer("mp_autoteambalance") g_bot_mp_limitteams = get_cvar_pointer("mp_limitteams") set_pcvar_num(g_bot_mp_autoteambalance, 0) set_pcvar_num(g_bot_mp_limitteams, 0) set_cvar_string("bot_join_team", "any") g_SyncCzBot = CreateHudSyncObj() g_iMaxPlayers = get_maxplayers() }
public plugin_cfg() { if(!get_pcvar_num(g_bot_enabled)) return PLUGIN_HANDLED set_task(1.0, "check_players", TASK_CZBOT_MODE, _, _, "b") set_task(3.0, "map_loaded", TASK_CZBOT_SLOTS) return PLUGIN_CONTINUE }
public client_putinserver(id) { if(!is_user_bot(id)) { g_iPlayerCounter++ } else { if(g_bBotAddT) { g_bBotAddT = false } if(g_bBotAddCt) { g_bBotAddCt = false } } }
public client_disconnect(id) { if(!is_user_bot(id)) { g_iPlayerCounter-- } }
public enable_czbotmenu(id, lvl, cid) { if(!cmd_access(id, lvl, cid, 2)) return PLUGIN_HANDLED new szarg[8] read_argv(1,szarg,7) if(equal(szarg,"1") || equal(szarg,"on")) { set_pcvar_num(g_bot_enabled, 1) client_print(id,print_chat,"[CZ-BOT] Plugin Enabled !!!") if(!task_exists(TASK_CZBOT_MODE)) { set_task(1.0, "check_players", TASK_CZBOT_MODE, _, _, "b") set_task(3.0, "map_loaded", TASK_CZBOT_SLOTS) } } else if(equal(szarg,"0") || equal(szarg,"off")) { set_pcvar_num(g_bot_enabled, 0) client_print(id,print_chat,"[CZ-BOT] Plugin Disabled !!!") } return PLUGIN_HANDLED }
public map_loaded() { setBotSlots(g_iMaxPlayers) }
public check_players() { if(get_pcvar_num(g_bot_enabled)) { if(get_pcvar_num(g_bot_balance)) { new iPlayerNum for(new i = 1 ; i <= g_iMaxPlayers ; i++) { if(!is_user_bot(i)) { new team = get_user_team(i) if(team == 1 || team == 2) ++iPlayerNum } } if(iPlayerNum <= get_pcvar_num(g_bot_max)) { set_pcvar_num(g_bot_quota, get_pcvar_num(g_bot_max) - iPlayerNum) } else if(iPlayerNum > get_pcvar_num(g_bot_max)) { if(get_pcvar_num(g_bot_quota) != 0) { set_pcvar_num(g_bot_quota, 0) for(new bi = 1 ; bi <= g_iMaxPlayers ; bi++) { if(is_user_bot(bi)){ new userid = get_user_userid(bi) server_cmd("kick #%d", userid) } } return PLUGIN_HANDLED } return PLUGIN_HANDLED } check_balance() } else { if(get_pcvar_num(g_bot_max) < get_pcvar_num(g_bot_maxslots)) { set_pcvar_num(g_bot_quota, get_pcvar_num(g_bot_max)) return PLUGIN_HANDLED } } } else { if(task_exists(TASK_CZBOT_MODE)) { remove_task(TASK_CZBOT_MODE) } set_pcvar_num(g_bot_quota, 0) for(new bi = 1 ; bi <= g_iMaxPlayers ; bi++) { if(is_user_bot(bi)){ new userid = get_user_userid(bi) server_cmd("kick #%d", userid) } } } return PLUGIN_CONTINUE }
public event_death() { if(!get_pcvar_num(g_bot_enabled)) return PLUGIN_HANDLED new id = read_data(2) if(is_user_bot(id)) return PLUGIN_HANDLED if(!human_alive()) { if(get_pcvar_num(g_bot_autokill)) { kill_bots() } } return PLUGIN_HANDLED }
/*---------------------------------------------------------------------------------------*/ /*------------------------------------- CZ Bot Menu -------------------------------------*/ /*---------------------------------------------------------------------------------------*/
public czbot_menu_show(id,lvl,cid) { if(cmd_access( id, lvl, cid, 1) && get_pcvar_num(g_bot_enabled)) { czb_menu_czbot(id) } return PLUGIN_HANDLED }
public czb_menu_czbot(id) { new menu[512], szfillserver[32],szspecific[32],szkillbotall[32],sznewround[32],szkickbot[32],szkickbotall[32],szweapons[32],szcontrol[32] formatex(szfillserver,31,"\w1. Fill Server \w") formatex(szspecific,31,"\w2. Specific Bot Add \w") formatex(szkillbotall,31,"\w3. Kill All Bots \w") formatex(sznewround,31,"\w4. New Round \w") formatex(szkickbot,31,"\w5. Kick Bot \w") formatex(szkickbotall,31,"\w6. Kick All Bots \w") formatex(szweapons,31,"\w7. Weapon Mode \w") formatex(szcontrol,31,"\w8. Control Menu \w") formatex(menu,511,"^n^n^n\yCZ Bot Menu ^n^n%s^n%s^n%s^n%s^n%s^n%s^n%s^n%s^n^n0. close",szfillserver,szspecific,szkillbotall,sznewround,szkickbot,szkickbotall,szweapons,szcontrol) show_menu(id,MENU_KEYS_CZBOT,menu) }
public menu_handler_czbot(id,key) { switch(key) { case 0:{ fillserver() CzBotPrintHudMsg(id, 0, 255, 0, "[CZ-BOT] Fill Server Add [%d] Bots !!!", get_pcvar_num(g_bot_maxslots) - g_iPlayerCounter) czb_menu_czbot(id) } case 1:{ czb_menu_speci(id) } case 2:{ kill_bots() CzBotPrintHudMsg(id, 255, 48, 48, "[CZ-BOT] All Bots Were Killed...") czb_menu_czbot(id) } case 3:{ for(new i = 1 ; i <= g_iMaxPlayers ; i++) { if(is_user_alive(i)) { user_kill(i, 1) } } CzBotPrintHudMsg(id, 255, 155, 50, "[CZ-BOT] New Round Start...") czb_menu_czbot(id) } case 4:{ if (get_pcvar_num(g_bot_max) > 0) { kickbot() g_bBotAddT = false g_bBotAddCt = false if(!get_pcvar_num(g_bot_balance)) { CzBotPrintHudMsg(id, 255, 20, 147, "[CZ-BOT] Kicking Bots From Both Teams [%d] Remaining ...", get_pcvar_num(g_bot_max) -1) } else { CzBotPrintHudMsg(id, 255, 20, 147, "[CZ-BOT] Kicking Bots From Both Teams [%d] Remaining ...", get_pcvar_num(g_bot_max) -2) } } czb_menu_czbot(id) } case 5:{ new czbcmdkickall[50] formatex(czbcmdkickall, 49, "bot_autoadd 0") CzBotPrintHudMsg(id, 255, 20, 147, "[CZ-BOT] All Bots Were Kicked...") server_cmd(czbcmdkickall) czb_menu_czbot(id) } case 6:{ czb_menu_weapon(id) } case 7:{ czb_menu_control(id) } case 9:{ show_menu(id,0,"") } } }
/*---------------------------------------------------------------------------------------*/ /*------------------------------- Specific Bot Add Menu ---------------------------------*/ /*---------------------------------------------------------------------------------------*/
public czb_menu_speci(id) { new menu[512], szbotaddt[64],szbotaddct[64],szbotadd[32],szback[32] new g_balance = get_pcvar_num(g_bot_balance) switch(g_balance) { case 0: formatex(szbotaddt,63,"\w1. Terrorist\w") case 1: formatex(szbotaddt,63,"\r1. [Disabled] [Reason] Bot Balcance Is Enabled\w") } switch(g_balance) { case 0: formatex(szbotaddct,63,"\w2. Counter-Terrorist\w") case 1: formatex(szbotaddct,63,"\r2. [Disabled] [Reason] Bot Balcance Is Enabled\w") } formatex(szbotadd,31,"\w3. Random Bot\w") formatex(szback,31,"\w9. back\w") formatex(menu,511,"^n^n^n\yCZ Bot Specific Bot Add Menu ^n^n%s^n%s^n%s^n^n%s^n0. close",szbotaddt,szbotaddct,szbotadd,szback) show_menu(id,MENU_KEYS_SPECI,menu) }
public menu_handler_speci(id,key) { switch(key) { case 0:{ if(!get_pcvar_num(g_bot_balance)) { new g_botjointeam[4] if (get_pcvar_num(g_bot_max) + g_iPlayerCounter < get_pcvar_num(g_bot_maxslots)) { if(!g_bBotAddCt) { botadd() CzBotPrintHudMsg(id, 200, 0, 0, "[CZ-BOT] Add Terrorist [%d]...", get_pcvar_num(g_bot_max) +1) get_cvar_string("bot_join_team", g_botjointeam, 3) if(!equal(g_botjointeam,"T")) { set_cvar_string("bot_join_team","T") } g_bBotAddT = true } } else { client_print(id,print_chat,"[CZ-BOT] Max Bot Amount Reached") } } czb_menu_speci(id) } case 1:{ if(!get_pcvar_num(g_bot_balance)) { new g_botjointeam[4] if (get_pcvar_num(g_bot_max) + g_iPlayerCounter < get_pcvar_num(g_bot_maxslots)) { if(!g_bBotAddT) { botadd() CzBotPrintHudMsg(id, 0, 0, 255, "[CZ-BOT] Add Counter-Terrorist [%d]...", get_pcvar_num(g_bot_max) +1) get_cvar_string("bot_join_team", g_botjointeam, 3) if(!equal(g_botjointeam,"CT")) { set_cvar_string("bot_join_team","CT") } g_bBotAddCt = true } } else { client_print(id,print_chat,"[CZ-BOT] Max Bot Amount Reached") } } czb_menu_speci(id) } case 2:{ new g_botjointeam[4] if(!get_pcvar_num(g_bot_balance)) { if (get_pcvar_num(g_bot_max) + g_iPlayerCounter < get_pcvar_num(g_bot_maxslots)) { if(!g_bBotAddT && !g_bBotAddCt) { botadd() CzBotPrintHudMsg(id, 0, 255, 0, "[CZ-BOT] Random Bot [%d] Was Add...", get_pcvar_num(g_bot_max) +1) } get_cvar_string("bot_join_team", g_botjointeam, 3) if(!equal(g_botjointeam,"any")) { set_cvar_string("bot_join_team","any") } } else { client_print(id,print_chat,"[CZ-BOT] Max Bot Amount Reached") } } else { if (get_pcvar_num(g_bot_max) < get_pcvar_num(g_bot_maxslots) -2) { if(!g_bBotAddT && !g_bBotAddCt) { botadd() CzBotPrintHudMsg(id, 0, 255, 0, "[CZ-BOT] Adding Bots On Both Teams [%d] ...", get_pcvar_num(g_bot_max) +2) } get_cvar_string("bot_join_team", g_botjointeam, 3) if(!equal(g_botjointeam,"any")) { set_cvar_string("bot_join_team","any") } } else { client_print(id,print_chat,"[CZ-BOT] Max Bot Amount Reached") } } czb_menu_speci(id) } case 8:{ czb_menu_czbot(id) } case 9:{ show_menu(id,0,"") } } }
/*---------------------------------------------------------------------------------------*/ /*--------------------------------- Bot Control Menu ------------------------------------*/ /*---------------------------------------------------------------------------------------*/
public czb_menu_control(id) { new menu[512], szsbotdiff[32],szbotchatar[32],szbotautokill[32],szbotbalance[32],szbotjap[32],szback[32] new g_diff = get_pcvar_num(g_bot_diff) switch(g_diff) { case 0: formatex(szsbotdiff,31,"\w1. Difficulty: \yeasy\w") case 1: formatex(szsbotdiff,31,"\w1. Difficulty: \ynormal\w") case 2: formatex(szsbotdiff,31,"\w1. Difficulty: \yhard\w") case 3: formatex(szsbotdiff,31,"\w1. Difficulty: \yexpert\w") } new g_chatar[8] get_cvar_string("bot_chatter",g_chatar,7) if(equal(g_chatar,"normal")) { formatex(szbotchatar,31,"\w2. Chatter: \ynormal\w") } if(equal(g_chatar,"off")) { formatex(szbotchatar,31,"\w2. Chatter: \yoff\w") } if(equal(g_chatar,"minimal")) { formatex(szbotchatar,31,"\w2. Chatter: \yminimal\w") } if(equal(g_chatar,"radio")) { formatex(szbotchatar,31,"\w2. Chatter: \yradio\w") } new g_autokill = get_pcvar_num(g_bot_autokill) switch(g_autokill) { case 0: formatex(szbotautokill,31,"\w3. Autokill: \rdisabled\w") case 1: formatex(szbotautokill,31,"\w3. Autokill: \yenabled\w") } new g_balance = get_pcvar_num(g_bot_balance) switch(g_balance) { case 0: formatex(szbotbalance,31,"\w4. Balance: \rdisabled\w") case 1: formatex(szbotbalance,31,"\w4. Balance: \yenabled\w") } new g_joinafterplayer = get_pcvar_num(g_bot_jap) switch(g_joinafterplayer) { case 0: formatex(szbotjap,31,"\w5. Join After: \rPlayer\w") case 1: formatex(szbotjap,31,"\w5. Join After: \yPlayer\w") } formatex(szback,31,"\w9. back\w") formatex(menu,511,"^n^n^n\yCZ Bot Control Menu ^n^n%s^n%s^n%s^n%s^n%s^n^n%s^n0. close",szsbotdiff,szbotchatar,szbotautokill,szbotbalance,szbotjap,szback) show_menu(id,MENU_KEYS_CONTROL,menu) }
public menu_handler_control(id,key) { switch(key) { case 0:{ new g_diff = get_pcvar_num(g_bot_diff) switch(g_diff) { case 0: { set_pcvar_num(g_bot_diff, 1) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Difficulty Normal...") } case 1: { set_pcvar_num(g_bot_diff, 2) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Difficulty Hard...") } case 2: { set_pcvar_num(g_bot_diff, 3) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Difficulty Expert...") } case 3: { set_pcvar_num(g_bot_diff, 0) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Difficulty Easy...") } } czb_menu_control(id) } case 1:{ new g_chatar[8] get_cvar_string("bot_chatter",g_chatar,7) if(equal(g_chatar,"normal")) { set_cvar_string("bot_chatter","off") CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Chatter Off...") } if(equal(g_chatar,"off")) { set_cvar_string("bot_chatter","minimal") CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Chatter Minimal...") } if(equal(g_chatar,"minimal")) { set_cvar_string("bot_chatter","radio") CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Chatter Radio...") } if(equal(g_chatar,"radio")) { set_cvar_string("bot_chatter","normal") CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Chatter Normal...") } czb_menu_control(id) } case 2:{ new g_autokill = get_pcvar_num(g_bot_autokill) switch(g_autokill) { case 0: { set_pcvar_num(g_bot_autokill, 1) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Autokill Enabled...") } case 1: { set_pcvar_num(g_bot_autokill, 0) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Autokill Disabled...") } } czb_menu_control(id) } case 3:{ new g_balance = get_pcvar_num(g_bot_balance) switch(g_balance) { case 0: { set_pcvar_num(g_bot_balance, 1) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Balance Enabled...") } case 1: { set_pcvar_num(g_bot_balance, 0) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Balance Disabled...") } } czb_menu_control(id) } case 4:{ new g_joinafterplayer = get_pcvar_num(g_bot_jap) switch(g_joinafterplayer) { case 0: { set_pcvar_num(g_bot_jap, 1) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Join After Player Enabled...") } case 1:{ set_pcvar_num(g_bot_jap, 0) CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Join After Player Disabled...") } } czb_menu_control(id) } case 8:{ czb_menu_czbot(id) } case 9:{ show_menu(id,0,"") } } }
/*---------------------------------------------------------------------------------------*/ /*----------------------------------- Bot Weapon Menu -----------------------------------*/ /*---------------------------------------------------------------------------------------*/
public czb_menu_weapon(id) { new menu[512], szpistols[32],szshotguns[32], szmachineguns[32], szsubmguns[32], szrifles[32], szsnipers[32], szshield[32], szgrenades[32],szback[32] new g_pistols = get_pcvar_num(g_bot_pistols) switch(g_pistols) { case 0: formatex(szpistols,31,"\w1. Pistols: \roff\w") case 1: formatex(szpistols,31,"\w1. Pistols: \yon\w") } new g_shotguns = get_pcvar_num(g_bot_shotguns) switch(g_shotguns) { case 0: formatex(szshotguns,31,"\w2. Shotguns: \roff\w") case 1: formatex(szshotguns,31,"\w2. Shotguns: \yon\w") } new g_machineguns = get_pcvar_num(g_bot_machine_guns) switch(g_machineguns) { case 0: formatex(szmachineguns,31,"\w3. MachineGuns: \roff\w") case 1: formatex(szmachineguns,31,"\w3. MachineGuns: \yon\w") } new g_submguns = get_pcvar_num(g_bot_sub_mguns) switch(g_submguns) { case 0: formatex(szsubmguns,31,"\w4. SubMachineGuns: \roff\w") case 1: formatex(szsubmguns,31,"\w4. SubMachineGuns: \yon\w") } new g_rifles = get_pcvar_num(g_bot_rifles) switch(g_rifles) { case 0: formatex(szrifles,31,"\w5. Rifles: \roff\w") case 1: formatex(szrifles,31,"\w5. Rifles: \yon\w") } new g_snipers = get_pcvar_num(g_bot_snipers) switch(g_snipers) { case 0: formatex(szsnipers,31,"\w6. Snipers: \roff\w") case 1: formatex(szsnipers,31,"\w6. Snipers: \yon\w") } new g_shield = get_pcvar_num(g_bot_shield) switch(g_shield) { case 0: formatex(szshield,31,"\w7. Shield: \roff\w") case 1: formatex(szshield,31,"\w7. Shield: \yon\w") } new g_grenades = get_pcvar_num(g_bot_grenades) switch(g_grenades) { case 0: formatex(szgrenades,31,"\w8. Grenades: \roff\w") case 1: formatex(szgrenades,31,"\w8. Grenades: \yon\w") } formatex(szback,31,"\w9. back\w") formatex(menu,511,"^n^n^n\yCZ Bot Weapon Menu ^n^n%s^n%s^n%s^n%s^n%s^n%s^n%s^n%s^n^n%s^n0. close",szpistols,szshotguns,szmachineguns,szsubmguns,szrifles,szsnipers,szshield,szgrenades,szback) show_menu(id,MENU_KEYS_WEAPON,menu) }
public menu_handler_weapon(id,key) { switch(key) { case 0:{ new g_pistols = get_pcvar_num(g_bot_pistols) switch(g_pistols) { case 0: { set_pcvar_num(g_bot_pistols, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Pistols On...") } case 1: { set_pcvar_num(g_bot_pistols, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Pistols Off...") } } czb_menu_weapon(id) } case 1:{ new g_shotguns = get_pcvar_num(g_bot_shotguns) switch(g_shotguns) { case 0: { set_pcvar_num(g_bot_shotguns, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Shotguns On...") } case 1: { set_pcvar_num(g_bot_shotguns, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Shotguns Off...") } } czb_menu_weapon(id) } case 2:{ new g_machineguns = get_pcvar_num(g_bot_machine_guns) switch(g_machineguns) { case 0: { set_pcvar_num(g_bot_machine_guns, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Machine Guns On...") } case 1: { set_pcvar_num(g_bot_machine_guns, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Machine Guns Off...") } } czb_menu_weapon(id) } case 3:{ new g_submguns = get_pcvar_num(g_bot_sub_mguns) switch(g_submguns) { case 0: { set_pcvar_num(g_bot_sub_mguns, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Sub Machine Guns On...") } case 1: { set_pcvar_num(g_bot_sub_mguns, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Sub Machine Guns Off...") } } czb_menu_weapon(id) } case 4:{ new g_rifles = get_pcvar_num(g_bot_rifles) switch(g_rifles) { case 0: { set_pcvar_num(g_bot_rifles, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Rifles On...") } case 1: { set_pcvar_num(g_bot_rifles, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Rifles Off...") } } czb_menu_weapon(id) } case 5:{ new g_snipers = get_pcvar_num(g_bot_snipers) switch(g_snipers) { case 0: { set_pcvar_num(g_bot_snipers, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Snipers On...") } case 1: { set_pcvar_num(g_bot_snipers, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Snipers Off...") } } czb_menu_weapon(id) } case 6:{ new g_shield = get_pcvar_num(g_bot_shield) switch(g_shield) { case 0: { set_pcvar_num(g_bot_shield, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Shields On...") } case 1: { set_pcvar_num(g_bot_shield, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Shields Off...") } } czb_menu_weapon(id) } case 7:{ new g_grenades = get_pcvar_num(g_bot_grenades) switch(g_grenades) { case 0: { set_pcvar_num(g_bot_grenades, 1) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Grenades On...") } case 1: { set_pcvar_num(g_bot_grenades, 0) CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Grenades Off...") } } czb_menu_weapon(id) } case 8:{ czb_menu_czbot(id) } case 9:{ show_menu(id,0,"") } } }
/*---------------------------------------------------------------------------------------*/ /*--------------------------------- CZ Bot STOCKS ---------------------------------------*/ /*---------------------------------------------------------------------------------------*/
stock human_alive() { new HumansAlive for(new i = 1 ; i <= g_iMaxPlayers ; i++) { if(!is_user_bot(i) && !is_user_hltv(i) && is_user_alive(i)) HumansAlive++ } return HumansAlive }
stock kill_bots() { for(new i = 1 ; i <= g_iMaxPlayers ; i++) { if(is_user_bot(i)) { user_kill(i,1) } } }
stock kickbot() { new czbcmdkickbot[50] if(!get_pcvar_num(g_bot_balance)) { formatex(czbcmdkickbot, 49, "bot_autoadd %d", get_pcvar_num(g_bot_max) -1) server_cmd(czbcmdkickbot) } else { formatex(czbcmdkickbot, 49, "bot_autoadd %d", get_pcvar_num(g_bot_max) -2) server_cmd(czbcmdkickbot) } }
stock botadd() { new czbcmdaddbot[50] if(!get_pcvar_num(g_bot_balance)) { formatex(czbcmdaddbot, 49, "bot_autoadd %d", get_pcvar_num(g_bot_max) +1) server_cmd(czbcmdaddbot) } else { formatex(czbcmdaddbot, 49, "bot_autoadd %d", get_pcvar_num(g_bot_max) +2) server_cmd(czbcmdaddbot) } }
stock fillserver() { new g_botjointeam[4], czbcmdfill[50] get_cvar_string("bot_join_team", g_botjointeam, 3) if(!equal(g_botjointeam,"any")) { set_cvar_string("bot_join_team","any") } if (get_pcvar_num(g_bot_max) + g_iPlayerCounter < get_pcvar_num(g_bot_maxslots)) { formatex(czbcmdfill, 49, "bot_autoadd %d", get_pcvar_num(g_bot_maxslots) - g_iPlayerCounter) server_cmd(czbcmdfill) } }
CzBotPrintHudMsg(id, r, g, b, const msg[], {Float,Sql,Result,_}:...) { static message[192] vformat(message, 191, msg, 6) static index if(id) { index = id } else { index = 0 } set_hudmessage(r, g, b, 0.02, 0.3, _, _, 5.0, _, _, 4) ShowSyncHudMsg(index, g_SyncCzBot, "%s", message) }
setBotSlots(g_iMaxPlayers) { new num = g_iMaxPlayers set_pcvar_num(g_bot_maxslots, num) }
check_balance() { new iPlayerCtNum, iPlayerTrroNum for(new i = 1 ; i <= g_iMaxPlayers ; i++) { new team = get_user_team(i) switch(team) { case 1: ++iPlayerTrroNum case 2: ++iPlayerCtNum } } if(iPlayerCtNum - iPlayerTrroNum > 1) { for(new i ; i < iPlayerCtNum ; ++i) { if(is_user_bot(i) && get_user_team(i) == 2) { server_cmd("kick #%d", get_user_userid(i)) break } } } else if(iPlayerTrroNum - iPlayerCtNum > 1) { for(new i ; i < iPlayerTrroNum ; ++i) { if(is_user_bot(i) && get_user_team(i) == 1) { server_cmd("kick #%d", get_user_userid(i)) break } } } check_cvar() return PLUGIN_CONTINUE }
check_cvar() { new g_botjointeam[4], czbcmdfix[50] get_cvar_string("bot_join_team", g_botjointeam, 3) if(!equal(g_botjointeam,"any")) { set_cvar_string("bot_join_team","any") } if(get_pcvar_num(g_bot_max) % 2) { formatex(czbcmdfix, 49, "bot_autoadd %d", get_pcvar_num(g_bot_max) +1) server_cmd(czbcmdfix) } if (get_pcvar_num(g_bot_max) > get_pcvar_num(g_bot_maxslots) -2) { kickbot() } return PLUGIN_CONTINUE }
|