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
}