SHOW:
|
|
- or go back to the newest paste.
1 | --[[ | |
2 | ||
3 | Auto Carry Plugin - Blitzcrank Edition | |
4 | Author: Roach_ | |
5 | - | Version: 1.0a |
5 | + | Version: 1.0b |
6 | Copyright 2013 | |
7 | ||
8 | Dependency: Sida's Auto Carry: Revamped | |
9 | ||
10 | How to install: | |
11 | Make sure you already have AutoCarry installed. | |
12 | Name the script EXACTLY "SidasAutoCarryPlugin - Blitzcrank.lua" without the quotes. | |
13 | Place the plugin in BoL/Scripts/Common folder. | |
14 | ||
15 | Features: | |
16 | Combo with Autocarry | |
17 | Fully supports Q with movement/attack disable | |
18 | Killsteal with R | |
19 | Stop enemy ultimates with R | |
20 | Draw Q and R Range | |
21 | Escape Artist(with Flash) | |
22 | ||
23 | History: | |
24 | Version: 1.0b | |
25 | Fixed Errors | |
26 | Fixed Prediction | |
27 | No more grabing minions | |
28 | ||
29 | Version: 1.0a | |
30 | First release | |
31 | --]] | |
32 | if myHero.charName ~= "Blitzcrank" then return end | |
33 | ||
34 | local Target | |
35 | local bEscapeHotkey = string.byte("T") | |
36 | ||
37 | -- Prediction | |
38 | local aRange, qRange, rRange = 125, 1050, 600 | |
39 | - | local SkillQ = {spellKey = _Q, range = qRange, speed = 1.8, delay = 0, width = 120, configName = "rocketGrab", displayName = "Q (Rocket Grab)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true } |
39 | + | |
40 | local FlashSlot = nil | |
41 | ||
42 | local bPred = nil | |
43 | ||
44 | local SkillQ = {spellKey = _Q, range = qRange, speed = 1.8, delay = 0, width = 120, configName = "rocketGrab", displayName = "Q (Rocket Grab)", enabled = true, skillShot = true, minions = true, reset = false, reqTarget = true } | |
45 | local SkillW = {spellKey = _W, range = 0, speed = 2, delay = 0, width = 75, configName = "overdrive", displayName = "W (Overdrive)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = false } | |
46 | local SkillE = {spellKey = _E, range = eRange, speed = 2, delay = 0, width = 25, configName = "powerFist", displayName = "E (Power Fist)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = true } | |
47 | ||
48 | local QReady, WReady, EReady, RReady, FlashReady = false, false, false, false, false | |
49 | ||
50 | function PluginOnLoad() | |
51 | -- Params | |
52 | AutoCarry.PluginMenu:addParam("bCombo", "Use Combo With Auto Carry", SCRIPT_PARAM_ONOFF, true) | |
53 | AutoCarry.PluginMenu:addParam("bWC", "Use W in Combo", SCRIPT_PARAM_ONOFF, false) | |
54 | AutoCarry.PluginMenu:addParam("bUltSilence", "Silence Enemy Ultimates", SCRIPT_PARAM_ONOFF, false) | |
55 | AutoCarry.PluginMenu:addParam("bKillsteal", "Killsteal with Ultimate", SCRIPT_PARAM_ONOFF, true) | |
56 | AutoCarry.PluginMenu:addParam("bDQR", "Draw Q Range", SCRIPT_PARAM_ONOFF, true) | |
57 | AutoCarry.PluginMenu:addParam("bDRR", "Draw Ultimate Range", SCRIPT_PARAM_ONOFF, false) | |
58 | AutoCarry.PluginMenu:addParam("bEscape", "Escape Artist", SCRIPT_PARAM_ONKEYDOWN, false, bEscapeHotkey) | |
59 | AutoCarry.PluginMenu:addParam("bEscapeFlash", "Escape: Flash to Mouse", SCRIPT_PARAM_ONOFF, false) | |
60 | ||
61 | -- Range | |
62 | AutoCarry.SkillsCrosshair.range = qRange | |
63 | ||
64 | lastAnimation = nil | |
65 | end | |
66 | ||
67 | - | -- Prediction |
67 | + | |
68 | function PluginOnTick() | |
69 | - | travelDuration = (SkillQ.delay + GetDistance(myHero, Target)/SkillQ.speed) |
69 | + | |
70 | - | Target:SetPrediction(travelDuration) |
70 | + | |
71 | - | bPred = Target.nextPosition |
71 | + | |
72 | -- Check Spells | |
73 | bSpellCheck() | |
74 | ||
75 | -- Check if myHero is using _Q | |
76 | if isChanneling("Spell1") then | |
77 | AutoCarry.CanAttack = false | |
78 | AutoCarry.CanMove = false | |
79 | else | |
80 | AutoCarry.CanAttack = true | |
81 | AutoCarry.CanMove = true | |
82 | end | |
83 | ||
84 | -- Combo, Ultimate Silence, Killsteal, Escape Combo - Checks | |
85 | if AutoCarry.PluginMenu.bCombo and AutoCarry.MainMenu.AutoCarry then bCombo() end | |
86 | if AutoCarry.PluginMenu.bUltSilence then bUltCombo() end | |
87 | if AutoCarry.PluginMenu.bKillsteal then bKillsteal() end | |
88 | if AutoCarry.PluginMenu.bEscape then bEscapeCombo() end | |
89 | end | |
90 | ||
91 | function PluginOnDraw() | |
92 | -- Draw Blitzcrank's Ranges = 1050, 600 | |
93 | if not myHero.dead and AutoCarry.PluginMenu.bDQR then | |
94 | DrawCircle(myHero.x, myHero.y, myHero.z, qRange, 0x00FF00) | |
95 | end | |
96 | if not myHero.dead and AutoCarry.PluginMenu.bDRR then | |
97 | DrawCircle(myHero.x, myHero.y, myHero.z, rRange, 0xFF0000) | |
98 | end | |
99 | end | |
100 | ||
101 | function PluginOnAnimation(unit, animationName) | |
102 | -- Set lastAnimation = Last Animation used | |
103 | if unit.isMe and lastAnimation ~= animationName then lastAnimation = animationName end | |
104 | ||
105 | if AutoCarry.PluginMenu.bUltSilence and ValidTarget(unit) and unit.team == TEAM_ENEMY and RReady and GetDistance(unit) <= (rRange-10) then | |
106 | if spell.name == "KatarinaR" or spell.name == "GalioIdolOfDurand" or spell.name == "Crowstorm" or spell.name == "DrainChannel" | |
107 | or spell.name == "AbsoluteZero" or spell.name == "ShenStandUnited" or spell.name == "UrgotSwap2" or spell.name =="AlZaharNetherGrasp" | |
108 | or spell.name == "FallenOne" or spell.name == "Pantheon_GrandSkyfall_Jump" or spell.name == "CaitlynAceintheHole" or spell.name == "MissFortuneBulletTime" | |
109 | or spell.name == "InfiniteDuress" or spell.name == "Teleport" or spell.name == "Meditate" then | |
110 | CastSpell(_R, unit) | |
111 | end | |
112 | end | |
113 | end | |
114 | ||
115 | -- Custom Functions | |
116 | function bCombo() | |
117 | if ValidTarget(Target) then | |
118 | if QReady and GetDistance(Target) < (qRange-25) then | |
119 | bSkillshot(SkillQ, Target) | |
120 | - | if QReady and bPred ~= nil and GetDistance(bPred) < (qRange-10) and not minionCollision(bPred, SkillQ.width, qRange) then |
120 | + | |
121 | - | AutoCarry.CastSkillshot(SkillQ.spellKey, bPred.x, bPred.y) |
121 | + | |
122 | if WReady and AutoCarry.PluginMenu.bWC then | |
123 | CastSpell(SkillW.spellKey) | |
124 | end | |
125 | ||
126 | if EReady then | |
127 | CastSpell(SkillE.spellKey) | |
128 | end | |
129 | end | |
130 | end | |
131 | ||
132 | function bKillsteal() | |
133 | for _, enemy in pairs(AutoCarry.EnemyTable) do | |
134 | if ValidTarget(enemy) and GetDistance(enemy) < rRange and enemy.health < (getDmg("R", enemy, myHero)) then | |
135 | CastSpell(_R) | |
136 | end | |
137 | end | |
138 | end | |
139 | ||
140 | function bEscapeCombo() | |
141 | if QReady and GetDistance(Target) < (qRange-25) then | |
142 | bSkillshot(SkillQ, Target) | |
143 | - | if QReady and bPred ~= nil and GetDistance(bPred) < (qRange-10) and not minionCollision(bPred, SkillQ.width, qRange) then |
143 | + | |
144 | - | AutoCarry.CastSkillshot(SkillQ.spellKey, bPred.x, bPred.y) |
144 | + | |
145 | CastSpell(FlashSlot, mousePos.x, mousePos.z) | |
146 | end | |
147 | end | |
148 | ||
149 | if AutoCarry.PluginMenu.bEscapeFlash then | |
150 | CastSpell(SkillW.spellKey) | |
151 | myHero:MoveTo(mousePos.x, mousePos.z) | |
152 | end | |
153 | end | |
154 | ||
155 | function isChanneling(animationName) | |
156 | if lastAnimation == animationName then | |
157 | return true | |
158 | else | |
159 | return false | |
160 | end | |
161 | end | |
162 | ||
163 | function bSpellCheck() | |
164 | if myHero:GetSpellData(SUMMONER_1).name:find("SummonerFlash") then | |
165 | FlashSlot = SUMMONER_1 | |
166 | elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerFlash") then | |
167 | FlashSlot = SUMMONER_2 | |
168 | end | |
169 | ||
170 | QReady = (myHero:CanUseSpell(SkillQ.spellKey) == READY) | |
171 | WReady = (myHero:CanUseSpell(SkillW.spellKey) == READY) | |
172 | EReady = (myHero:CanUseSpell(SkillE.spellKey) == READY) | |
173 | RReady = (myHero:CanUseSpell(_R) == READY) | |
174 | ||
175 | FlashReady = (FlashSlot ~= nil and myHero:CanUseSpell(FlashSlot) == READY) | |
176 | end | |
177 | ||
178 | function bSkillshot(spell, target) | |
179 | - | function minionCollision(pred, width, range) |
179 | + | if not AutoCarry.GetCollision(spell, myHero, target) then |
180 | - | for _, minionObjectE in pairs(enemyMinions.objects) do |
180 | + | AutoCarry.CastSkillshot(spell, target) |
181 | - | if bPred ~= nil and player:GetDistance(minionObjectE) < range then |
181 | + | end |
182 | - | ex = player.x |
182 | + | |
183 | - | ez = player.z |
183 | + | |
184 | - | tx = bPred.x |
184 | + | --UPDATEURL=https://raw.github.com/RoachxD/BoL_Scripts/master/Common/SidasAutoCarryPlugin%20-%20Blitzcrank.lua |
185 | - | tz = bPred.z |
185 | + | --HASH=70B1EBC9449E4FA774112516F4BD2DB3 |