This is a custom script a friend of mine created. Could anyone tell me if they can see why it would cause a server crash?
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#pragma dynamic 6144
#define PLUGIN "Server Manager"
#define AUTHOR "Fusion"
new playerJoinTeam
new BotMode = 0
new BotNum = 0
new g_MyMsgSync
// team ids
#define UNASSIGNED 0
#define TS 1
#define CTS 2
#define AUTO_TEAM 5
public plugin_init()
{
register_plugin(PLUGIN, AMXX_VERSION_STR, AUTHOR)
register_event("SendAudio","round_end","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw") // Round End
register_cvar("sv_manager","1")
g_MyMsgSync = CreateHudSyncObj()
BotMode = 0
set_cvar_num("bot_difficulty",1)
new map[32]
get_mapname(map, 31)
if(!contain(map, "cs_"))
{
playerJoinTeam = CTS
set_cvar_string("bot_join_team","T")
}
else
{
playerJoinTeam = TS
set_cvar_string("bot_join_team","CT")
}
if(containi(map, "awp_") > -1 || containi(map, "scout") > -1)
{
set_cvar_string("bot_allow_snipers","1")
}
else
{
set_cvar_string("bot_allow_snipers","0")
}
}
public CountHumans()
{
new Players[32]
new playerCount, i,humans
get_players(Players, playerCount, "c")
for (i=0;i<playerCount;i++)
{
if(cs_get_user_team(Players[i]) != CS_TEAM_SPECTATOR)
{
humans++
}
}
return humans
}
public doTypesay(string[], duration, r, g, b)
{
set_hudmessage(r, g, b, 0.02, 0.40, 0, 6.0, float(duration) , 0.5, 0.15)
ShowSyncHudMsg(0, g_MyMsgSync, string )
}
public BotDiff(diff_level)
{
new bot_diff = get_cvar_num("bot_difficulty")
if(bot_diff != diff_level)
{
set_cvar_num("bot_difficulty",diff_level)
ResetBots()
}
}
public ResetBots()
{
KickAllBots()
set_task(1.0, "AddBots")
}
public AddBots()
{
if(BotNum == 1)
{
set_cvar_num("bot_quota", 6)
}
else if(BotNum == 2)
{
set_cvar_num("bot_quota", 8)
}
else if(BotNum == 3)
{
set_cvar_num("bot_quota", 10)
}
}
public KickAllBots()
{
server_cmd("bot_kick all")
}
public Humans()
{
if(BotMode != 0)
{
BotMode = 0
set_cvar_num("sv_alltalk", 1)
set_cvar_num("bot_quota", 0)
set_cvar_num("mp_autoteambalance",1)
set_cvar_num("mp_limitteams",2)
}
}
public Bots()
{
if(BotMode != 1)
{
BotMode = 1
set_cvar_num("sv_alltalk", 0)
set_cvar_num("bot_auto_vacate",1)
set_cvar_num("mp_autoteambalance",0)
set_cvar_num("mp_limitteams",0)
set_cvar_num("bot_allow_shield",0)
set_cvar_num("bot_allow_shotguns", 0)
set_cvar_num("bot_allow_machine_guns", 0)
set_cvar_num("bot_join_after_player",0)
set_cvar_num("bot_allow_grenades", 0)
set_cvar_string("bot_chatter","off")
}
}
public round_end()
{
new text[256]
new manager
manager = get_cvar_num("sv_manager")
if(manager == 1)
{
copy(text,255, "Round over: Checking Teams")
doTypesay(text, 5, 0, 255, 0)
DoTeams()
set_task(4.0,"ConfigureServer")
}
else
{
copy(text, 255, "Round over: Checking Teams")
doTypesay(text, 5, 0, 255, 0)
KickAllBots()
Humans()
set_task(6.0, "DoUpgrades")
}
new param[12]
read_data(2,param,8)
if (param[7]=='c')
{ //%!MRAD_ctwin
param[0] = CTS
param[1] = TS
}
else if (param[7]=='t')
{ //%!MRAD_terwin
param[0] = TS
param[1] = CTS
}
else
{
return // %!MRAD_rounddraw (both teams have left the game)
}
}
public DoTeams()
{
if(BotMode == 1)
{
new text[255]
new Players[32]
new playerCount, i
get_players(Players, playerCount, "c")
for (i=0; i<playerCount; i++)
{
if(is_user_bot(Players[i]) == 0)
{
if(playerJoinTeam == TS)
{
if(get_user_team(Players[i]) == CTS)
{
cs_set_user_team(Players[i],CS_TEAM_T,CS_T_TERROR)
format(text,255,"Moving People to the Terrorist Team.")
doTypesay(text, 5, 0, 255, 0)
}
}
else
{
if(get_user_team(Players[i]) == TS)
{
cs_set_user_team(Players[i],CS_TEAM_CT,CS_CT_URBAN )
format(text,255,"Moving People to the Counter-Terrorist Team.")
doTypesay(text, 5, 0, 255, 0)
}
}
}
}
}
}
public DoUpgrades()
{
if(BotMode == 1)
{
new text[255], Players[32], playerCount, i
new map[32], cash
get_mapname(map, 31)
copy(text,255, "Bot Mode: Giving Players Upgrades.")
doTypesay(text, 5, 0, 255, 0)
new bot_diff
bot_diff = get_cvar_num("bot_difficulty")
if(bot_diff == 4)
{
copy(text,255, "Extreme Bot Mode: Giving Players Upgrades.")
doTypesay(text, 5, 0, 255, 0)
}
get_players(Players, playerCount, "a")
for (i=0; i<playerCount; i++)
{
if(is_user_bot(Players[i]) == 0)
{
cs_set_user_armor(Players[i],255,CS_ARMOR_VESTHELM)
set_user_health(Players[i],255)
if(containi(map, "de_") > -1 || containi(map, "cs_") > -1)
{
give_item(Players[i],"weapon_m4a1")
cs_set_user_bpammo(Players[i], CSW_M4A1, 90)
give_item(Players[i],"weapon_ak47")
cs_set_user_bpammo(Players[i], CSW_AK47, 90)
give_item(Players[i],"weapon_deagle")
cs_set_user_bpammo(Players[i], CSW_DEAGLE, 35)
}
else if(containi(map, "scout") > -1)
{
cs_set_user_bpammo(Players[i], CSW_SCOUT, 30)
give_item(Players[i], "weapon_hegrenade")
}
else if(containi(map, "fy_") > -1 || containi(map, "awp") > -1)
{
give_item(Players[i], "weapon_hegrenade")
}
cash = cs_get_user_money(Players[i])
if(cash > 8000)
{
cs_set_user_money(Players[i], 8000, 0)
}
else if(cash < 8000)
{
cs_set_user_money(Players[i], 8000, 0)
}
}
else
{
if(bot_diff == 2)
{
cs_set_user_armor(Players[i], 100,CS_ARMOR_VESTHELM)
set_user_health(Players[i], 100)
}
else if(bot_diff == 3)
{
cs_set_user_armor(Players[i],100,CS_ARMOR_VESTHELM)
set_user_health(Players[i],100)
}
else if(bot_diff == 4)
{
copy(text,255, "Extreme Bot Mode: Giving Bots Upgrades.")
doTypesay(text, 5, 0, 255, 0)
cs_set_user_armor(Players[i],100,CS_ARMOR_VESTHELM)
set_user_health(Players[i],100)
if(containi(map, "de_") > -1 || containi(map, "cs_") > -1)
{
give_item(Players[i],"weapon_m4a1")
cs_set_user_bpammo(Players[i], CSW_M4A1, 90)
give_item(Players[i],"weapon_ak47")
cs_set_user_bpammo(Players[i], CSW_AK47, 90)
give_item(Players[i],"weapon_deagle")
cs_set_user_bpammo(Players[i], CSW_DEAGLE, 35)
}
else if(containi(map, "scout") > -1)
{
cs_set_user_bpammo(Players[i], CSW_SCOUT, 30)
give_item(Players[i], "weapon_hegrenade")
}
}
}
}
}
else
{
new text[255], Players[32], playerCount, i
new map[32], cash
get_mapname(map, 31)
copy(text,255, "Humans Only")
doTypesay(text, 5, 0, 255, 0)
get_players(Players, playerCount, "c")
for (i=0; i<playerCount; i++)
{
cs_set_user_armor(Players[i],100,CS_ARMOR_VESTHELM)
if(containi(map, "de_") > -1 || containi(map, "cs_") > -1)
{
if(get_user_team(Players[i]) == CTS)
{
cs_set_user_armor(Players[i],100,CS_ARMOR_VESTHELM)
give_item(Players[i],"weapon_m4a1")
cs_set_user_bpammo(Players[i], CSW_M4A1, 90)
give_item(Players[i],"weapon_ak47")
cs_set_user_bpammo(Players[i], CSW_AK47, 90)
give_item(Players[i],"weapon_deagle")
cs_set_user_bpammo(Players[i], CSW_DEAGLE, 35)
}
else if(get_user_team(Players[i]) == TS)
{
cs_set_user_armor(Players[i],100,CS_ARMOR_VESTHELM)
give_item(Players[i],"weapon_ak47")
cs_set_user_bpammo(Players[i], CSW_AK47, 90)
give_item(Players[i],"weapon_m4a1")
cs_set_user_bpammo(Players[i], CSW_M4A1, 90)
give_item(Players[i],"weapon_deagle")
cs_set_user_bpammo(Players[i], CSW_DEAGLE, 35)
}
}
else if(containi(map, "scout") > -1)
{
cs_set_user_armor(Players[i], 100, CS_ARMOR_VESTHELM)
cs_set_user_bpammo(Players[i], CSW_SCOUT, 30)
give_item(Players[i], "weapon_hegrenade")
}
else if(containi(map, "fy_") > -1 || containi(map, "awp") > -1)
{
cs_set_user_armor(Players[i], 100, CS_ARMOR_VESTHELM)
give_item(Players[i], "weapon_hegrenade")
}
cash = cs_get_user_money(Players[i])
if(cash > 8000)
{
cs_set_user_money(Players[i], 10000, 0)
}
else if(cash < 8000)
{
cs_set_user_money(Players[i], 10000, 0)
}
}
}
}
public ConfigureServer()
{
new pnum = CountHumans()
new bot_diff = get_cvar_num("bot_difficulty")
new text[256]
if(pnum > 0 && pnum <= 3)
{
if(BotMode != 1)
{
copy(text,255, "Bot Difficulty: 2")
doTypesay(text, 5, 0, 255, 0)
}
else
{
if(bot_diff != 2)
{
copy(text,255, "Bot Difficulty: 2")
doTypesay(text, 5, 0, 255, 0)
}
}
BotNum = 1
Bots()
BotDiff(2)
set_task(2.0, "DoUpgrades")
}
else if(pnum > 3 && pnum <= 5)
{
if(BotMode != 1)
{
copy(text,255, "Bot Difficulty: 3")
doTypesay(text, 5, 0, 255, 0)
}
else
{
if(bot_diff != 3)
{
copy(text,255, "Bot Difficulty: 3")
doTypesay(text, 5, 0, 255, 0)
}
}
BotNum = 2
Bots()
BotDiff(3)
set_task(2.0, "DoUpgrades")
}
else if(pnum > 5 && pnum <= 7)
{
if(BotMode != 0)
{
if(bot_diff != 4)
{
copy(text, 255, "Bot Difficulty: 4")
doTypesay(text, 5, 0, 255, 0)
BotDiff(4)
}
BotNum = 3
Bots()
}
else
{
KickAllBots()
Humans()
}
set_task(2.0, "DoUpgrades")
}
else if(pnum > 7)
{
if(BotMode != 0)
{
copy(text,255, "Humans Only: Getting Rid of the Bots.")
doTypesay(text, 5, 0, 255, 0)
KickAllBots()
Humans()
}
else
{
KickAllBots()
Humans()
}
set_task(2.0, "DoUpgrades")
}
return PLUGIN_CONTINUE
}