-- $Id: bot_GeneralUyarmo.lua,v 1.13 2010-02-26 15:43:30 a.abolishin Exp $ --[[ AKEB (c) 12.08.2008 12:46 a.abolishin Генерал Уйармо L - количество потерянной ботом жизни с начала боя Каждый ход Если количество уже примененных абилок (А), меньше, чем L/h1, применить абилку (А) Если количество уже примененных абилок (B), меньше, чем L/h2, применить абилку (B) ВМЕСТО удара разыгрывется событие: - с вероятностью 60% делается рандомный удар - с вероятностью 20% и при наличии 50 маны применяется абилка (C) на рандомного противника, иначе делается рандомный удар - с вероятностью 20% и при наличии 60 маны применяется абилка (D) на текущего противника, иначе делается рандомный удар ВМЕСТО удара разыгрывется событие: - с вероятностью 80% делается рандомный удар - с вероятностью 20% и при наличии 50 маны применяется абилка (C) на рандомного противника, иначе делается рандомный удар СМЫСЛ: На каждые h1 потеряной жизни бот вызывает на помощь Гунгла-Лейтенанта На каждые h2 потеряной жизни бот вызывает на помощь Гунгла-Чародея С вероятностью 20% бот вместо удара использует заклинание удаленнго обстрела. Для теста: А = 2293 B = 2293 C = 169 h1 = 200 h2 = 200 Скрипт: bot_GeneralUyarmo.lua Управляющая функция: bot_GeneralUyarmo bot_GeneralUyarmo_t --]] if not bot_GeneralUyarmo_State then bot_GeneralUyarmo_State = {} end function bot_GeneralUyarmo_r(artikulId1,artikulId2,artikulId3,artikulId4,h1,h2,roll1,mp1,roll2,mp2) if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный, ничего не делаем return end local bot = PERS(my.persPtr) local L = bot.hpMax - bot.hp if not bot_GeneralUyarmo_State[bot.id] then bot_GeneralUyarmo_State[bot.id] = {} bot_GeneralUyarmo_State[bot.id].used1 = 0 bot_GeneralUyarmo_State[bot.id].used2 = 0 end if bot_GeneralUyarmo_State[bot.id].used1+1 < L/h1 then local status = aux.useEffect({artId = artikulId1}) if status == 0 then bot_GeneralUyarmo_State[bot.id].used1 = bot_GeneralUyarmo_State[bot.id].used1 + 1 end end if bot_GeneralUyarmo_State[bot.id].used2+1 < L/h2 then local status = aux.useEffect({artId = artikulId2}) if status == 0 then bot_GeneralUyarmo_State[bot.id].used2 = bot_GeneralUyarmo_State[bot.id].used2 + 1 end end local r = math.random() if (r <= roll1) and (bot.mp >= mp1) then local perses = PERS_LIST(aux.oppTeamNum(), true) local persPtr = aux.getRandVal(perses) aux.useEffect({artId = artikulId3}, persPtr) elseif (r <= (roll1+roll2)) and (bot.mp >= mp2) then aux.useEffect({artId = artikulId4}, my.oppPtr) else ATTACK(math.random(3)) end end function bot_GeneralUyarmo() bot_GeneralUyarmo_r(2824,2825,2827,3403,2500,3600,0.2,50,0.2,60) end function bot_GeneralUyarmo_t() bot_GeneralUyarmo_r(2293,2293,169,161,200,200,0.2,50,0.2,60) end function bot_GeneralUyarmo_chaos() bot_GeneralUyarmo_r(2824,2825,2827,3720,2500,3600,0.2,50,0.2,60) end