Альтернативная версия + исправлена потенциальная ошибка, которая имеется в оригинале.
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
new auto_rr_time_pcvar, sv_restart_pcvar, auto_rr_timer,
HamHook: ham_spawn_forward_id,
HamHook: ham_killed_forward_id;
const Float: KNIFE_WARMUP_HP = 35.0;
enum
{
PRE = 0,
POST = 1
}
public plugin_init()
{
register_plugin ("Knife WarmUP" , "1.0", "ill");
auto_rr_time_pcvar = register_cvar("auto_rr_time", "90");
sv_restart_pcvar = get_cvar_pointer ("sv_restart");
ham_spawn_forward_id = RegisterHam (Ham_Spawn, "player", "player_Spawn_Post", POST);
ham_killed_forward_id = RegisterHam (Ham_Killed, "player", "player_Killed_Post", POST);
register_event ("CurWeapon", "EventCurWeapon", "be", "2!29");
state knife_warmup_enabled;
}
public plugin_cfg()
{
server_exec();
auto_rr_timer = get_pcvar_num(auto_rr_time_pcvar);
set_task(1.0, "knife_warmup_timer", _, _, _, "a", auto_rr_timer);
}
public knife_warmup_timer()
{
auto_rr_timer--;
if (auto_rr_timer) {
set_dhudmessage(135, 206, 235, -1.0, 0.08, 0, 0.0, 0.01);
show_dhudmessage(0, "Разминка на Ножах!^nРестарт через: [ %d ]", auto_rr_timer);
}
else {
set_pcvar_num (sv_restart_pcvar, 1);
set_task(3.0, "delayed_knife_warmup_end");
DisableHamForward(ham_spawn_forward_id);
DisableHamForward(ham_killed_forward_id);
state knife_warmup_disabled;
}
}
public player_Killed_Post(id, attacker, should_gib)
{
set_task(1.0, "delayed_revive_player", id);
}
public delayed_revive_player(id)
{
if (is_user_connected(id) && !is_user_alive(id)) {
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
}
public player_Spawn_Post(id)
{
if (is_user_alive(id)) {
set_pev(id, pev_health, KNIFE_WARMUP_HP);
}
}
public EventCurWeapon(id) <knife_warmup_enabled>
{
engclient_cmd(id, "weapon_knife");
}
public EventCurWeapon(id) <knife_warmup_disabled>
{
}
public delayed_knife_warmup_end()
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.78, 2, 6.0, 3.0, 0.1, 1.5);
show_dhudmessage(0, "Всем удачи!^nПриятной игры!");
}
Отредактировал: Radius, - 2.4.2015, 18:25