if GetObjectName(GetMyHero()) ~= "Fiora" then return end
--MonTour Fiora:V1.0.0.3 - updated GoS:myHeroPos() to GetOrigin(myHero)
PrintChat(string.format("MonTour Fiora: loaded by MarCiii!"))
PrintChat(string.format("Version: 1.0.0.2"))
PrintChat(string.format("Credits to: leoferrerinha for Auto W"))
PrintChat(string.format("Credits to: Deftsu for ItemsUse Code"))
local MonTourMenu = Menu("Fiora", "Fiora")
MonTourMenu:SubMenu("Combo", "Combo")
MonTourMenu.Combo:Boolean("Q","Use Q",true)
MonTourMenu.Combo:Boolean("W","Use W",false)
MonTourMenu.Combo:Boolean("E","Use E",true)
MonTourMenu.Combo:Boolean("R","Use R",true)
MonTourMenu.Combo:Slider("HP", "Use R if HP < x%", 20, 1, 80, 1)
MonTourMenu:SubMenu("Harass", "Harass")
MonTourMenu.Harass:Boolean("Q","Use Q",true)
MonTourMenu.Harass:Boolean("W","Use W",false)
MonTourMenu.Harass:Boolean("E","Use E",false)
MonTourMenu.Harass:Boolean("R","Use R",false)
MonTourMenu.Harass:Slider("HP", "Use R if HP < x%", 20, 1, 80, 1)
MonTourMenu:SubMenu("LaneClear", "LaneClear/JungleClear")
MonTourMenu.LaneClear:Boolean("Q","Use Q",true)
MonTourMenu.LaneClear:Boolean("W","Use W",false)
MonTourMenu.LaneClear:Boolean("E","Use E",true)
MonTourMenu.LaneClear:Info("Fiora", " ")
MonTourMenu.LaneClear:Boolean("useTiamat", "Tiamat", true)
MonTourMenu.LaneClear:Boolean("useHydra", "Hydra", true)
MonTourMenu.LaneClear:Slider("TiHy", "if MinionAround >= X (Def. 5)", 5, 1, 20, 1)
MonTourMenu:SubMenu("Items", "Items&Ignite")
MonTourMenu.Items:Boolean("Ignite","AutoIgnite if OOR",true)
MonTourMenu.Items:Info("Fiora", " ")
MonTourMenu.Items:Info("Fiora", "In Combo/Harass")
MonTourMenu.Items:Boolean("useTiamat", "Tiamat", true)
MonTourMenu.Items:Boolean("useHydra", "Hydra", true)
MonTourMenu.Items:Info("Fiora", " ")
MonTourMenu.Items:Info("Fiora", "In Combo only")
MonTourMenu.Items:Boolean("useCut", "Bilgewater Cutlass", true)
MonTourMenu.Items:Slider("CutBlademyhp", "if My Health < x%", 50, 5, 100, 1)
MonTourMenu.Items:Slider("CutBladeehp", "if Enemy Health < x%", 20, 5, 100, 1)
MonTourMenu.Items:Info("Fiora", " ")
MonTourMenu.Items:Boolean("useBork", "Blade of the Ruined King", true)
MonTourMenu.Items:Slider("borkmyhp", "if My Health < x%", 50, 5, 100, 1)
MonTourMenu.Items:Slider("borkehp", "if Enemy Health < x%", 20, 5, 100, 1)
MonTourMenu.Items:Info("Fiora", " ")
MonTourMenu.Items:Boolean("useGhost", "Youmuu's Ghostblade", true)
MonTourMenu.Items:Boolean("useRedPot", "Elixir of Wrath(REDPOT)", true)
MonTourMenu:SubMenu("Drawings", "Drawings")
MonTourMenu.Drawings:Boolean("Q","Draw Q",true)
MonTourMenu.Drawings:Boolean("W","Draw W",true)
MonTourMenu:SubMenu("OP", "Auto Dodging")
MonTourMenu.OP:Boolean("W","Use W",true)
--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/
Defender = {["Aatrox"] = {_E},["Ahri"] = {_Q,_W,_E,_R},["Anivia"] = {_Q,_E},["Annie"] = {_Q},["Amumu"] = {_Q},["Blitzcrank"] = {_Q},["Brand"] = {_Q,_R},["Caitlyn"] = {_Q,_E},["Cassiopeia"] = {_W,_E},["Corki"] = {_R},["DrMundo"] = {_Q},["Elise"] = {_Q,_E},["Ezreal"] = {_Q,_W},["Galio"] = {_Q,_E},["Gangplank"] = {_Q},["Gnar"] = {_Q},["Graves"] = {_Q,_R},["Heimerdinger"] = {_W},["Irelia"] = {_R},["Jinx"] = {_W},["Kalista"] = {_Q},["Karma"] = {_Q},["Kassadin"] = {_Q},["Leblanc"] = {_Q,_E},["Leesin"] = {_Q},["Leona"] = {_E},["Lux"] = {_Q,_E},["Morgana"] = {_Q},["Pantheon"] = {_Q},["Quinn"] = {_Q},["Rengar"] = {_E},["Ryze"] = {_Q},["Sejuani"] = {_R},["Sivir"] = {_Q},["Skarner"] = {_E},["Teemo"] = {_Q},["Thresh"] = {_Q},["Varus"] = {_Q},["Vayne"] = {_E},["Veigar"] = {_R},["Twistedfate"] = {_Q},["Velkoz"] = {_Q},["Zed"] = {_Q}}
--Inicia
myHero = GetMyHero()
function GerarPosicaoAtaque(unitPos, spellPos, range)
local PosXZ = {x = (spellPos.x-unitPos.x), z = (spellPos.z-unitPos.z)}
local len = math.sqrt(PosXZ.x * PosXZ.x + PosXZ.z * PosXZ.z)
return {x = unitPos.x + range * PosXZ.x / len, y = 0, z = unitPos.z + range * PosXZ.z / len}
end
unit = GetCurrentTarget()
target = GetCurrentTarget()
--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/--/
OnProcessSpell(function(unit, spell)
myHero = GetMyHero()
if MonTourMenu.OP.W:Value() then
if unit and GetTeam(unit) ~= GetTeam(myHero) and GetObjectType(unit) == GetObjectType(myHero) and GoS:GetDistance(unit) < 700 then
local Ataques = Defender[GetObjectName(unit)]
if myHero == spell.target and Ataques and GetRange(unit) >= 450 and not spell.name:lower():find("attack") then
local wPos = GetOrigin(unit)
CastSkillShot(_W, wPos.x, wPos.y, wPos.z)
elseif spell.endPos and not spell.name:lower():find("attack") then
local ComporPos = GerarPosicaoAtaque(GetOrigin(unit), spell.endPos, GoS:GetDistance(unit, myHero))
if GoS:GetDistanceSqr(ComporPos) < (GetHitBox(myHero)*3)^2 or GoS:GetDistanceSqr(spell.endPos) < (GetHitBox(myHero)*3)^2 then
local wPos = GetOrigin(unit)
CastSkillShot(_W, wPos.x, wPos.y, wPos.z)
end
end
end
end
end)
OnLoop(function(myHero)
-- buffdatas = GetBuffData(target,"fiorapassivemanager");
--DrawText(string.format("[dravenpassivestacks INFO]", buffdatas.Type),12,200,130,0xff00ff00);
--DrawText(string.format("Type = %d", buffdatas.Type),12,200,140,0xff00ff00);
--DrawText(string.format("Name = %s", buffdatas.Name),12,200,150,0xff00ff00);
--DrawText(string.format("Count = %d", buffdatas.Count),12,200,160,0xff00ff00);
--DrawText(string.format("Stacks = %f", buffdatas.Stacks),12,200,170,0xff00ff00);
--DrawText(string.format("StartTime = %f", buffdatas.StartTime),12,200,180,0xff00ff00);
--DrawText(string.format("ExpireTime = %f", buffdatas.ExpireTime),12,200,190,0xff00ff00);
--DrawText(string.format("[GameTime] = %f", GetGameTimer()),12,200,200,0xff00ff00);
--DrawText(string.format("GetBuffTypeToString = [%s]", GetBuffTypeToString(buffdatas.Type)),12,200,220,0xffffff00);
Ignite()
Combo()
Harass()
LaneClear()
Items()
Draws()
end)
function Draws()
if MonTourMenu.Drawings.Q:Value() and GetCastLevel(myHero,_Q) >=1 then DrawCircle(GetOrigin(myHero).x, GetOrigin(myHero).y, GetOrigin(myHero).z,GetCastRange(myHero,_Q),0.6,50,0xff0000ff) end
if MonTourMenu.Drawings.W:Value() and GetCastLevel(myHero,_W) >=1 then DrawCircle(GetOrigin(myHero).x, GetOrigin(myHero).y, GetOrigin(myHero).z,GetCastRange(myHero,_W),0.6,50,0xff0000ff) end
end
function Combo()
local unit = GetCurrentTarget()
local target = GetCurrentTarget()
if unit == nil or GetOrigin(unit) == nil or IsImmune(unit,myHero) or IsDead(unit) or not IsVisible(unit) or GetTeam(unit) == GetTeam(myHero) then return false end
if IOW:Mode() == "Combo" then
if GoS:ValidTarget(unit, 1550) then--and IsObjectAlive(unit) and not IsImmune(unit) and IsTargetable(unit) then
if MonTourMenu.Combo.Q:Value() then
if GetCastName(myHero, _Q) == "FioraQ" and (GetItemSlot(myHero, 3077) < 1 or GetItemSlot(myHero, 3074) < 1) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,400,50,false,true)
if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(unit, 400) then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
end
end
if MonTourMenu.Combo.Q:Value() then
if GetCastName(myHero, _Q) == "FioraQ" and (GetItemSlot(myHero, 3077) >= 1 or GetItemSlot(myHero, 3074) >= 1) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,450,400,false,true)
if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(unit, 450) then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
end
end
if GetCastName(myHero, _W) == "FioraW" then
if MonTourMenu.Combo.W:Value() then
local WPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,750,50,false,true)
if CanUseSpell(myHero, _W) == READY and GoS:IsInDistance(unit, 750) then --and IsObjectAlive(unit)
CastSkillShot(_W,WPred.PredPos.x,WPred.PredPos.y,WPred.PredPos.z)
end
end
end
if GetCastName(myHero, _E) == "FioraE" then
if MonTourMenu.Combo.E:Value() then
if CanUseSpell(myHero, _E) == READY and GoS:IsInDistance(unit, 260) then
CastSpell(_E)
end
end
end
if GetCastName(myHero, _R) == "FioraR" then
if MonTourMenu.Combo.R:Value() then
if (100*GetCurrentHP(unit)/GetMaxHP(unit)) < MonTourMenu.Combo.HP:Value() and
CanUseSpell(myHero, _R) == READY and IsObjectAlive(unit) and GoS:IsInDistance(unit, 500) then
CastTargetSpell(unit, _R)
end
end
end
end
end
end
function LaneClear()
if IOW:Mode() == "LaneClear" then
for i,jminion in pairs(GoS:GetAllMinions(MINION_JUNGLE)) do
jminionpos = GetOrigin(jminion)
if GoS:ValidTarget(jminion, 600) then
if MonTourMenu.LaneClear.Q:Value() then
if GetCastName(myHero, _Q) == "FioraQ" and (GetItemSlot(myHero, 3077) < 1 or GetItemSlot(myHero, 3074) < 1) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),jminion,GetMoveSpeed(jminion),1700,250,400,50,false,true)
if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(jminion, 400) then
CastSkillShot(_Q,jminionpos.x,jminionpos.y,jminionpos.z)
end
end
end
if MonTourMenu.LaneClear.Q:Value() then
if GetCastName(myHero, _Q) == "FioraQ" and (GetItemSlot(myHero, 3077) >= 1 or GetItemSlot(myHero, 3074) >= 1) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),jminion,GetMoveSpeed(jminion),1700,250,450,400,false,true)
if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(jminion, 450) then
CastSkillShot(_Q,jminionpos.x,jminionpos.y,jminionpos.z)
end
end
end
if MonTourMenu.LaneClear.useTiamat:Value() and GetItemSlot(myHero, 3077) >= 1 and GoS:ValidTarget(jminion, 550) then --tiamat
if GoS:GetDistance(jminion) < 400 then
CastTargetSpell(myHero, GetItemSlot(myHero, 3077))
end
end
if MonTourMenu.LaneClear.useHydra:Value() and GetItemSlot(myHero, 3074) >= 1 and GoS:ValidTarget(jminion, 550) then --hydra
if GoS:GetDistance(jminion) < 385 then
CastTargetSpell(myHero, GetItemSlot(myHero, 3074))
end
end
if MonTourMenu.LaneClear.W:Value() then
local WPred = GetPredictionForPlayer(GetOrigin(myHero),jminion,GetMoveSpeed(jminion),1700,250,750,50,false,true)
if CanUseSpell(myHero, _W) == READY and IsObjectAlive(jminion) and GoS:IsInDistance(jminion, 750) then
CastSkillShot(_W,jminionpos.x,jminionpos.y,jminionpos.z)
end
end
if MonTourMenu.LaneClear.E:Value() then
if CanUseSpell(myHero, _E) == READY and GoS:IsInDistance(jminion, 500) and GoS:GetDistance(myHero, jminion) < 450 and GoS:GetDistance(myHero, jminion) > 10 then
CastSpell(_E)
end
end
if MonTourMenu.LaneClear.E:Value() then
if CanUseSpell(myHero, _E) == READY and GoS:IsInDistance(jminion, 500) and GoS:GetDistance(myHero, jminion) < 450 and GoS:GetDistance(myHero, jminion) > 10 and (GetObjectName(jminion) == "SRU_Baron" or GetObjectName(mob) == "SRU_Dragon" or GetObjectName(mob) == "Sru_Crab" or GetObjectName(mob) == "SRU_Gromp" or GetObjectName(mob) == "SRU_Razorbeak" or GetObjectName(mob) == "SRU_Murkwolf" or GetObjectName(mob) == "SRU_Krug" or GetObjectName(mob) == "SRU_Red" or GetObjectName(mob) == "SRU_Blue") then
CastSpell(_E)
end
end
end
end
end
if IOW:Mode() == "LaneClear" then
for i,minion in pairs(GoS:GetAllMinions(MINION_ENEMY)) do
if GoS:ValidTarget(minion, 600) then
if MonTourMenu.LaneClear.useTiamat:Value() and GetItemSlot(myHero, 3077) >= 1 and GoS:ValidTarget(minion, 550) and MinionAround(GetOrigin(myHero), 400) >= MonTourMenu.LaneClear.TiHy:Value() then --tiamat
if GoS:GetDistance(minion) < 400 then
CastTargetSpell(myHero, GetItemSlot(myHero, 3077))
end
end
if MonTourMenu.LaneClear.useHydra:Value() and GetItemSlot(myHero, 3074) >= 1 and GoS:ValidTarget(minion, 550) and MinionAround(GetOrigin(myHero), 400) >= MonTourMenu.LaneClear.TiHy:Value() then --hydra
if GoS:GetDistance(minion) < 400 then
CastTargetSpell(myHero, GetItemSlot(myHero, 3074))
end
end
end
end
end
end
function Harass()
local unit = GetCurrentTarget()
local target = GetCurrentTarget()
if unit == nil or GetOrigin(unit) == nil or IsImmune(unit,myHero) or IsDead(unit) or not IsVisible(unit) or GetTeam(unit) == GetTeam(myHero) then return false end
if IOW:Mode() == "Harass" then
if GoS:ValidTarget(unit, 1550) then--and IsObjectAlive(unit) and not IsImmune(unit) and IsTargetable(unit) then
-- if MonTourMenu.Harass.Q:Value() then
-- if GetCastName(myHero, _Q) == "FioraQ" then
-- local QPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,400,50,false,true)
-- if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(unit, 400) then
-- CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
-- end
-- end
-- end
if MonTourMenu.Harass.Q:Value() then
if GetCastName(myHero, _Q) == "FioraQ" and (GetItemSlot(myHero, 3077) < 1 or GetItemSlot(myHero, 3074) < 1) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,400,50,false,true)
if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(unit, 400) then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
end
end
if MonTourMenu.Harass.Q:Value() then
if GetCastName(myHero, _Q) == "FioraQ" and (GetItemSlot(myHero, 3077) >= 1 or GetItemSlot(myHero, 3074) >= 1) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,450,400,false,true)
if CanUseSpell(myHero, _Q) == READY and GoS:IsInDistance(unit, 450) then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
end
end
if GetCastName(myHero, _W) == "FioraW" then
if MonTourMenu.Harass.W:Value() then
local WPred = GetPredictionForPlayer(GetOrigin(myHero),unit,GetMoveSpeed(unit),1700,250,750,50,false,true)
if CanUseSpell(myHero, _W) == READY and GoS:IsInDistance(unit, 750) then --and IsObjectAlive(unit)
CastSkillShot(_W,WPred.PredPos.x,WPred.PredPos.y,WPred.PredPos.z)
end
end
end
if GetCastName(myHero, _E) == "FioraE" then
if MonTourMenu.Harass.E:Value() then
if CanUseSpell(myHero, _E) == READY and GoS:IsInDistance(unit, 260) then
CastSpell(_E)
end
end
end
if GetCastName(myHero, _R) == "FioraR" then
if MonTourMenu.Harass.R:Value() then
if (100*GetCurrentHP(unit)/GetMaxHP(unit)) < MonTourMenu.Harass.HP:Value() and
CanUseSpell(myHero, _R) == READY and IsObjectAlive(unit) and GoS:IsInDistance(unit, 500) then
CastTargetSpell(unit, _R)
end
end
end
end
end
end
function Ignite()
local Ignite = (GetCastName(GetMyHero(),SUMMONER_1):lower():find("summonerdot") and SUMMONER_1 or (GetCastName(GetMyHero(),SUMMONER_2):lower():find("summonerdot") and SUMMONER_2 or nil))
if GoS:ValidTarget(unit, 700) and Ignite and MonTourMenu.Items.Ignite:Value() and CanUseSpell(myHero,_Q) ~= READY and GoS:GetDistance(unit) > 450 then --and IsObjectAlive(unit) and not IsImmune(unit) and IsTargetable(unit) and
for _, k in pairs(GoS:GetEnemyHeroes()) do
if CanUseSpell(GetMyHero(), Ignite) == READY and (20*GetLevel(GetMyHero())+50) > GetCurrentHP(k)+GetHPRegen(k)*2.5 and GoS:GetDistanceSqr(GetOrigin(k)) < 600*600 then
CastTargetSpell(k, Ignite)
end
end
end
end
function Items()
if IOW:Mode() == "Combo" or IOW:Mode() == "Harass" then
if MonTourMenu.Items.useTiamat:Value() and GetItemSlot(myHero, 3077) >= 1 and GoS:ValidTarget(unit, 550) then --tiamat
if GoS:GetDistance(unit) < 400 then
CastTargetSpell(myHero, GetItemSlot(myHero, 3077))
end
elseif MonTourMenu.Items.useHydra:Value() and GetItemSlot(myHero, 3074) >= 1 and GoS:ValidTarget(unit, 550) then --hydra
if GoS:GetDistance(unit) < 385 then
CastTargetSpell(myHero, GetItemSlot(myHero, 3074))
end
end
end
if IOW:Mode() == "Combo" then
if MonTourMenu.Items.useCut:Value() and GetItemSlot(myHero,3144) >= 1 and GoS:ValidTarget(unit,550) and 100*GetCurrentHP(myHero)/GetMaxHP(myHero) < MonTourMenu.Items.CutBlademyhp:Value() and (100*GetCurrentHP(target)/GetMaxHP(target)) > MonTourMenu.Items.CutBladeehp:Value() then --CutBlade
if CanUseSpell(myHero,GetItemSlot(myHero,3144)) == READY then
CastTargetSpell(unit, GetItemSlot(myHero,3144))
end
elseif MonTourMenu.Items.useBork:Value() and GetItemSlot(myHero,3153) >= 1 and GoS:ValidTarget(unit,550) and 100*GetCurrentHP(myHero)/GetMaxHP(myHero) < MonTourMenu.Items.borkmyhp:Value() and (100*GetCurrentHP(target)/GetMaxHP(target)) > MonTourMenu.Items.borkehp:Value() then
if CanUseSpell(myHero,GetItemSlot(myHero,3153)) == READY then --bork
CastTargetSpell(unit,GetItemSlot(myHero,3153))
end
elseif MonTourMenu.Items.useGhost:Value() and GetItemSlot(myHero,3142) >= 1 and GoS:ValidTarget(unit,500) then --ghost
if CanUseSpell(myHero,GetItemSlot(myHero,3142)) == READY then
CastSpell(GetItemSlot(myHero,3142))
end
elseif MonTourMenu.Items.useRedPot:Value() and GetItemSlot(myHero,2140) >= 1 and GoS:ValidTarget(unit,500) then --redpot
if CanUseSpell(myHero,GetItemSlot(myHero,2140)) == READY then
CastSpell(GetItemSlot(myHero,2140))
end
end
end
end
function MinionAround(pos, range)
local c = 0
if pos == nil then return 0 end
for k,v in pairs(GoS:GetAllMinions(MINION_ENEMY)) do
if v and GoS:ValidTarget(v) and GoS:GetDistanceSqr(pos,GetOrigin(v)) < range*range then
c = c + 1
end
end
return c
end