Добро пожаловать в Форум игроков и администраторов серверов

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы на существующие темы, создавать репутацию, получать собственный личный опыт и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
Иконка ресурса

Blind Hook v1.3

Нет прав для скачивания
Поддерживаемые игры
  1. CS:GO
  2. CS:Source
API:
PHP:
/**
* Вызывается, когда световая граната ослепляет игрока.
* Верните Plugin_Continue, чтобы оставить как есть, или же,
* верните большое значение (Plugin_Changed, или Plugin_Handled,
* или Plugin_Stop), чтобы защитить игрока от ослепления.
*
* @param client Индекс игрока, который будет ослеплен.
* @param attacker Индекс игрока, который бросил гранату или -1,
* если игрок более не доступен (к примеру вышел
* из игры, пока граната летела).
* @param inflictor Индекс энтити, объект гранаты.
*/
forward Action CS_OnBlindPlayer(int client, int attacker, int inflictor);

Пример плагина использующего хук:

PHP:
#include <blindhook>

public Action CS_OnBlindPlayer(int client, int attacker, int inflictor)
{
    // Отключить ослепление самого себя
    if (attacker == client)
        return Plugin_Stop;

    return Plugin_Continue;
}


Примечание
Будьте внимательны, индекс нападающего может быть равен -1, если тот покинул игру до взрыва. Лучше использовать энтити гранаты, для определения команды игрока, кинувшего гранату или положения гранаты в пространстве:
PHP:
GetEntProp(inflictor, Prop_Data, "m_iTeamNum");
GetEntPropVector(inflictor, Prop_Data, "m_vecAbsOrigin", origin);


В случае блокирования ослепления игрока, событие 'player_blind' НЕ БУДЕТ вызвано.
Отладка ошибок
"Unable to read blindhook.games.txt" - вероятно файл "addons/sourcemod/gamedata/blindhook.games.txt" отсутствует.
"Failed to lookup RadiusFlash signature." - вероятно расширение устарело и требует обновления (по причине обновления и изменения самой CS:GO). Убедитесь, что используете последнюю версию.
Если ошибка сохраняется, ожидайте обновления. Убедиться, что вы используете правильную версию и проследить за обновлением расширения, вы можете на этой странице:
GitHub@Kailo97/sm-blindhook * Wiki page
Расширение в теории может перевести к падению сервера. Но такое должно происходить только в момент, когда взрывается световая граната. Если это происходит при других условиях, расширение тут не при чем. Исправляется это, обновлением до новой версии, как в предыдущей ошибке.
Стабильность
В теории, используемый метод является довольно не надежным, т.к. требует неизменности целого ряда функций игры. Но с момента выхода первой версии (11.02.19) прошло более двух месяцев, и ни одно из обновлений игры не сломало расширение. Проверка корректности работы, производится в кратчайшие сроки, после каждого обновления.
Принцип работы
GitHub@VSES/SourceEngine2007 * flashbang_projectile.cpp#L116
За ослепление игроков, при взрыве гранаты отвечает функция RadiusFlash. Она производит цикличную итерацию по всем игрокам определяя тех, кто находится в зоне поражения гранаты и применяет к ним несколько эффектов (эффект света, эффект ослепления, эффект оглушения звука и др.). Такая организация функций не позволяет воспользоваться стандартными методами перехвата исполнения функций.
Для получения нужного эффекта, расширение устанавливает патч, встраивающий и перезаписывающий часть кода внутри цикла функции, который перенаправляет поток выполнения функции на функцию внутри расширения. После чего достает необходимые значения переменных из контекста среды и вызывает функцию CS_OnBlindPlayer в SM. Далее в зависимости от возврата функции, или возвращается к тому же месту, где было прерывание или перенаправляет поток в начало цикла для совершения новой итерации (аналог continue инструкции), принудительно пропуская указанного игрока при переборе.
Требования
Sourcemod
Установка
-Выбрать нужную версию для скачивания (Windows или Linux)
-Переместить содержимое архива в папку 'csgo'.
Автор
Gorka
Скачивания
3
Просмотры
31
Первый выпуск
Обновление
Рейтинг
0,00 звёзд Оценок: 0

Другие ресурсы пользователя Gorka

shape1
shape2
shape3
shape4
shape7
shape8
Верх