/*----------------------------------------------------------------------------------------------------
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 <0/1> -> [Default: 1 ] Turns Plugin on/off
bot_autokill <0/1> -> [Default: 1 ] Turns Bot Autokill on/off
bot_balance <0/1> -> [Default: 1 ] Turns Bot Balance on/off
bot_autoadd <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 !!!
Fordította: BBk - Death of Legend
------------------------------------------------------------------------------------------------------*/
#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 Fegyver Menu",MENU_KEYS_WEAPON,"menu_handler_weapon")
register_menu("CZ Bot Vezerlo Menu",MENU_KEYS_CONTROL,"menu_handler_control")
register_menu("CZ Bot Hozzadas 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","10")
//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 Engedelyezve !!!")
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 Letiltva !!!")
}
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. Szerver Betoltese \w")
formatex(szspecific,31,"\w2. Bot Hozzadasa \w")
formatex(szkillbotall,31,"\w3. Osszes Bot Megolese \w")
formatex(sznewround,31,"\w4. Uj Kor \w")
formatex(szkickbot,31,"\w5. Bot Kirugasa \w")
formatex(szkickbotall,31,"\w6. Osszes Bot Kirugasa \w")
formatex(szweapons,31,"\w7. Fegyver Mod \w")
formatex(szcontrol,31,"\w8. Vezerlo 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] A szerverhez [%d] Bot lett hozzaadva !!!", 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] Osszes BOT Megolve...")
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] Uj Kor Kezdodik...")
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] Mind2 csapatbol [%d] Bot ki lett rugva. Hatralevo ...", get_pcvar_num(g_bot_max) -1)
}
else {
CzBotPrintHudMsg(id, 255, 20, 147, "[CZ-BOT] Mind2 csapatbol [%d] Bot ki lett rugva. Hatralevo ...", 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] Osszes BOT Kirugva...")
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. [Tiltva] [OK] Botok Engedelyezve\w")
}
switch(g_balance) {
case 0: formatex(szbotaddct,63,"\w2. Counter-Terrorist\w")
case 1: formatex(szbotaddct,63,"\r2. [Tiltva] [OK] Botok Engedelyezve\w")
}
formatex(szbotadd,31,"\w3. Veletlen Bot\w")
formatex(szback,31,"\w9. vissza\w")
formatex(menu,511,"^n^n^n\yCZ Bot Hozzadas Menu ^n^n%s^n%s^n%s^n^n%s^n0. kilepes",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] Hozzaadva [%d] Terrorist...", 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] Elerte a Max. Bot letszamot")
}
}
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] Hozzaadva [%d] Counter-Terrorist...", 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] Elerte a Max. Bot letszamot")
}
}
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] Veletlen szamu, [%d] Bot hozzaadva...", 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] Elerte a Max. Bot letszamot")
}
}
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] Mind2 csapathoz [%d] Bot hozzaadva...", 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] Elerte a Max. Bot letszamot")
}
}
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. Nehezseg: \yeasy\w")
case 1: formatex(szsbotdiff,31,"\w1. Nehezseg: \ynormal\w")
case 2: formatex(szsbotdiff,31,"\w1. Nehezseg: \yhard\w")
case 3: formatex(szsbotdiff,31,"\w1. Nehezseg: \yexpert\w")
}
new g_chatar[8]
get_cvar_string("bot_chatter",g_chatar,7)
if(equal(g_chatar,"normal")) {
formatex(szbotchatar,31,"\w2. Beszed: \ynormal\w")
}
if(equal(g_chatar,"off")) {
formatex(szbotchatar,31,"\w2. Beszed: \yki\w")
}
if(equal(g_chatar,"minimal")) {
formatex(szbotchatar,31,"\w2. Beszed: \yminimal\w")
}
if(equal(g_chatar,"radio")) {
formatex(szbotchatar,31,"\w2. Beszed: \yradio\w")
}
new g_autokill = get_pcvar_num(g_bot_autokill)
switch(g_autokill) {
case 0: formatex(szbotautokill,31,"\w3. Auto-oles: \rtiltva\w")
case 1: formatex(szbotautokill,31,"\w3. Auto-oles: \yengedelyezve\w")
}
new g_balance = get_pcvar_num(g_bot_balance)
switch(g_balance) {
case 0: formatex(szbotbalance,31,"\w4. Egyensuly: \rtiltva\w")
case 1: formatex(szbotbalance,31,"\w4. Egyensuly: \yengedelyezve\w")
}
new g_joinafterplayer = get_pcvar_num(g_bot_jap)
switch(g_joinafterplayer) {
case 0: formatex(szbotjap,31,"\w5. Csatlakozas utan: \rPlayer\w")
case 1: formatex(szbotjap,31,"\w5. Csatlakozas utan: \yPlayer\w")
}
formatex(szback,31,"\w9. vissza\w")
formatex(menu,511,"^n^n^n\yCZ Bot Vezerlo Menu ^n^n%s^n%s^n%s^n%s^n%s^n^n%s^n0. kilepes",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] Nehezseg Normal...")
}
case 1: {
set_pcvar_num(g_bot_diff, 2)
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Nehezseg Hard...")
}
case 2: {
set_pcvar_num(g_bot_diff, 3)
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Nehezseg Expert...")
}
case 3: {
set_pcvar_num(g_bot_diff, 0)
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Nehezseg 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] Beszed Ki...")
}
if(equal(g_chatar,"off")) {
set_cvar_string("bot_chatter","minimal")
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Beszed Minimal...")
}
if(equal(g_chatar,"minimal")) {
set_cvar_string("bot_chatter","radio")
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Beszed Radio...")
}
if(equal(g_chatar,"radio")) {
set_cvar_string("bot_chatter","normal")
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Beszed 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] Auto-oles Engedelyezve...")
}
case 1: {
set_pcvar_num(g_bot_autokill, 0)
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Auto-oles Letiltva...")
}
}
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] Egyensuly Engedelyezve...")
}
case 1: {
set_pcvar_num(g_bot_balance, 0)
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Egyensuly Letiltva...")
}
}
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] Csatlakozas utan Player Engedelyezve...")
}
case 1:{
set_pcvar_num(g_bot_jap, 0)
CzBotPrintHudMsg(id, 0, 255, 255, "[CZ-BOT] Csatlakozas utan Player Letiltva...")
}
}
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. Pisztolyok: \rki\w")
case 1: formatex(szpistols,31,"\w1. Pisztolyok: \ybe\w")
}
new g_shotguns = get_pcvar_num(g_bot_shotguns)
switch(g_shotguns) {
case 0: formatex(szshotguns,31,"\w2. Shotgunok: \rki\w")
case 1: formatex(szshotguns,31,"\w2. Shotgunok: \ybe\w")
}
new g_machineguns = get_pcvar_num(g_bot_machine_guns)
switch(g_machineguns) {
case 0: formatex(szmachineguns,31,"\w3. MachineGuns: \rki\w")
case 1: formatex(szmachineguns,31,"\w3. MachineGuns: \ybe\w")
}
new g_submguns = get_pcvar_num(g_bot_sub_mguns)
switch(g_submguns) {
case 0: formatex(szsubmguns,31,"\w4. SubMachineGuns: \rki\w")
case 1: formatex(szsubmguns,31,"\w4. SubMachineGuns: \ybe\w")
}
new g_rifles = get_pcvar_num(g_bot_rifles)
switch(g_rifles) {
case 0: formatex(szrifles,31,"\w5. Gepfegyverek: \rki\w")
case 1: formatex(szrifles,31,"\w5. Gepfegyverek: \ybe\w")
}
new g_snipers = get_pcvar_num(g_bot_snipers)
switch(g_snipers) {
case 0: formatex(szsnipers,31,"\w6. Sniperek: \rki\w")
case 1: formatex(szsnipers,31,"\w6. Sniperek: \ybe\w")
}
new g_shield = get_pcvar_num(g_bot_shield)
switch(g_shield) {
case 0: formatex(szshield,31,"\w7. Pajzs: \rki\w")
case 1: formatex(szshield,31,"\w7. Pajzs: \ybe\w")
}
new g_grenades = get_pcvar_num(g_bot_grenades)
switch(g_grenades) {
case 0: formatex(szgrenades,31,"\w8. Granatok: \roff\w")
case 1: formatex(szgrenades,31,"\w8. Granatok: \yon\w")
}
formatex(szback,31,"\w9. back\w")
formatex(menu,511,"^n^n^n\yCZ Bot Fegyver Menu ^n^n%s^n%s^n%s^n%s^n%s^n%s^n%s^n%s^n^n%s^n0. kilepes",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] Pisztolyok Be...")
}
case 1: {
set_pcvar_num(g_bot_pistols, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Pisztolyok Ki...")
}
}
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] Shotgunok Be...")
}
case 1: {
set_pcvar_num(g_bot_shotguns, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Shotgunok Ki...")
}
}
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] MachineGuns Be...")
}
case 1: {
set_pcvar_num(g_bot_machine_guns, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] MachineGuns Ki...")
}
}
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] SubMachineGuns Be...")
}
case 1: {
set_pcvar_num(g_bot_sub_mguns, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] SubMachineGuns Ki...")
}
}
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] Gepfegyverek Be...")
}
case 1: {
set_pcvar_num(g_bot_rifles, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Gepfegyverek Ki...")
}
}
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] Sniperek Be...")
}
case 1: {
set_pcvar_num(g_bot_snipers, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Sniperek Ki...")
}
}
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] Pajzsok Be...")
}
case 1: {
set_pcvar_num(g_bot_shield, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Pajzsok Ki...")
}
}
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] Granatok Be...")
}
case 1: {
set_pcvar_num(g_bot_grenades, 0)
CzBotPrintHudMsg(id, 255, 255, 255, "[CZ-BOT] Granatok Ki...")
}
}
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
}