Van egy másik rate beállító!! Most ezt raktam fel!! Véleményeteket kérném, hogy ez kevésbé fogja a szervert mint a sima rete_manager?
Kód:
#include <amxmodx>
#include <amxmisc>
new nMaxplayers
public plugin_init()
{
register_plugin("Nice Rate", "1.0", "sector and Viro & Many")
register_logevent("nice_rate_cmd", 2, "1=Round_Start")
nMaxplayers = get_maxplayers()
set_task(30.0, "nice_rates_server", _, _, _, "b")
}
public nice_rates_server()
{
server_cmd("rate %i", get_hlrate())
server_cmd("sv_maxrate %i", get_lrate())
server_cmd("sv_maxupdaterate %i", get_luprate())
server_cmd("rate %i", get_hmrate())
server_cmd("sv_maxrate %i", get_mrate())
server_cmd("sv_maxupdaterate %i", get_muprate())
server_cmd("sys_ticrate %i", get_ticrate())
}
public client_connect(id)
{
client_cmd(id, "rate %i", get_hmrate())
client_cmd(id, "cl_rate %i", get_mrate())
client_cmd(id, "cl_updaterate %i", get_muprate())
client_cmd(id, "cl_cmdrate %i", get_cmdrate())
}
public nice_rate_cmd()
{
for(new i = 0; i <= nMaxplayers; i++)
{
client_cmd(i, "rate %i", get_hmrate())
client_cmd(i, "cl_rate %i", get_mrate())
client_cmd(i, "cl_updaterate %i", get_muprate())
client_cmd(i, "cl_cmdrate %i", get_cmdrate())
}
}
stock get_hlrate()
{
new outspeed = 8000
new hlrate
hlrate = floatround(float(outspeed * 126 / get_maxplayers()), floatround_round)
if(hlrate >= 25500)
{
hlrate = 25500
}
return hlrate
}
stock get_lrate()
{
new inspeed = 8000
new lrate
lrate = floatround(float(inspeed * 126 / get_maxplayers()), floatround_round)
if(lrate >= 10000)
{
lrate = 10000
}
return lrate
}
stock get_cmdsrate()
{
new cmdsrate, lrate = get_lrate()
cmdsrate = floatround(float(lrate / 99), floatround_round)
return cmdsrate
}
stock get_luprate()
{
new luprate, hlrate = get_hlrate()
luprate = floatround(float(hlrate / 255), floatround_round)
return luprate
}
stock get_hmrate()
{
new outspeed = 8000
new hmrate
new currPlayers = get_playersnum(1)
if(!currPlayers )
{
currPlayers = 1
}
hmrate = floatround(float(outspeed * 126 / currPlayers), floatround_round)
if(hmrate >= 25500)
{
hmrate = 25500
}
return hmrate
}
stock get_mrate()
{
new inspeed = 8000
new mrate
new currPlayers = get_playersnum(1)
if(!currPlayers )
{
currPlayers = 1
}
mrate = floatround(float(inspeed * 126 / currPlayers), floatround_round)
if( mrate >= 10000 )
{
mrate = 10000
}
return mrate
}
stock get_muprate()
{
new muprate, hmrate = get_hmrate()
muprate = floatround(float(hmrate / 255), floatround_round)
return muprate
}
stock get_cmdrate()
{
new cmdrate, mrate = get_mrate()
cmdrate = floatround(float(mrate / 99), floatround_round)
return cmdrate
}
stock Float:get_hvt()
{
new speedbus = 200
new Float:result = (100.0 / float(speedbus))
return result
}
stock get_ticrate()
{
new corespeed = 2712
new ticrate = floatround(float(corespeed) / get_hvt(), floatround_ceil)
if(ticrate >= 10000)
{
ticrate = 10000
}
return ticrate
}