Guest User

Untitled

a guest
Jan 22nd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.15 KB | None | 0 0
  1. --[[Jayce the Rapist by jbman!
  2.  
  3. Based heavily on Manciuszz's Jayce Helper Script]]
  4.  
  5.  
  6. if myHero.charName == "Jayce" then
  7.     PrintChat(" >> Jayce the Rapist loaded!")
  8.  
  9.     require "AllClass"
  10.  
  11.     --SETTINGS
  12.     local showRanges = true --Displays Q range and Q > E max range when in Mercury Cannon stance(will show range only of the available spells(not on cooldown))    
  13.     local focusedTarget = true
  14.     local EnableAutoE = true
  15.     local QEHowFarAway = 0.11 --Cast Acceleration gate this far away when firing QE at your target. From 0.1 to 0.15 I prefer 0.11 cause it drops it near me, getting the buff with the improved blast almost instantly.
  16.     local FreeQEHowFarAway = 0.11 --Cast Acceleration gate this far away when firing QE your cursor (great for clearing mobs). From 0.1 to 0.15 I prefer 0.11 cause it drops it near me, getting the buff with the improved blast almost instantly.
  17.  
  18.     local RefreshRate = 50 --function OnTick() refresh rate(How fast will it work) | Good Value is from 50 to 500
  19.  
  20.     local targetCircle = 100 --RED Circle of a enemy that is in Target Selectors scan range.
  21.  
  22.     --Globals
  23.  
  24.     --Attack Cast
  25.     local lastBasicAttack = 0
  26.     local swingDelay = 0.15 -- Play around with this to get the right delay. I usually set mine lower but people with faster connections may not want to.
  27.     local shootDelay = 0.15 -- Play around with this to get the right delay. I usually set mine lower but people with faster connections may not want to.
  28.     local swing = 0
  29.  
  30.     -- Target Prediction
  31.     local range = 1600
  32.     local proj_speed = 2.1
  33.     local delay = 200
  34.     local smoothness = 50
  35.    
  36.     local targetSelected = true
  37.  
  38.     --[[ Code ]]
  39.    
  40.     local ts = TargetSelector(TARGET_LOW_HP, range)
  41.     local tp = TargetPrediction(range, proj_speed, delay, smoothness)
  42.  
  43.     function GetDistanceTo(target1, target2)
  44.         if target1 and target2 then
  45.             if target1.x and target2.x and target1.z and target2.z then
  46.                 local distance = math.floor(math.sqrt((target2.x - target1.x) ^ 2 + (target2.z - target1.z) ^ 2))
  47.                 return distance
  48.             end
  49.         end
  50.     end
  51.    
  52.    
  53.    
  54.    
  55.    
  56.     function OnProcessSpell(object, spell)
  57.         spellName = spell.name
  58.         if object ~= nil and object.name == myHero.name and ((spellName == "jaycepassiverangedattack") or (spellName == "jaycepassivemeleeattack") or (spellName == "JayceBasicAttack") or (spellName == "JayceBasicAttack2") or (spellName == "JayceBasicAttack3") or (spellName == "JayceCritAttack") or (spellName == "JayceCritAttack2")or (spellName == "JayceRangedAttack") or (spellName == "JayceRangedAttack2") or (spellName == "JayceRangedAttack3") or (spellName == "JayceRangedCritAttack")) then
  59.             swing = 1
  60.             lastBasicAttack = os.clock()
  61.         end
  62.     end
  63.  
  64. -- SCRIPT---
  65.  
  66.     function OnTick()
  67.         if myHero.dead then --If dead. Do nothing.
  68.             return
  69.         end
  70.  
  71.         --QE in Cannon Stance
  72.         if (IsKeyDown(88) or IsKeyDown(67)) and myHero:GetSpellData(_R).name == "jaycestancegth" and (myHero:CanUseSpell(_Q) == READY and myHero:CanUseSpell(_E) == READY) then
  73.             ts:update()
  74.             TargetPrediction__OnTick()
  75.             if ts.target ~= nil and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible then
  76.                 local predictedPos = tp:GetPrediction(ts.target)
  77.                 if predictedPos ~= nil and (myHero:CanUseSpell(_Q) == READY and myHero:CanUseSpell(_E) == READY) then
  78.                     EnemyPos = Vector(predictedPos.x,predictedPos.z)
  79.                     HeroPos = Vector(myHero.x,myHero.z)
  80.                     GatePos = HeroPos + ( HeroPos - EnemyPos ):normalized()*(-QEHowFarAway)
  81.                     if (myHero:CanUseSpell(_Q) == READY and myHero:CanUseSpell(_E) == READY) then
  82.                         CastSpell(_Q, predictedPos.x, predictedPos.z) -- _Q has a 0.5~ channel time and casting E doesn't cancel it, making pretty comfty combo
  83.                         CastSpell(_E, GatePos.x, GatePos.z) -- Drops it near yourself.This way YOU GET THE SPEED BOOST almost IMMEDIATELY + You get almost instant powered Q.
  84.                     end
  85.                 end
  86.             end
  87.         end
  88.  
  89.         --FreeQE in Cannon Stance
  90.         if IsKeyDown(84) and myHero:GetSpellData(_R).name == "jaycestancegth" and (myHero:CanUseSpell(_Q) == READY and myHero:CanUseSpell(_E) == READY) then
  91.             EnemyPos = Vector(mousePos.x,mousePos.z)
  92.             HeroPos = Vector(myHero.x,myHero.z)
  93.             GatePos = HeroPos + ( HeroPos - EnemyPos ):normalized() * (-FreeQEHowFarAway)
  94.             if (myHero:CanUseSpell(_Q) == READY and myHero:CanUseSpell(_E) == READY)    then
  95.                 CastSpell(_Q, mousePos.x,mousePos.z) -- _Q has a 0.5~ channel time and casting E doesn't cancel it, making pretty comfty combo
  96.                 CastSpell(_E, GatePos.x, GatePos.z) -- Drops it near yourself.This way YOU GET THE SPEED BOOST almost IMMEDIATELY + You get almost instant powered Q.
  97.             end
  98.         end
  99.  
  100.         -- Burst Combo. If your QE in Canon stance is on CD. You will switch to Hammer Stance and Q, AA-E.
  101.         if IsKeyDown(67) then
  102.             ts:update()
  103.             if  myHero:GetSpellData(_R).name == "jaycestancegth" and ts.target ~= nil and myHero:CanUseSpell(_Q) ~= READY and myHero:CanUseSpell(_E) ~= READY then
  104.                 CastSpell(_W)
  105.                 CastSpell(_R)
  106.         elseif myHero:GetSpellData(_R).name == "JayceStanceHtG" then
  107.                 if ts.target ~= nil and myHero:CanUseSpell(_Q) == READY and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible and GetDistanceTo(myHero,ts.target) <= 620 then
  108.                     CastSpell(_Q, ts.target)
  109.                 end
  110.                 if ts.target ~= nil and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible and GetDistanceTo(myHero,ts.target) <= 620 then
  111.                     myHero:Attack(ts.target)
  112.                 end
  113.                 if myHero:GetSpellData(_R).name == "JayceStanceHtG" and swing == 1 then
  114.                     CastSpell(_W)
  115.                     if (os.clock() - lastBasicAttack > swingDelay) and ts.target ~= nil and myHero:CanUseSpell(_E) == READY and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible then
  116.                         CastSpell(_E, ts.target)
  117.                         swing = 0
  118.                     end
  119.                 end
  120.             end
  121.         end
  122.  
  123.         -- Just Q in Hammer Stance
  124.         if IsKeyDown(88) and  myHero:GetSpellData(_R).name == "JayceStanceHtG" then
  125.             ts:update() -- When in Hammer form go dunk that enemy and attack-kite him.
  126.             if ts.target ~= nil and myHero:CanUseSpell(_Q) == READY and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible and GetDistanceTo(myHero,ts.target) < 620 then
  127.                 CastSpell(_Q, ts.target)                
  128.             end
  129.         end
  130.  
  131.          --Auto Last Hit kill
  132.         if (IsKeyPressed(88) or IsKeyPressed(90) or IsKeyPressed(67)) and myHero:GetSpellData(_R).name == "JayceStanceHtG" then
  133.             ts:update()
  134.             if ts.target ~= nil then
  135.                 local jayceEhammerdmg = (((30 * myHero:GetSpellData(_E).level + 10) + myHero.addDamage) + ((3 * myHero:GetSpellData(_E).level + 5) * ts.target.maxHealth/100) - (ts.target.maxHealth/20))
  136.                 if ts.target.health < jayceEhammerdmg and GetDistanceTo(myHero, ts.target) <= 305 then
  137.                     if ts.target ~= nil and myHero:CanUseSpell(_E) == READY and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible and GetDistanceTo(myHero,ts.target) < 305 then
  138.                         CastSpell(_E, ts.target)
  139.                     end
  140.                 end
  141.             end
  142.         end
  143.  
  144.         -- AA-E in Hammer Stance
  145.         if IsKeyDown(90) and myHero:GetSpellData(_R).name == "JayceStanceHtG" then
  146.             ts:update()
  147.             if  swing == 1 then
  148.                 if (os.clock() - lastBasicAttack > swingDelay) and ts.target ~= nil and myHero:CanUseSpell(_E) == READY and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible and GetDistanceTo(myHero,ts.target) < 305 then
  149.                     CastSpell(_E, ts.target)
  150.                     swing = 0
  151.                 end
  152.             end
  153.         end
  154.  
  155.         -- Just E in Hammer Stance
  156.        
  157.         if IsKeyDown(90) and myHero:GetSpellData(_R).name == "JayceStanceHtG"  then
  158.             ts:update()
  159.             if  ts.target ~= nil and myHero:CanUseSpell(_E) == READY and not ts.target.dead and ts.target.team ~= myHero.team and ts.target.visible and (GetDistanceTo(myHero,ts.target) > 325 and GetDistanceTo(myHero,ts.target) < 500) then
  160.                 CastSpell(_E, ts.target)
  161.             end
  162.         end
  163.        
  164.  
  165.         -- AA-W in Cannon Stance
  166.         if IsKeyDown(90) and myHero:GetSpellData(_R).name == "jaycestancegth" then
  167.             if swing == 1 then
  168.                 if (os.clock() - lastBasicAttack > shootDelay) and myHero:CanUseSpell(_W) == READY then
  169.                     CastSpell(_W)
  170.                     swing = 0
  171.                 end
  172.             end
  173.         end
  174.  
  175.         if os.clock() > lastBasicAttack + 0.7 then
  176.             swing = 0
  177.         end
  178.     end
  179.  
  180.     function OnDraw()
  181.         if myHero.dead then
  182.             return
  183.         end
  184.         if focusedTarget then
  185.             if ts.target ~= nil then
  186.                 DrawCircle(ts.target.x, ts.target.y, ts.target.z, targetCircle, 0xFFFF0000)
  187.             end
  188.         end
  189.         if showRanges then
  190.             if myHero:GetSpellData(_R).name == "jaycestancegth" then --if in Mercury Cannon stance
  191.                 if myHero:CanUseSpell(_Q) == READY and myHero:CanUseSpell(_E) == READY then
  192.                     DrawCircle(myHero.x, myHero.y, myHero.z, range, 0xFF00FF00)
  193.                 end
  194.         elseif myHero:GetSpellData(_R).name == "JayceStanceHtG" then --if in Hammer stance
  195.                 if myHero:CanUseSpell(_Q) == READY then
  196.                     DrawCircle(myHero.x, myHero.y, myHero.z, 600, 0xFFFF0000)
  197.             elseif  myHero:CanUseSpell(_E) == READY then
  198.                     DrawCircle(myHero.x, myHero.y, myHero.z, 305, 0xFFFF0000)
  199.                 end
  200.             end
  201.         end
  202.     end
  203. end
Add Comment
Please, Sign In to add comment