Advertisement
Guest User

Orb

a guest
Jan 15th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.78 KB | None | 0 0
  1.  
  2. -- globals
  3. __gsoOrb_loaded = false
  4. gsoLatency = Game.Latency() * 0.001
  5.  
  6. -- orbwalker class
  7. class "__gsoOrb"
  8.  
  9. -- init
  10. function __gsoOrb:__init()
  11. --print("Gamsteron | orbwalker loaded!")
  12. self.menu = MenuElement({type = MENU, id = "menu", name = "Gamsteron Orbwalker 0.08", leftIcon = "https://i.imgur.com/nahe4Ua.png"})
  13. self:_menu()
  14. __gsoOrb_loaded = true
  15. self.lAttack = 0 -- lastAttackTime
  16. self.lMove = 0 -- lastMoveTime
  17.  
  18. self.stopOrb = false
  19. self.stopSpell = false
  20. self.lastSpellT = {}
  21. self.inAAT = false
  22. self.canAASpell = true
  23.  
  24. self.endTime = myHero.attackData.endTime
  25. self.windUpT = myHero.attackData.windUpTime
  26. self.animT = myHero.attackData.animationTime
  27. self.firstAA = 0
  28. self.countAA = 0
  29.  
  30. self.dActions = {} -- delayedActions
  31. self.aAttacks = {} -- activeAttacks
  32. self.shouldWaitT = 0
  33. self.shouldWait = false
  34.  
  35. self.aMinions = {} -- allyMinions
  36. self.aMinionsC = 0
  37. self.eMinions = {} -- enemyMinions
  38. self.eMinionsC = 0
  39. self.eMinionsLH = {} -- enemyMinionsLastHitable
  40. self.eMinionsLHC = 0
  41. self.eMinionsLC = {} -- enemyMinionsLaneClearable
  42. self.eMinionsLCC = 0
  43. self.eMinionsLHS = {} -- enemyMinionsLastHitableSoon
  44. self.eMinionsLHSC = 0
  45. self.eMinionsLHD = {} -- drawLastHitableMinion
  46. self.eMinionsLHSD = {} -- drawLastHitableSoonMinion
  47.  
  48. Callback.Add('Tick', function() self:_tick1() end)
  49. Callback.Add('Tick', function() self:_tick2() end)
  50. Callback.Add('Draw', function() self:_draw() end)
  51. Callback.Add("WndMsg", function(msg, wParam) self:_wndmsg(msg, wParam) end)
  52.  
  53. end
  54.  
  55. -- menu
  56. function __gsoOrb:_menu()
  57. self.menu:MenuElement({name = "Attack", id = "attack", type = MENU, leftIcon = "https://i.imgur.com/DsGzSEv.png"})
  58. self.menu.attack:MenuElement({name = "Set cursorPos delay", id = "cDelay", value = 50, min = 50, max = 100, step = 5 })
  59. self.menu.attack:MenuElement({name = "lasthit delay", id = "lhDelay", value = 0, min = 0, max = 100, step = 5 })
  60. self.menu.attack:MenuElement({name = "AA delay -> attack speed", id = "asDelay", value = 0, min = 0, max = 100, step = 5 })
  61. self.menu:MenuElement({name = "Movement", id = "movement", type = MENU, leftIcon = "https://i.imgur.com/Utq5iah.png"})
  62. self.menu.movement:MenuElement({name = "Kite Delay", id = "kite", value = 25, min = 0, max = 100, step = 5 })
  63. self.menu.movement:MenuElement({name = "Humanizer Movement Delay", id = "humanizer", value = 200, min = 0, max = 300, step = 10 })
  64. self.menu:MenuElement({name = "Drawings", id = "draw", type = MENU, leftIcon = "https://i.imgur.com/GuE9yOL.png"})
  65. self.menu.draw:MenuElement({name = "Enable", id = "enable", value = true})
  66. self.menu.draw:MenuElement({name = "MyHero attack range", id = "me", type = MENU})
  67. self.menu.draw.me:MenuElement({name = "Enable", id = "enable", value = true})
  68. self.menu.draw.me:MenuElement({name = "Color", id = "color", color = Draw.Color(150, 49, 210, 0)})
  69. self.menu.draw.me:MenuElement({name = "Width", id = "width", value = 1, min = 1, max = 10})
  70. self.menu.draw:MenuElement({name = "Enemy attack range", id = "he", type = MENU})
  71. self.menu.draw.he:MenuElement({name = "Enable", id = "enable", value = true})
  72. self.menu.draw.he:MenuElement({name = "Color", id = "color", color = Draw.Color(150, 255, 0, 0)})
  73. self.menu.draw.he:MenuElement({name = "Width", id = "width", value = 1, min = 1, max = 10})
  74. self.menu.draw:MenuElement({name = "Cursor Posistion", id = "cpos", type = MENU})
  75. self.menu.draw.cpos:MenuElement({name = "Enable", id = "enable", value = true})
  76. self.menu.draw.cpos:MenuElement({name = "Color", id = "color", color = Draw.Color(150, 153, 0, 76)})
  77. self.menu.draw.cpos:MenuElement({name = "Width", id = "width", value = 5, min = 1, max = 10})
  78. self.menu.draw.cpos:MenuElement({name = "Radius", id = "radius", value = 250, min = 1, max = 300})
  79. self.menu.draw:MenuElement({name = "Farm", id = "farm", type = MENU})
  80. self.menu.draw.farm:MenuElement({name = "Enable", id = "enable", value = true})
  81. self.menu.draw.farm:MenuElement({name = "LastHitable", id = "lastHitable", type = MENU})
  82. self.menu.draw.farm.lastHitable:MenuElement({name = "Enable", id = "enable", value = true})
  83. self.menu.draw.farm.lastHitable:MenuElement({name = "Color", id = "color", color = Draw.Color(255, 255, 255, 255)})
  84. self.menu.draw.farm.lastHitable:MenuElement({name = "Width", id = "width", value = 10, min = 1, max = 10})
  85. self.menu.draw.farm.lastHitable:MenuElement({name = "Radius", id = "radius", value = 35, min = 1, max = 100})
  86. self.menu.draw.farm:MenuElement({name = "AlmostLastHitable", id = "almostLastHitable", type = MENU})
  87. self.menu.draw.farm.almostLastHitable:MenuElement({name = "Enable", id = "enable", value = true})
  88. self.menu.draw.farm.almostLastHitable:MenuElement({name = "Color", id = "color", color = Draw.Color(255, 255, 102, 102)})
  89. self.menu.draw.farm.almostLastHitable:MenuElement({name = "Width", id = "width", value = 10, min = 1, max = 10})
  90. self.menu.draw.farm.almostLastHitable:MenuElement({name = "Radius", id = "radius", value = 35, min = 1, max = 100})
  91. self.menu.draw:MenuElement({name = "Minion attacks", id = "minionAttacks", type = MENU})
  92. self.menu.draw.minionAttacks:MenuElement({name = "Enable", id = "enable", value = true})
  93. self.menu.draw.minionAttacks:MenuElement({name = "Color", id = "color", color = Draw.Color(255, 255, 102, 0)})
  94. self.menu.draw.minionAttacks:MenuElement({name = "Width", id = "width", value = 3, min = 1, max = 10})
  95. self.menu.draw.minionAttacks:MenuElement({name = "Radius", id = "radius", value = 10, min = 1, max = 100})
  96. self.menu:MenuElement({name = "Keys", id = "keys", type = MENU, leftIcon = "https://i.imgur.com/QXvoHmH.png"})
  97. self.menu.keys:MenuElement({name = "Combo Key", id = "combo", key = string.byte(" ")})
  98. self.menu.keys:MenuElement({name = "Harrass Key", id = "harras", key = string.byte("C")})
  99. self.menu.keys:MenuElement({name = "LastHit Key", id = "lastHit", key = string.byte("X")})
  100. self.menu.keys:MenuElement({name = "LaneClear Key", id = "laneClear", key = string.byte("V")})
  101. end
  102.  
  103. -- object manager
  104. function __gsoOrb:_valid(range, unit)
  105. if unit.distance < range and unit.dead == false and unit.isTargetable == true and unit.visible == true then
  106. return true
  107. end
  108. return false
  109. end
  110. function __gsoOrb:_addUnits()
  111. local countMinions = Game.MinionCount()
  112. for i = 1, countMinions do
  113. local minion = Game.Minion(i)
  114. if self:_valid(2000, minion) then
  115. if minion.isEnemy then
  116. self.eMinionsC = self.eMinionsC + 1
  117. self.eMinions[self.eMinionsC] = minion
  118. else
  119. self.aMinionsC = self.aMinionsC + 1
  120. self.aMinions[self.aMinionsC] = minion
  121. end
  122. end
  123. end
  124. end
  125. function __gsoOrb:_removeUnits()
  126. self.aMinions = {}
  127. self.aMinionsC = 0
  128. self.eMinions = {}
  129. self.eMinionsC = 0
  130. self.eMinionsLC = {}
  131. self.eMinionsLCC = 0
  132. self.eMinionsLH = {}
  133. self.eMinionsLHC = 0
  134. self.eMinionsLHS = {}
  135. self.eMinionsLHSC = 0
  136. end
  137.  
  138. -- predicted pos
  139. function __gsoOrb:_predPos(speed, pPos, unit)
  140. local result = unit.pos
  141. if unit.pathing.hasMovePath == true then
  142. local uPos = unit.pos
  143. local ePos = unit.pathing.endPos
  144. local distUP = pPos:DistanceTo(uPos)
  145. local distEP = pPos:DistanceTo(ePos)
  146. if distEP > distUP then
  147. result = uPos:Extended(ePos, 50+(unit.ms*(distUP / (speed - unit.ms))))
  148. else
  149. result = uPos:Extended(ePos, 50+(unit.ms*(distUP / (speed + unit.ms))))
  150. end
  151. end
  152. return result
  153. end
  154.  
  155. -- predicted hp
  156. function __gsoOrb:_isDead(target)
  157. local result = true
  158. for i = 1, self.eMinionsC do
  159. local eMin = self.eMinions[i]
  160. if target == eMin.handle then
  161. result = false
  162. break
  163. end
  164. end
  165. return result
  166. end
  167. function __gsoOrb:_possibleDmg(eMin, time)
  168. local result = 0
  169. for i = 1, self.aMinionsC do
  170. local aMin = self.aMinions[i]
  171. local aaData = aMin.attackData
  172. local aDmg = (aMin.totalDamage*(1+aMin.bonusDamagePercent))
  173. if aMin.pathing.hasMovePath == true or self:_isDead(aaData.target) == true then
  174. result = result + aDmg
  175. elseif aaData.target == eMin.handle then
  176. local endT = aaData.endTime
  177. local animT = aaData.animationTime
  178. local windUpT = aaData.windUpTime
  179. local pSpeed = aaData.projectileSpeed
  180. local pFlyT = pSpeed > 0 and aMin.pos:DistanceTo(eMin.pos) / pSpeed or 0
  181. local pStartT = endT - animT
  182. local pEndT = pStartT + pFlyT + windUpT
  183. local checkT = Game.Timer()
  184. pEndT = pEndT > checkT and pEndT or pEndT + animT + pFlyT
  185. while pEndT - checkT < time do
  186. result = result + aDmg
  187. pEndT = pEndT + aaData.animationTime + pFlyT
  188. end
  189. end
  190. end
  191. return result
  192. end
  193. function __gsoOrb:_setEnemyMinions()
  194. local mLH = self.menu.attack.lhDelay:Value()*0.001
  195. for i = 1, self.eMinionsC do
  196. local eMinion = self.eMinions[i]
  197. if eMinion.distance < myHero.range + myHero.boundingRadius + eMinion.boundingRadius - 30 then
  198. local eMinion_handle = eMinion.handle
  199. local eMinion_health = eMinion.health
  200. local myHero_aaData = myHero.attackData
  201. local myHero_pFlyTime = myHero_aaData.windUpTime + (eMinion.distance / myHero_aaData.projectileSpeed) + gsoLatency + 0.05 + self.menu.attack.lhDelay:Value()*0.001
  202. for k1,v1 in pairs(self.aAttacks) do
  203. for k2,v2 in pairs(self.aAttacks[k1]) do
  204. if v2.canceled == false and eMinion_handle == v2.to.handle then
  205. local checkT = Game.Timer()
  206. local pEndTime = v2.startTime + v2.pTime
  207.  
  208. if pEndTime > checkT and pEndTime - checkT < myHero_pFlyTime - mLH then
  209. eMinion_health = eMinion_health - v2.dmg
  210. end
  211. end
  212. end
  213. end
  214. local myHero_dmg = myHero.totalDamage + 3
  215. if eMinion_health - myHero_dmg < 0 then
  216. self.eMinionsLHC = self.eMinionsLHC + 1
  217. self.eMinionsLH[self.eMinionsLHC] = { eMinion, eMinion_health - myHero_dmg }
  218. else
  219. if eMinion.health - self:_possibleDmg(eMinion, self.animT*3) - myHero_dmg < 0 then
  220. self.shouldWait = true
  221. self.shouldWaitT = Game.Timer()
  222. self.eMinionsLHSC = self.eMinionsLHSC + 1
  223. self.eMinionsLHS[self.eMinionsLHSC] = eMinion
  224. else
  225. self.eMinionsLCC = self.eMinionsLCC + 1
  226. self.eMinionsLC[self.eMinionsLCC] = eMinion
  227. end
  228. end
  229. end
  230. end
  231. self.eMinionsLHD = self.eMinionsLH
  232. self.eMinionsLHSD = self.eMinionsLHS
  233. end
  234.  
  235. -- active attacks
  236. function __gsoOrb:_setActiveAA()
  237. for i = 1, self.aMinionsC do
  238. local aMinion = self.aMinions[i]
  239. local aHandle = aMinion.handle
  240. local aAAData = aMinion.attackData
  241. if aAAData.endTime > Game.Timer() then
  242. for i = 1, self.eMinionsC do
  243. local eMinion = self.eMinions[i]
  244. local eHandle = eMinion.handle
  245. if eHandle == aAAData.target then
  246. local checkT = Game.Timer()
  247. -- p -> projectile
  248. local pSpeed = aAAData.projectileSpeed
  249. local pFlyT = pSpeed > 0 and aMinion.pos:DistanceTo(eMinion.pos) / pSpeed or 0
  250. local pStartT = aAAData.endTime - aAAData.windDownTime
  251. if not self.aAttacks[aHandle] then
  252. self.aAttacks[aHandle] = {}
  253. end
  254. local aaID = math.floor(aAAData.endTime)
  255. if checkT < pStartT + pFlyT then
  256. if pSpeed > 0 then
  257. if checkT > pStartT then
  258. if not self.aAttacks[aHandle][aaID] then
  259. self.aAttacks[aHandle][aaID] = {
  260. canceled = false,
  261. speed = pSpeed,
  262. startTime = pStartT,
  263. pTime = pFlyT,
  264. pos = aMinion.pos:Extended(eMinion.pos, pSpeed*(checkT-pStartT)),
  265. from = aMinion,
  266. fromPos = aMinion.pos,
  267. to = eMinion,
  268. dmg = (aMinion.totalDamage*(1+aMinion.bonusDamagePercent))-eMinion.flatDamageReduction
  269. }
  270. end
  271. elseif aMinion.pathing.hasMovePath == true then
  272. --print("attack canceled")
  273. self.aAttacks[aHandle][aaID] = {
  274. canceled = true,
  275. from = aMinion
  276. }
  277. end
  278. elseif not self.aAttacks[aHandle][aaID] then
  279. self.aAttacks[aHandle][aaID] = {
  280. canceled = false,
  281. speed = pSpeed,
  282. startTime = pStartT - aAAData.windUpTime,
  283. pTime = aAAData.windUpTime,
  284. pos = aMinion.pos,
  285. from = aMinion,
  286. fromPos = aMinion.pos,
  287. to = eMinion,
  288. dmg = (aMinion.totalDamage*(1+aMinion.bonusDamagePercent))-eMinion.flatDamageReduction
  289. }
  290. end
  291. end
  292. break
  293. end
  294. end
  295. end
  296. end
  297. end
  298. function __gsoOrb:_handleActiveAA()
  299. local aAttacks2 = self.aAttacks
  300. for k1,v1 in pairs(aAttacks2) do
  301. local count = 0
  302. local checkT = Game.Timer()
  303. for k2,v2 in pairs(aAttacks2[k1]) do
  304. count = count + 1
  305. if v2.speed == 0 and (not v2.from or v2.from == nil or v2.from.dead) then
  306. --print("dead")
  307. self.aAttacks[k1] = nil
  308. break
  309. end
  310. if v2.canceled == false then
  311. local ranged = v2.speed > 0
  312. if ranged == true then
  313. self.aAttacks[k1][k2].pTime = v2.fromPos:DistanceTo(self:_predPos(v2.speed, v2.pos, v2.to)) / v2.speed
  314. end
  315. if checkT > v2.startTime + self.aAttacks[k1][k2].pTime - gsoLatency - 0.02 or not v2.to or v2.to == nil or v2.to.dead then
  316. self.aAttacks[k1][k2] = nil
  317. elseif ranged == true then
  318. self.aAttacks[k1][k2].pos = v2.fromPos:Extended(v2.to.pos, (checkT-v2.startTime)*v2.speed)
  319. end
  320. end
  321. end
  322. if count == 0 then
  323. --print("no active attacks")
  324. self.aAttacks[k1] = nil
  325. end
  326. end
  327. end
  328.  
  329. -- target selector
  330. function __gsoOrb:_comboT()
  331. local result = nil
  332. local min = 10000000
  333. for i = 1, Game.HeroCount() do
  334. local hero = Game.Hero(i)
  335. local armor = hero.armor - myHero.armorPen
  336. armor = armor > 0 and myHero.bonusArmorPenPercent * armor or armor
  337. local hp = hero.health + ( 2 * armor ) - ( hero.attackSpeed * hero.totalDamage ) - ( 1.5 * hero.ap )
  338. if hp < min and hero.isEnemy and self:_valid(myHero.range + myHero.boundingRadius + hero.boundingRadius - 30, hero) then
  339. min = hp
  340. result = hero
  341. end
  342. end
  343. return result
  344. end
  345. function __gsoOrb:_lastHitT()
  346. local result = nil
  347. local min = 10000000
  348. if self.eMinionsLHC > 0 then
  349. for i = 1, self.eMinionsLHC do
  350. local eMinionLH = self.eMinionsLH[i]
  351. local minion = eMinionLH[1]
  352. local hp = eMinionLH[2]
  353. if hp < min then
  354. min = hp
  355. result = minion
  356. end
  357. end
  358. end
  359. return result
  360. end
  361. function __gsoOrb:_laneClearT()
  362. local result = self:_lastHitT()
  363. if result == nil and self.eMinionsLHSC == 0 and self.shouldWait == false then
  364. result = self:_comboT()
  365. if result == nil then
  366. local min = 10000000
  367. for i = 1, self.eMinionsLCC do
  368. local minion = self.eMinionsLC[i]
  369. local hp = minion.health
  370. if hp < min then
  371. min = hp
  372. result = minion
  373. end
  374. end
  375. end
  376. end
  377. return result
  378. end
  379. function __gsoOrb:_harassT()
  380. local result = self:_lastHitT()
  381. return result == nil and self:_comboT() or result
  382. end
  383.  
  384. -- orb
  385. function __gsoOrb:_orb(unit)
  386. local checkT = Game.Timer()
  387. local mKite = self.menu.movement.kite:Value()*0.001
  388. local mHum = self.menu.movement.humanizer:Value()*0.001
  389. local mAS = self.menu.attack.asDelay:Value()*0.001
  390. local mDel = self.menu.attack.cDelay:Value()
  391. if self.stopOrb == false and self.stopSpell == false and unit ~= nil and (checkT + 0.13 - mAS > self.endTime or self.canAASpell == true) then
  392. -- checkT > self.lAttack + myHero.attackData.animationTime + 0.075 then
  393. self.canAASpell = false
  394. self.stopOrb = true
  395. self.lAttack = Game.Timer()
  396. Control.mouse_event(MOUSEEVENTF_RIGHTDOWN)
  397. Control.mouse_event(MOUSEEVENTF_RIGHTUP)
  398. local cPos = cursorPos
  399. Control.SetCursorPos(unit.pos)
  400. Control.mouse_event(MOUSEEVENTF_RIGHTDOWN)
  401. Control.mouse_event(MOUSEEVENTF_RIGHTUP)
  402. self.dActions[GetTickCount()] = { function() Control.SetCursorPos(cPos.x, cPos.y) end, mDel }
  403. elseif self.stopOrb == false and checkT - mHum > self.lMove and checkT + self.latency - mKite > self.endTime - (self.animT - self.windUpT) then
  404. --and checkT > self.lAttack + myHero.attackData.windUpTime + 0.075 then
  405. Control.mouse_event(MOUSEEVENTF_RIGHTDOWN)
  406. Control.mouse_event(MOUSEEVENTF_RIGHTUP)
  407. self.lMove = checkT
  408. end
  409. end
  410.  
  411. -- wndmsg
  412. function __gsoOrb:_wndmsg(msg, wParam)
  413. local i = wParam
  414. if i == HK_Q or i == HK_W or i == HK_E or i == HK_R or i == HK_SUMMONER_1 or i == HK_SUMMONER_2 then
  415. local checkT = Game.Timer()
  416. local inAATime = checkT < self.lAttack + self.windUpT + 0.05
  417. self.lastSpellT[checkT] = inAATime == true
  418. self.stopSpell = true
  419. end
  420. end
  421.  
  422. -- tick
  423. function __gsoOrb:_tick1()
  424. gsoLatency = Game.Latency() * 0.001
  425. self:_addUnits()
  426. self:_setActiveAA()
  427. self:_handleActiveAA()
  428. self:_setEnemyMinions()
  429. local ck = self.menu.keys.combo:Value()
  430. local hk = self.menu.keys.harras:Value()
  431. local lhk = self.menu.keys.lastHit:Value()
  432. local lck = self.menu.keys.laneClear:Value()
  433. if ck or hk or lhk or lck then
  434. local AAtarget = nil
  435. if ck then
  436. AAtarget = self:_comboT()
  437. elseif hk then
  438. AAtarget = self:_harassT()
  439. elseif lhk then
  440. AAtarget = self:_lastHitT()
  441. elseif lck then
  442. AAtarget = self:_laneClearT()
  443. end
  444. self:_orb(AAtarget)
  445. end
  446. self:_removeUnits()
  447. end
  448. function __gsoOrb:_tick2()
  449. local checkT = Game.Timer()
  450. if self.shouldWait == true and checkT > self.shouldWaitT + 0.5 then
  451. self.shouldWait = false
  452. --print("stop")
  453. end
  454. local spellTimers = self.lastSpellT
  455. local countLess = 0
  456. for k,v in pairs(spellTimers) do
  457. if checkT > k + 2 then
  458. self.lastSpellT[k] = nil
  459. elseif checkT < k + 0.25 then
  460. countLess = countLess + 1
  461. self.stopSpell = true
  462. if v == true then
  463. self.inAAT = true
  464. end
  465. --break
  466. end
  467. end
  468. if countLess == 0 then
  469. if self.stopSpell == true then
  470. self.stopSpell = false
  471. end
  472. if self.inAAT == true then
  473. self.canAASpell = true
  474. --print("Spell in aa time: reset attack")
  475. end
  476. self.inAAT = false
  477. end
  478. local dActions = self.dActions
  479. for k,v in pairs(dActions) do
  480. if GetTickCount() - k > dActions[k][2] then
  481. dActions[k][1]()
  482. self.dActions[k] = nil
  483. end
  484. end
  485. self.latency = Game.Latency() * 0.001
  486. local aaData = myHero.attackData
  487. local endTime = aaData.endTime
  488. self.windUpT = aaData.windUpTime
  489. self.animT = aaData.animationTime
  490. if endTime > self.endTime then
  491. self.stopOrb = false
  492. self.endTime = endTime
  493. self.lMove = 0
  494. if self.countAA == 0 then
  495. self.firstAA = checkT
  496. end
  497. self.countAA = self.countAA + 1
  498. if self.countAA == 5 then
  499. --print("5 auto attacks in: "..tostring(math.floor((checkT-self.firstAA)*1000)).."ms")
  500. self.firstAA = 0
  501. self.countAA = 0
  502. end
  503. elseif self.stopOrb == true and checkT > self.lAttack + self.windUpT + 0.15 then
  504. --print("Bad issue: reset attack")
  505. self.stopOrb = false
  506. end
  507. end
  508.  
  509. -- draw
  510. function __gsoOrb:_draw()
  511. if not self.menu.draw.enable:Value() then return end
  512. if self.menu.draw.me.enable:Value() and not myHero.dead and myHero.pos:ToScreen().onScreen then
  513. Draw.Circle(myHero.pos, myHero.range + myHero.boundingRadius + 35, self.menu.draw.me.width:Value(), self.menu.draw.me.color:Value())
  514. end
  515. if self.menu.draw.he.enable:Value() then
  516. for i = 1, Game.HeroCount() do
  517. local hero = Game.Hero(i)
  518. if self:_valid(2000, hero) and hero.pos:ToScreen().onScreen then
  519. Draw.Circle(hero.pos, hero.range + hero.boundingRadius + 35, self.menu.draw.he.width:Value(), self.menu.draw.he.color:Value())
  520. end
  521. end
  522. end
  523. if self.menu.draw.cpos.enable:Value() then
  524. Draw.Circle(mousePos, self.menu.draw.cpos.radius:Value(), self.menu.draw.cpos.width:Value(), self.menu.draw.cpos.color:Value())
  525. end
  526. if self.menu.draw.farm.enable:Value() then
  527. if self.menu.draw.farm.lastHitable.enable:Value() then
  528. local countLH = #self.eMinionsLHD
  529. for i = 1, countLH do
  530. local eMinionLHD = self.eMinionsLHD[i]
  531. local minion = eMinionLHD[1]
  532. Draw.Circle(minion.pos, self.menu.draw.farm.lastHitable.radius:Value(), self.menu.draw.farm.lastHitable.width:Value(), self.menu.draw.farm.lastHitable.color:Value())
  533. end
  534. end
  535. if self.menu.draw.farm.almostLastHitable.enable:Value() then
  536. local countLHS = #self.eMinionsLHSD
  537. for i = 1, countLHS do
  538. local eMinionLHSD = self.eMinionsLHSD[i]
  539. Draw.Circle(eMinionLHSD.pos, self.menu.draw.farm.almostLastHitable.radius:Value(), self.menu.draw.farm.almostLastHitable.width:Value(), self.menu.draw.farm.almostLastHitable.color:Value())
  540. end
  541. end
  542. end
  543. if self.menu.draw.minionAttacks.enable:Value() then
  544. for k1,v1 in pairs(self.aAttacks) do
  545. for k2,v2 in pairs(self.aAttacks[k1]) do
  546. local checkT = Game.Timer()
  547. if v2.to and v2.to ~= nil and not v2.to.dead and checkT > v2.startTime and v2.canceled == false then
  548. if v2.speed > 0 then
  549. Draw.Circle(v2.pos, self.menu.draw.minionAttacks.radius:Value(), self.menu.draw.minionAttacks.width:Value(), self.menu.draw.minionAttacks.color:Value())
  550. else
  551. Draw.Circle(v2.from.pos, self.menu.draw.minionAttacks.radius:Value(), self.menu.draw.minionAttacks.width:Value(), self.menu.draw.minionAttacks.color:Value())
  552. end
  553. end
  554. end
  555. end
  556. end
  557. end
  558.  
  559. function OnLoad()
  560. __gsoOrb()
  561. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement