#include <amxmodx>
// - - - - - - - - - - - - - - - - - - - - КАСТОМИЗАЦИЯ ПЛАГИНА - - - - - - - - - - - - - - -
// Для отключения функции закомментируйте строку: В начале строки перед #define добавьте //
#define USE_REAPI // Использовать модуль ReAPI & ReGameDLL_CS? (Если отключить, будет использован модуль fakemeta)
#define HIDE_CHAT_MSG // Скрывать сообщение в чат, когда игрок пишет "/rs"
#define INFO_TEXT // Показывать оповещение игроку в чат при обнулении счёта
#define RS_CHAT_MSG "^4[RS] ^3Ваш счёт обнулен" // Текст сообщения при обнулении счёта
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Конец кастомизации)
#if defined USE_REAPI
#include <reapi>
#else
#include <fakemeta>
const PDATA_SAFE = 2
const OFFSET_CSDEATHS = 444
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
#endif
// - - - - - - - - - - - - - - - - - - - - //
public plugin_init()
{
register_plugin("ResetScore", "1.0", "Leo_[BH]");
register_clcmd("say /rs", "reset_score");
register_clcmd("say_team /rs", "reset_score");
register_clcmd("say /resetscore", "reset_score");
register_clcmd("say_team /resetscore", "reset_score");
}
public reset_score(id)
{
if(!is_user_connected(id)) return PLUGIN_CONTINUE;
// - - - - - - - - -
func_reset_score(id)
// - - - - - - - - -
#if defined INFO_TEXT
text_reset_score(id)
#endif
// - - - - - - - - -
#if defined HIDE_CHAT_MSG
return PLUGIN_HANDLED;
#else
return PLUGIN_CONTINUE;
#endif
}
// Функция обнуления счёта
public func_reset_score(id)
{
#if defined USE_REAPI
set_entvar(id, var_frags, 0.0);
set_member(id, m_iDeaths, 0);
#else
set_pev(id, pev_frags, 0.0)
fm_cs_set_user_deaths(id, 0)
#endif
message_begin(MSG_BROADCAST, 85);
write_byte(id);
write_short(0);
write_short(0);
write_short(0);
write_short(0);
message_end();
}
stock fm_cs_set_user_deaths(id, value)
{
if (pev_valid(id) != PDATA_SAFE)
return;
set_pdata_int(id, OFFSET_CSDEATHS, value, OFFSET_LINUX)
}
#if defined INFO_TEXT
public text_reset_score(id)
ChatColorOne(id, RS_CHAT_MSG);
stock ChatColorOne(const id, const szMessage[], any:...)
{
static szMsg[191], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(!is_user_connected(id)) return 0;
message_begin(MSG_ONE_UNRELIABLE, IdMsg, .player = id);
write_byte(id);
write_string(szMsg);
message_end();
return 1;
}
#endif