Аналог /hp

Статус
В этой теме нельзя размещать новые ответы.

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
подскажите как отловить когда убит от бомбы?
 

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
819
Симпатии
388
Пол
Мужской
BeasT, killer != inflictor
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
Код:
    /*
    * Description:      -
    * Member type:      bool
    * Get params:       get_member(index, member);
    * Set params:       set_member(index, member, value);
    */
    m_bKilledByBomb,
 

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
819
Симпатии
388
Пол
Мужской
BalbuR, ну можно и такое
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
должно быть так верно?
PHP:
if(atacer == victim || get_member(victim, m_bKilledByBomb)
return
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
ну пока нет логов вторую карту.
но до того как обновил, чувак от бомбы умер и лога не было..
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
может умер с гранаты, а не с бомбы?
у гранаты и бомбы вроде как один и тот же класснейм, но есть различия в значении оффсета
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Не знаю, но лог снова появился с той же ошибкой
get_user_origin(killerEntIndex, g_Origin1)

Run time error 10: native error (native "get_user_origin")
[0] All_Stats.sma::OnDeathNotice (line 78)
Invalid player id 0
[DOUBLEPOST=1508177559][/DOUBLEPOST]
PHP:
public OnDeathNotice(victimEntIndex, killerEntIndex, inflictorEntIndex)
{
   new g_Origin1[3], g_Origin2[3]

    get_user_origin(killerEntIndex, g_Origin1)
    get_user_origin(victimEntIndex, g_Origin2)
    
    g_Distance[victimEntIndex] = get_distance(g_Origin1, g_Origin2) / modMeter
}
 

sonyx

Заблокированные
Регистрация
8 Июн 2017
Сообщения
488
Симпатии
242
Invalid player id 0
0 айди присваивается серверу.
Соответственно умер от "руки сервера".
Изначально подход для фильтрации инфликтора выбран неверный, нужно было использовать вариант Ивана
Аналог /hp
В вашем случае фильтровать нужно не только бомбу, но и другие ентити. Дабы все их не перебирать в условиях, сравните id клилера с инфликтором.
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
одни нули остались после проверок, до этого и другие ид писало
if(atacer == victim || get_member(victim, m_bKilledByBomb)
return

Сейчас еще добавлю проверку killer != inflictor
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
и опять тоже самое

PHP:
public OnDeathNotice(victimEntIndex, killerEntIndex, inflictorEntIndex)
{
    new g_Origin1[3], g_Origin2[3]
    
    if(killerEntIndex == victimEntIndex || get_member(victimEntIndex, m_bKilledByBomb) || killerEntIndex != inflictorEntIndex)
    {
        return
    }
    
    get_user_origin(killerEntIndex, g_Origin1)
    get_user_origin(victimEntIndex, g_Origin2)
    
    g_Distance[victimEntIndex] = get_distance(g_Origin1, g_Origin2) / modMeter
}
Invalid player id 0
Run time error 10: native error (native "get_user_origin")
[0] All_Stats.sma::OnDeathNotice (line 82)

Invalid player id 291
Run time error 10: native error (native "get_user_origin")
[0] All_Stats.sma::OnDeathNotice (line 82)
[DOUBLEPOST=1508250077][/DOUBLEPOST]Весь день не было и вот появилось сразу штук 15-20
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
@BeasT, killer != inflictor
самый нормальный вариант
можно конечно еще гранатку выловить, к примеру,
и владельца бомбы

суть в чем: ты ловишь ошибку когда игрок: a)Разбивается, b)Умирает от гранаты, c)Умирает от триггера или прочей лабуды. В общем, во всех случаях когда attacker не является игроком
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
У гранаты же есть владелец, разве она должна вызывать ошибку?
Мне вообще тупо так оставить?
Код:
if(killer != inflictor)
return
BalbuR можно конечно еще гранатку выловить, к примеру,
и владельца бомбы
Это для чего?

Сейчас не сильно вхезжаю
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
PHP:
public OnDeathNotice(victimEntIndex, killerEntIndex, inflictorEntIndex)
{
    new g_Origin1[3], g_Origin2[3]
    
    if(!is_user_alive(killerEntIndex) || killerEntIndex == victimEntIndex)
    {
        return
    }
    
    get_user_origin(killerEntIndex, g_Origin1)
    get_user_origin(victimEntIndex, g_Origin2)
    
    g_Distance[victimEntIndex] = get_distance(g_Origin1, g_Origin2) / modMeter
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу