--[[ a.abolishin Игураон-предводитель. ]] function bot_IguraonLeader_r(A, demotA, C) local bot = PERS(my.persPtr) -- состояние if not bot_IguraonLeaderState then bot_IguraonLeaderState = {} end if not bot_IguraonLeaderState[bot.id] then bot_IguraonLeaderState[bot.id] = { ["absorb"] = false } end -- ослабление local oppList = aux.getPersList(aux.oppTeamNum(), true, nil, false) for _, persPtr in pairs(oppList) do -- проходим по всем local lvlDiff = math.min(PERS_LEVEL(persPtr) - C[5], #demotA) if lvlDiff > 0 then local art = demotA[lvlDiff] if art and (#aux.activeEffects(persPtr, {artId = art}) < 1) then aux.useEffect({artId = art}, persPtr) end end end -- проверка на стан if PERS_ISSTUNNED(my.persPtr) then return end -- если нету абсорба if #aux.activeEffects(my.persPtr, {artId = A[1]}) < 1 then -- если начало боя или смена стейта - кидаем абсорб if not bot_IguraonLeaderState[bot.id].absorb then bot_IguraonLeaderState[bot.id].absorb = true aux.useEffect({artId = A[1]}) else -- если весь абсорб сбили, то пора менять стейт aux.useEffect({artId = A[2]}) bot_IguraonLeaderState[bot.id].absorb = false return end end -- если наш статус неактивный, ничего не делаем if my.status ~= FS_PS_ACTIVE then return end -- раз мы тут значит мы можем атаковать в полную мощь local hpC = bot.hp / bot.hpMax -- игрок лечится, когда бот помирает? if hpC < C[2] then if (PERS_HP(my.oppPtr) > C[4]) and (#aux.activeEffects(my.oppPtr, {grpId = C[3]}) > 0) then aux.useEffect({artId = A[4]}, my.oppPtr) end end -- небольшой шанс быть постаненным if (not PERS_ISSTUNNED(my.oppPtr)) and aux.randRoll(C[1]) then aux.useEffect({artId = A[3]}, my.oppPtr) else -- физ атака ATTACK(math.random(3)) end end function bot_IguraonLeader() -- абсорб (активная фаза), стан на себя (пассивная фаза), стан на оппа, дроп лечилок local A = {6825, 6824, 6826, 6827} -- демотивация local demotA = {6828, 6829, 6830, 6831, 6832, 6832, 6833, 6833} -- вероятность стана на оппа, %порог жизни у себя, группа "Эли жизни", порог жизни у игрока, -- максимально допустимый уровень игрока local C = {0.05, 0.15, 24, 200, 7} bot_IguraonLeader_r(A, demotA, C) end function bot_IguraonLeader_t() -- абсорб (активная фаза), стан на себя (пассивная фаза), стан на оппа, дроп лечилок local A = {6445, 6444, 6446, 6447} -- демотивация local demotA = {5026, 5028, 5030, 5032, 5034, 5034, 5036, 5036} -- вероятность стана на оппа, %порог жизни у себя, группа "Эли жизни", порог жизни у игрока, -- максимально допустимый уровень игрока local C = {0.05, 0.15, 24, 200, 7} bot_IguraonLeader_r(A, demotA, C) end