Когда-то делал для себя
Код:
#include <amxmodx>
#include <dhudmessage>
#define IP "127.0.0.1:27015"
#define COUNTER 30
#define TASK_EFFECTS 7123200
#define TASK_TIMER 7123300
#define TASK_DISCONNECT 7123400
new g_msg_ScreenFade;
new g_msg_HideWeapon;
new g_iCounter[33];
public plugin_init()
{
register_plugin("Pereezd", "0.2", "Flash");
register_clcmd("jointeam", "Block");
register_clcmd("joinclass", "Block");
register_message(get_user_msgid("ShowMenu"), "Block");
register_message(get_user_msgid("VGUIMenu"), "Block");
register_message(get_user_msgid("MOTD"), "Block");
g_msg_ScreenFade = get_user_msgid("ScreenFade");
g_msg_HideWeapon = get_user_msgid("HideWeapon");
}
public client_putinserver(id)
{
g_iCounter[id] = COUNTER;
set_task(0.1, "TaskEffects", id + TASK_EFFECTS);
set_task(1.0, "Task", id + TASK_TIMER, _, _, "b");
}
public TaskEffects(id)
{
id -= TASK_EFFECTS;
if(is_user_connected(id))
{
message_begin(MSG_ONE_UNRELIABLE, g_msg_ScreenFade, {0, 0, 0}, id);
write_short(1<<1);
write_short(1<<12);
write_short(0x0004);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
message_begin(MSG_ONE_UNRELIABLE, g_msg_HideWeapon, {0, 0, 0}, id);
write_byte((1<<4)|(1<<5));
message_end();
set_dhudmessage(255, 255, 255, -1.0, 0.35, 0, 0.0, 1.0, 0.1, 0.1, false);
show_dhudmessage(id, "Мы переехали. Новый IP: %s^nАвтореконнект через %d сек.", IP, g_iCounter[id]);
}
}
public Task(id)
{
id -= TASK_TIMER;
if(is_user_connected(id))
{
if(--g_iCounter[id])
{
//clear_channels(id);
set_dhudmessage(255, 255, 255, -1.0, 0.35, 0, 0.0, 1.1, 0.1, 0.1, false);
show_dhudmessage(id, "Мы переехали. Новый IP: %s^nАвтореконнект через %d сек.", IP, g_iCounter[id]);
client_print(id, print_console, "Мы переехали. Новый IP: %s^nАвтореконнект через %d сек.", IP, g_iCounter[id]);
}
else
{
remove_task(id + TASK_TIMER);
set_task(2.0, "TaskDisconnect", id + TASK_DISCONNECT);
client_cmd(id, "Connect %s", IP);
}
}
}
public TaskDisconnect(id)
{
id -= TASK_DISCONNECT;
if(is_user_connected(id))
{
server_cmd("kick #%d ^"Мы переехали: %s^"", IP, get_user_userid(id));
}
}
public Block()
{
return PLUGIN_HANDLED;
}
stock clear_channels(id)
{
for(new i; i < 7; i++)
show_dhudmessage(id, "");
}