Довольно часто бот перестаёт драться, от чего перс умирает. Иногда такое бывает при попытке лута трупа и нападении другого моба, иногда при попытке портануться в таверну. Иногда бот просто втупляет. У меня все персы одеты хорошо, так что хп никогда ниже 80% не падает. А если падает, значит - проблемы.
За неимением нормальной реакции, сделал аддон, который виспает себе при низком уровне здоровья. Увидав сообщение в аське, можно подскочить и спасти персонажа.
-- следующие переменные можно изменить по своему вкусу
local HP_level1 = 50;-- первый уровень (%), на котором пора беспокоиться
local HP_level2 = 15;-- второй уровень (%), на котором пора поторапливаться
local repcount = 7;-- общее кол-во повторов, чтобы не засирать чат
local repeat1 = 10;-- период повтора на первом уровне (секунд)
local repeat2 = 5;-- период повтора на втором уровне (секунд)
local message1 = "Меня убивают !";
local message2 = "МНЕ ПИ3ДЕЦ !!!";
-- дальше ничего менять не нужно
local danger = 0;
local repeats = 0;
local hprepeat = repeat1;
local timeofmsg = GetTime();
local frame = CreateFrame("FRAME", "HPWISPER");
local function _onUpdate()
local myname = UnitName("player");
local hp = UnitHealth("player") * 100 / UnitHealthMax("player");
if hp > HP_level1+1 then
danger=0
timeofmsg = 0;
repeats = 0;
else
if hp < HP_level1 then
if danger==0 then danger=1; end;
hprepeat = repeat1;
end;
if hp < HP_level2 then
if danger==1 then
danger=2;
timeofmsg = 0;
end;
hprepeat = repeat2;
end;
if (danger > 0) and (repeats < repcount) and (GetTime() - timeofmsg >= hprepeat) then
repeats = repeats + 1;
timeofmsg = GetTime();
if hp < HP_level2 then
SendChatMessage(message2, "WHISPER", nil, myname)
else
SendChatMessage(message1, "WHISPER", nil, myname)
end;
end;
end;
end;
frame:SetScript("OnUpdate", _onUpdate);
В коде есть комментарии, вроде всё должно быть понятно. Настройте, как нужно. Могут быть слишком частые виспы в тот момент, когда здоровье колеблется на уровне HP_level1, то опускаясь, то поднимаясь за счёт самохила. Я чуть увеличил порог выхода, чтобы снизить вероятность таких случаев.
Во вложении готовый аддон.