View difference between Paste ID: QzsfpB1H and Z38Cmeyt
SHOW: | | - or go back to the newest paste.
1
-- all credit to unlimited, Burn and veers13
2
-- code taken from LeeSin Combo / Ward Jump SBTW
3
-- thanks to leepap for the Q/E stats
4
-- I know this script is super messy and some stuff in here is not used at all
5
6
if myHero.charName ~= "Ahri" then return end
7
8
require "AllClass"
9
local qrange = 880
10
local qspeed = 1.25
11
local qdelay = 250
12
local qradius = 25
13
local qtravelDuration = 400
14
local etravelDuration = 400
15
local wrange = 800
16
local espeed = 1.25
17
local edelay = 245
18
local eradius = 50
19
local kill = {}
20
local erange = 975
21
local ts = TargetSelector(TARGET_LOW_HP,erange,DAMAGE_MAGIC,false)
22
local tp = TargetPrediction(qrange, 1.17, 300, 50)
23
local pp
24
local QREADY, EREADY = false, false
25
26
function OnLoad()
27
acConfig = scriptConfig("UnlimitedAhri modified", "AhriCombo")
28
acConfig:addParam("LaningCharm", "Charming", SCRIPT_PARAM_ONKEYDOWN, false, 67)
29
acConfig:addParam("harass", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
30
acConfig:addParam("drawcircles", "Draw Circles", SCRIPT_PARAM_ONOFF, false)
31
acConfig:permaShow("harass")
32
ts.name = "Ahri"
33
acConfig:addTS(ts)
34
end
35
36
37
38
39
40
41
42
function OnTick()
43
	ts:update()
44
	QREADY = (myHero:CanUseSpell(_Q) == READY)
45
	EREADY = (myHero:CanUseSpell(_E) == READY)
46
	
47
	if ts.target ~= nil and not EREADY then
48
		qtravelDuration = (qdelay + GetDistance(myHero, ts.target)/qspeed)
49
			ts:SetPrediction(qtravelDuration)
50
		elseif ts.target ~= nil and EREADY then
51
		etravelDuration = (edelay + GetDistance(myHero, ts.target)/qspeed)
52
			ts:SetPrediction(etravelDuration)
53
	end
54
	
55
56
	Prediction__OnTick()
57
	if ts.target ~= nil then predic = ts.nextPosition end
58
59
	
60
	if tick == nil or GetTickCount()-tick>=100 then
61
		tick = GetTickCount()
62
	end
63
	
64
	if ts.target ~= nil and acConfig.LaningCharm then
65
		if predic ~= nil and GetDistance(ts.target) <= erange and not GetMinionCollision(myHero, ts.nextPosition, 260) then
66
			CastSpell(_E,predic.x,predic.z)
67
		end
68
	end
69
	
70
	if ts.target ~= nil and acConfig.harass then
71
		if predic ~= nil and GetDistance(ts.target) <= erange and not GetMinionCollision(myHero,ts.nextPosition, 260) then
72
				CastSpell(_E,predic.x,predic.z)
73
			end
74
		if predic ~= nil and GetDistance(ts.target) <= qrange then
75
				CastSpell(_Q,predic.x,predic.z)
76
			end
77
	if ts.target ~= nil and GetDistance(ts.target) <= 800 then
78
				CastSpell(_W)
79
end
80
	end
81
82
	
83
84
end
85
86
87
88
89
90
function OnDraw()
91
92
	
93
94
	if acConfig.drawcircles and not myHero.dead then
95
96
		DrawCircle(myHero.x,myHero.y,myHero.z, qrange, 0xFF80FF00)
97
		end
98
		
99
	SC__OnDraw()
100
101
end
102
103
--end
104
105
function OnWndMsg(msg,key)
106
107
	SC__OnWndMsg(msg,key)
108
109
end
110
111
	
112
113
function OnSendChat(msg)
114
115
	TargetSelector__OnSendChat(msg)
116
117
	ts:OnSendChat(msg, "pri")
118
119
end
120
121
122
123
PrintChat(" >> UnlimitedAhri Loaded!")