Разработчик
Скриптер
Участник
Пользователь
- Сообщения
- 1,698
- Реакции
- 1,510
- Помог
- 26 раз(а)
В связи с тем, что я мусор этого форума (слова неугомона), предоставляю вам две реализации данного плагина, более лучшие, как кажется на мой взгляд.
Первый вариант моего неизвестного друга, преимущество в том, что не юзает никаких синков, работает точно так же:
Второй вариант мой, отличается от ТС'шного тем, что если вы флудите кнопкой, то вы не можете его использовать, но как только прекратил, то можете (если в промежуточное время вы нажимете кнопку, то добавляется время для след.нажатия), на мой взгляд именно так должен работать "анти-спам":
Ждем лайт версию с 4 переменными и массивом.
Первый вариант моего неизвестного друга, преимущество в том, что не юзает никаких синков, работает точно так же:
Код:
#pragma semicolon 1
#include <amxmodx>
#include <reapi>
const gmsgFlashlight = 68;
new Float:mp_flashlight_reload;
new Float:g_flNextFlashLightTime[MAX_CLIENTS + 1];
public plugin_init()
{
register_plugin("Anti-spam Flashlight", "1.0", "unknown");
register_message(gmsgFlashlight, "@MSG_Flashlight");
bind_pcvar_float(register_cvar("mp_flashlight_reload", "1.5"), mp_flashlight_reload);
}
@MSG_Flashlight(iMsgId, iDest, iPlayer)
{
new Float:flTime = get_gametime();
if (!get_msg_arg_int(1))
{
g_flNextFlashLightTime[iPlayer] = flTime + mp_flashlight_reload;
return;
}
if (g_flNextFlashLightTime[iPlayer] > flTime)
{
rh_emit_sound2(iPlayer, 0, CHAN_ITEM, "common/null.wav");
set_entvar(iPlayer, var_effects, get_entvar(iPlayer, var_effects) & ~EF_DIMLIGHT);
set_msg_arg_int(1, ARG_BYTE, 0);
}
}
Код:
#pragma semicolon 1
#include <amxmodx>
#include <reapi>
new Float:mp_flashlight_delay_add;
new Float:g_flNextFlashLightTime[MAX_CLIENTS + 1];
public plugin_init()
{
register_plugin("Anti-spam Flashlight", "1.0", "whore");
bind_pcvar_float(register_cvar("mp_flashlight_delay_add", "0.5"), mp_flashlight_delay_add);
RegisterHookChain(RG_CBasePlayer_ImpulseCommands, "@CBasePlayer__ImpulseCommands_Pre", false);
}
@CBasePlayer__ImpulseCommands_Pre(iPlayer)
{
if (get_entvar(iPlayer, var_impulse) != 100)
return HC_CONTINUE;
new Float:flTime = get_gametime();
if (g_flNextFlashLightTime[iPlayer] > flTime)
{
g_flNextFlashLightTime[iPlayer] = flTime + mp_flashlight_delay_add;
set_entvar(iPlayer, var_impulse, 0);
return HC_BREAK;
}
g_flNextFlashLightTime[iPlayer] = flTime + mp_flashlight_delay_add;
return HC_CONTINUE;
}
Ждем лайт версию с 4 переменными и массивом.
Download all Attachments
-
863 байт Просмотры: 7
-
885 байт Просмотры: 14
Последнее редактирование: