-- $Id: bot_Bug494.lua,v 1.16 2010-02-26 15:43:30 a.abolishin Exp $ --[[ AKEB (c) 16.05.2008 18:26 a.abolishin Жук 494 G = hp/hp_max Перед ударом если противник в блоке, использовать (2395) если G < 0.6 и я не накладывал ни разу абилку, наложить на противнка абилку (2106) если G < 0.1 и я накладывал 1 раз абилку, наложить на противнка абилку (2106) ВМЕСТО удара разыгрывется событие: - с вероятностью 75% делается рандомный удар - с вероятностью 25% Делается следующее: Применяется абилка А1 на текущего противника. Если до этого суммарное количество абилок А1 и A2 на этом противнике было больше или равно N-1, то на него сразу же применяется абилка B. СМЫСЛ: Абилки А1 и А2 – ударные заклинания жуков и Эгнума. После применения они оставляют эффект, который не вредит, но накапливается. Когда количество накопленных эффектов достигает N, у игрока возникает паралич легких (абилка B). Скрипт: bot_Bug494.lua Управляющая функция: bot_Bug494 --]] if not bot_Bug494_State then bot_Bug494_State = {} end function bot_Bug494_r(artikulId1,artikulId2,artikulId3,artikulId4,artikulId5,artikulId6,artikulId7,artikulId8,p1,p2,p3,p4,N) if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный, ничего не делаем return end local bot = PERS(my.persPtr) local G = bot.hp/bot.hpMax if not bot_Bug494_State[bot.id] then bot_Bug494_State[bot.id] = {} bot_Bug494_State[bot.id].used1 = 0 bot_Bug494_State[bot.id].used2 = 0 end if PERS_ISDEFENDED(my.oppPtr) then aux.useEffect({artId = artikulId1}) end if G < p1 and bot_Bug494_State[bot.id].used1 < 1 then local status = aux.useEffect({artId = artikulId2}, my.oppPtr) if status == 0 then bot_Bug494_State[bot.id].used1 = 1 end end if G < p2 and bot_Bug494_State[bot.id].used1 < 2 then local status = aux.useEffect({artId = artikulId3}, my.oppPtr) if status == 0 then bot_Bug494_State[bot.id].used1 = 2 end end if p4 > 0 and artikulId7 > 0 and G < p4 and bot_Bug494_State[bot.id].used2 < 1 then local status = aux.useEffect({artId = artikulId7},my.oppPtr) if status == 0 then bot_Bug494_State[bot.id].used2 = 1 end end if aux.randRoll(p3) then local effCount = 0 for _,effPtr in pairs(EFF_LIST(my.oppPtr)) do local eff = EFF(effPtr) if eff.active and ((eff.artId == artikulId4) or (eff.artId == artikulId5) or (eff.artId == artikulId8)) then effCount = effCount + 1 end end aux.useEffect({artId = artikulId4}, my.oppPtr) if effCount >= N then aux.useEffect({artId = artikulId6}, my.oppPtr) end else ATTACK(math.random(3)) end end function bot_Bug494_t() bot_Bug494_r(2395,2106,2106,2106,2106,2106,3815,3912,0.6,0.1,0.25,0.4,3) end function bot_Bug494() bot_Bug494_r(2395,2106,2106,3445,3444,3446,0,3912,0.6,0.1,0.08,0.4,3) end function bot_Bug_do() bot_Bug494_r(3442,3443,3443,3445,3444,3446,0,3912,0.6,0.1,0.25,0.4,3) end function bot_Bug_ho() bot_Bug494_r(3549,3548,3548,3445,3444,3446,0,3912,0.6,0.1,0.25,0.4,3) end function bot_Bug_mor() bot_Bug494_r(2395,2106,2106,2106,2106,2106,3815,3912,0.6,0.1,0.25,0.4,3) end