Ok, i made a plugin to control the meta mod fake full plugin.
What this plugin does is tells meta mods fake full to add XX fake clients, then as people come in it keeps adding so that there are XX still there.
I just wanted to post, since i think some of it could be simplified or maybe some bugs in teh code. I just wanted a couple of scripters to take a look at the code and see if it seems ok before i post it.
Code:
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Empty Server Control"
#define VERSION "0.1"
#define AUTHOR "TnP | Ass Master"
// This plugin will keep fake clients and czbots in the server until the max is reached, then remove them
//
// amx_ff_max (default:19) When the min fake clients + real players = this, it will remove all fake clients
// A good value for this is your server size minus 1
// amx_ff_min (default:4) The min fake clients to have in your server
//
// amx_ff_minbots (default:4) The min number of bots to have
// When this number = the same ammount of people (default 4) it then uses maxbots
// amx_ff_maxbots (default:8) This number = players+bots Example:
// Set it to 12, you have 6 people then it adds 6 bots until 12 ppl, then the bots are removed
//
//
//
//
new botquota
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("amx_ff_max","18")
register_cvar("amx_ff_min","4")
register_cvar("amx_ff_maxbots","8")
register_cvar("amx_ff_minbots","4")
// set_task(15.0, "setffplayers", 20, "", 0, "ab")
// set_task(15.0, "botkill", 20, "", 0, "ab")
set_task(25.0, "restartround", 20, "", 0, "")
return PLUGIN_CONTINUE
}
public client_connect()
{
new rp[32]
new realplayers, i, player
get_players(rp, realplayers, "c")
for (i=0; i<realplayers; i++)
player = rp[i]
new botquota
new fakeplayers = (realplayers + botquota + (get_cvar_num("amx_ff_min")))
new maxplayers = (get_cvar_num("amx_ff_max"))
new maxbots = (get_cvar_num("amx_ff_maxbots"))
new minbots = (get_cvar_num("amx_ff_minbots"))
// Bot Math
if(realplayers > minbots)
{
botquota = maxbots - realplayers
}
else {
botquota = minbots
}
// Bots Controls
if(realplayers < maxbots)
{
server_cmd("bot_quota %d", botquota)
// server_cmd("say %d realbots", czbots)
// server_cmd("say %d botquota", botquota)
}
else {
server_cmd("bot_quota 0")
// server_cmd("say %d realbots", czbots)
// server_cmd("say %d botquota", botquota)
server_cmd("say doing nothing")
}
// Fake Full Controls
if((realplayers + (botquota + (get_cvar_num("amx_ff_min")))) < maxplayers)
{
server_cmd("ff_players %d", (fakeplayers))
// server_cmd("say %d fakeplayers", (fakeplayers))
// server_cmd("say %d botquota", botquota)
// server_cmd("say %d max players", maxplayers)
// server_cmd("say %d realplayers", realplayers)
// server_cmd("say %d player", player)
// server_cmd("say %d i", i)
}
else {
server_cmd("ff_players 0")
// server_cmd("say %d fake players", fakeplayers)
// server_cmd("say %d max players", maxplayers)
// server_cmd("say %d real players", realplayers)
// server_cmd("say doing nothing")
}
return PLUGIN_CONTINUE
}
public botkill()
{
new realplayers
get_players("",realplayers, "c")
new aliveplayers
get_players("",aliveplayers, "ac")
new maxbots = (get_cvar_num("amx_ff_maxbots"))
new minbots = (get_cvar_num("amx_ff_minbots"))
// Bot Math
if(realplayers > minbots)
{
botquota = maxbots - realplayers
}
else {
botquota = minbots
}
if(aliveplayers == 0 && realplayers >= 1 && botquota >0)
{
server_cmd("bot_kill")
set_hudmessage(254, 50, 0, 0.02, -0.27, 0, 5.0, 5.04, 0.0, 0.5, 8)
show_hudmessage(0,"No more alive players, Slaying Bots")
}
return PLUGIN_CONTINUE
}
public restartround()
{
server_cmd("sv_restartround 1")
return PLUGIN_CONTINUE
}