Цитата(ssx @ 4.8.2016, 14:52)

SISA, Суть в том что проверка fw_emit_sound вызывается очень часто, и постоянно проверять на 4 звука это как никак нагрузка.
Вот и придумал что бы перед тем как
user_silentkill ( Players[id][itm] );
прописывать SilentKill = 1
Что бы в отлове блокировался звук. Тогда будет все как задумано.
А обычные самоубийства пусть будут со звуком.
Без проверки получается что все эти 4 звука будут блокироваться при любой погоде .
К примеру, выбежал за угла противник, засветился, забежал за угол и прописал kill в консоле. И сидит ржет себе наблюдая как противник ищет его.
ssx, Ну, если кодить как ты, на equal, то это не торт. В случае с моим кодом, нагрузка нулевая.
Цитата
Вот и придумал что бы перед тем как
user_silentkill ( Players[id][itm] );
прописывать SilentKill = 1
SilentKill - это не массив, а глобальная переменная в твоем случае.
SilentKill[128] - вот это массив. 128 размер массива.
Если ты хочешь убрать нагрузку вообще в 0 и избавиться от постоянного вызова EmitSound, тогда делай так:
Где-то в начале плагина:
Код
new g_fmEmitSoundPre; // ID EmitSound Форварда
Код
g_fmEmitSoundPre = register_forward(FM_EmitSound, "fw_EmitSound_Pre", 0); // Регистрируем Форвард
user_kill(Players[id][itm], 0);
unregister_forward(FM_EmitSound, g_fmEmitSoundPre, 0); // Разрегистрируем Форвард
Код
public fw_EmitSound_Pre(id, channel, const sample[])
{
if (!is_user_connected(id))
return FMRES_IGNORED;
if (sample[7] == 'd' && ((sample[8] == 'i' && sample[9] == 'e') || (sample[8] == 'e' && sample[9] == 'a')))
return FMRES_SUPERCEDE;
return FMRES_IGNORED;
}
Отредактировал: SISA, - 4.8.2016, 13:21