Если так сделать, то отсчет не работает@Seton1447, пробуйPHP:#include <sourcemod> #undef REQUIRE_PLUGIN #include <adminmenu> new Handle:hTopMenu, bool:bInCountdown; public OnPluginStart() { RegAdminCmd("sm_restart", Cmd_Restart, ADMFLAG_ROOT); new Handle:topmenu; if(LibraryExists("adminmenu") && ((topmenu = GetAdminTopMenu()) != INVALID_HANDLE)) OnAdminMenuReady(topmenu); } public OnLibraryRemoved(const String:name[]) { if(StrEqual(name, "adminmenu")) hTopMenu = INVALID_HANDLE; } public OnAdminMenuReady(Handle:topmenu) { if(topmenu == hTopMenu) return; hTopMenu = topmenu; new TopMenuObject:server_cmds = FindTopMenuCategory(hTopMenu, ADMINMENU_SERVERCOMMANDS); if(server_cmds != INVALID_TOPMENUOBJECT) AddToTopMenu(hTopMenu, "sm_restart", TopMenuObject_Item, AdminMenu_Restart, server_cmds, "sm_restart", ADMFLAG_ROOT); } public AdminMenu_Restart(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength) { switch(action) { case TopMenuAction_DisplayOption: Format(buffer, maxlength, "Перезагрузить сервер", param); case TopMenuAction_SelectOption: Restart(param); } } public Action:Cmd_Restart(client, args) { Restart(client); return Plugin_Handled; } stock Restart(client) { if(bInCountdown) return; PrintCenterTextAll("Сервер будет перезагружен через 3 сек."); CreateTimer(1.0, Timer_Restart, TIMER_REPEAT); } public Action:Timer_Restart(Handle:timer) { bInCountdown = true; static int time = 3; if(--time < 1) { PrintCenterTextAll("Сервер перезагружается."); if(time == -1) ServerCommand("_restart"); } else PrintCenterTextAll("Сервер будет перезагружен через %d сек.", time); return Plugin_Continue; }
А так работает "CreateTimer(1.0, Timer_Restart, _, TIMER_REPEAT);"CreateTimer(1.0, Timer_Restart, TIMER_REPEAT);
Но спасибо за помощь все равно)