-- $Id: bot_Uborg.lua,v 1.11 2009-04-15 08:22:42 vadim_b Exp $ --[[ AKEB (c) 16.05.2008 18:26 Бот Уборг G - доля оставшейся жизнь у бота, от 1 до 0 Перед ударом. Применить абилку А с вероятностью 5% на случайного противника. Если на боте лежит абилка B и она применялась более 3 минут назад, то применить абилку D на себя 5 раз Если абилка B применлась более трех минут назад или не применялась вообще, то применить абилку B на себя Если абилка С не применялась, а G < 40%, применить абилку С на текущего противника СМЫСЛ: А. С 5% вероятностью травилка АоЕ на 5 случайных противников B. Подготовка к вызову подмоги. Кастуется каждые 3 минуты и длиться 3 минуты. D. Вызов подмоги. Делается, если игроки не успели снять B и сбрасывает B C. Дебаф АоЕ на всех поротивников АПДЕЙТ G - доля оставшейся жизнь у бота, от 1 до 0 T – период применения Зова, T = max(180 – 160/0,9*(1-G) ; 20) В ЛЮБОЕ ВРЕМЯ Если на боте лежит абилка B и она применялась более T назад, то применить абилку D на себя 5 раз Если на боте нет абилки B, то применить абилку B на себя ПЕРЕД УДАРОМ Применить абилку А с вероятностью 5% на случайного противника. Если абилка С не применялась, а G < 40%, применить абилку С на текущего противника СМЫСЛ ИЗМЕНЕНИЙ 1. Вместо фиксированного Т = 3 мин вводится T, зависящее от G 2. Абилка B накладывается не обязательно по прошествии Т с предыдущего наложения, но вообще всегда, когда ее нет на боте, ДАЖЕ НЕ В СВОЙ ХОД. ДЛЯ ТЕСТА: А=169, B=D=167, C=161 Скрипт: bot_Bug494.lua Управляющая функция: bot_Bug494 --]] function bot_Uborg_r(artikulId1,artikulId2,artikulId3,artikulId4) local bot = PERS(my.persPtr) bot_UborgInitTable(bot.id) if #aux.activeEffects(my.persPtr,{artId = artikulId2}) < 1 then aux.useEffect({artId = artikulId2}, my.persPtr) bot_UborgTime[bot.id] = my.stime end local G = bot.hp/bot.hpMax local T = (180 - ((160/0.9)*(1-G))) if T < 20 then T = 20 end if #aux.activeEffects(my.persPtr,{artId = artikulId2}) > 0 and bot_UborgTime[bot.id] + T <= my.stime then for _=1,5 do aux.useEffect({artId = artikulId4}, my.persPtr) end end if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный, ничего не делаем return end aux.useEffect({artId = artikulId1}, my.oppPtr,0.05) if G < 0.4 and bot_UborgTable[bot.id] == 0 then local status = aux.useEffect({artId = artikulId3}, my.oppPtr) if status == 0 then bot_UborgTable[bot.id] = 1 end end ATTACK(math.random(3)) end function bot_Uborg_t() return bot_Uborg_r(169,167,161,167) end function bot_Uborg() return bot_Uborg_r(3109,3110,3282,3108) end function bot_UborgInitTable(botId) if bot_UborgTime == nil then bot_UborgTime = {} end if bot_UborgTime[botId] == nil then bot_UborgTime[botId] = 0 end if bot_UborgTable == nil then bot_UborgTable = {} end if bot_UborgTable[botId] == nil then bot_UborgTable[botId] = 0 end end