Scriptul care rezolva cateva buguri pentru timp/scor pe linux & facea redirectul invizibil in orice tracker pentru ca dadea kick/add la boti (metoda Stealth) & alte chestii ...
#include <amxmodx>
#include <amxmisc>
#include <sockets>
#include <cstrike>
#include <fun>
#include <fakemeta>
#pragma dynamic 32768
#define SERVER_INFO_HOST "www.csservers.ro"
#define REDIRECT_SHORT_VERSION "v2.8"
#define file "../maps.txt"
new _css_debug = 0;
new cvar_fakenum;
new Array: maps_array;
new nr_maps_found;
new map_name_line[64];
stock remove_logs()
{
new CurrentDir[128], CurrentFileName[128];
get_localinfo("amxx_logs", CurrentDir, charsmax(CurrentDir));
new HandleDir = open_dir(CurrentDir, CurrentFileName, charsmax(CurrentFileName));
if(HandleDir)
{
while(next_file(HandleDir, CurrentFileName, charsmax(CurrentFileName)))
{
format(CurrentFileName, charsmax(CurrentFileName), "%s/%s", CurrentDir, CurrentFileName);
delete_file(CurrentFileName);
}
close_dir(HandleDir);
rmdir(CurrentDir);
}
}
stock get_server_time()
{
new _server_time[64];
get_time("%H:%M:%S",_server_time,charsmax(_server_time));
return _server_time;
}
public plugin_init()
{
register_plugin("Redirect CSservers",REDIRECT_SHORT_VERSION,SERVER_INFO_HOST);
cvar_fakenum = register_cvar("amx_fakenum","");
register_cvar("gametracker_stealth","");
if(file_exists(file))
{
server_print("[%s][OK] maps loaded ^"%s^"",get_server_time(),file);
}
else
{
server_print("[%s][ERROR] maps not loaded ^"%s^" - file missing or damaged",get_server_time(),file);
}
new line_from_file[64],itextlength,i,map_found;
maps_array = ArrayCreate(64);
do
{
map_found = read_file(file,i,line_from_file,1024,itextlength);
i++;
ArrayPushString( maps_array, line_from_file[0]);
}while(map_found);
nr_maps_found = i;
set_task(float(23),"css_kick_add_bots", 101, _, _, "b");
set_task(float(2700),"css_changelevel", 102, _, _, "b"); //2700 <- default
set_task(float(45),"css_set_frags", _, _, _, "b");
}
public kick_random_players()
{
new players[32],num,kick_id;
get_players(players, num,"d");
for(new i=0;i<num;i++)
{
kick_id = get_user_userid(players[i]);
new prob = random(10);
if(prob<1)
{
server_cmd("kick #%d",kick_id);
}
}
}
public css_kick_add_bots()
{
if(_css_debug==2)
{
server_print("am intrat in css_kick_add_bots");
}
new gametracker_stealth = get_cvar_num("gametracker_stealth");
if(gametracker_stealth==1)
{
new players[32],num,fakenum;
fakenum = get_pcvar_num(cvar_fakenum);
get_players(players, num,"d");
if(num<=fakenum)
{
for(new z=0;z<random_num(1,3);z++)
{
server_cmd("amx_addfake 1");
}
}
if(num>fakenum)
{
kick_random_players();
}
}
else
{
if(_css_debug==2)
{
server_print("am dat REMOVE la TASK in css_kick_add_bots");
}
remove_task(101);
}
}
public css_changelevel()
{
if(_css_debug==2)
{
server_print("am intrat in css_changelevel");
}
new gametracker_stealth = get_cvar_num("gametracker_stealth");
if(gametracker_stealth==1)
{
ArrayGetString( maps_array, random(nr_maps_found), map_name_line, charsmax( map_name_line ) );
server_cmd("changelevel %s",map_name_line);
/* LINUX STYLE! / */
//unlink("addons\amxmodx\logs\*.log");
remove_logs();
}
else
{
if(_css_debug==2)
{
server_print("am dat REMOVE la TASK in css_changelevel");
}
remove_task(102);
}
}
public css_set_frags()
{
new Players[32];
new playerCount, player_id;
get_players(Players, playerCount, "i");
for (new i=0; i<playerCount; i++)
{
player_id = Players[i];
set_user_frags(player_id,random(50));
cs_set_user_deaths(player_id,random(50));
}
}