Как выполнить какое либо действие после смерти

lightmetal

Участник
Автор темы
32
3
Версия MoonLoader
.026-beta
Как выполнить какое либо действие сразу после смерти. И проверить вообще, умерли игрок(ты) . Например после смерти выполнить /mn или /lock
 

why ega

РП игрок
Модератор
2,541
2,233
Как выполнить какое либо действие сразу после смерти. И проверить вообще, умерли игрок(ты) . Например после смерти выполнить /mn или /lock

Либо перехватывать исходящий RPC (что более предпочтительно в твоем случае):
Lua:
local sampev = require("samp.events")
function sampev.onSendDeathNotification(reason, killerId)
    print("DEATH:", reason, killerId)
end
 

moreveal

Известный
Проверенный
814
462
Либо перехватывать исходящий RPC (что более предпочтительно в твоем случае):
Lua:
local sampev = require("samp.events")
function sampev.onSendDeathNotification(reason, killerId)
    print("DEATH:", reason, killerId)
end
это работает ток, если у него список киллов справа отображен, не? нужно хукать дамаг и проверять (хп - дамаг) <= 0, наверное
 
  • Грустно
Реакции: qdIbp

Fasz fiatal

Активный
269
54
это работает ток, если у него список киллов справа отображен, не?
этот пакет отправляет тебе, что твой персонаж умер и все
нужно хукать дамаг и проверять (хп - дамаг) <= 0, наверное
смысл? Лишний головняк, который не так уж и нужен, когда есть уже готовые функции для проверки смерти персонажа. И да, можно уже в таком случае сразу поставить проверку на 0 хп
 

moreveal

Известный
Проверенный
814
462
этот пакет отправляет тебе, что твой персонаж умер и все
кк, перепутал с onPlayerDeathNotification
смысл? Лишний головняк, который не так уж и нужен, когда есть уже готовые функции для проверки смерти персонажа. И да, можно уже в таком случае сразу поставить проверку на 0 хп
потому что, насколько я знаю, когда прилетит пакет на нанесение дамага, дамаг по челу еще не нанесён - ни проверка на хп, ни проверка на смерть, не дадут ожидаемого результата: выходит для использования этих готовых функций нужно будет в беск. цикле крутить соответствующую проверку, а чтобы она срабатывала один раз после условия - делать кд на этот айдишник и т.п. - не меньший головняк?
 

Fasz fiatal

Активный
269
54
потому что, насколько я знаю, когда прилетит пакет на нанесение дамага, дамаг по челу еще не нанесён - ни проверка на хп, ни проверка на смерть, не дадут ожидаемого результата: выходит для использования этих готовых функций нужно будет в беск. цикле крутить соответствующую проверку, а чтобы она срабатывала один раз после условия - делать кд на этот айдишник и т.п. - не меньший головняк?
Lua:
while true do
    if isCharDead(1) then
        --действие
    end  
end
написал за минуту от силы)
ну и с проверкой на 0 хп аналогично
 
Последнее редактирование:

moreveal

Известный
Проверенный
814
462

Fasz fiatal

Активный
269
54
и получаем флуд действием, я ж описал почему это хуйня
так не будет флудить:
Lua:
while true do
    if isCharDead(1) then
        --действие
    while isCharDead(1) do wait(100) end
    end
end
но не для всех целей нужно отсутствие этого флуда