Advertisement
H3stia

Zed autofarm.lua

Apr 4th, 2013
871
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.02 KB | None | 0 0
  1. if myHero.charName ~= "Zed" then return end
  2.  
  3. local wClone = nil
  4. local rClone = nil
  5. local ts
  6. local RREADY, WREADY, EREADY, QREADY
  7. local delay, qspeed = 235, 1.742
  8. local prediction
  9. local MaladyDmg = 0
  10. local nextTick = 0
  11. local waitDelay = 400
  12.  
  13. function OnLoad()
  14.     ZedConfig = scriptConfig("Sida's Zed", "sidaszed")
  15.     ZedConfig:addParam("Combo", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  16.     ZedConfig:addParam("Harass", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
  17.     ZedConfig:addParam("AutoE", "Auto E", SCRIPT_PARAM_ONOFF, true)
  18.     ZedConfig:addParam("lasthit", "Auto farm", SCRIPT_PARAM_ONKEYDOWN, string.byte("A"))
  19.     ZedConfig:addParam("mousemoving", "Move To Mouse while AutoFarm", SCRIPT_PARAM_ONOFF, true)
  20.     ZedConfig:addParam("Movement", "Move To Mouse In Combo", SCRIPT_PARAM_ONOFF, true)
  21.     ZedConfig:addParam("Range", "Draw Range Circles", SCRIPT_PARAM_ONOFF, true)
  22.     ZedConfig:addParam("TargetCircle", "Draw Target Circle", SCRIPT_PARAM_ONOFF, true)
  23.     ts = TargetSelector(TARGET_LOW_HP_PRIORITY, 1190, DAMAGE_PHYSICAL, true)
  24.     ts.name = "Zed"
  25.     ZedConfig:addTS(ts)
  26.    
  27.     enemyMinions = minionManager(MINION_ENEMY, 650, player, MINION_SORT_HEALTH_ASC)
  28. end
  29.  
  30. function getExtraDmg()
  31.     ExtraDmg = 0
  32.     if GetInventoryHaveItem(3091, myHero) == true then
  33.         ExtraDmg = ExtraDmg + 42
  34.     end
  35.     if GetInventoryHaveItem(3114, myHero) == true then
  36.         maladyDmg = 15+(myHero.ap*0.1)
  37.         ExtraDmg = ExtraDmg + maladyDmg
  38.     end
  39.     return ExtraDmg
  40. end
  41.  
  42. function OnTick()
  43.     ts:update()
  44.     SetCooldowns()
  45.     enemyMinions:update()
  46.     getExtraDmg()
  47.    
  48.     if ZedConfig.lasthit then  
  49.    
  50.             if ZedConfig.mousemoving and GetTickCount() > nextTick then
  51.                 myHero:MoveTo(mousePos.x, mousePos.z)
  52.             end
  53.            
  54.             for index, minion in pairs(enemyMinions.objects) do
  55.                 if GetDistance(minion, myHero) <= (myHero.range+75) and GetTickCount() > nextTick then
  56.                     local adamage = getDmg("AD",minion, myHero)
  57.                     local bDmg = myHero:CalcMagicDamage(minion, ExtraDmg)
  58.                 if (adamage+bDmg)>minion.health then
  59.                     myHero:Attack(minion)
  60.                     nextTick = GetTickCount() + waitDelay
  61.                 end
  62.                 end
  63.         end
  64.     end
  65.     if ts.target ~= nil then
  66.         if ZedConfig.AutoE then autoE() end
  67.         prediction = qPred()
  68.         if ZedConfig.Combo then Combo() end
  69.         if ZedConfig.Harass then Harass() end
  70.     end
  71.    
  72.     if ts.target == nil and ZedConfig.Combo and ZedConfig.Movement then
  73.         myHero:MoveTo(mousePos.x, mousePos.z)
  74.     end
  75. end
  76.  
  77. function OnDraw()
  78.     if ZedConfig.Range then
  79.         DrawCircle(myHero.x, myHero.y, myHero.z, 290, 0xFF00FF00)
  80.         DrawCircle(myHero.x, myHero.y, myHero.z, 550, 0xFFFFFF)
  81.     end
  82.     if ts.target ~= nil and ZedConfig.TargetCircle then
  83.         DrawCircle(ts.target.x, ts.target.y, ts.target.z, 150, 0xFF00FF00)
  84.         DrawCircle(ts.target.x, ts.target.y, ts.target.z, 151, 0xFF00FF00)
  85.         DrawCircle(ts.target.x, ts.target.y, ts.target.z, 152, 0xFF00FF00)
  86.         DrawCircle(ts.target.x, ts.target.y, ts.target.z, 153, 0xFF00FF00)
  87.         GetEnergyDraw()
  88.     end
  89. end
  90.  
  91. function Combo()   
  92.     if RREADY then CastSpell(_R, ts.target) end
  93.     if not RREADY or rClone ~= nil then
  94.         if WREADY and ((GetDistance(ts.target) < 700 and HasEnergy()) or (GetDistance(ts.target) > 125 and not RREADY)) then
  95.             CastSpell(_W, ts.target.x, ts.target.z)
  96.         end
  97.         if not WREADY or wClone ~= nil then
  98.             if QREADY then
  99.                 if prediction ~= nil and GetDistance(prediction) < 900 then
  100.                     CastSpell(_Q, prediction.x, prediction.z)
  101.                 end
  102.             end
  103.         end
  104.     end
  105.     UseItems()
  106.    
  107.     if not QREADY and not EREADY then
  108.         local wDist = 0
  109.         local rDist = 0
  110.         if wClone and wClone.valid then wDist = GetDistance(ts.target, wClone) end
  111.         if rClone and rClone.valid then rDist = GetDistance(ts.target, rClone) end 
  112.         if GetDistance(ts.target) > 125 then
  113.             if wDist < rDist and wDist ~= 0 and GetDistance(ts.target) > wDist then
  114.                 CastSpell(_W)
  115.             elseif rDist < wDist and rDist ~= 0 and GetDistance(ts.target) > rDist then
  116.                 CastSpell(_R)
  117.             end
  118.         end
  119.     end
  120.    
  121.     myHero:Attack(ts.target)
  122. end
  123.  
  124. function Harass()
  125.     if prediction ~= nil and (QREADY and WREADY and GetDistance(prediction) < 700) or (QREADY and wClone ~= nil and wClone.valid and GetDistance(prediction, wClone) < 900) then
  126.         if myHero:GetSpellData(_W).name ~= "zedw2" and HasEnergy() then
  127.             CastSpell(_W, ts.target.x, ts.target.z)
  128.         else
  129.             CastSpell(_Q, prediction.x, prediction.z)
  130.         end
  131.     elseif QREADY and not WREADY and prediction and GetDistance(prediction) < 900 then
  132.         CastSpell(_Q, prediction.x, prediction.z)
  133.     end
  134. end
  135.  
  136. function autoE()
  137.     local box = 290
  138.     if GetDistance(ts.target) < box or (wClone ~= nil and wClone.valid and GetDistance(ts.target, wClone) < box) or (rClone ~= nil and rClone.valid and GetDistance(ts.target, rClone) < box) then
  139.         CastSpell(_E)
  140.     else
  141.         for i = 1, heroManager.iCount do
  142.             local enemy = heroManager:getHero(i)
  143.             if enemy.team ~= myHero.team and GetDistance(enemy) < box or (wClone ~= nil and wClone.valid and GetDistance(enemy, wClone) < box) or (rClone ~= nil and rClone.valid and GetDistance(enemy, rClone) < box) then
  144.                 CastSpell(_E)
  145.             end
  146.         end
  147.     end
  148. end
  149.  
  150. function OnCreateObj(obj)
  151.     if obj.valid and obj.name:find("Zed_Clone_idle.troy") then
  152.         if wClone == nil then
  153.             wClone = obj
  154.         elseif rClone == nil then
  155.             rClone = obj
  156.         end
  157.     end
  158. end
  159.  
  160. function OnDeleteObj(obj)
  161.     if obj.valid and wClone and obj == wClone then
  162.         wClone = nil
  163.     elseif obj.valid and rClone and obj == rClone then
  164.         rClone = nil
  165.     end
  166. end
  167.  
  168. function SetCooldowns()
  169.     QREADY = (myHero:CanUseSpell(_Q) == READY)
  170.     WREADY = (myHero:CanUseSpell(_W) == READY)
  171.     EREADY = (myHero:CanUseSpell(_E) == READY)
  172.     RREADY = (myHero:CanUseSpell(_R) == READY)
  173. end
  174.  
  175. function HasEnergy()
  176.     local qMana = {75, 70, 65, 60, 55}
  177.     local eMana = 50
  178.    
  179.     local qEnergy = qMana[myHero:GetSpellData(_Q).level]
  180.    
  181.     local myEnergy = myHero.mana
  182.    
  183.     if myEnergy < eMana + 50 then
  184.         return false
  185.     else
  186.         return true
  187.     end
  188. end
  189.  
  190. function GetEnergyDraw()
  191.     local qMana = {75, 70, 65, 60, 55}
  192.     local wMana = {40, 35, 30, 25, 20}
  193.    
  194.     local qEnergy = (myHero:GetSpellData(_W).level > 0 and qMana[myHero:GetSpellData(_Q).level] or 0)
  195.     local wEnergy = (myHero:GetSpellData(_W).level > 0 and wMana[myHero:GetSpellData(_W).level] or 0)
  196.     local eEnergy = 50
  197.    
  198.     if myHero.mana < qEnergy + wEnergy + eEnergy then
  199.         PrintFloatText(ts.target, 0, "Not Enough Energy!")
  200.     else
  201.         PrintFloatText(ts.target, 0, "Enough Energy!")
  202.     end
  203. end
  204.  
  205. function qPred()
  206.     local travelDuration = (delay + GetDistance(myHero, ts.target)/qspeed)
  207.     travelDuration = (delay + GetDistance(GetPredictionPos(ts.target, travelDuration))/qspeed)
  208.     travelDuration = (delay + GetDistance(GetPredictionPos(ts.target, travelDuration))/qspeed)
  209.     travelDuration = (delay + GetDistance(GetPredictionPos(ts.target, travelDuration))/qspeed)  
  210.     if ts.target ~= nil then
  211.         return GetPredictionPos(ts.target, travelDuration)
  212.     end
  213. end
  214.  
  215. function UseItems()
  216.     if GetInventorySlotItem(3153) ~= nil and GetDistance(ts.target) > 300 then
  217.         CastSpell(GetInventorySlotItem(3153), ts.target)
  218.     end    
  219.     if GetInventorySlotItem(3144) ~= nil and GetDistance(ts.target) > 300 then
  220.         CastSpell(GetInventorySlotItem(3144), ts.target)
  221.     end
  222. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement