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

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

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). Убедитесь, что используете последнюю версию.
Если ошибка сохраняется, ожидайте обновления. Убедиться, что вы используете правильную версию и проследить за обновлением расширения, вы можете на этой странице:
[email protected]/sm-blindhook * Wiki page
Расширение в теории может перевести к падению сервера. Но такое должно происходить только в момент, когда взрывается световая граната. Если это происходит при других условиях, расширение тут не при чем. Исправляется это, обновлением до новой версии, как в предыдущей ошибке.
Стабильность
В теории, используемый метод является довольно не надежным, т.к. требует неизменности целого ряда функций игры. Но с момента выхода первой версии (11.02.19) прошло более двух месяцев, и ни одно из обновлений игры не сломало расширение. Проверка корректности работы, производится в кратчайшие сроки, после каждого обновления.
Принцип работы
[email protected]/SourceEngine2007 * flashbang_projectile.cpp#L116
За ослепление игроков, при взрыве гранаты отвечает функция RadiusFlash. Она производит цикличную итерацию по всем игрокам определяя тех, кто находится в зоне поражения гранаты и применяет к ним несколько эффектов (эффект света, эффект ослепления, эффект оглушения звука и др.). Такая организация функций не позволяет воспользоваться стандартными методами перехвата исполнения функций.
Для получения нужного эффекта, расширение устанавливает патч, встраивающий и перезаписывающий часть кода внутри цикла функции, который перенаправляет поток выполнения функции на функцию внутри расширения. После чего достает необходимые значения переменных из контекста среды и вызывает функцию CS_OnBlindPlayer в SM. Далее в зависимости от возврата функции, или возвращается к тому же месту, где было прерывание или перенаправляет поток в начало цикла для совершения новой итерации (аналог continue инструкции), принудительно пропуская указанного игрока при переборе.
Требования
Sourcemod
Установка
-Выбрать нужную версию для скачивания (Windows или Linux)
-Переместить содержимое архива в папку 'csgo'.
Автор
Gorka
Скачивания
6
Просмотры
202
Первый выпуск
Обновление
Рейтинг
0,00 звёзд Оценок: 0

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

  • [VIP] Crosshair AWP
    Модуль [VIP] Crosshair AWP
    Добавляет прицел на AWP для VIP игроков
  • [VIP] Sticky Bomb
    Модуль [VIP] Sticky Bomb
    Данный плагин позволяет випам устанавливать бомбы на любые поверхности.
  • [VIP] Chat
    Модуль [VIP] Chat
    Добавляет для VIP-игроков возможность смены цвета сообщений, ника, префиксов.
  • [VIP] HP
    Модуль [VIP] HP
    Добавляет в VIP функции установки дополнительных единиц здоровья.
  • [VIP] Tag
    Модуль [VIP] Tag
    Позволяет выдавать VIP-игрокам тег в TAB.
shape1
shape2
shape3
shape4
shape7
shape8
Верх