--[[ a.abolishin Каждые 2% потерянной жизни использует абилки А1,А2 (призыв псов и ослабление противника). Как только умирает призванная собака, цербер заряжается абилкой А3 (вампиризм). Когда у бота остается <=10% жизней он один раз за бой применяет абилку А4 на текущего противника. Ослабляет всех >=9 левела. Атакует. ]] function bot_Cerberus_r(A, R, C) local bot = PERS(my.persPtr) if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный return -- больше ничего не делаем end if bot_CerberusTable == nil then bot_CerberusTable = {} end if bot_CerberusTable[bot.id] == nil then bot_CerberusTable[bot.id] = 0 end if bot_CerberusTable2 == nil then bot_CerberusTable2 = {} end if bot_CerberusTable2[bot.id] == nil then bot_CerberusTable2[bot.id] = 0 end if bot_CerberusTable3 == nil then bot_CerberusTable3 = {} end if bot_CerberusTable3[bot.id] == nil then bot_CerberusTable3[bot.id] = 0 end local persListMyOppTeam = aux.getPersList(aux.oppTeamNum(), true, nil) -- всем живым противникам for _, persPtr in pairs(persListMyOppTeam) do if PERS_LEVEL(persPtr) >= C[3] then -- с левелом >= С3: if PERS_ISBOT(persPtr) then -- 1. ботам if #aux.activeEffects(persPtr, {artId = A[7]}) < 1 then -- без абилки A[7] aux.useEffect({artId = A[7]}, persPtr) -- кастануть абилку A[7] end else -- 2. хуманам if #aux.activeEffects(persPtr, {artId = A[5]}) < 1 then -- без абилки A[5] aux.useEffect({artId = A[5]}, persPtr) -- кастануть абилку A[5] end if #aux.activeEffects(persPtr, {artId = A[6]}) < 1 then -- без абилки aux.useEffect({artId = A[6]}, persPtr) -- кастануть абилку А[6] end end end end if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный return -- больше ничего не делаем end local G = bot.hp/bot.hpMax -- коэффициент здоровья -- если мы не призвали достаточное кол-во псов, то призываем еще if (bot.hp + ((bot_CerberusTable[bot.id] + 1) * ((C[1] * bot.hpMax) / 100)) <= bot.hpMax) and (bot_CerberusTable[bot.id] < C[2]) then aux.useEffect({artId = A[1]}) -- призываем псину aux.useEffect({artId = A[2]}, my.oppPtr) -- ослабляем противника bot_CerberusTable[bot.id] = bot_CerberusTable[bot.id] + 1 -- считаем псину end local deadList = aux.getPersList(my.teamNum, true, true, true) if deadList then local c = 0 for _, persPtr in pairs(deadList) do local pers = PERS(persPtr) if pers.artId == C[4] then c = c + 1 end end if c < bot_CerberusTable3[bot.id] then aux.useEffect({artId = A[3]}) -- ярость Цербера end bot_CerberusTable3[bot.id] = c end if (G <= R[2]) and (bot_CerberusTable2[bot.id] < 1) then -- если HP/MAXHP < R2 и мы не кастовали проклятие aux.useEffect({artId = A[4]}, my.oppPtr) -- кастуем проклятье bot_CerberusTable2[bot.id] = bot_CerberusTable2[bot.id] + 1 -- и запоминаем end ATTACK(math.random(3)) -- атакуем противника end function bot_Cerberus_t() local A = {4407, 4416, 4406, 4410, 4408, 4409, 4411} local R = {0.2, 0.1} local C = {2, 27, 9, 24} return bot_Cerberus_r(A, R, C) end function bot_Cerberus() local A = {4412, 4432, 4413, 4414, 4416, 4417, 4418} local R = {0.2, 0.1} local C = {2, 27, 9, 809} return bot_Cerberus_r(A, R, C) end