naturus

Untitled

Dec 25th, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.29 KB | None | 0 0
  1. _G.Update = true
  2. local UPDATE_SCRIPT_NAME = "Chogath"
  3. local UPDATE_HOST = "bitbucket.org"
  4. local UPDATE_BitBucket_USER = "BoLSilent"
  5. local UPDATE_BitBucket_FOLDER = "Scripts"
  6. local UPDATE_BitBucket_FILE = "Chogath.lua"
  7. local UPDATE_PATH = "/"..UPDATE_BitBucket_USER.."/"..UPDATE_BitBucket_FOLDER.."/raw/master/"..UPDATE_BitBucket_FILE
  8. local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME
  9. local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH
  10.  
  11. local ServerData
  12. if _G.Update then
  13.     GetAsyncWebResult(UPDATE_HOST, UPDATE_PATH, function(d) ServerData = d end)
  14.     function update()
  15.         if ServerData ~= nil then
  16.             local ServerVersion
  17.             local send, tmp, sstart = nil, string.find(ServerData, "local version = \"")
  18.             if sstart then
  19.                 send, tmp = string.find(ServerData, "\"", sstart+1)
  20.             end
  21.             if send then
  22.                 ServerVersion = tonumber(string.sub(ServerData, sstart+1, send-1))
  23.             end
  24.  
  25.             if ServerVersion ~= nil and tonumber(ServerVersion) ~= nil and tonumber(ServerVersion) > tonumber(version) then
  26.                 DownloadFile(UPDATE_URL.."?nocache"..myHero.charName..os.clock(), UPDATE_FILE_PATH, function () print("<font color=\"#FF0000\"><b>"..UPDATE_SCRIPT_NAME..":</b> successfully updated. ("..version.." => "..ServerVersion..")</font>") end)    
  27.             elseif ServerVersion then
  28.                 print("<font color=\"#FF0000\"><b>"..UPDATE_SCRIPT_NAME..":</b> You have got the latest version: <u><b>"..ServerVersion.."</b></u></font>")
  29.             end    
  30.             ServerData = nil
  31.         end
  32.     end
  33.     AddTickCallback(update)
  34. end
  35.  
  36. require "VPrediction"
  37.         local VP = nil
  38.  
  39. local qRange, wRange, eRange  = 950, 700, 500
  40.  
  41.  
  42. function OnLoad()
  43. VP = VPrediction()
  44. Config = scriptConfig("ChoGath","vk")
  45. Config:addSubMenu("Basic Settings", "Basic")
  46. Config:addSubMenu("Draw Settings", "Draw")
  47.  
  48. --> Basic Settings
  49. Config.Basic:addParam("doCombo", "Q W combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  50. Config.Basic:addParam("usew", "Use w in Combo", SCRIPT_PARAM_ONOFF, true)
  51. Config.Basic:addParam("autoult", "Use Ult to kill", SCRIPT_PARAM_ONOFF, true)
  52.  
  53.  
  54. --> Draw Settings
  55. Config.Draw:addParam("drawQ", "Draw Q Range", SCRIPT_PARAM_ONOFF, true)
  56. Config.Draw:addParam("drawW", "Draw W Range", SCRIPT_PARAM_ONOFF, true)
  57. Config.Draw:addParam("drawE", "Draw E Range", SCRIPT_PARAM_ONOFF, true)
  58. ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, qRange, DAMAGE_MAGIC, true)
  59. Config:addTS(ts)
  60.  
  61. key = 32
  62. KEY_DOWN = 0x100
  63. KEY_UP = 0x101
  64. player = GetMyHero()
  65. PrintChat(" >> Silent ChoGath v2 Loaded")
  66. --ignite = ((myHero:GetSpellData(SUMMONER_1).name:find("SummonerDot") and SUMMONER_1) or (myHero:GetSpellData(SUMMONER_2).name:find("SummonerDot") and SUMMONER_2) or nil)
  67. end
  68.  
  69. function autoult()
  70.         if RREADY then
  71.                 local rDmg = 0    
  72.                 for i = 1, heroManager.iCount, 1 do
  73.                         local enemyhero = heroManager:getHero(i)
  74.                         if ValidTarget(enemyhero, (200)) then
  75.                                 rDmg = getDmg("R", enemyhero, myHero)
  76.                                 if enemyhero.health <= rDmg then
  77.                                         CastSpell(_R, enemyhero)
  78.                                 end
  79.                         end
  80.                 end
  81.         end
  82. end
  83.  
  84.     function castQ(target)
  85.         for i, target in pairs(GetEnemyHeroes()) do
  86.             local CastPosition,  HitChance,  Position = VP:GetCircularCastPosition(target, 0.625, 175, 950)
  87.             if HitChance >= 2 and GetDistance(CastPosition) < 950 and not target.dead and ValidTarget(ts.target, qRange) then
  88.                 CastSpell(_Q, CastPosition.x, CastPosition.z)
  89.             end
  90.         end
  91.     end
  92.  
  93.  
  94.            
  95.            
  96.            
  97. function castW(target)
  98.     for i, target in pairs(GetEnemyHeroes()) do
  99.         CastPosition,  HitChance,  Position = VP:GetLineCastPosition(myHero, 0.4, 125, wRange, 2000, myHero, false)
  100.             if HitChance >= 2 or 3 and GetDistance(CastPosition) < 650 and not target.dead and ValidTarget(ts.target, qRange) then
  101.                         CastSpell(_W, CastPosition.x, CastPosition.z)
  102.             end
  103.     end
  104. end
  105.    
  106.  
  107.  
  108. function doCombo()
  109.     if ts.target then
  110.         if QREADY then
  111.             castQ(ts.target)
  112.         end
  113.         if WREADY and Config.Basic.usew then
  114.             castW(myHero)
  115.         end
  116.     end
  117. end
  118.  
  119.  
  120. function Checks()
  121. QREADY = ((myHero:CanUseSpell(_Q) == READY) or (myHero:GetSpellData(_Q).level > 0 and myHero:GetSpellData(_Q).currentCd <= 0.4))
  122. WREADY = ((myHero:CanUseSpell(_W) == READY) or (myHero:GetSpellData(_W).level > 0 and myHero:GetSpellData(_W).currentCd <= 0.4))
  123. RREADY = ((myHero:CanUseSpell(_R) == READY) or (myHero:GetSpellData(_R).level > 0 and myHero:GetSpellData(_R).currentCd <= 0.4))
  124. IREADY = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
  125. ts:update()
  126. end
  127.  
  128.  
  129.  
  130.  
  131.  
  132. function OnTick()
  133. Checks()
  134.     if ts.target then
  135.  
  136.         if Config.Basic.doCombo then
  137.             doCombo()
  138.         end
  139.         if Config.Basic.autoult then
  140.             autoult()
  141.         end
  142.     end
  143. end
  144.  
  145. function OnWndMsg( msg, keycode )
  146.  
  147. if keycode == key and msg ==  KEY_DOWN then    
  148.     player:MoveTo(mousePos.x, mousePos.z)
  149. end
  150. end
  151.  
  152.  
  153. function OnDraw()
  154.     if Config.Draw.drawQ then
  155.         DrawCircle(myHero.x, myHero.y, myHero.z, qRange, 0xFFFF0000)
  156.     end
  157.     if Config.Draw.drawW then
  158.         DrawCircle(myHero.x, myHero.y, myHero.z, wRange, 0xFFFF0000)
  159.     end
  160.     if Config.Draw.drawE then
  161.         DrawCircle(myHero.x, myHero.y, myHero.z, eRange, 0xFFFF0000)
  162.     end
  163.     end
Advertisement
Add Comment
Please, Sign In to add comment