[РЕШЕНО] Please! Не получателя остановить взрыв гранаты (flashbang)

Svyatoy

Участник
Сообщения
335
Реакции
137
Здравствуйте! Спасибо что заглянули!
Суть проблемы в том, что не получается остановить взрыв гранаты. В данном случае flashbang.
Очень много вариантов искал в интернете, не срабатывает. Решил даже написать чистый плагин, чтобы проверить, не является проблема следствием моего плагина.
P.S. -1 пробовал менять на 99999, не помогло 🤨

Дополняю:
Мне нужно оставить гранату на земле, т.е. не дать ей взорваться и пропасть.
Версия SM: 1.10.0.6458

Буду крайне признателен тем, кто поможет решить мою проблему 🙂
Прилагаю код:

Sourcepawn:
#pragma semicolon 1

#include <sourcemod>
#include <sdkhooks>

public OnEntityCreated(int iEntity, const String:szClassname[])
{
    if(StrEqual(szClassname, "flashbang_projectile"))
    {
        SDKHook(iEntity, SDKHook_Think, Hook_OnEntityThink);

        PrintToChatAll("%i Hook", iEntity);
    }
}

stock void Hook_OnEntityThink(int iEntity)
{
    SetEntProp(iEntity, Prop_Data, "m_nNextThinkTick", -1);

    PrintToChatAll("%i Think", iEntity);
}
 
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
 

Svyatoy

Участник
Сообщения
335
Реакции
137
Спасибо за ответ, но нужно немного не это. Мне нужно оставить гранату на земле, т.е. не дать ей взорваться и пропасть.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748

Svyatoy

Участник
Сообщения
335
Реакции
137
Ищи ответ тут
Большое спасибо за помощь! Удачи Вам в ваших проектах! 😉

Вдруг кому пригодится рабочий вариант:
Sourcepawn:
#pragma semicolon 1

public OnEntityCreated(int iEntity, const String:szClassname[])
{
    if(StrEqual(szClassname, "flashbang_projectile"))
    {
        CreateTimer(0.1, OnGrenadeTimerSetInfinite, EntIndexToEntRef(iEntity), TIMER_FLAG_NO_MAPCHANGE);
    }
}
public Action OnGrenadeTimerSetInfinite(Handle hTimer, int iReference)
{
    // Get the grenade index
    int iGrenade = EntRefToEntIndex(iReference);

    // Check if the grenade is still valid
    if (iGrenade != INVALID_ENT_REFERENCE)
    {
        // Set the grenade as infinite
        SetEntProp(iGrenade, Prop_Data, "m_nNextThinkTick", -1);
    }

    return Plugin_Continue;
}

Вопрос более не актуален!
 
Сверху Снизу