-- $Id: bot_Bolotnik.lua,v 1.4 2009-04-15 08:22:23 vadim_b Exp $ --[[ AKEB (c) 21.08.2008 2:46 Бот Болотник G - доля оставшейся жизнь у бота, от 1 до 0 Перед ударом. Если абилка А применялась меньше, чем 19 - G*20 раз, то применить абилку А на себя. Если абилка B применялась меньше, чем количество мертвых игроков противника, применить абилку B 10 раз на себя. Посчитать это за одно применение. Если абилка С применялась 0 раз, а G < 50%, применить абилку С на себя Если абилка С применялась 1 раз, а G < 10%, применить абилку C на себя Применить абилку D на текущего противника c вероятностью 5% Вместо удара. Если противник в блоке, применить абилку E, иначе ударить. СМЫСЛ: А. На каждые 5% жизни бота он выпускает 1 болотного паука. B. Каждый умерший оборачивается клубком фицилий из 10 штук. C. На 50% и 10% процентах он вешает на себя благо(баф 2), которое хиляет его до максимума если его не рассеять. D. С 5% вероятностью он делает фуллаое дебаф (баф 3), который оборачивает нанесенный противником урон против их самих. E. На удар в блоке он реагирует 3x ударом (баф 1) ДЛЯ ТЕСТА: А=B=C=167, D=161, E=169 Скрипт: bot_Bolotnik.lua Управляющая функция: bot_Bolotnik bot_Bolotnik_t --]] function bot_Bolotnik_r(artikulId1,artikulId2,artikulId3,artikulId4,artikulId5) if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный, ничего не делаем return end local bot = PERS(my.persPtr) local G = bot.hp/bot.hpMax bot_BolotnikInitArtikulUsed(bot.id) bot_BolotnikInitArtikulUsed2(bot.id) bot_BolotnikInitArtikulUsed3(bot.id) local a = math.modf (G*20) local b = math.modf (bot_BolotnikArtikulUsed[bot.id]*20) if a < b then aux.useEffect({artId = artikulId1}) end bot_BolotnikArtikulUsed[bot.id] = G local dead = 0 for _,persPtr in pairs(PERS_LIST(aux.oppTeamNum(),false)) do -- перебираем всех мертвых противников if PERS_ISBOT(persPtr) == false then dead = dead+1 end end if bot_BolotnikArtikulUsed2[bot.id] < dead then for i=1,10 do aux.useEffect({artId = artikulId2}) end bot_BolotnikArtikulUsed2[bot.id] = bot_BolotnikArtikulUsed2[bot.id] + 1 end if bot_BolotnikArtikulUsed3[bot.id] < 1 and G <=0.5 then local status,_ = aux.useEffect({artId = artikulId3}) if status == 0 then bot_BolotnikArtikulUsed3[bot.id] = bot_BolotnikArtikulUsed3[bot.id]+1 end end if bot_BolotnikArtikulUsed3[bot.id] < 2 and G <=0.1 then local status,_ = aux.useEffect({artId = artikulId3}) if status == 0 then bot_BolotnikArtikulUsed3[bot.id] = bot_BolotnikArtikulUsed3[bot.id]+1 end end aux.useEffect({artId = artikulId4},my.oppPtr,0.05) if PERS_ISDEFENDED(my.oppPtr) then local status,_ = aux.useEffect({artId = artikulId5},my.oppPtr) if status == 0 then return end end ATTACK(math.random(3)) end function bot_BolotnikInitArtikulUsed(botId) if bot_BolotnikArtikulUsed == nil then bot_BolotnikArtikulUsed={} end if botId == nil then return; end if bot_BolotnikArtikulUsed[botId] == nil then bot_BolotnikArtikulUsed[botId]= 1 end end function bot_BolotnikInitArtikulUsed2(botId) if bot_BolotnikArtikulUsed2 == nil then bot_BolotnikArtikulUsed2={} end if botId == nil then return; end if bot_BolotnikArtikulUsed2[botId] == nil then bot_BolotnikArtikulUsed2[botId]=0 end end function bot_BolotnikInitArtikulUsed3(botId) if bot_BolotnikArtikulUsed3 == nil then bot_BolotnikArtikulUsed3={} end if botId == nil then return; end if bot_BolotnikArtikulUsed3[botId] == nil then bot_BolotnikArtikulUsed3[botId]=0 end end function bot_Bolotnik() return bot_Bolotnik_r(2846,2847,2848,2849,2850) end function bot_Bolotnik_t() return bot_Bolotnik_r(167,167,167,161,169) end