Advertisement
Guest User

Untitled

a guest
Jul 30th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.95 KB | None | 0 0
  1. orbTable = { lastAA = 0, windUp = 13.37, animation = 13.37 }
  2. aaResetTable = { ["Diana"] = {_E}, ["Darius"] = {_W}, ["Garen"] = {_Q}, ["Hecarim"] = {_Q}, ["Jax"] = {_W}, ["Jayce"] = {_W}, ["Rengar"] = {_Q}, ["Riven"] = {_W}, ["Sivir"] = {_W}, ["Talon"] = {_Q} }
  3. aaResetTable2 = { ["Ashe"] = {_W}, ["Diana"] = {_Q}, ["Graves"] = {_Q}, ["Kalista"] = {_Q}, ["Lucian"] = {_W}, ["Quinn"] = {_Q}, ["Riven"] = {_Q}, ["Talon"] = {_W}, ["Yasuo"] = {_Q} }
  4. aaResetTable3 = { ["Jax"] = {_Q}, ["Lucian"] = {_Q}, ["Quinn"] = {_E}, ["Teemo"] = {_Q}, ["Tristana"] = {_E} }
  5. aaResetTable4 = { ["Graves"] = {_E}, ["Lucian"] = {_E}, ["Vayne"] = {_Q} }
  6. isAAaswellTable = { ["Quinn"] = "QuinnWEnhanced" }
  7. IWalkTarget = nil
  8. myHero = GetMyHero()
  9. myRange = GetRange(myHero)+GetHitBox(myHero)*2
  10. waitTickCount = 0
  11. DelayAction(function() MakeMenu() end, 0)
  12.  
  13. OnLoop(function()
  14. if IWalkConfig.D then DmgCalc() end
  15. if waitTickCount > GetTickCount() then return end
  16. IWalk()
  17. end)
  18.  
  19. function DmgCalc()
  20. for _,unit in pairs(GetEnemyHeroes()) do
  21. if ValidTarget(unit) then
  22. local hPos = GetHPBarPos(unit)
  23. DrawText(PossibleDmg(unit), 15, hPos.x, hPos.y+20, 0xffffffff)
  24. end
  25. end
  26. end
  27.  
  28. function PossibleDmg(unit)
  29. local addDamage = GetBonusDmg(myHero)
  30. local TotalDmg = (GetBonusDmg(myHero)+GetBaseDamage(myHero))*(((IWalkConfig.R and (GetCastName(myHero, _R) ~= "RivenFengShuiEngine" or CanUseSpell(myHero, _R)))) and 1.2 or 1)
  31. local dmg = 0
  32. local cthp = GetCurrentHP(unit)
  33. local mthp = GetMaxHP(unit)
  34. if GetObjectName(myHero) == "Riven" then
  35. local dmg = 0
  36. local mlevel = GetLevel(myHero)
  37. local pdmg = CalcDamage(myHero, unit, 5+math.max(5*math.floor((mlevel+2)/3)+10,10*math.floor((mlevel+2)/3)-15)*TotalDmg/100)
  38. if CanUseSpell(myHero, _Q) == READY then
  39. local level = GetCastLevel(myHero, _Q)
  40. dmg = dmg + CalcDamage(myHero, unit, 20*level+(0.35+0.05*level)*TotalDmg-10)*3+CalcDamage(myHero, unit, TotalDmg)*3+pdmg*3
  41. end
  42. if CanUseSpell(myHero, _W) == READY then
  43. local level = GetCastLevel(myHero, _W)
  44. dmg = dmg + CalcDamage(myHero, unit, 20+30*level+TotalDmg)+CalcDamage(myHero, unit, TotalDmg)+pdmg
  45. end
  46. if (CanUseSpell(myHero, _R) == READY or GetCastName(myHero, _R) ~= "RivenFengShuiEngine") and IWalkConfig.R then
  47. local level = GetCastLevel(myHero, _R)
  48. local rdmg = CalcDamage(myHero, unit, (40+40*level+0.6*addDamage)*(math.min(3,math.max(1,4*(mthp-cthp)/mthp))))
  49. if rdmg > cthp and ValidTarget(unit, 800) and GetCastName(myHero, _R) ~= "RivenFengShuiEngine" and IWalkConfig.Combo then
  50. local unitPos = GetOrigin(unit)
  51. CastSkillShot(_R, unitPos.x, unitPos.y, unitPos.z)
  52. end
  53. cthp = cthp - dmg
  54. rdmg = CalcDamage(myHero, unit, (40+40*level+0.6*addDamage)*(math.min(3,math.max(1,4*(mthp-cthp)/mthp))))
  55. dmg = dmg + rdmg
  56. end
  57. return dmg > cthp and "Killable" or math.floor(100*dmg/cthp).."% Dmg"
  58. else
  59. dmg = CalcDamage(myHero, unit, TotalDmg)
  60. return math.ceil(cthp/dmg).." AA"
  61. end
  62. end
  63.  
  64. function IWalk()
  65. if IWalkConfig.LastHit or IWalkConfig.LaneClear or IWalkConfig.Harass then
  66. for _,k in pairs(GetAllMinions(MINION_ENEMY)) do
  67. local targetPos = GetOrigin(k)
  68. local drawPos = WorldToScreen(1,targetPos.x,targetPos.y,targetPos.z)
  69. local hp = GetCurrentHP(k)
  70. local dmg = CalcDamage(myHero, k, GetBonusDmg(myHero)+GetBaseDamage(myHero))
  71. if dmg > hp then
  72. if (KeyIsDown(string.byte("X")) or KeyIsDown(string.byte("V"))) and IsInDistance(k, myRange) then
  73. AttackUnit(k)
  74. end
  75. end
  76. end
  77. end
  78. if IWalkConfig.Combo or IWalkConfig.Harass or IWalkConfig.LastHit or IWalkConfig.LaneClear then
  79. DoWalk()
  80. end
  81. end
  82.  
  83. function DoWalk()
  84. myRange = GetRange(myHero)+GetHitBox(myHero)+(IWalkTarget and GetHitBox(IWalkTarget) or GetHitBox(myHero))
  85. if IWalkConfig.C then Circle(myHero,myRange):draw() end
  86. IWalkTarget = GetTarget(myRange + ((gapcloserTable[GetObjectName(myHero)] and CanUseSpell(myHero, gapcloserTable[GetObjectName(myHero)]) == READY) and 250 or 0), DAMAGE_PHYSICAL)
  87. if IWalkConfig.LaneClear then
  88. IWalkTarget = GetHighestMinion(GetOrigin(myHero), myRange, MINION_ENEMY)
  89. end
  90. local unit = IWalkTarget
  91. if ValidTarget(unit) then DoChampionPlugins(unit) end
  92. if ValidTarget(unit, myRange) and GetTickCount() > orbTable.lastAA + orbTable.animation then
  93. AttackUnit(unit)
  94. elseif GetTickCount() > orbTable.lastAA + orbTable.windUp then
  95. if GetRange(myHero) < 450 and unit and GetObjectType(unit) == GetObjectType(myHero) and ValidTarget(unit, myRange) then
  96. local unitPos = GetOrigin(unit)
  97. if GetDistance(unit) > myRange/2 then
  98. MoveToXYZ(unitPos.x, unitPos.y, unitPos.z)
  99. end
  100. else
  101. if gapcloserTable[GetObjectName(myHero)] and ValidTarget(unit, myRange + 250) and IWalkConfig[str[gapcloserTable[GetObjectName(myHero)]].."g"] and CanUseSpell(myHero, gapcloserTable[GetObjectName(myHero)]) == READY then
  102. local unitPos = GetOrigin(unit)
  103. CastSkillShot(gapcloserTable[GetObjectName(myHero)], unitPos.x, unitPos.y, unitPos.z)
  104. if GetObjectName(myHero) == "Riven" and IWalkConfig["W"] and CanUseSpell(myHero, _W) == READY then
  105. if PossibleDmg(unit):find("Killable") and IWalkConfig.R then
  106. DelayAction(function() CastTargetSpell(myHero, _R) end, 137)
  107. else
  108. DelayAction(function() CastTargetSpell(myHero, _W) end, 137)
  109. end
  110. orbTable.lastAA = 0
  111. end
  112. else
  113. Move()
  114. end
  115. end
  116. end
  117. end
  118.  
  119. function Move()
  120. local movePos = GenerateMovePos()
  121. if GetDistance(GetMousePos()) > GetHitBox(myHero) then
  122. MoveToXYZ(movePos.x, GetMyHeroPos().y, movePos.z)
  123. end
  124. end
  125.  
  126. function GetIWalkTarget()
  127. return IWalkTarget
  128. end
  129.  
  130. OnProcessSpell(function(unit, spell)
  131. if unit and unit == myHero and spell and (spell.name:lower():find("attack") or (isAAaswellTable[GetObjectName(myHero)] and isAAaswellTable[GetObjectName(myHero)] == spell.name)) then
  132. orbTable.lastAA = GetTickCount() + GetLatency()
  133. orbTable.windUp = GetObjectName(myHero) == "Kalista" and 0 or spell.windUpTime * 1000
  134. orbTable.animation = GetAttackSpeed(GetMyHero()) < 1 and spell.animationTime * 1000 or 1000 / GetAttackSpeed(GetMyHero())
  135. DelayAction(function() if (IWalkConfig.S or IWalkConfig.Combo) and ValidTarget(IWalkTarget, myRange) then WindUp(IWalkTarget) end end, spell.windUpTime * 1000 + GetLatency())
  136. end
  137. if unit and unit == myHero and spell and spell.name:lower():find("katarinar") then
  138. waitTickCount = GetTickCount() + 2500
  139. end
  140. end)
  141.  
  142. function WindUp(unit)
  143. local str = {[_Q] = "Q", [_W] = "W", [_E] = "E", [_R] = "R"}
  144. if aaResetTable4[GetObjectName(myHero)] then
  145. for _,k in pairs(aaResetTable4[GetObjectName(myHero)]) do
  146. if CanUseSpell(myHero, k) == READY and IWalkConfig[str[k]] then
  147. orbTable.lastAA = 0
  148. local movePos = GenerateMovePos()
  149. CastSkillShot(k, movePos.x, movePos.y, movePos.z)
  150. return true
  151. end
  152. end
  153. end
  154. if aaResetTable[GetObjectName(myHero)] then
  155. for _,k in pairs(aaResetTable[GetObjectName(myHero)]) do
  156. if CanUseSpell(myHero, k) == READY and IWalkConfig[str[k]] and GetDistanceSqr(GetOrigin(unit)) < myRange * myRange then
  157. orbTable.lastAA = 0
  158. CastSpell(k)
  159. return true
  160. end
  161. end
  162. end
  163. if aaResetTable2[GetObjectName(myHero)] then
  164. for _,k in pairs(aaResetTable2[GetObjectName(myHero)]) do
  165. if CanUseSpell(myHero, k) == READY and IWalkConfig[str[k]] and GetDistanceSqr(GetOrigin(unit)) < myRange * myRange and (not GetObjectName(myHero) == "Quinn" or CanUseSpell(myHero, _E) ~= READY) then
  166. local unitPos = GetOrigin(unit)
  167. CastSkillShot(k, unitPos.x, unitPos.y, unitPos.z)
  168. if GetObjectName(myHero) == "Riven" then
  169. local unitPos = GetOrigin(unit)
  170. MoveToXYZ(unitPos.x, unitPos.y, unitPos.z)
  171. end
  172. orbTable.lastAA = 0
  173. return true
  174. end
  175. end
  176. end
  177. if aaResetTable3[GetObjectName(myHero)] then
  178. for _,k in pairs(aaResetTable3[GetObjectName(myHero)]) do
  179. if CanUseSpell(myHero, k) == READY and IWalkConfig[str[k]] and GetDistanceSqr(GetOrigin(unit)) < myRange * myRange then
  180. if GetObjectName(myHero) ~= "Quinn" or GotBuff(unit, "QuinnW") < 1 then
  181. orbTable.lastAA = 0
  182. CastTargetSpell(unit, k)
  183. end
  184. return true
  185. end
  186. end
  187. end
  188. return IWalkConfig.I and CastOffensiveItems(unit)
  189. end
  190.  
  191. function MakeMenu()
  192. IWalkConfig = scriptConfig("IWalk", "IWalk.lua")
  193. str = {[_Q] = "Q", [_W] = "W", [_E] = "E", [_R] = "R"}
  194. if aaResetTable3[GetObjectName(myHero)] then
  195. for _,k in pairs(aaResetTable3[GetObjectName(myHero)]) do
  196. IWalkConfig.addParam(str[k], "AA Reset with "..str[k], SCRIPT_PARAM_ONOFF, true)
  197. end
  198. end
  199. if aaResetTable2[GetObjectName(myHero)] then
  200. for _,k in pairs(aaResetTable2[GetObjectName(myHero)]) do
  201. IWalkConfig.addParam(str[k], "AA Reset with "..str[k], SCRIPT_PARAM_ONOFF, true)
  202. end
  203. end
  204. if aaResetTable[GetObjectName(myHero)] then
  205. for _,k in pairs(aaResetTable[GetObjectName(myHero)]) do
  206. IWalkConfig.addParam(str[k], "AA Reset with "..str[k], SCRIPT_PARAM_ONOFF, true)
  207. end
  208. end
  209. if aaResetTable4[GetObjectName(myHero)] then
  210. for _,k in pairs(aaResetTable4[GetObjectName(myHero)]) do
  211. IWalkConfig.addParam(str[k], "AA Reset with "..str[k], SCRIPT_PARAM_ONOFF, true)
  212. end
  213. end
  214. if gapcloserTable[GetObjectName(myHero)] then
  215. k = gapcloserTable[GetObjectName(myHero)]
  216. IWalkConfig.addParam(str[k].."g", "Gapclose with "..str[k], SCRIPT_PARAM_ONOFF, true)
  217. end
  218. DoChampionPluginMenu()
  219. IWalkConfig.addParam("I", "Cast Items", SCRIPT_PARAM_ONOFF, true)
  220. IWalkConfig.addParam("S", "Skillfarm", SCRIPT_PARAM_ONOFF, true)
  221. IWalkConfig.addParam("D", "Damage Calc", SCRIPT_PARAM_ONOFF, true)
  222. IWalkConfig.addParam("C", "AA Range Circle", SCRIPT_PARAM_ONOFF, true)
  223.  
  224. IWalkConfig.addParam("LastHit", "LastHit", SCRIPT_PARAM_KEYDOWN, string.byte("X"))
  225. IWalkConfig.addParam("Harass", "Harass", SCRIPT_PARAM_KEYDOWN, string.byte("C"))
  226. IWalkConfig.addParam("LaneClear", "LaneClear", SCRIPT_PARAM_KEYDOWN, string.byte("V"))
  227. IWalkConfig.addParam("Combo", "Combo", SCRIPT_PARAM_KEYDOWN, string.byte(" "))
  228. end
  229.  
  230. function DoChampionPluginMenu()
  231. if GetObjectName(myHero) == "Ashe" then
  232. IWalkConfig.addParam("Q", "Use Q at 5 stacks", SCRIPT_PARAM_ONOFF, true)
  233. IWalkConfig.addParam("W", "Use W", SCRIPT_PARAM_ONOFF, true)
  234. end
  235. if GetObjectName(myHero) == "Riven" then
  236. IWalkConfig.addParam("R", "Use R if Kill", SCRIPT_PARAM_ONOFF, true)
  237. end
  238. end
  239.  
  240. function DoChampionPlugins(unit)
  241. if GetObjectName(myHero) == "Ashe" then
  242. if GotBuff(myHero, "asheqcastready") > 0 and IWalkConfig.Q then
  243. CastSpell(_Q)
  244. end
  245. if CanUseSpell(myHero, _W) == READY and IWalkConfig.W then
  246. local unitPos = GetOrigin(unit)
  247. CastSkillShot(_W, unitPos.x, unitPos.y, unitPos.z)
  248. end
  249. end
  250. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement