-- $Id: bot_Bigdog.lua,v 1.8 2009-04-24 09:52:52 a.abolishin Exp $ --[[ AKEB (c) 01.04.2009 14:08 Бот Предводитель псов Каждые 2% потерянной жизни использует абилку А1 НА ТЕК ПРОТИВНИКА ВМЕСТО УДАРА. Условие зависит от кол-ва призванных псов. Данная абилка исползуется 27 раз за бой. ИНАЧЕ С вероятностью 20% босс ПЕРЕД УДАРОМ применяет абилку А2 НА СЕБЯ Когда у бота остается <=10% жизней он ОДИН РАЗ ЗА БОЙ применяет абилку А3 НА ТЕКУЩЕГО ПРОТИВНИКА Рандомный удар Скрипт: bot_Bigdog.lua Управляющая функция: bot_Bigdog --]] function bot_Bigdog_r(A,N,NMAX,R1,R2, maxLvl) local bot = PERS(my.persPtr) bot_BigdogInit(bot.id) local persListMyOppTeam = aux.getPersList(aux.oppTeamNum(),true,nil) -- всем живым противникам for _,persPtr in pairs(persListMyOppTeam) do if PERS_LEVEL(persPtr) >= maxLvl then -- с левелом >= maxLvl: 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_BigdogTable[bot.id]+1)*((N*bot.hpMax)/100)) <= bot.hpMax) and (bot_BigdogTable[bot.id] < NMAX) then aux.useEffect({artId = A[1]},my.oppPtr) -- кастуем "Маг удар главаря псов" aux.useEffect({artId = A[4]}) -- призываем псину bot_BigdogTable[bot.id] = bot_BigdogTable[bot.id] + 1 -- считаем псину else -- в противном случае aux.useEffect({artId = A[2]},my.persPtr,R1) -- кастуем "Ярость предводителя псов" с шансом R1 if bot_BigdogTable2[bot.id] < 1 and G <= R2 then -- и если HP/MAXHP < R2 и абилка "Проклятье предводителя" не скастована aux.useEffect({artId = A[3]},my.oppPtr) -- кастуем bot_BigdogTable2[bot.id] = bot_BigdogTable2[bot.id] + 1 -- и запоминаем end ATTACK(math.random(3)) -- атакуем противника end end function bot_BigdogInit(botId) if botId == nil then return; end if bot_BigdogTable == nil then bot_BigdogTable={} end if bot_BigdogTable[botId] == nil then bot_BigdogTable[botId]= 0 end if bot_BigdogTable2 == nil then bot_BigdogTable2={} end if bot_BigdogTable2[botId] == nil then bot_BigdogTable2[botId]= 0 end end -------------------------------------------------------------------------------------------------------------- function bot_Bigdog_t() return bot_Bigdog_r({4228,4229,4230,4282,4189,4190,4188},2,27,0.20,0.10, 6) end function bot_Bigdog() return bot_Bigdog_r({4228,4229,4230,4282,4189,4190,4368},2,27,0.20,0.10, 6) end