Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Viktor QQ by Koelionek v 1.1
- --Aaa farm Hex
- if myHero.charName ~= "Viktor" then return end
- -- Range
- local qRange = 600
- local wRange = 600
- local rRange = 700
- local eRange = 600
- local comboRange = 600
- local aarange = 600
- local eDelay = 200
- -- ts
- local ts
- -- combo
- local waittxt = {}
- local calculationenemy = 1
- local floattext = {"Skills are not available","Able to fight","Killable","Murder him!"}
- local killable = {}
- -- Draw
- local drawCircle = 600
- -- Spells
- local ignite = nil
- -- Farm
- local EnemyMinions = {}
- local nextTick = 0
- local waitDelay = 400
- --
- local ignite = nil
- local DFGSlot, HXGSlot, BWCSlot, SheenSlot, TrinitySlot, LichBaneSlot, TMTSlot, RAHSlot, RNDSlot, STDSlot = nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil
- local QREADY, WREADY, EREADY, RREADY, DFGREADY, HXGREADY, BWCREADY, IREADY, TMTREADY, RAHREADY, RNDREADY, STDREADY, BRKREADY = false, false, false, false, false, false, false, false, false, false, false, false, false
- function OnLoad()
- ViktorConfig = scriptConfig("Viktor Combo", "Viktor")
- ViktorConfig:addParam("combo", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
- ViktorConfig:addParam("haras", "Haras", SCRIPT_PARAM_ONKEYDOWN, false, 90)
- ViktorConfig:addParam("autoqfarm","Auto Q Farming", SCRIPT_PARAM_ONKEYTOGGLE, false, 67)
- ViktorConfig:addParam("farm","AA Farm", SCRIPT_PARAM_ONKEYDOWN, false, 88)
- ViktorConfig:addParam("wstun","Stun enemy", SCRIPT_PARAM_ONKEYDOWN, false, 86)
- ViktorConfig:addParam("minemana","Min Mana for Q/E Haras/Farm",SCRIPT_PARAM_SLICE, 50, 0, 100, 2)
- ViktorConfig:addParam("estun","E when stunned",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:addParam("ulticombo","Ulti in Combo",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:addParam("qharas","Q in haras",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:addParam("autoks","Auto Kill Steal",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:addParam("eks","E in Kill Steal",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:addParam("ultiks","Ulti in ks",SCRIPT_PARAM_ONOFF, false)
- ViktorConfig:addParam("autoignite","Auto Ignite",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:addParam("move","Move to mouse",SCRIPT_PARAM_ONOFF, false)
- --Veigar Draw
- ViktorDrawConfig = scriptConfig("ViktorDraw","ViktorDraw")
- ViktorDrawConfig:addParam("drawfocus","Draw focus",SCRIPT_PARAM_ONOFF, true)
- ViktorDrawConfig:addParam("drawcomborange","Draw My Combo Range",SCRIPT_PARAM_ONOFF, true)
- ViktorDrawConfig:addParam("drawaarange","Draw My AA Range",SCRIPT_PARAM_ONOFF, true)
- ViktorDrawConfig:addParam("drawenemy","Draw Anythink on enemy",SCRIPT_PARAM_ONOFF, true)
- ViktorDrawConfig:addParam("drawenemyc","Draw Circe on enemy",SCRIPT_PARAM_ONOFF, true)
- ViktorDrawConfig:addParam("drawenemyt","Draw Text on enemy",SCRIPT_PARAM_ONOFF, true)
- ViktorConfig:permaShow("combo")
- ViktorConfig:permaShow("haras")
- ViktorConfig:permaShow("autoks")
- ViktorConfig:permaShow("farm")
- ViktorConfig:permaShow("autoqfarm")
- ts = TargetSelector(TARGET_LOW_HP, qRange+100,DAMAGE_MAGIC,false )
- ts.name = "Viktor"
- ViktorConfig:addTS(ts)
- for i = 0, objManager.maxObjects, 1 do
- local object = objManager:GetObject(i)
- if objectIsValid(object) then table.insert(EnemyMinions, object) end
- end
- enemyMinions = minionManager(MINION_ENEMY, 600, player, MINION_SORT_HEALTH_ASC)
- if myHero:GetSpellData(SUMMONER_1).name:find("SummonerDot") then ignite = SUMMONER_1
- elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerDot") then ignite = SUMMONER_2
- end
- for i=1, heroManager.iCount do waittxt[i] = i*3 end
- end
- function OnTick()
- ts:update()
- enemyMinions:update()
- if tick == nil or GetTickCount()-tick>=100 then
- tick = GetTickCount()
- dmg()
- end
- DFGSlot, BRKSlot, HXGSlot, BWCSlot = GetInventorySlotItem(3153), GetInventorySlotItem(3128), GetInventorySlotItem(3146), GetInventorySlotItem(3144)
- DFGREADY = (DFGSlot ~= nil and myHero:CanUseSpell(DFGSlot) == READY)
- HXGREADY = (HXGSlot ~= nil and myHero:CanUseSpell(HXGSlot) == READY)
- BWCREADY = (BWCSlot ~= nil and myHero:CanUseSpell(BWCSlot) == READY)
- BRKREADY = (BRKSlot ~= nil and myHero:CanUseSpell(BRKSlot) == READY)
- TMTREADY = (TMTSlot ~= nil and myHero:CanUseSpell(TMTSlot) == READY)
- RAHREADY = (RAHSlot ~= nil and myHero:CanUseSpell(RAHSlot) == READY)
- RNDREADY = (RNDSlot ~= nil and myHero:CanUseSpell(RNDSlot) == READY)
- QREADY = (myHero:CanUseSpell(_Q) == READY)
- WREADY = (myHero:CanUseSpell(_W) == READY)
- EREADY = (myHero:CanUseSpell(_E) == READY)
- RREADY = (myHero:CanUseSpell(_R) == READY)
- iReady = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
- -- E on stun
- if ts.target ~= nil and ViktorConfig.estun and not ts.target.canMove and GetDistance(ts.target)<eRange then
- CastSpell(_E, ts.target)
- end
- -- Stun
- if ts.target ~= nil and ViktorConfig.wstun and WREADY and GetDistance(ts.target)<wRange then
- CastSpell(_W, ts.target)
- end
- -- Ignite
- if ViktorConfig.autoignite then
- if iReady then
- local ignitedmg = 0
- for i = 1, heroManager.iCount, 1 do
- local enemyhero = heroManager:getHero(i)
- if ValidTarget(enemyhero,600) then
- ignitedmg = 50 + 20 * myHero.level
- if enemyhero.health <= ignitedmg then
- CastSpell(ignite, enemyhero)
- end
- end
- end
- end
- end
- -- Haras
- if ViktorConfig.haras and not ViktorConfig.combo and ViktorConfig.minemana <=((myHero.mana/myHero.maxMana)*100) and ts.target ~= nil then
- if EREADY and GetDistance(ts.target)<=eRange then
- for i = 1, heroManager.iCount, 1 do
- local Target = heroManager:getHero(i)
- if Target ~= nil and not myHero.dead then
- EPos = GetPredictionPos(ts.target, eDelay)
- end
- if EPos ~= nil and ValidTarget(Target, eRange) then
- CastSpell(_E, EPos.x, EPos.z)
- end
- end
- end
- if QREADY and Target ~= nil and Target.team ~= myHero.team and not Target.dead and Target.visible and GetDistance(Target) < qRange and ViktorConfig.qharas then
- CastSpell(_Q, Target)
- end
- end
- -- Autoks
- if ViktorConfig.autoks then
- for i=1, heroManager.iCount do
- Target = heroManager:GetHero(i)
- eDMG=getDmg("E",Target,myHero)
- qDMG=getDmg("Q",Target,myHero)
- rDMG=getDmg("R",Target,myHero)
- if QREADY and Target ~= nil and Target.team ~= myHero.team and not Target.dead and Target.visible and GetDistance(Target) < qRange and Target.health < qDMG then
- CastSpell(_Q, Target)
- end
- if EREADY and Target ~= nil and Target.team ~= myHero.team and not Target.dead and Target.visible and GetDistance(Target) < eRange and Target.health < eDMG then
- for i = 1, heroManager.iCount, 1 do
- local Target = heroManager:getHero(i)
- if Target ~= nil and not myHero.dead then
- EPos = GetPredictionPos(ts.target, eDelay)
- end
- if EPos ~= nil and ValidTarget(Target, eRange) then
- CastSpell(_E, EPos.x, EPos.z)
- end
- end
- end
- if RREADY and Target ~= nil and Target.team ~= myHero.team and not Target.dead and Target.visible and GetDistance(Target) < rRange and Target.health < rDMG then
- CastSpell(_R, Target)
- end
- end
- end
- -- Combo
- if ViktorConfig.combo and ts.target ~= nil then
- if WREADY and GetDistance(ts.target)<comboRange then
- CastSpell(_W, ts.target)
- end
- if GetDistance(ts.target) < comboRange then
- if DFGREADY then CastSpell(DFGSlot, ts.target) end
- if HXGREADY then CastSpell(HXGSlot, ts.target) end
- if BWCREADY then CastSpell(BWCSlot, ts.target) end
- if BRKREADY then CastSpell(BRKSlot, ts.target) end
- if TMTREADY and GetDistance(ts.target) < 275 then CastSpell(TMTSlot) end
- if RAHREADY and GetDistance(ts.target) < 275 then CastSpell(RAHSlot) end
- if RNDREADY and GetDistance(ts.target) < 275 then CastSpell(RNDSlot) end
- end
- if QREADY and GetDistance(ts.target)<comboRange then
- CastSpell(_Q, ts.target)
- end
- if EREADY and GetDistance(ts.target)<=comboRange then
- for i = 1, heroManager.iCount, 1 do
- local Target = heroManager:getHero(i)
- if Target ~= nil and not myHero.dead then
- EPos = GetPredictionPos(Target, eDelay)
- end
- if EPos ~= nil and ValidTarget(Target, comboRange) then
- CastSpell(_E, EPos.x, EPos.z)
- end
- end
- end
- if RREADY and ViktorConfig.ulticombo and GetDistance(ts.target)<comboRange then
- CastSpell(_R, ts.target)
- end
- end
- -- Farm Q
- for i, minion in pairs(EnemyMinions) do
- if (minion ~= nil and not minion.valid) or (minion ~= nil and minion.valid and minion.dead) then
- table.remove(EnemyMinions, i)
- end
- end
- if ViktorConfig.autoqfarm and ViktorConfig.minqmana <=((myHero.mana/myHero.maxMana)*100) and not ViktorConfig.combo then
- local tick = GetTickCount()
- for i,object in ipairs(EnemyMinions) do
- if object ~= nil and objectIsValid(object) then
- local QDMG = (getDmg("Q", object, myHero)-40)
- if QREADY and GetDistance(object) <= qRange and object.health <= QDMG then
- CastSpell(_Q, object)
- end
- end
- end
- end
- -- Farm AA
- if ViktorConfig.farm then
- if GetTickCount() > nextTick then
- myHero:MoveTo(mousePos.x, mousePos.z)
- end
- for index, minion in pairs(enemyMinions.objects) do
- local aDmg = getDmg("AD", minion, myHero)
- if minion.health <= aDmg and GetDistance(minion) <= (myHero.range+75) and GetTickCount() > nextTick then
- myHero:Attack(minion)
- nextTick = GetTickCount() + waitDelay
- end
- end
- end
- -- Move
- if ViktorConfig.move and ViktorConfig.combo then
- myHero:MoveTo(mousePos.x, mousePos.z)
- end
- end
- function objectIsValid(object)
- return object and object.valid and object.name:find("Minion_") and object.team ~= myHero.team and object.dead == false
- end
- function OnCreateObj(object)
- if objectIsValid(object) then table.insert(EnemyMinions, object) end
- end
- function dmg()
- local enemy = heroManager:GetHero(calculationenemy)
- if ValidTarget(enemy) then
- local pdamage = 0
- local wdamage = 0
- local qdamage = getDmg("Q",enemy,myHero) --Initial
- local edamage = getDmg("E",enemy,myHero)
- local rdamage = getDmg("R",enemy,myHero)
- local hitdamage = getDmg("AD",enemy,myHero)
- local dfgdamage = (DFGSlot and getDmg("DFG",enemy,myHero) or 0)--amplifies all magic damage they take by 20%
- local hxgdamage = (HXGSlot and getDmg("HXG",enemy,myHero) or 0)
- local bwcdamage = (BWCSlot and getDmg("BWC",enemy,myHero) or 0)
- local brkdamage = (BRKREADY and getDmg("RUINEDKING",enemy,myHero,2) or 0)
- local ignitedamage = (ignite and getDmg("IGNITE",enemy,myHero) or 0)
- local onhitdmg = (SheenSlot and getDmg("SHEEN",enemy,myHero) or 0)+(TrinitySlot and getDmg("TRINITY",enemy,myHero) or 0)+(LBSlot and getDmg("LICHBANE",enemy,myHero) or 0)+(IcebornSlot and getDmg("ICEBORN",enemy,myHero) or 0)
- local combo1 = hitdamage*2 + (qdamage + wdamage + edamage)*(DFGREADY and 1.2 or 1) + onhitdmg --0 cd
- local combo2 = hitdamage*2 + onhitdmg
- local combo3 = hitdamage + onhitdmg
- local combo4 = 0
- if QREADY then
- combo2 = combo2 + qdamage
- combo3 = combo3 + qdamage
- combo4 = combo4 + qdamage
- end
- if EREADY then
- combo2 = combo2 + edamage
- combo3 = combo3 + qdamage
- end
- if RREADY then
- combo2 = combo2 + rdamage
- combo3 = combo3 + qdamage
- combo4 = combo4 + qdamage
- end
- if DFGREADY then
- combo1 = combo1 + dfgdamage
- combo2 = combo2 + dfgdamage
- combo3 = combo3 + dfgdamage
- combo4 = combo4 + dfgdamage
- end
- if HXGREADY then
- combo1 = combo1 + hxgdamage
- combo2 = combo2 + hxgdamage
- combo3 = combo3 + hxgdamage
- combo4 = combo4 + hxgdamage
- end
- if BWCREADY then
- combo1 = combo1 + bwcdamage
- combo2 = combo2 + bwcdamage
- combo3 = combo3 + bwcdamage
- combo4 = combo4 + bwcdamage
- end
- if BRKREADY then
- combo1 = combo1 + brkdamage
- combo2 = combo2 + brkdamage
- combo3 = combo3 + brkdamage
- combo4 = combo4 + brkdamage
- end
- if TMTREADY then
- combo1 = combo1 + tmtdamage
- combo2 = combo2 + tmtdamage
- combo3 = combo3 + tmtdamage
- combo4 = combo4 + tmtdamage
- end
- if RAHREADY then
- combo1 = combo1 + rahdamage
- combo2 = combo2 + rahdamage
- combo3 = combo3 + rahdamage
- combo4 = combo4 + rahdamage
- end
- if IREADY then
- combo1 = combo1 + ignitedamage
- combo2 = combo2 + ignitedamage
- combo3 = combo3 + ignitedamage
- end
- if combo4 >= enemy.health then killable[calculationenemy] = 4
- elseif combo3 >= enemy.health then killable[calculationenemy] = 3
- elseif combo2 >= enemy.health then killable[calculationenemy] = 2
- elseif combo1 >= enemy.health then killable[calculationenemy] = 1
- else killable[calculationenemy] = 0 end
- end
- if calculationenemy == 1 then calculationenemy = heroManager.iCount
- else calculationenemy = calculationenemy-1 end
- end
- function OnDraw()
- local coloraqua=ARGB(0xFF,0x00,0xFF,0xFF)
- DrawText(" Viktor QQ by Koelionek v 1.1", 18, 700, 20, coloraqua)
- if ViktorDrawConfig.drawfocus and ValidTarget(ts.target) then
- DrawText("Targetting: " .. ts.target.charName, 18, 750, 40, 0xFFFF0000)
- for i=0, 10 do
- DrawCircle(ts.target.x, ts.target.y, ts.target.z, 60 + i*1.5, 0x66FFFF)
- end
- end
- if ViktorDrawConfig.drawcomborange and not myHero.dead and not ViktorConfig.farm then
- DrawCircle(myHero.x, myHero.y, myHero.z, comboRange, 0x66FFFF)
- end
- if ViktorDrawConfig.drawaarange and ViktorConfig.farm and not myHero.dead then
- DrawCircle(myHero.x, myHero.y, myHero.z, myHero.range+75, 0x00FF00)
- end
- for i=1, heroManager.iCount do
- local enemydraw = heroManager:GetHero(i)
- if ValidTarget(enemydraw) then
- if ViktorDrawConfig.drawenemyc then
- if killable[i] == 1 then
- for j=0, 20 do
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 80 + j*1.5, 0x0000FF)
- end
- elseif killable[i] == 2 then
- for j=0, 10 do
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 80 + j*1.5, 0xFF0000)
- end
- elseif killable[i] == 3 then
- for j=0, 10 do
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 80 + j*1.5, 0xFF0000)
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 110 + j*1.5, 0xFF0000)
- end
- elseif killable[i] == 4 then
- for j=0, 10 do
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 80 + j*1.5, 0xFF0000)
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 110 + j*1.5, 0xFF0000)
- DrawCircle(enemydraw.x, enemydraw.y, enemydraw.z, 140 + j*1.5, 0xFF0000)
- end
- end
- end
- if ViktorDrawConfig.drawenemyt and waittxt[i] == 1 and killable[i] ~= 0 then
- PrintFloatText(enemydraw,0,floattext[killable[i]])
- end
- end
- if waittxt[i] == 1 then waittxt[i] = 30
- else waittxt[i] = waittxt[i]-1 end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement