SDKHook SDKHook_OnTakeDamage

Тема в разделе "Программирование / Скриптинг", создана пользователем Игорь Охремчук, 25 апр 2012.

  1. Игорь Охремчук

    Игорь Охремчук Админ uaplayer.com

    Сообщения:
    243
    Симпатии:
    366
    Вобщем, ребят, такая мулька. Есть ентити, которая взрывается. Через нет проп ставлю овнера и вот собсна сам хук
    PHP:
    public Action:OnTakeClientDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)
    {
        if(
    attacker MaxClients)
        {
            if(
    IsValidEdict(attacker))
            {
                
    decl String:classname[64];
                
    GetEdictClassname(attackerclassnamesizeof(classname));
                if(
    StrEqual(classname"Имя класса ставлю своё тоже через нет проп"false))
                {
                    if(
    ZR_IsClientZombie(victim))
                    {
                        
    inflictor attacker;
                        
    attacker GetEntPropEnt(attackerProp_Send"m_hOwnerEntity");
                        
                        return 
    Plugin_Changed;
                    }
                    else
                        return 
    Plugin_Handled;
                }
            }
        }
        
        return 
    Plugin_Continue;
    }
    Мне требуется изменить inflictor и attacker и вернуть Plugin_Changed, как и видно по коду.
    Проблема в том, что inflictor присваивается, а attacker по неведомой мне причине нет. Кто с такой проблемой сталкивался помогите, ребят)
     
  2. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    по отдельности пробовал?)
    было такого типа у меня))
     
  3. Игорь Охремчук

    Игорь Охремчук Админ uaplayer.com

    Сообщения:
    243
    Симпатии:
    366
    Да уже решил вопрос. Убивал ентити при взрыве, и GetEntPropEnt(attacker, Prop_Send, "m_hOwnerEntity") возвращал -1 просто, так как энтити уже не было)