qpi3ik,Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#define PLUGIN_NAME "Auto Restart KNIFE"
#define PLUGIN_VERSION "1.5"
#define PLUGIN_AUTHOR "Leo_[BH] & Fintok!"
const m_iJoinedState = 121
const m_iMenu = 205
const MENU_CHOOSEAPPEARANCE = 3
const STATE_PICKINGCLASS = 4
new HamHook:g_iPlayerPreThink
new Timer, SecondsCvar
public plugin_init()
{
register_plugin(PLUGIN_NAME , PLUGIN_VERSION, PLUGIN_AUTHOR)
register_dictionary("auto_rr.txt")
SecondsCvar = register_cvar("auto_rr_time", "45")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1)
DisableHamForward(g_iPlayerPreThink = RegisterHam(Ham_Player_PreThink, "player", "fw_PlayerPreThink_Post", 1))
register_clcmd("menuselect", "clcmd_MenuSelect_JoinClass")
register_clcmd("joinclass", "clcmd_MenuSelect_JoinClass")
register_event("CurWeapon", "ev_CurWeapon", "be", "1=1", "2!29")
Timer = get_pcvar_num(SecondsCvar)
set_task(1.0, "start_rr_timer", .flags="a", .repeat=get_pcvar_num(SecondsCvar))
pause("ac", "myplugin.amxx") // Приостановить работу определенного плагина
}
public start_rr_timer()
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.08, 0, 0.0, 0.01)
show_dhudmessage(0, "%L", LANG_PLAYER, "RR_TIME", Timer)
if(Timer == 1)
{
server_cmd("sv_restartround 1")
set_task(3.0, "rr_end")
pause("ac", "myplugin.amxx") // Возобновить работу определенного плагина
}
Timer -= 1
}
public rr_end()
{
set_dhudmessage(0, 128, 0, -1.0, 0.78, 2, 6.0, 3.0, 0.1, 1.5, false)
show_dhudmessage(0, "%L", LANG_PLAYER, "RR_GG")
}
public fw_PlayerSpawn_Post(id)
{
if(!Timer)
return
if(is_user_alive(id))
set_user_health(id, 35)
cs_set_user_money(id, 0)
}
public fw_PlayerKilled_Post(id)
{
if(!Timer)
return
set_task(1.0, "playerRespawn", id)
}
public playerRespawn(id)
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T, CS_TEAM_CT:
{
if(!is_user_alive(id))
ExecuteHam(Ham_CS_RoundRespawn, id)
}
}
}
public clcmd_MenuSelect_JoinClass(id)
{
if(!Timer)
return
if(get_pdata_int(id, m_iMenu) == MENU_CHOOSEAPPEARANCE && get_pdata_int(id, m_iJoinedState) == STATE_PICKINGCLASS)
EnableHamForward(g_iPlayerPreThink)
}
public fw_PlayerPreThink_Post(id)
{
DisableHamForward(g_iPlayerPreThink)
if(!is_user_alive(id))
ExecuteHam(Ham_Spawn, id)
}
public ev_CurWeapon(id)
{
if(!Timer)
return
engclient_cmd(id, "weapon_knife")
}
add: добваил авто воскрешение только что зашедших игроков
Отредактировал: Fintok, - 22.9.2014, 20:29