Script3


SUBMITTED BY: Alerand

DATE: May 3, 2016, 9:22 a.m.

FORMAT: Text only

SIZE: 39.6 kB

HITS: 20900

  1. class "Riven"
  2. class "Download"
  3. function Riven:__init()
  4. self:Variables()
  5. self:Menu()
  6. self:Callbacks()
  7. self:AutoUpdater()
  8. self:LoadTableOrbs()
  9. self:LoadOrb()
  10. end
  11. function Riven:Variables()
  12. self.Version = 3.7
  13. self.QTarget = nil
  14. self.QCount = 0
  15. self.LastQ = 0
  16. self.SelectedTarget = nil
  17. self.RTime = 0
  18. self.Ulted = false
  19. self.QAA = false
  20. self.WCasted = false
  21. if myHero:GetSpellData(SUMMONER_1).name:find("SummonerFlash") then
  22. Flash = SUMMONER_1
  23. elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerFlash") then
  24. Flash = SUMMONER_2
  25. end
  26. if myHero:GetSpellData(SUMMONER_1).name:find("SummonerDot") then
  27. Ignite = SUMMONER_1
  28. elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerDot") then
  29. Ignite = SUMMONER_2
  30. end
  31. ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, 1000, DAMAGE_PHYSICAL)
  32. enemyMinions = minionManager(MINION_ENEMY, 270, myHero, MINION_SORT_HEALTH_ASC)
  33. jungleMinions = minionManager(MINION_JUNGLE, 270, myHero, MINION_SORT_MAXHEALTH_DEC)
  34. end
  35. function Riven:Menu()
  36. Menu = scriptConfig("Shattered Blade", "ShatteredBlade")
  37. Menu:addSubMenu("Combo", "Combo")
  38. Menu.Combo:addParam("Mode", "Combo Mode", SCRIPT_PARAM_LIST, 1, {"BoxBox Mode"})
  39. Menu.Combo:addParam("Burst", "Burst Mode", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("T"))
  40. Menu.Combo:permaShow("Burst")
  41. Menu.Combo:addParam("useFlash", "Use Flash in Burst Mode", SCRIPT_PARAM_ONOFF, true)
  42. Menu.Combo:permaShow("useFlash")
  43. Menu.Combo:addParam("useFlashSlice", "Use Flash Above Range (BUGGY)", SCRIPT_PARAM_SLICE, 300, 0, 425)
  44. Menu.Combo:addParam("blank", "Let E and R Range the Same for R Animation Cancel", SCRIPT_PARAM_INFO, " ")
  45. Menu.Combo:addParam("useERange", "Use E Range Under", SCRIPT_PARAM_SLICE, 500, 175, 1000)
  46. Menu.Combo:addParam("useRRange", "Use R Range Under", SCRIPT_PARAM_SLICE, 500, 175, 1000)
  47. Menu:addSubMenu("LaneClear/JungleClear", "LaneJung")
  48. Menu.LaneJung:addParam("Q", "Use Q", SCRIPT_PARAM_ONOFF, true)
  49. Menu.LaneJung:addParam("W", "Use W", SCRIPT_PARAM_ONOFF, true)
  50. Menu.LaneJung:addParam("E", "Use E", SCRIPT_PARAM_ONOFF, true)
  51. Menu:addSubMenu("Auto W", "AutoW")
  52. Menu.AutoW:addParam("W", "Use Auto W",SCRIPT_PARAM_ONOFF, true)
  53. Menu.AutoW:addParam("S", "x Enemies for Auto W", SCRIPT_PARAM_SLICE, 2, 0, 5, 0)
  54. Menu:addSubMenu("Items Settings", "Items")
  55. Menu.Items:addParam("Use", "Use Items", SCRIPT_PARAM_ONOFF, true)
  56. Menu.Items:addParam("UseBRK", "Use BRK", SCRIPT_PARAM_ONOFF, true)
  57. Menu.Items:addParam("UseHydra", "Use Hydra", SCRIPT_PARAM_ONOFF, true)
  58. Menu.Items:addParam("UseYoumu", "Use Youmus", SCRIPT_PARAM_ONOFF, true)
  59. Menu.Items:addParam("UseQSS", "Use QSS", SCRIPT_PARAM_ONOFF, true)
  60. Menu.Items:addParam("UseZhonya", "Use Zhonyas", SCRIPT_PARAM_ONOFF, true)
  61. Menu.Items:addParam("ZhonyaAmount", "Zhonya %", SCRIPT_PARAM_SLICE, 15, 0, 100, 0)
  62. Menu:addSubMenu("Draws Settings", "Draws")
  63. Menu.Draws:addParam("CDTracker", "Use CD Tracker", SCRIPT_PARAM_ONOFF, true)
  64. Menu:addSubMenu("Emote Cancel", "EmoteCancel")
  65. Menu.EmoteCancel:addParam("useEmoteC", "Use Emote Cancel", SCRIPT_PARAM_ONOFF, true)
  66. Menu.EmoteCancel:addParam("emoteC", "Choose Emote", SCRIPT_PARAM_LIST, 1, {"Dance", "Taunt", "Laugh", "Joke"})
  67. Menu:addSubMenu("Auto Leveler", "Leveler")
  68. if VIP_USER then
  69. Menu.Leveler:addParam("Enable", "Enable Auto Leveler", SCRIPT_PARAM_ONOFF, false)
  70. Menu.Leveler:addParam("Mode", "Mode", SCRIPT_PARAM_LIST, 2, {"Q>W>E", "Q>E>W", "E>Q>W", "E>W>Q"})
  71. Menu.Leveler.Enable = false
  72. DelayToLevel = 0
  73. SequenceLevel = {
  74. [1] = {1,2,3,1,1,4,2,1,2,3,4,1,2,3,2,4,3,3},
  75. [2] = {1,3,2,1,1,4,3,1,3,2,4,1,3,2,3,4,2,2},
  76. [3] = {3,1,2,3,3,4,1,3,1,2,4,3,1,2,1,4,2,2},
  77. [4] = {3,2,1,3,3,4,2,3,2,1,4,3,2,1,2,4,1,1},
  78. }
  79. AddTickCallback(function()
  80. if os.clock()-DelayToLevel >= 3 then
  81. DelayToLevel = os.clock()
  82. if Menu.Leveler.Enable then
  83. autoLevelSetSequence(SequenceLevel[Menu.Leveler.Mode])
  84. else
  85. autoLevelSetSequence(nil)
  86. end
  87. end
  88. end)
  89. else
  90. Menu.Leveler:addParam("info", "This is only for VIP Users", SCRIPT_PARAM_INFO, "")
  91. end
  92. Menu:addSubMenu("Skin Changer", "Skin")
  93. if VIP_USER then
  94. Menu.Skin:addParam("ChangeSkin", "Enable Skin Changer", SCRIPT_PARAM_ONOFF, false)
  95. Menu.Skin:setCallback('ChangeSkin', function(Change)
  96. if Change then
  97. SetSkin(myHero, Menu.Skin.SkinID-1)
  98. else
  99. SetSkin(myHero, -1)
  100. end
  101. end)
  102. Menu.Skin:addParam('SkinID', 'Skins', SCRIPT_PARAM_LIST, 1, {"Classic", "Redeemed", "Crimson Elite", "Battle Bunny", "Championship", "Dragonblade", "Arcade"})
  103. Menu.Skin.SkinID = 1
  104. Menu.Skin:setCallback('SkinID', function(Change)
  105. if Menu.Skin.ChangeSkin then
  106. SetSkin(myHero, Menu.Skin.SkinID-1)
  107. end
  108. end)
  109. if Menu.Skin.ChangeSkin then
  110. SetSkin(myHero, Menu.Skin.SkinID-1)
  111. end
  112. else
  113. Menu.Skin:addParam("info", "This is only for VIP Users", SCRIPT_PARAM_INFO, "")
  114. end
  115. if Ignite then
  116. Menu:addParam("AutoIgnite", "Use Auto Ignite in killable enemies", SCRIPT_PARAM_ONOFF, true)
  117. end
  118. Menu:addParam("Region", "Your Region:", SCRIPT_PARAM_INFO, GetGameRegion())
  119. end
  120. function Riven:Callbacks()
  121. AddTickCallback(function()
  122. if myHero.dead then return end
  123. Target = self:GetCustomTarget()
  124. self:ComboManager(Target)
  125. self:LaneClear()
  126. self:AutoW()
  127. self:Flee()
  128. self:Checks()
  129. self:AutoIgnite()
  130. if myHero:GetSpellData(_Q).currentCd > 0.5 then self.QAA = false end
  131. if myHero:GetSpellData(_W).currentCd > 1 then self.WCasted = true end
  132. if self.Wready then self.WCasted = false end
  133. end)
  134. AddAnimationCallback(function(unit, animation)
  135. if unit and animation and unit.isMe then
  136. if animation == "Spell1a" or animation == "Spell1b" or animation == "Spell1c" then
  137. if animation == "Spell1a" or animation == "Spell1b" then
  138. DelayAction(function()
  139. if ValidTarget(self.QTarget) and GetDistance(self.QTarget) < 270 then
  140. if Menu.EmoteCancel.useEmoteC then DoEmote(Menu.EmoteCancel.emoteC-1) end
  141. self:ResetAAs()
  142. end
  143. end, 0.3-GetLatency()/1000)
  144. elseif animation == "Spell1c" then
  145. DelayAction(function()
  146. if ValidTarget(self.QTarget) and GetDistance(self.QTarget) < 270 then
  147. if Menu.EmoteCancel.useEmoteC then DoEmote(Menu.EmoteCancel.emoteC-1) end
  148. self:ResetAAs()
  149. end
  150. end, 0.4-GetLatency()/1000)
  151. end
  152. end
  153. end
  154. end)
  155. AddMsgCallback(function(msg, key)
  156. if msg == WM_LBUTTONDOWN and not myHero.dead then
  157. for i, enemy in ipairs(GetEnemyHeroes()) do
  158. if GetDistance(enemy, mousePos) <= 115 and ValidTarget(enemy) and enemy.type == "AIHeroClient" then
  159. if self.SelectedTarget ~= enemy then
  160. self.SelectedTarget = enemy
  161. SendMsg("Selected Target: "..enemy.charName)
  162. else
  163. self.SelectedTarget = nil
  164. SendMsg("Unselected Target: "..enemy.charName)
  165. end
  166. end
  167. end
  168. end
  169. end)
  170. AddDrawCallback(function()
  171. if Menu.Draws.CDTracker then
  172. self:DrawCD()
  173. end
  174. if myHero.dead then return end
  175. end)
  176. AddProcessAttackCallback(function(unit, spell)
  177. self.AADone = false
  178. if unit.isMe and spell.name:lower():find("attack") then
  179. if self.QAA == true and self:Keys() == "Combo" or self:Keys() == "Laneclear" or self:Keys() == "Harass" then
  180. CastSpell(_Q, myHero.spell.target.x, myHero.spell.target.z)
  181. self:ResetAAs()
  182. end
  183. self.AADone = true
  184. end
  185. end)
  186. AddApplyBuffCallback(function(unit, source, buff)
  187. if unit and buff and unit.isMe and buff.name == "RivenFengShuiEngine" then
  188. self.Ulted = true
  189. self.RTime = os.clock()
  190. end
  191. end)
  192. AddRemoveBuffCallback(function(unit, buff)
  193. if unit and buff and unit.isMe and buff.name == "rivenwindslashready" then
  194. self.Ulted = false
  195. self.RTime = 0
  196. end
  197. if unit and buff and unit.isMe and buff.name == "riventricleavesoundthree" then
  198. --self.QAA = false
  199. end
  200. end)
  201. AddUnloadCallback(function()
  202. if VIP_USER then
  203. SetSkin(myHero, -1)
  204. end
  205. end)
  206. end
  207. function Riven:AutoIgnite()
  208. if Ignite and Menu.AutoIgnite then
  209. for i, enemy in ipairs(GetEnemyHeroes()) do
  210. if enemy.health <= 50 + (20 * myHero.level) and myHero:CanUseSpell(Ignite) == READY and GetDistance(enemy) < 650 then
  211. CastSpell(Ignite, enemy)
  212. end
  213. end
  214. end
  215. end
  216. function Riven:IsAfterAA()
  217. return os.clock() * 1000 + (GetLatency() / 2) < self.AfterAttackTime
  218. end
  219. function Riven:GetHPBarPos(enemy)
  220. enemy.barData = {PercentageOffset = {x = -0.05, y = 0}}--GetEnemyBarData()
  221. local barPos = GetUnitHPBarPos(enemy)
  222. local barPosOffset = GetUnitHPBarOffset(enemy)
  223. local barOffset = { x = enemy.barData.PercentageOffset.x, y = enemy.barData.PercentageOffset.y }
  224. local barPosPercentageOffset = { x = enemy.barData.PercentageOffset.x, y = enemy.barData.PercentageOffset.y }
  225. local BarPosOffsetX = 171
  226. local BarPosOffsetY = 46
  227. local CorrectionY = 39
  228. local StartHpPos = 31
  229. barPos.x = math.floor(barPos.x + (barPosOffset.x - 0.5 + barPosPercentageOffset.x) * BarPosOffsetX + StartHpPos)
  230. barPos.y = math.floor(barPos.y + (barPosOffset.y - 0.5 + barPosPercentageOffset.y) * BarPosOffsetY + CorrectionY)
  231. local StartPos = Vector(barPos.x , barPos.y, 0)
  232. local EndPos = Vector(barPos.x + 108 , barPos.y , 0)
  233. return Vector(StartPos.x, StartPos.y, 0), Vector(EndPos.x, EndPos.y, 0)
  234. end
  235. function Riven:DrawCD()
  236. for i = 1, heroManager.iCount, 1 do
  237. local champ = heroManager:getHero(i)
  238. if champ ~= nil and champ ~= myHero and champ.visible and champ.dead == false then
  239. local barPos = self:GetHPBarPos(champ)
  240. if OnScreen(barPos.x, barPos.y) then
  241. local cd = {}
  242. cd[0] = math.ceil(champ:GetSpellData(SPELL_1).currentCd)
  243. cd[1] = math.ceil(champ:GetSpellData(SPELL_2).currentCd)
  244. cd[2] = math.ceil(champ:GetSpellData(SPELL_3).currentCd)
  245. cd[3] = math.ceil(champ:GetSpellData(SPELL_4).currentCd)
  246. local spellColor = {}
  247. spellColor[0] = 0xBBFFD700;
  248. spellColor[1] = 0xBBFFD700;
  249. spellColor[2] = 0xBBFFD700;
  250. spellColor[3] = 0xBBFFD700;
  251. if cd[0] == nil or cd[0] == 0 then cd[0] = "Q" spellColor[0] = 0xBBFFFFFF end
  252. if cd[1] == nil or cd[1] == 0 then cd[1] = "W" spellColor[1] = 0xBBFFFFFF end
  253. if cd[2] == nil or cd[2] == 0 then cd[2] = "E" spellColor[2] = 0xBBFFFFFF end
  254. if cd[3] == nil or cd[3] == 0 then cd[3] = "R" spellColor[3] = 0xBBFFFFFF end
  255. if champ:GetSpellData(SPELL_1).level == 0 then spellColor[0] = 0xBBFF0000 end
  256. if champ:GetSpellData(SPELL_2).level == 0 then spellColor[1] = 0xBBFF0000 end
  257. if champ:GetSpellData(SPELL_3).level == 0 then spellColor[2] = 0xBBFF0000 end
  258. if champ:GetSpellData(SPELL_4).level == 0 then spellColor[3] = 0xBBFF0000 end
  259. DrawRectangle(barPos.x-6, barPos.y-40, 80, 15, 0xBB202020)
  260. DrawText("[" .. cd[0] .. "]" ,12, barPos.x-5+2, barPos.y-40, spellColor[0])
  261. DrawText("[" .. cd[1] .. "]", 12, barPos.x+15+2, barPos.y-40, spellColor[1])
  262. DrawText("[" .. cd[2] .. "]", 12, barPos.x+35+2, barPos.y-40, spellColor[2])
  263. DrawText("[" .. cd[3] .. "]", 12, barPos.x+54+2, barPos.y-40, spellColor[3])
  264. end
  265. end
  266. end
  267. end
  268. function Riven:ResetAAs()
  269. if LoadedOrb == "Sac" and TIMETOSACLOAD then
  270. _G.AutoCarry.Orbwalker:ResetAttackTimer()
  271. --_G.AutoCarry.Orbwalker:IsAfterAttack()
  272. elseif LoadedOrb == "Mma" then
  273. _G.MMA_ResetAutoAttack()
  274. elseif LoadedOrb == "Pewalk" then
  275. elseif LoadedOrb == "Now" then
  276. _G.NebelwolfisOrbWalker:ResetAA()
  277. elseif LoadedOrb == "Big" then
  278. elseif LoadedOrb == "Sow" then
  279. _G.SOWi:resetAA()
  280. elseif LoadedOrb == "SxOrbWalk" then
  281. _G.SxOrb:ResetAA()
  282. end
  283. end
  284. function Riven:GetCustomTarget()
  285. ts:update()
  286. if self.SelectedTarget == nil then
  287. return ts.target
  288. elseif self.SelectedTarget ~= nil and ValidTarget(self.SelectedTarget, 750) then
  289. return self.SelectedTarget
  290. else
  291. return ts.target
  292. end
  293. end
  294. function Riven:AutoUpdater()
  295. local host = "www.scarjit.de"
  296. local file = "/HiranN/BoL/Scripts/Riven.lua"
  297. local file2 = "/HiranN/BoL/Versions/"
  298. local name = GetCurrentEnv().FILE_NAME
  299. local path = SCRIPT_PATH
  300. DelayAction(function()
  301. local ServerVersionDATA = GetWebResult(host, file2.."Riven.version")
  302. local ServerVersion = tonumber(ServerVersionDATA)
  303. if ServerVersion then
  304. if ServerVersion > tonumber(self.Version) then
  305. DL = Download()
  306. SendMsg("Updating to version: "..ServerVersion)
  307. DL:newDL(host, file, name, path, function()
  308. SendMsg("Updated to version: "..ServerVersion..", press 2x F9")
  309. end)
  310. else
  311. SendMsg("You have the latest version: "..self.Version)
  312. end
  313. else
  314. SendMsg("Can't connect to Updater Site")
  315. end
  316. end, 0.85)
  317. end
  318. function Riven:ComboManager(target)
  319. if Menu.Combo.Burst then
  320. self:Combo2(target)
  321. elseif Menu.Combo.Mode == 1 then
  322. self:Combo1(target)
  323. end
  324. if ValidTarget(target) then
  325. CastItems()
  326. end
  327. end
  328. function Riven:AutoW()
  329. if Menu.AutoW.S ~= 0 then
  330. if Menu.AutoW.W and CountEnemyHeroInRange(260) >= Menu.AutoW.S then
  331. CastSpell(_W)
  332. end
  333. end
  334. end
  335. DelayFleeM = 0
  336. function Riven:Flee()
  337. if Menu.Keys.Flee then
  338. CastSpell(_Q, mousePos.x, mousePos.z)
  339. CastSpell(_E, mousePos.x, mousePos.z)
  340. if os.clock()-DelayFleeM > 0.15 then
  341. DelayFleeM = os.clock()
  342. myHero:MoveTo(mousePos.x, mousePos.z)
  343. end
  344. end
  345. end
  346. function Riven:Checks()
  347. self.Qready = (myHero:CanUseSpell(_Q) == READY and true or false)
  348. self.Wready = (myHero:CanUseSpell(_W) == READY and true or false)
  349. self.Eready = (myHero:CanUseSpell(_E) == READY and true or false)
  350. self.Rready = (myHero:CanUseSpell(_R) == READY and true or false)
  351. if Flash then
  352. self.Flash = (myHero:CanUseSpell(Flash) == READY and true or false)
  353. end
  354. end
  355. function Riven:Combo1(target)
  356. if ValidTarget(target) and self:Keys() == "Combo" then
  357. if self.Qready and not self.Eready and not self.Wready and not self.Rready then
  358. self:CastQAA2(target)
  359. end
  360. if self.Eready and self.Qready and not self.Wready and not self.Rready and not self.Ulted then
  361. self:CastE(target)
  362. self:CastQAA2(target)
  363. end
  364. if self.Eready and not self.Qready and not self.Wready and not self.Rready and not self.Ulted then
  365. self:CastE(target)
  366. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  367. end
  368. if self.Eready and self.Wready and not self.Qready and not self.Rready and not self.Ulted then
  369. self:CastE(target)
  370. self:CastW(target)
  371. end
  372. if self.Eready and self.Ulted and self.Rready and target.health <= self:rDmg(target) then
  373. self:CastE(target)
  374. self:CastR(target)
  375. end
  376. if self.Wready and self.Rready and not self.Qready and not self.Eready and not self.Ulted then
  377. self:CastR(target)
  378. self:CastW(target)
  379. end
  380. if self.Wready and not self.Qready and not self.Eready and not self.Rready then
  381. self:CastW(target)
  382. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  383. end
  384. if self.Wready and self.Ulted and self.Rready and target.health <= self:rDmg(target) and not self.Qready and not self.Eready then
  385. self:CastR(target)
  386. self:CastW(target)
  387. end
  388. if self.Qready and self.Ulted and target.health <= self:rDmg(target) and not self.Eready and not self.Wready then
  389. self:CastR(target)
  390. self:CastQAA2(target)
  391. end
  392. if self.Eready and self.Qready and not self.Wready and not self.Rready and not self.Ulted then
  393. self:CastE(target)
  394. --AA
  395. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  396. self:CastQAA2(target)
  397. end
  398. if self.Eready and self.Wready and not self.Qready and not self.Rready and not self.Ulted then
  399. self:CastE(target)
  400. -- AA
  401. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  402. self:CastW(target)
  403. end
  404. if self.Eready and self.Rready and self.Qready and not self.Wready and not self.Ulted then
  405. self:CastE(target)
  406. self:CastR(target)
  407. self:CastQAA2(target)
  408. end
  409. if self.Eready and self.Qready and self.Ulted and self.Rready and not self.Wready then
  410. self:CastE(target)
  411. self:CastR(target)
  412. self:CastQAA2(target)
  413. end
  414. if self.Eready and self.Qready and self.Wready and not self.Rready and not self.Ulted then
  415. self:CastE(target)
  416. --AA!!
  417. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  418. self:CastQAA2(target) --1 Q
  419. self:CastW(target)
  420. end
  421. if self.Eready and self.Rready and self.Qready and not self.Wready and not self.Ulted then
  422. self:CastE(target)
  423. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  424. self:CastR(target)
  425. self:CastQAA2(target)
  426. end
  427. if self.Eready and self.Ulted and self.Rready and self.Wready and not self.Qready and target.health <= self:rDmg(target) then
  428. self:CastE(target)
  429. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  430. self:CastR(target)
  431. end
  432. if self.Eready and self.Wready and self.Qready and not self.Rready and not self.Ulted then
  433. self:CastE(target)
  434. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  435. self:CastW(target)
  436. self:CastQAA2(target)
  437. end
  438. if self.Eready and self.Rready and not self.Ulted and self.Wready and self.Qready then
  439. self:CastE(target)
  440. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  441. self:CastR(target)
  442. self:CastW(target)
  443. self:CastQAA2(target)
  444. end
  445. if self.Eready and self.Ulted and self.Wready and self.Qready and target.health <= self:rDmg(target) then
  446. self:CastE(target)
  447. if self.LoadedOrb == "Sac" then self:CastItems2(target) end
  448. self:CastR(target)
  449. self:CastW(target)
  450. self:CastQAA2(target)
  451. end
  452. end
  453. end
  454. function Riven:Combo2(target)
  455. if ValidTarget(target) and self:Keys() == "Combo" then
  456. if self.Eready and self.Rready and self.Wready and self.Qready then -- noch Check hinzufУƒ?У†?Уƒ?УЂ??Уƒ?УЂ??Уƒ?У‚ТМgen fУƒ?У†?Уƒ?УЂ??Уƒ?УЂ??Уƒ?У‚ТМr Flash, Menu Flash nutzen
  457. self:CastE(target)
  458. self:CastR(target)
  459. if self.Flash and self.Ulted and GetDistance(target) <= Menu.Combo.useFlashSlice and Menu.Combo.useFlash then
  460. CastSpell(Flash, target.x, target.z)
  461. end
  462. self:CastW(target)
  463. -- AA
  464. if self.WCasted == true then
  465. CastSpell(_R, target.x, target.z)
  466. else
  467. DelayAction(function ()
  468. CastSpell(_R, target.x, target.z)
  469. end, 3)
  470. end
  471. self:CastQAA(target)
  472. elseif Menu.Combo.Burst then
  473. Menu.Combo.Burst = false
  474. end
  475. end
  476. end
  477. function Riven:LaneClear()
  478. if self:Keys() == "Laneclear" then
  479. enemyMinions:update()
  480. jungleMinions:update()
  481. for _, minion in pairs(enemyMinions.objects) do
  482. if Menu.LaneJung.Q then
  483. self:CastQAA2(minion)
  484. end
  485. if Menu.LaneJung.W then
  486. self:CastW(minion)
  487. end
  488. end
  489. for _, minion in pairs(jungleMinions.objects) do
  490. if Menu.LaneJung.Q then
  491. self:CastQAA2(minion)
  492. end
  493. if Menu.LaneJung.W then
  494. self:CastW(minion)
  495. end
  496. if Menu.LaneJung.E then
  497. self:CastE(minion)
  498. end
  499. end
  500. end
  501. end
  502. function Riven:CastItems2 (target)
  503. _G.AutoCarry.Items:UseAll(target)
  504. end
  505. function Riven:CastQAA(target)
  506. if ValidTarget(target) then
  507. self.QTarget = target
  508. if GetDistance(target) > 270 then
  509. self.QAA = true
  510. end
  511. end
  512. end
  513. function Riven:CastQAA2(target)
  514. if ValidTarget(target) then
  515. if GetDistance(target) < 270 then
  516. self.QAA = true
  517. else
  518. self:CastQAA(target)
  519. end
  520. end
  521. end
  522. function Riven:CastW(target)
  523. if ValidTarget(target, 255) and myHero:GetSpellData(_Q).currentCd > 0.5 then
  524. CastSpell(_W)
  525. end
  526. end
  527. function Riven:CastE(target)
  528. if ValidTarget(target, Menu.Combo.useERange) then
  529. CastSpell(_E, target.x, target.z)
  530. end
  531. end
  532. function Riven:CastR(target)
  533. if ValidTarget(target, Menu.Combo.useRRange) then
  534. if not self.Ulted then CastSpell(_R) end
  535. if self.Ulted then
  536. if self:rDmg(target) >= target.health or self.RTime-os.clock() <= -11 then
  537. CastSpell(_R, target.x, target.z)
  538. end
  539. end
  540. end
  541. end
  542. function Riven:rDmg(unit)
  543. local Lvl = myHero:GetSpellData(_R).level
  544. if Lvl < 1 then return 0 end
  545. local DMGCALC = 0
  546. bad = myHero.addDamage*(1.2)
  547. ad = myHero.totalDamage+bad
  548. local hpercent = unit.health/unit.maxHealth
  549. if hpercent <= 0.25 then
  550. DMGCALC = 120*myHero:GetSpellData(_R).level+120+1.8*bad
  551. else
  552. DMGCALC = (40*myHero:GetSpellData(_R).level+40+0.6*bad) * (hpercent)*(-2.67) + 3.67
  553. end
  554. return myHero:CalcDamage(unit, DMGCALC)
  555. end
  556. function Riven:LoadTableOrbs()
  557. self.OrbWalkers = {}
  558. self.LoadedOrb = nil
  559. if _G.Reborn_Loaded or _G.Reborn_Initialised or _G.AutoCarry ~= nil then
  560. table.insert(self.OrbWalkers, "SAC")
  561. end
  562. if _G.MMA_IsLoaded then
  563. table.insert(self.OrbWalkers, "MMA")
  564. end
  565. if _G._Pewalk then
  566. table.insert(self.OrbWalkers, "Pewalk")
  567. end
  568. if FileExist(LIB_PATH .. "/Nebelwolfi's Orb Walker.lua") then
  569. table.insert(self.OrbWalkers, "NOW")
  570. end
  571. if FileExist(LIB_PATH .. "/Big Fat Orbwalker.lua") then
  572. table.insert(self.OrbWalkers, "Big Fat Walk")
  573. end
  574. if FileExist(LIB_PATH .. "/SOW.lua") then
  575. table.insert(self.OrbWalkers, "SOW")
  576. end
  577. if FileExist(LIB_PATH .. "/SxOrbWalk.lua") then
  578. table.insert(self.OrbWalkers, "SxOrbWalk")
  579. end
  580. if FileExist(LIB_PATH .. "/S1mpleOrbWalker.lua") then
  581. table.insert(self.OrbWalkers, "S1mpleOrbWalker")
  582. end
  583. if #self.OrbWalkers > 0 then
  584. Menu:addSubMenu("Orbwalkers", "Orbwalkers")
  585. Menu:addSubMenu("Keys", "Keys")
  586. Menu.Orbwalkers:addParam("Orbwalker", "OrbWalker", SCRIPT_PARAM_LIST, 1, self.OrbWalkers)
  587. Menu.Keys:addParam("info", "Detecting keys from :", SCRIPT_PARAM_INFO, self.OrbWalkers[Menu.Orbwalkers.Orbwalker])
  588. Menu.Keys:addParam("Flee", "Flee Key", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("G"))
  589. local OrbAlr = false
  590. Menu.Orbwalkers:setCallback("Orbwalker", function(value)
  591. if OrbAlr then return end
  592. OrbAlr = true
  593. Menu.Orbwalkers:addParam("info", "Press F9 2x to load your selected Orbwalker.", SCRIPT_PARAM_INFO, "")
  594. SendMsg("Press F9 2x to load your selected Orbwalker")
  595. end)
  596. end
  597. end
  598. function CastItems()
  599. ___GetInventorySlotItem = rawget(_G, "GetInventorySlotItem")
  600. _G.GetInventorySlotItem = GetSlotItem
  601. _G.ITEM_1 = 06
  602. _G.ITEM_2 = 07
  603. _G.ITEM_3 = 08
  604. _G.ITEM_4 = 09
  605. _G.ITEM_5 = 10
  606. _G.ITEM_6 = 11
  607. _G.ITEM_7 = 12
  608. ItemNames = {
  609. [3144] = "BilgewaterCutlass",
  610. [3153] = "ItemSwordOfFeastAndFamine",
  611. [3405] = "TrinketSweeperLvl1",
  612. [3166] = "TrinketTotemLvl1",
  613. [3361] = "TrinketTotemLvl3",
  614. [3362] = "TrinketTotemLvl4",
  615. [2003] = "RegenerationPotion",
  616. [3146] = "HextechGunblade",
  617. [3187] = "HextechSweeper",
  618. [3364] = "TrinketSweeperLvl3",
  619. [3074] = "ItemTiamatCleave",
  620. [3077] = "ItemTiamatCleave",
  621. [3340] = "TrinketTotemLvl1",
  622. [3090] = "ZhonyasHourglass",
  623. [3142] = "YoumusBlade",
  624. [3157] = "ZhonyasHourglass",
  625. [3350] = "TrinketTotemLvl2",
  626. [3140] = "QuicksilverSash",
  627. [3139] = "ItemMercurial",
  628. }
  629. if Target ~= nil then
  630. if Menu.Items.UseBRK then
  631. local slot = GetInventorySlotItem(3153)
  632. if Target ~= nil and ValidTarget(Target) and not Target.dead and slot ~= nil and myHero:CanUseSpell(slot) == READY and GetDistance(Target) <= 450 then
  633. CastSpell(slot, Target)
  634. end
  635. end
  636. if Menu.Items.UseHydra then
  637. local slot = GetInventorySlotItem(3074)
  638. if Target ~= nil and ValidTarget(Target) and not Target.dead and slot ~= nil and myHero:CanUseSpell(slot) == READY and GetDistance(Target) <= 300 then
  639. CastSpell(slot)
  640. end
  641. end
  642. if Menu.Items.UseQSS then
  643. if GetInventorySlotItem(3139) ~= nil then
  644. local slot = GetInventorySlotItem(3139)
  645. elseif GetInventorySlotItem(3140) ~= nil then
  646. local slot = GetInventorySlotItem(3140) end
  647. local buffsList = 6,8,9,11,20,21,23,24,29,30,31
  648. if Target ~= nil and ValidTarget(Target) and not Target.dead and slot ~= nil and myHero:CanUseSpell(slot) == READY and GetDistance(Target) <= 600 and HaveBuffs(myHero, buffsList) then
  649. CastSpell(slot)
  650. end
  651. end
  652. if Menu.Items.UseYoumu then
  653. local slot = GetInventorySlotItem(3142)
  654. if Target ~= nil and ValidTarget(Target) and not Target.dead and slot ~= nil and myHero:CanUseSpell(slot) == READY then
  655. CastSpell(slot)
  656. end
  657. end
  658. if Menu.Items.UseZhonya then
  659. local slot = GetInventorySlotItem(3157)
  660. if myHero.health <= (myHero.maxHealth * Menu.Items.ZhonyaAmount / 100) and slot ~= nil and myHero:CanUseSpell(slot) == READY and CountEnemyHeroInRange(900) >= 1 then CastSpell(slot) end
  661. end
  662. end
  663. end
  664. function GetSlotItem(id, unit)
  665. unit = unit or myHero
  666. if (not ItemNames[id]) then
  667. return ___GetInventorySlotItem(id, unit)
  668. end
  669. local name = ItemNames[id]
  670. for slot = ITEM_1, ITEM_7 do
  671. local item = unit:GetSpellData(slot).name
  672. if ((#item > 0) and (item:lower() == name:lower())) then
  673. return slot
  674. end
  675. end
  676. end
  677. function Riven:LoadOrb()
  678. if self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "SAC" then
  679. self.LoadedOrb = "Sac"
  680. TIMETOSACLOAD = false
  681. DelayAction(function()
  682. TIMETOSACLOAD = true
  683. end,15)
  684. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "MMA" then
  685. self.LoadedOrb = "Mma"
  686. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "Pewalk" then
  687. self.LoadedOrb = "Pewalk"
  688. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "NOW" then
  689. self.LoadedOrb = "Now"
  690. require "Nebelwolfi's Orb Walker"
  691. _G.NOWi = NebelwolfisOrbWalkerClass()
  692. --Menu.Orbwalkers:addSubMenu("NOW", "NOW")
  693. --_G.NebelwolfisOrbWalkerClass(Menu.Orbwalkers.NOW)
  694. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "Big Fat Walk" then
  695. self.LoadedOrb = "Big"
  696. require "Big Fat Orbwalker"
  697. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "SOW" then
  698. self.LoadedOrb = "Sow"
  699. require "SOW"
  700. Menu.Orbwalkers:addSubMenu("SOW", "SOW")
  701. _G.SOWi = SOW(_G.VP)
  702. SOW:LoadToMenu(Menu.Orbwalkers.SOW)
  703. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "SxOrbWalk" then
  704. self.LoadedOrb = "SxOrbWalk"
  705. require "SxOrbWalk"
  706. Menu.Orbwalkers:addSubMenu("SxOrbWalk", "SxOrbWalk")
  707. SxOrb:LoadToMenu(Menu.Orbwalkers.SxOrbWalk)
  708. elseif self.OrbWalkers[Menu.Orbwalkers.Orbwalker] == "S1mpleOrbWalker" then
  709. require "S1mpleOrbWalker"
  710. DelayAction(function()
  711. _G.S1mpleOrbWalker:AddToMenu(Menu.Orbwalkers)
  712. end, 1)
  713. end
  714. end
  715. function Riven:Keys()
  716. if self.LoadedOrb == "Sac" and TIMETOSACLOAD then
  717. if _G.AutoCarry.Keys.AutoCarry then return "Combo" end
  718. if _G.AutoCarry.Keys.MixedMode then return "Harass" end
  719. if _G.AutoCarry.Keys.LaneClear then return "Laneclear" end
  720. if _G.AutoCarry.Keys.LastHit then return "Lasthit" end
  721. elseif self.LoadedOrb == "Mma" then
  722. if _G.MMA_IsOrbwalking() then return "Combo" end
  723. if _G.MMA_IsDualCarrying() then return "Harass" end
  724. if _G.MMA_IsLaneClearing() then return "Laneclear" end
  725. if _G.MMA_IsLastHitting() then return "Lasthit" end
  726. elseif self.LoadedOrb == "Pewalk" then
  727. if _G._Pewalk.GetActiveMode().Carry then return "Combo" end
  728. if _G._Pewalk.GetActiveMode().Mixed then return "Harass" end
  729. if _G._Pewalk.GetActiveMode().LaneClear then return "Laneclear" end
  730. if _G._Pewalk.GetActiveMode().Farm then return "Lasthit" end
  731. elseif self.LoadedOrb == "Now" then
  732. if _G.NOWi.mode == "LastHit" then
  733. return "Lasthit"
  734. elseif _G.NOWi.mode ~= "JungleClear" then
  735. return _G.NOWi.mode
  736. end
  737. --[[
  738. if _G.NOWi.Config.k.Combo then return "Combo" end
  739. if _G.NOWi.Config.k.Harass then return "Harass" end
  740. if _G.NOWi.Config.k.LaneClear then return "Laneclear" end
  741. if _G.NOWi.Config.k.LastHit then return "Lasthit" end
  742. ]]--
  743. elseif self.LoadedOrb == "Big" then
  744. if _G["BigFatOrb_Mode"] == "Combo" then return "Combo" end
  745. if _G["BigFatOrb_Mode"] == "Harass" then return "Harass" end
  746. if _G["BigFatOrb_Mode"] == "LaneClear" then return "Laneclear" end
  747. if _G["BigFatOrb_Mode"] == "LastHit" then return "Lasthit" end
  748. elseif self.LoadedOrb == "Sow" then
  749. if _G.SOWi.Menu.Mode0 then return "Combo" end
  750. if _G.SOWi.Menu.Mode1 then return "Harass" end
  751. if _G.SOWi.Menu.Mode2 then return "Laneclear" end
  752. if _G.SOWi.Menu.Mode3 then return "Lasthit" end
  753. elseif self.LoadedOrb == "SxOrbWalk" then
  754. if _G.SxOrb.isFight then return "Combo" end
  755. if _G.SxOrb.isHarass then return "Harass" end
  756. if _G.SxOrb.isLaneClear then return "Laneclear" end
  757. if _G.SxOrb.isLastHit then return "Lasthit" end
  758. elseif self.LoadedOrb == "S1mpleOrbWalker" then
  759. if _G.S1mpleOrbWalker.aamode == "sbtw" then return "Combo" end
  760. if _G.S1mpleOrbWalker.aamode == "harass" then return "Harass" end
  761. if _G.S1mpleOrbWalker.aamode == "laneclear" then return "Laneclear" end
  762. if _G.S1mpleOrbWalker.aamode == "lasthit"then return "Lasthit" end
  763. end
  764. end
  765. function Download:__init()
  766. socket = require("socket")
  767. self.aktivedownloads = {}
  768. self.callbacks = {}
  769. AddTickCallback(function ()
  770. self:RemoveDone()
  771. end)
  772. class("Async")
  773. function Async:__init(host, filepath, localname, drawoffset, localpath)
  774. self.progress = 0
  775. self.host = host
  776. self.filepath = filepath
  777. self.localname = localname
  778. self.offset = drawoffset
  779. self.localpath = localpath
  780. self.CRLF = '\r\n'
  781. self.headsocket = socket.tcp()
  782. self.headsocket:settimeout(1)
  783. self.headsocket:connect(self.host, 80)
  784. self.headsocket:send('HEAD '..self.filepath..' HTTP/1.1'.. self.CRLF ..'Host: '..self.host.. self.CRLF ..'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'.. self.CRLF .. self.CRLF)
  785. self.HEADdata = ""
  786. self.DLdata = ""
  787. self.StartedDownload = false
  788. self.canDL = true
  789. AddTickCallback(function ()
  790. self:tick()
  791. end)
  792. AddDrawCallback(function ()
  793. self:draw()
  794. end)
  795. end
  796. function Async:tick()
  797. if self.progress == 100 then return end
  798. if self.HEADcStatus ~= "timeout" and self.HEADcStatus ~= "closed" then
  799. self.HEADfString, self.HEADcStatus, self.HEADpString = self.headsocket:receive(16);
  800. if self.HEADfString then
  801. self.HEADdata = self.HEADdata..self.HEADfString
  802. elseif self.HEADpString and #self.HEADpString > 0 then
  803. self.HEADdata = self.HEADdata..self.HEADpString
  804. end
  805. elseif self.HEADcStatus == "timeout" then
  806. self.headsocket:close()
  807. --Find Lenght
  808. local begin = string.find(self.HEADdata, "Length: ")
  809. if begin then
  810. self.HEADdata = string.sub(self.HEADdata,begin+8)
  811. local n = 0
  812. local _break = false
  813. for i=1, #self.HEADdata do
  814. local c = tonumber(string.sub(self.HEADdata,i,i))
  815. if c and _break == false then
  816. n = n+1
  817. else
  818. _break = true
  819. end
  820. end
  821. self.HEADdata = string.sub(self.HEADdata,1,n)
  822. self.StartedDownload = true
  823. self.HEADcStatus = "closed"
  824. end
  825. end
  826. if self.HEADcStatus == "closed" and self.StartedDownload == true and self.canDL == true then --Double Check
  827. self.canDL = false
  828. self.DLsocket = socket.tcp()
  829. self.DLsocket:settimeout(1)
  830. self.DLsocket:connect(self.host, 80)
  831. --Start Main Download
  832. self.DLsocket:send('GET '..self.filepath..' HTTP/1.1'.. self.CRLF ..'Host: '..self.host.. self.CRLF ..'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'.. self.CRLF .. self.CRLF)
  833. end
  834. if self.DLsocket and self.DLcStatus ~= "timeout" and self.DLcStatus ~= "closed" then
  835. self.DLfString, self.DLcStatus, self.DLpString = self.DLsocket:receive(1024);
  836. if ((self.DLfString) or (self.DLpString and #self.DLpString > 0)) then
  837. self.DLdata = self.DLdata .. (self.DLfString or self.DLpString)
  838. end
  839. elseif self.DLcStatus and self.DLcStatus == "timeout" then
  840. self.DLsocket:close()
  841. self.DLcStatus = "closed"
  842. self.DLdata = string.sub(self.DLdata,#self.DLdata-tonumber(self.HEADdata)+1)
  843. local file = io.open(self.localpath.."\\"..self.localname, "w+b")
  844. file:write(self.DLdata)
  845. file:close()
  846. self.progress = 100
  847. end
  848. if self.progress ~= 100 and self.DLdata and #self.DLdata > 0 then
  849. self.progress = (#self.DLdata/tonumber(self.HEADdata))*100
  850. end
  851. end
  852. function Async:draw()
  853. if self.progress < 100 then
  854. DrawTextA("Downloading: "..self.localname,15,50,35+self.offset)
  855. DrawRectangleOutline(49,50+self.offset,250,20, ARGB(255,255,255,255),1)
  856. if self.progress ~= 100 then
  857. DrawLine(50,60+self.offset,50+(2.5*self.progress),60+self.offset,18,ARGB(150,255-self.progress*2.5,self.progress*2.5,255-self.progress*2.5))
  858. DrawTextA(tostring(math.round(self.progress).." %"), 15,150,52+self.offset)
  859. end
  860. end
  861. end
  862. end
  863. function Download:newDL(host, file, name, path, callback)
  864. local offset = (#self.aktivedownloads+1)*40
  865. self.aktivedownloads[#self.aktivedownloads+1] = Async(host, file, name, offset-40, path)
  866. if not callback then
  867. callback = (function ()
  868. end)
  869. end
  870. self.callbacks[#self.callbacks+1] = callback
  871. end
  872. function Download:RemoveDone()
  873. if #self.aktivedownloads == 0 then return end
  874. local x = {}
  875. for k, v in pairs(self.aktivedownloads) do
  876. if math.round(v.progress) < 100 then
  877. v.offset = k*40-40
  878. x[#x+1] = v
  879. else
  880. self.callbacks[k]()
  881. end
  882. end
  883. self.aktivedownloads = {}
  884. self.aktivedownloads = x
  885. end
  886. if myHero.charName ~= "Riven" then return end
  887. -- BoL Tools Tracker --
  888. assert(load(Base64Decode("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"), nil, "bt", _ENV))()
  889. TrackerLoad("SYmmrH5U23buufxE")
  890. -- BoL Tools Tracker --
  891. function OnLoad()
  892. Riven()
  893. SendMsg("Thanks "..GetUser().." for using Shattered Blade")
  894. Download()
  895. end
  896. function SendMsg(msg)
  897. PrintChat("<font color=\"#06CD51\"><b>[Shattered Blade]</b></font><font color=\"#C2FDF3\"><b> "..msg..".</b></font>")
  898. end

comments powered by Disqus