View difference between Paste ID: VgcS1q1U and BX9EQN20
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