- Поддерживаемые игры
- CS: Source (OrangeBox)
[CS:S] Modern Event Hooks - это плагин для игры Counter-Strike: Source, который добавляет дополнительные статичные события (HookEvent) и параметры к ним из игры CS:GO. Данный плагин упростит разработчикам CS:S плагинов получение тех или иных вещей через события.
Список добавляемых параметров плагином и событий вы сможете найти в архиве в файле resource/modevents.res, где
#Modern - это параметр , а
#ModernEvent - событие.
Список добавляемых параметров плагином и событий вы сможете найти в архиве в файле resource/modevents.res, где
#Modern - это параметр , а
#ModernEvent - событие.
Код:
public void OnPluginStart()
{
// Хукаем смерть игрока.
HookEvent("player_death", Event_Death);
}
void Event_Death(Event hEvent, char[] sName, bool bDontBroadcast)
{
int iUserAssister = hEvent.GetInt("assister"), // Получаем UserID ассистера.
iAttacker = GetClientOfUserId(hEvent.GetInt("attacker")), // Истинный убийца (EntityID).
iClient = GetClientOfUserId(hEvent.GetInt("userid")); // Жертва (EntityID).
// Если iUserAssister != 0, т.е. ассистер есть - выполняем следущий код:
if(iUserAssister)
{
int iAssister = GetClientOfUserId(iUserAssister); // Ассистер (EntityID).
// Если ассистер ещё и ослеплял световой жертву:
if(hEvent.GetBool("assistedflash"))
{
PrintToChat(iAssister, "[Assister] Вы помогли %N ослепить и убить игрока %N", iAttacker, iClient);
}
else // Иначе
{
PrintToChat(iAssister, "[Assister] Вы помогли %N убить игрока %N", iAttacker, iClient);
}
}
// Получаем через сколько приград (стен) прошла пуля до жертвы.
int iPenetrateds = hEvent.GetBool("penetrated");
// Если больше нуля, то:
if(iPenetrateds)
{
PrintToChat(iAttacker, "[Penetrated] Вы убили прострелом игрока %N через %d стен.", iClient, iPenetrateds);
}
}
Код:
public void OnPluginStart()
{
HookEvent("player_blind", Event_OnFlashPlayer);
}
void Event_OnFlashPlayer(Event hEvent, char[] sName, bool bDontBroadcast)
{
int iUserAttacker = hEvent.GetInt("attacker"),
iUserClient = hEvent.GetInt("userid");
// Если ослепили сами себя
if(iUserAttacker == iUserClient)
{
SetEntDataFloat(GetClientOfUserId(iUserClient), hEvent.GetInt("flashoffset"), hEvent.GetFloat("blind_duration")*0.5); // 50% анти-флеш.
// SetEntDataFloat(GetClientOfUserId(iUserClient), hEvent.GetInt("flashoffset"), 0.0); // 100% анти-флеш.
}
}
Код:
public void OnPluginStart()
{
HookEvent("hegrenade_detonate", Event_Grenade);
HookEvent("flashbang_detonate", Event_Grenade);
HookEvent("smokegrenade_detonate", Event_Grenade);
HookEvent("smokegrenade_expired", Event_Grenade);
}
void Event_Grenade(Event hEvent, char[] sName, bool bDontBroadcast)
{
LogMessage("\n%s: \nOwner - %N \nEntity - %d \nx - %.3f \ny - %.3f \nz - %.3f", sName, GetClientOfUserId(hEvent.GetInt("userid")), hEvent.GetInt("entityid"), hEvent.GetFloat("x"), hEvent.GetFloat("y"), hEvent.GetFloat("z"));
}
- Требования
- SourceMod 1.8 или 1.9 (stable-версия)
- Установка
- 1) Распакуйте содержимое архива в ftp сервера, кроме файла modevents_modern_list.res
2) Перезапустите сервер или смените карту.