-- $Id: bot_Infantry.lua,v 1.4 2009-04-15 08:22:23 vadim_b Exp $ --[[ AKEB (c) 16.05.2008 18:26 Пехота G = hp/hp_max Для 6-8 уровней После удара если на мне не лежит абилка (2077/2078/2079) и я ее не накладывал ни разу, наложить на себя абилку (2077/2078/2079) с вероятностью (G-0,9)/(0,75-0,9) если на мне не лежит абилка (2077/2078/2079) и я ее не накладывал 1 раз, наложить на себя абилку (2077/2078/2079) с вероятностью (G-0,65)/(0,5-0,65) Для 9-10 уровней Перед ударом если противник в блоке и G < 1, использовать на себя абилку (1951) Скрипт: bot_Infantry.lua Управляющая функция: bot_Infantry_6 -- для 6 уровня bot_Infantry_7 -- для 7 уровня bot_Infantry_8 -- для 8 уровня bot_Infantry_9 -- для 9 уровня bot_Infantry_10 -- для 10 уровня --]] function bot_Infantry_678(artikulId) if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный, ничего не делаем return end ATTACK(math.random(3)) local bot = PERS(my.persPtr) -- Берем данные о боте bot_InfantryInitArtikulUsed(bot.id) local G = bot.hp/bot.hpMax local p = math.max(0,math.min(1,((G-0.9)/(-0.15)))) if bot_InfantryArtikulUsed[bot.id] == 0 and aux.randRoll(p) then if #aux.activeEffects(my.persPtr,{artId = artikulId}) < 1 then local status, usageStatus = aux.useEffect({artId = artikulId}) if status == 0 then bot_InfantryArtikulUsed[bot.id] = 1 end end end p = math.max(0,math.min(1,((G-0.65)/(-0.15)))) if bot_InfantryArtikulUsed[bot.id] == 1 and aux.randRoll(p) then if #aux.activeEffects(my.persPtr,{artId = artikulId}) < 1 then local status, usageStatus = aux.useEffect({artId = artikulId}) if status == 0 then bot_InfantryArtikulUsed[bot.id] = 2 end end end end function bot_Infantry_910(artikulId) if my.status ~= FS_PS_ACTIVE then -- если наш статус неактивный, ничего не делаем return end local bot = PERS(my.persPtr) -- Берем данные о боте local G = bot.hp/bot.hpMax if G<1 and PERS_ISDEFENDED(my.oppPtr) then aux.useEffect({artId = artikulId}) end ATTACK(math.random(3)) end function bot_InfantryInitArtikulUsed(botId) if bot_InfantryArtikulUsed == nil then bot_InfantryArtikulUsed={} end -- Если глобальная переменная не существует создаем ее if botId == nil then return; end -- если не задан ID бота, ничего не делаем if bot_InfantryArtikulUsed[botId] == nil then bot_InfantryArtikulUsed[botId]=0 end -- Если нет глобальной переменной с Этим ботом создаем ее со значением 0 end function bot_Infantry_6() bot_Infantry_678(2077) end function bot_Infantry_7() bot_Infantry_678(2078) end function bot_Infantry_8() bot_Infantry_678(2079) end function bot_Infantry_9() bot_Infantry_910(1951) end function bot_Infantry_10() bot_Infantry_910(1951) end