Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[HackerWizards Vladimir]--
- if myHero.charName ~= "Vladimir" then return end
- require 'VPrediction'
- -- PREDICTION
- if VIP_USER then
- QPredic = TargetPrediction(1200, 1600, .25, 100)
- else
- QPredic = TargetPrediction(1200, 1423, 250, 100)
- end
- -- Misc
- local version = "1.0"
- local author = "HW"
- local Smite = nil
- local target = nil
- local AARange = 450
- local QRange = 650
- local WRange = 150 -- No damage
- local ERange = 570 -- Actually 610
- local RRange = 700-87.5 -- 175 Radius
- local EnemyMinions = minionManager(MINION_ENEMY, 600, myHero, MINION_SORT_HEALTH_DEC)
- local qDmg = nil
- local eStacks = 0
- local StackDmg = 1.25 * eStacks
- local eDmg = ((myHero.ap * 0.45) + 60 + (myHero:GetSpellData(_E).level * 25)) * StackDmg
- local eTick = 0
- local QREADY, WREADY, EREADY, RREADY, IREADY = false, false, false, false, false
- local RangeToActivateSpell = 550
- function OnLoad()
- Vladcfg = scriptConfig("HWs Vladimir", "Vladimir by HW")
- Vladcfg:addParam("version", "Version", SCRIPT_PARAM_INFO, version)
- --[Combo Menu]--
- Vladcfg:addSubMenu("Combo Settings", "combo")
- Vladcfg.combo:addParam("combo", "Use Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
- Vladcfg.combo:addParam("useQ", "Use Q in Combo", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.combo:addParam("useE", "Use E in Combo", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.combo:addParam("useR", "Use R in Combo", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.combo:permaShow("combo")
- --[Harass Menu]--
- Vladcfg:addSubMenu("Harass Settings", "harass")
- Vladcfg.harass:addParam("harass", "Harass Key", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("1"))
- Vladcfg.harass:addParam("farm", "Farm Key", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
- Vladcfg.harass:addParam("harassE", "Use E in Harass", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.harass:addParam("farmE", "Use E in Farm", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.harass:permaShow("farm")
- --[Auto Menu]--
- Vladcfg:addSubMenu("Auto Settings", "auto")
- Vladcfg.auto:addParam("Autolevel", "Auto Level Spells", SCRIPT_PARAM_ONOFF, false)
- Vladcfg.auto:addParam("KS", "Q KS [Toggle]", SCRIPT_PARAM_ONKEYTOGGLE, true,
- GetKey('K'))
- Vladcfg.auto:addParam("KSE", "KS with E", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.auto:addParam("stackE", "E Stack [Toggle]", SCRIPT_PARAM_ONKEYTOGGLE, false, GetKey('3'))
- Vladcfg.auto:addParam("AutoPool", "Auto Pool on low HP", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.auto:addParam("AutoZhonyas", "Auto Zhonyas on 30 HP", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.auto:permaShow("stackE")
- --[Draw Menu]--
- Vladcfg:addSubMenu("Draw Settings", "draw")
- Vladcfg.draw:addSubMenu("Q Draw Settings", "drawQ")
- Vladcfg.draw.drawQ:addParam("drawq", "Draw Q Range", SCRIPT_PARAM_ONOFF, false)
- Vladcfg.draw.drawQ:addParam("colorQ", "Q Circle Color", SCRIPT_PARAM_COLOR, {255,0,0,255})
- Vladcfg.draw:addSubMenu("E Draw Settings", "drawE")
- Vladcfg.draw.drawE:addParam("drawe", "Draw E Range", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.draw.drawE:addParam("colorE", "E Circle Color", SCRIPT_PARAM_COLOR, {255,0,0,255})
- Vladcfg.draw:addSubMenu("R Draw Settings", "drawR")
- Vladcfg.draw.drawR:addParam("drawr", "Draw R Range", SCRIPT_PARAM_ONOFF, false)
- Vladcfg.draw.drawR:addParam("colorR", "R Circle Color", SCRIPT_PARAM_COLOR, {255,0,0,255})
- Vladcfg.draw:addParam("drawenemy", "Draw Current Target", SCRIPT_PARAM_ONOFF, true)
- Vladcfg.draw:addParam("colorTS", "Current Target Circle Color", SCRIPT_PARAM_COLOR, {255,0,0,255})
- ts = TargetSelector(TARGET_LESS_CAST, QRange, DAMAGE_Magic)
- ts.name = "Vladimir"
- Vladcfg:addTS(ts)
- enemyMinions = minionManager(MINION_ENEMY, 1200, player)
- lastAttack, lastWindUpTime, lastAttackCD = 0, 0, 0
- IgniteCheck()
- if _G.Reborn_Initialised then
- elseif _G.Reborn_Loaded then
- PrintChat("<font color=\"#000000\"><b>HWs Vladimir Loaded. SAC detected!</b></font>")
- SACLoaded = true
- else
- orbwalkCheck()
- end
- end
- function OnTick()
- if myHero.dead then return end
- ts:update()
- if Vladcfg.combo.combo then
- Combo()
- end
- if Vladcfg.harass.harass then
- Harass()
- HarassE()
- end
- if Vladcfg.harass.farm then
- Farm()
- end
- if Vladcfg.auto.Ignite then
- AutoIgnite()
- end
- if Vladcfg.auto.Autolevel then AutoLevel()
- end
- if Vladcfg.auto.KS then
- KS()
- end
- if Vladcfg.auto.stackE and GetTickCount() - eTick >= 9900 then
- eAuto()
- end
- if Vladcfg.auto.AutoPool then
- Pool()
- end
- if Vladcfg.auto.AutoZhonyas then
- Zhonya()
- end
- if Vladcfg.harass.farmE then
- farmE()
- end
- if Vladcfg.auto.KSE then
- KSE()
- end
- if Vladcfg.harass.harassE then
- HarassE()
- end
- if GetTickCount() - eTick >= 10000 then
- eStacks = 0
- end
- end
- function AutoLevel()
- autoLevelSetSequence(levelSequence)
- levelSequence = { 0,0,0,0,1,4,1,3,1,3,4,3,3,3,2,2,4,2,2 }
- end
- function AutoIgnite()
- if Ignite and ts.target ~= nil then
- if Vladcfg.auto.Ignite and ts.target.health <= 40 + (20 * myHero.level) and myHero:CanUseSpell(Ignite) == READY then
- CastSpell(Ignite, ts.target)
- end
- end
- end
- function IgniteCheck()
- if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then Ignite = SUMMONER_1
- Vladcfg.auto:addParam("Ignite", "Auto Ignite", SCRIPT_PARAM_ONOFF, true)
- elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") then Ignite = SUMMONER_2
- Vladcfg.auto:addParam("Ignite", "Auto Ignite", SCRIPT_PARAM_ONOFF, true)
- end
- end
- function orbwalkCheck()
- PrintChat("<font color=\"#000000\"><b>HWs Vladimir Loaded. SAC not detected, Loading SxOrbWalk.</b></font>")
- require("SxOrbWalk")
- SxMenu = scriptConfig("SxOrbWalk", "SxOrbb")
- SxOrb:LoadToMenu(SxMenu)
- SACLoaded = false
- end
- function Combo()
- if ts.target ~= nil then
- --E
- if Vladcfg.combo.useE and
- myHero:CanUseSpell(_E) == READY and
- GetDistance(ts.target) <= ERange then
- CastE()
- end
- --Q
- if Vladcfg.combo.useQ then
- CastQ()
- end
- --R
- if Vladcfg.combo.useR and
- myHero:CanUseSpell(_R) == READY and
- GetDistance(ts.target) <= RRange and ts.target.health <= ts.target.maxHealth * (50 / 100) then
- CastR()
- end
- end
- end
- function CastQ()
- if Recalling then return end
- CastSpell(_Q, ts.target)
- end
- function CastE()
- if Recalling then return end
- CastSpell(_E)
- end
- function Pool()
- if Recalling then return end
- if myHero.health <= myHero.maxHealth * (25 / 100) and myHero:CanUseSpell(_W) == READY then
- for each, enemy in pairs(GetEnemyHeroes()) do -- Loop all enemys
- if ValidTarget(enemy) and GetDistance(enemy) <= RangeToActivateSpell then -- If the distance to your enemy is <= the range you specified on the top it will cast
- CastSpell(_W)
- end
- end
- end
- end
- function CastR()
- if Recalling then return end
- CastSpell(_R, ts.target)
- end
- function Harass()
- if ts.target ~= nil then
- if Vladcfg.harass.harass and
- myHero:CanUseSpell(_Q) == READY then
- CastQ()
- end
- end
- end
- function HarassE()
- if ts.target ~= nil then
- if Vladcfg.harass.harassE and Vladcfg.harass.harass and
- myHero:CanUseSpell(_E) == READY and
- GetDistance(ts.target) <= ERange-10 then
- CastE()
- end
- end
- end
- function Farm()
- if (myHero:CanUseSpell(_Q) == READY) then
- for index, minion in pairs(minionManager(MINION_ENEMY, QRange, player, MINION_SORT_HEALTH_ASC).objects) do
- local qDmg = getDmg("Q",minion, GetMyHero())
- local MinionHealth_ = minion.health
- if qDmg >= MinionHealth_ then
- CastSpell(_Q, minion)
- end
- end
- end
- end
- function OnCreateObj(obj)
- if obj ~= nil then
- if obj.name:find("TeleportHome.troy") then
- if GetDistance(obj, myHero) <= 70 then
- Recalling = true
- end
- end
- end
- if obj.name:find("Vladimir_Base_R_AoE_nova.troy") then
- Robj = obj and print("R casted on target")
- end
- end
- function OnDeleteObj(obj)
- if obj and obj.valid and obj.name:find("TeleportHome.troy") then
- Recalling = false
- end
- if obj.name and obj.name:find("Vladimir_Base_R_AoE_nova.troy") then
- Robj = nil and print("R removed from target")
- end
- end
- function OnProcessSpell(object, spell)
- if object.isMe then
- if spell.name:lower():find("attack") then
- lastAttack = GetTickCount() - GetLatency()/2
- lastWindUpTime = spell.windUpTime*1000
- lastAttackCD = spell.animationTime*1000
- end
- end
- if object.team == myHero.team and spell.name == myHero:GetSpellData(_E).name then
- eTick = GetTickCount()
- end
- if source == myHero then print(spell.name) end
- if spell.name == "Tides of Blood" then
- if eStacks < 4 then
- eStacks = eStacks + 1
- end
- end
- if Robj ~= nil then
- local qDmg = ((myHero.ap * .65) + 90 + (myHero:GetSpellData(_E).level * 35)) * .12
- local eDmg = ((myHero.ap * .45) + 60 + (myHero:GetSpellData(_E).level * 25)) * .12
- local rDmg = ((myHero.ap * .70) + 50 + (myHero:GetSpellData(_E).level * 100)) * .12
- end
- end
- function OnDraw()
- if Vladcfg.draw.drawQ.drawq then
- if myHero:CanUseSpell(_Q) == READY then
- DrawCircle(myHero.x, myHero.y, myHero.z, QRange, ARGB(Vladcfg.draw.drawQ.colorQ[1], Vladcfg.draw.drawQ.colorQ[2], Vladcfg.draw.drawQ.colorQ[3], Vladcfg.draw.drawQ.colorQ[4]))
- end
- end
- if Vladcfg.draw.drawE.drawe then
- DrawCircle3D(myHero.x, myHero.y, myHero.z, ERange, 1, ARGB(255,25,255,18))
- end
- if Vladcfg.draw.drawR.drawr then
- if myHero:CanUseSpell(_R) == READY then
- DrawCircle(myHero.x, myHero.y, myHero.z, RRange, ARGB(Vladcfg.draw.drawR.colorR[1], Vladcfg.draw.drawR.colorR[2], Vladcfg.draw.drawR.colorR[3], Vladcfg.draw.drawR.colorR[4]))
- end
- end
- if ts.target ~= nil and Vladcfg.draw.drawenemy and GetDistance(ts.target) <= ts.range then
- DrawCircle(ts.target.x, ts.target.y, ts.target.z, 100, ARGB(Vladcfg.draw.colorTS[1], Vladcfg.draw.colorTS[2], Vladcfg.draw.colorTS[3], Vladcfg.draw.colorTS[4]))
- if ts.target ~= nil and Vladcfg.draw.drawenemy and GetDistance(ts.target) <= ts.range then
- DrawCircle(ts.target.x, ts.target.y, ts.target.z, 110, ARGB(Vladcfg.draw.colorTS[1], Vladcfg.draw.colorTS[2], Vladcfg.draw.colorTS[3], Vladcfg.draw.colorTS[4]))
- if ts.target ~= nil and Vladcfg.draw.drawenemy and GetDistance(ts.target) <= ts.range then
- DrawText3D(tostring("Current target"), ts.target.x, ts.target.y, ts.target.z, 15)
- end
- end
- end
- if Vladcfg.auto.stackE then
- DrawText3D(tostring("E Stack toggled [3]"), myHero.x-15, myHero.y, myHero.z, 15)
- end
- if Vladcfg.harass.harass then
- DrawText3D(tostring("Harass toggled [1]"), myHero.x-15, myHero.y-30, myHero.z, 15)
- end
- end
- function minionCollision(predic, width, range)
- for _, minionObjectE in pairs(enemyMinions.objects) do
- if predic ~= nil and player:GetDistance(minionObjectE) < range then
- ex = player.x
- ez = player.z
- tx = predic.x
- tz = predic.z
- dx = ex - tx
- dz = ez - tz
- if dx ~= 0 then
- m = dz/dx
- c = ez - m*ex
- end
- mx = minionObjectE.x
- mz = minionObjectE.z
- distanc = (math.abs(mz - m*mx - c))/(math.sqrt(m*m+1))
- if distanc < width and math.sqrt((tx - ex)*(tx - ex) + (tz - ez)*(tz - ez)) > math.sqrt((tx - mx)*(tx - mx) + (tz - mz)*(tz - mz)) then
- return true
- end
- end
- end
- return false
- end
- function KS()
- if not Vladcfg.auto.KS or myHero:CanUseSpell(_Q) ~= READY then return end
- for _, target in pairs(GetEnemyHeroes()) do
- if target and ValidTarget(target) and GetDistanceSqr(target) < ERange^2 then
- if myHero:CanUseSpell(_E) == READY and target.health <= getDmg("Q", target, myHero) + eDmg then
- CastSpell(_E, target)
- elseif target.health <= getDmg("Q", target, myHero) and ValidTarget(target, QRange) then
- CastSpell(_Q, target)
- end
- end
- end
- end
- function KSE()
- if not Vladcfg.auto.KS or myHero:CanUseSpell(_E) ~= READY then return end
- for _, target in pairs(GetEnemyHeroes()) do
- if target and ValidTarget(target) and GetDistanceSqr(target) < QRange^2 then
- if myHero:CanUseSpell(_Q) == READY and target.health <= getDmg("Q", target, myHero) + eDmg then
- CastSpell(_Q, target)
- elseif target.health <= eDmg and ValidTarget(target, ERange) then
- CastSpell(_E, target)
- end
- end
- end
- end
- function farmE()
- if Vladcfg.harass.farm and (myHero:CanUseSpell(_E) == READY) then
- for index, minion in pairs(minionManager(MINION_ENEMY, ERange, player, MINION_SORT_HEALTH_ASC).objects) do
- local emDmg = getDmg("E",minion, GetMyHero())
- local MinionHealth_ = minion.health
- if emDmg >= MinionHealth_ then
- CastSpell(_E, minion)
- end
- end
- end
- end
- function Zhonya()
- if ts.target ~= nil then
- if Recalling or ts.target.health < myHero.health then return end
- if myHero.health <= myHero.maxHealth * (30 / 100) then
- for each, enemy in pairs(GetEnemyHeroes()) do -- Loop all enemys
- if ValidTarget(enemy) and GetDistance(enemy) <= RangeToActivateSpell then -- If the distance to your enemy is <= the range you specified on the top it will cast
- CastZhonya()
- end
- end
- end
- end
- end
- function CastZhonya()
- local item = CheckItem("zhonyashourglass")
- if item and myHero:CanUseSpell(item) == 0 then
- CastSpell(item)
- return true
- end
- if GetInventoryItemIsCastable(3040) then
- CastItem(3040)
- end
- end
- function CheckItem(ItemName)
- for i = 6, 12 do
- local item = myHero:GetSpellData(i).name
- if item and item:lower() == ItemName then
- return i
- end
- end
- end
- local originalKD = _G.IsKeyDown;
- _G.IsKeyDown = function(theKey)
- if (type(theKey) ~= 'number') then
- local tn = tonumber(theKey);
- if (tn ~= nil) then
- return originalKD(tn);
- else
- return originalKD(GetKey(theKey));
- end;
- else
- return originalKD(theKey);
- end
- end
- function eAuto()
- if Recalling then return end
- if myHero:CanUseSpell(_E) == READY then
- CastSpell(_E)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement