Иконка ресурса

Remove defuse kits 1.0

babka68

Участник
Сообщения
2,124
Реакции
956
  • Автор ресурса
  • #1
babka68 добавил(а) новый ресурс:

Remove defuse kits - Удалить комплекты для обезвреживания после смерти игрока.

Удалить комплекты для обезвреживания после смерти игрока.
Посмотреть вложение 116490

Обновление: 1.0
- Релиз

- Контакты для связи при возникновении проблемы/предложений:
1. Discord babka68#4072
2. Telegram babka68
3. Вконтакте ВКонтакте | ВКонтакте
4. WhatsApp: +7 (953) 124-71-33

Узнать больше об этом ресурсе...
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
Я бы попробовал сделать от так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

int m_bHasDefuser;

public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
    if((m_bHasDefuser = FindSendPropInfo("CCSPlayer", "m_bHasDefuser")) < 1)
    {
        FormatEx(error, err_max, "Can't find offset 'CCSPlayer::m_bHasDefuser'");
        return APLRes_Failure;
    }

    return APLRes_Success;
}

public void OnPluginStart()
{
    HookEvent("player_death", Event_Player, EventHookMode_Pre);
    HookEvent("player_spawn", Event_Player);
}

public void Event_Player(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(client && IsClientInGame(client) && GetClientTeam(client) == 3)
        SetEntData(client, m_bHasDefuser, view_as<int>(name[7] == 's'), 1, true);
}
Плагин должен отбирать набор разминирования ещё до того, как он выпадет после смерти.
Хотя работоспособность не проверял.

UPD И будет выдавать его при спавне.
 
Последнее редактирование:

LeXon

Участник
Сообщения
317
Реакции
29
@Grey83, они спавнятся даже на тех картах где их быть не должно, и бот умирая усыпает ими карту, без удаления.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@LeXon, использовался самый свежий код и моего сообщения выше?
Предыдущий был с ошибкой (параметры не в том порядке были прописаны до исправления) и как раз мог описанное сделать.
 

LeXon

Участник
Сообщения
317
Реакции
29
@Grey83, да, вчера копировал вечером. Я думаю выдавать щипцы вообще не нужно, они появляются у ботов только на тех картах, на которых есть закладка бомбы + 1 раунд типа gungame, и скорее всего часто в том случае когда карта не подготовлена для определённого режима игры а просто переименована, т.к. бывает режим gg с закладкой бомбы но не обязательно одним раундом. В моём случае я переименовал карту в fy_pool_day в gg_fy_pool_day ну и соответственно получил такую особенность, для которой потребовался дополнительный плагин.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@LeXon, можно добавить проверку при старте карты на наличие режима установки бомбы.
 

DarkerZ

Участник
Сообщения
395
Реакции
175
@Grey83, да, вчера копировал вечером. Я думаю выдавать щипцы вообще не нужно, они появляются у ботов только на тех картах, на которых есть закладка бомбы + 1 раунд типа gungame, и скорее всего часто в том случае когда карта не подготовлена для определённого режима игры а просто переименована, т.к. бывает режим gg с закладкой бомбы но не обязательно одним раундом. В моём случае я переименовал карту в fy_pool_day в gg_fy_pool_day ну и соответственно получил такую особенность, для которой потребовался дополнительный плагин.
А может просто через стриппер глобал фильтром вырезать энтитю бомбплейса? Типа если некуда закладывать бомбу - бомба не выдаëтся, впринципе как и закупка щипцов
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
через стриппер глобал фильтром вырезать энтитю бомбплейса?
Можно ещё проще: сделать GameRules_SetProp("m_bMapHasBombTarget", 0); (возможно каждый раунд надо будет повторять, не эксперементировал восстанавливается ли значение в следующем раунде).
 

FuckYeah

Челик
Сообщения
474
Реакции
57
Я бы попробовал сделать от так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

int m_bHasDefuser;

public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
    if((m_bHasDefuser = FindSendPropInfo("CCSPlayer", "m_bHasDefuser")) < 1)
    {
        FormatEx(error, err_max, "Can't find offset 'CCSPlayer::m_bHasDefuser'");
        return APLRes_Failure;
    }

    return APLRes_Success;
}

public void OnPluginStart()
{
    HookEvent("player_death", Event_Player, EventHookMode_Pre);
    HookEvent("player_spawn", Event_Player);
}

public void Event_Player(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(client && IsClientInGame(client) && GetClientTeam(client) == 3)
        SetEntData(client, m_bHasDefuser, view_as<int>(name[7] == 's'), 1, true);
}
Плагин должен отбирать набор разминирования ещё до того, как он выпадет после смерти.
Хотя работоспособность не проверял.

UPD И будет выдавать его при спавне.
v34, при смерти не удаляет дефюза и они валяются на земле. при спавне выдает, все ок
 
Сверху Снизу