-
Notifications
You must be signed in to change notification settings - Fork 199
/
Copy pathNoscopeNidaleeReborn.lua
608 lines (561 loc) · 20.1 KB
/
NoscopeNidaleeReborn.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
--[[
Scriptname = Noscope Nidalee Reborn
Version = 2.3
Author = DeadDevil2
ToDo
- Laneclear & Jungleclear
- Spear KS
]]
if myHero.charName ~= "Nidalee" then
return
end
local ignite = nil
local version = 2.3
local AUTOUPDATE = true
local SX = false
local SAC = false
local SCRIPT_NAME = "NoscopeNidaleeReborn"
local SOURCELIB_URL = "https://raw.github.com/TheRealSource/public/master/common/SourceLib.lua"
local SOURCELIB_PATH = LIB_PATH.."SourceLib.lua"
local Spells =
{
Q = {range = 1400, delay = 0.25, width = 37.5, speed = 1325},
W = {range = 900, delay = 0.500, width = 80, speed = 1450},
E = {range = 600},
CW = {range = 375},
ECW = {range = 750},
CE = {range = 300}
}
if FileExist(SOURCELIB_PATH) then
require("SourceLib")
else
DONLOADING_SOURCELIB = true
DownloadFile(SOURCELIB_URL, SOURCELIB_PATH, function() print("Required libraries downloaded successfully, please reload") end)
end
if FileExist(LIB_PATH .. "/VPrediction.lua") then
require 'VPrediction'
else print ("Noscope Nidalee Reborn: You need to download VPrediction. Loading Script failed..") return end
--[[
if VIP_USER and FileExist(LIB_PATH.."DivinePred.lua") and FileExist(LIB_PATH.."DivinePred.luac") then
require 'DivinePred'
DP = DivinePred()
else print ("You need to download DivinePred. Loading Script failed..") return end
]]
if FileExist(LIB_PATH .. "/HPrediction.lua") then
require 'HPrediction'
else print ("Noscope Nidalee Reborn: You need to download HPrediction. Loading Script failed..") return end
if DOWNLOADING_SOURCELIB then print("Downloading required libraries, please wait...") return end
local RequireI = Require("SourceLib")
RequireI:Check()
if AUTOUPDATE then
SourceUpdater(SCRIPT_NAME, version, "raw.github.com", "/dd2repo/BoL/master/"..SCRIPT_NAME..".lua", SCRIPT_PATH .. GetCurrentEnv().FILE_NAME, "/dd2repo/BoL/master/"..SCRIPT_NAME..".version"):CheckUpdate()
end
function OnLoad()
if _G.Reborn_Loaded ~= nil then
SAC = true
print ("Noscope Nidalee Reborn: SAC Reborn detected.")
else SX = true
print ("Noscope Nidalee Reborn: SAC cannot be found. Will load SxOrbWalk.")
if FileExist(LIB_PATH .. "/SxOrbWalk.lua") then
require 'SxOrbWalk'
else print ("Noscope Nidalee Reborn: You need to download SxOrbWalk. Loading Script failed..") return
end
end
vars()
menu()
end
function vars()
ts = TargetSelector(TARGET_LESS_CAST_PRIORITY,0)
VP = VPrediction()
HPred = HPrediction()
HP_Q = HPSkillshot({type = "DelayLine", delay = Spells.Q.delay, range = Spells.Q.range, speed = Spells.Q.speed, collisionM = true, collisionH = true, width = Spells.Q.width*2, IsVeryLowAccuracy = true})
hunting = false
cougar = false
Ignite = (myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") and SUMMONER_1) or (myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") and SUMMONER_2) or nil
if SX then SxOrb:RegisterOnAttackCallback(CastCougarQ) end
jungleMinions = minionManager(MINION_JUNGLE, 800, myHero, MINION_SORT_MAXHEALTH_DEC)
enemyMinions = minionManager(MINION_ENEMY, 800, myHero, MINION_SORT_HEALTH_ASC)
end
function menu()
m = scriptConfig("Noscope Nidalee Reborn", "Noscopenidaleereborn")
m:addSubMenu(">> Key Manager", "key")
m.key:addParam("combokey", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
m.key:addParam("escapekey", "Escape", SCRIPT_PARAM_ONKEYDOWN, false, 88)
m.key:addParam("harass", "Toogle Auto Harass with Spears", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("C"))
m.key:addParam("junglekey", "Clear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
m:addSubMenu(">> Combo Manager", "combosettings")
m.combosettings:addSubMenu("Humanform Combo", "humancombo")
m.combosettings.humancombo:addParam("usehq", "Use Q", SCRIPT_PARAM_ONOFF, true)
m.combosettings.humancombo:addParam("usehw", "Use W", SCRIPT_PARAM_ONOFF, true)
m.combosettings:addSubMenu("Cougar Combo", "cougarcombo")
m.combosettings.cougarcombo:addParam("usecq", "Use Q", SCRIPT_PARAM_ONOFF, true)
m.combosettings.cougarcombo:addParam("usecw", "Use W", SCRIPT_PARAM_ONOFF, true)
m.combosettings.cougarcombo:addParam("usece", "Use E", SCRIPT_PARAM_ONOFF, true)
m.combosettings:addParam("platzhalter", "", 5, "")
m.combosettings:addParam("huntedinfo", "--- Passive Manager ---", 5, "")
m.combosettings:addParam("autocougar", "Switch to Cougar if target is Hunted", SCRIPT_PARAM_ONOFF, false)
m.combosettings:addParam("Cinfo", "Only switchs if target is in extended Pounce range", 5, "")
m.combosettings:addParam("platzhalter", "", 5, "")
m:addSubMenu(">> Item Manager", "items")
m.items:addParam("useitems", "Use Items", SCRIPT_PARAM_ONOFF, true)
m.items:addParam("platzhalter", "", 5, "")
m.items:addParam("hybriditemsinfo", "--- Hybrid Items ---", 5, "")
m.items:addParam("hg", "Hextech Gunblade", SCRIPT_PARAM_LIST, 1, {"Never", "Cougar", "Human", "Both" })
m.items:addParam("platzhalter", "", 5, "")
m.items:addParam("hybriditemsinfo", "--- AD Items ---", 5, "")
m.items:addParam("yg", "Youmuu's Ghostblade", SCRIPT_PARAM_LIST, 1, {"Never", "Cougar", "Human", "Always" })
m.items:addParam("blade", "Blade of the Ruined King", SCRIPT_PARAM_LIST, 1, {"Never", "Cougar", "Human", "Always" })
m.items:addParam("cutlass", "Bilgewater Cutlass", SCRIPT_PARAM_LIST, 1, {"Never", "Cougar", "Human", "Always" })
m.items:addParam("sod", "Sword of the Divine(Outdated)", SCRIPT_PARAM_LIST, 1, {"Never", "Cougar", "Human", "Always" })
m.items:addParam("platzhalter", "", 5, "")
m.items:addParam("supportitemsinfo", "--- Support Items ---", 5, "")
m.items:addParam("fqc", "Frost Queen's Claim(Outdated)", SCRIPT_PARAM_LIST, 1, {"Never", "Cougar", "Human", "Always" })
m.items:addParam("platzhalter", "", 5, "")
m.items:addParam("hybriditemsinfo", "--- Defensive Items ---", 5, "")
m.items:addParam("enableautozhonya", "Auto Zhonya's", SCRIPT_PARAM_ONOFF, false)
m.items:addParam("autozhonya", "Zhonya's if Health under -> %", SCRIPT_PARAM_SLICE, 10, 0, 100, 0)
m:addSubMenu(">> Heal Manager", "healmanager")
m.healmanager:addParam("healinfo", "--- Self Heal ---", 5, "")
m.healmanager:addParam("enableheal", "Auto Heal", SCRIPT_PARAM_ONOFF, true)
m.healmanager:addParam("heal", "Heal if Health under -> %", SCRIPT_PARAM_SLICE, 20, 0, 100, 0)
m.healmanager:addParam("platzhalter", "", 5, "")
m.healmanager:addParam("ahealinfo", "--- Ally Heal ---", 5, "")
m.healmanager:addParam("platzhalter", "SoonTM <3", 5, "")
m.healmanager:addParam("platzhalter", "", 5, "")
m.healmanager:addParam("healswitch", "Switch Forms for Heal", SCRIPT_PARAM_ONOFF, false)
m:addSubMenu(">> KS Manager", "ks")
m.ks:addParam("ignite", "Use Ignite", SCRIPT_PARAM_ONOFF, true)
m.ks:addParam("usecq", "Use Cougar Q", SCRIPT_PARAM_ONOFF, true)
m.ks:addParam("usecw", "Use Cougar W", SCRIPT_PARAM_ONOFF, true)
m.ks:addParam("usece", "Use Cougar E", SCRIPT_PARAM_ONOFF, true)
m:addSubMenu(">> Clear Manager", "c")
m.c:addParam("usehq", "Use Spear", SCRIPT_PARAM_ONOFF, false)
m.c:addParam("usehw", "Use Trap", SCRIPT_PARAM_ONOFF, false)
m.c:addParam("usecq", "Use Cougar Q", SCRIPT_PARAM_ONOFF, true)
m.c:addParam("usecw", "Use Cougar W", SCRIPT_PARAM_ONOFF, true)
m.c:addParam("usece", "Use Cougar E", SCRIPT_PARAM_ONOFF, true)
m.c:addParam("autocougar", "Switch to Cougar if Creep is Hunted", SCRIPT_PARAM_ONOFF, false)
m:addSubMenu(">> Misc Manager", "vip")
m.vip:addParam("pretype", "--- Spear Prediction ---", 5, "")
m.vip:addParam("prediction", "Choose Prediction", SCRIPT_PARAM_LIST, 2, {"VPrediction", "HPrediction" })
m.vip:addParam("platzhalter", "", 5, "")
m.vip:addParam("hitchance", "Q Hitchance [VPrediction]", SCRIPT_PARAM_SLICE, 2, 1, 4, 0)
m.vip:addParam("hitinfo", "1=low 2=high 3=slowed 4=stunned/rooted", 5, "")
m.vip:addParam("platzhalter", "", 5, "")
m.vip:addParam("hhitchance", "Q Hitchance [HPrediction]", SCRIPT_PARAM_SLICE, 2, 1, 3, 0)
m.vip:addParam("hitinfo", "1=low 2=mid 3=high", 5, "")
m.vip:addParam("platzhalter", "", 5, "")
m.vip:addParam("pretype", "--- Lag Free Circles ---", 5, "")
m.vip:addParam("LagFree", "Activate Lag Free Circles", 1, false)
m.vip:addParam("CL", "Length before snapping", 4, 75, 75, 2000, 0)
m.vip:addParam("CLinfo", "The lower your length the better system you need", 5, "")
m:addSubMenu(">> Draw Manager", "draw")
m.draw:addParam("drawq", "Draw Spear Range", SCRIPT_PARAM_ONOFF, false)
m.draw:addParam("drawaa", "Draw AA Range", SCRIPT_PARAM_ONOFF, false)
if SX == true then
m:addSubMenu(">> Orbwalker", "orbwalk")
SxOrb:LoadToMenu(m.orbwalk)
else
m:addSubMenu(">> SAC detected, SxOrbwalk disabled!", "orbwalk")
end
m:addTS(ts)
ts.name = "Noscope"
PrintChat ("<font color='#FF9A00'> >> Noscope Nidalee Reborn v2.3 by dd2 Loaded! </font>")
end
function OnTick()
ts:update()
target = ts.target
checks()
autoheal()
combo()
range()
autozhonya()
harass()
Huntedcheck()
TargetHunted()
Items()
escape()
Killsteal()
jungleMinions:update()
enemyMinions:update()
JungleClear()
Clear()
end
function checks()
if myHero:GetSpellData(_Q).name == "Takedown" or myHero:GetSpellData(_W).name == "Pounce" or myHero:GetSpellData(_E).name == "Swipe" then
cougar = true
human = false
end
if myHero:GetSpellData(_Q).name == "JavelinToss" or myHero:GetSpellData(_W).name == "Bushwhack" or myHero:GetSpellData(_E).name == "PrimalSurge" then
cougar = false
human = true
end
Qready = (myHero:CanUseSpell(_Q) == READY)
Wready = (myHero:CanUseSpell(_W) == READY)
Eready = (myHero:CanUseSpell(_E) == READY)
Rready = (myHero:CanUseSpell(_R) == READY)
Iready = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
end
function escape()
if m.key.escapekey then
myHero:MoveTo(mousePos.x, mousePos.z)
if cougar then
if Wready then
CastSpell(_W, mousePos.x, mousePos.z)
end
elseif Rready then
CastSpell(_R)
end
end
end
function Clear()
if m.key.junglekey then
local minion300, health300 = nil, 0
local minion375, health375 = nil, 0
local minion900, health900 = nil, 0
local minion1500, health1500 = nil, 0
for i, enemyMinion in pairs(enemyMinions.objects) do
if ValidTarget(enemyMinion) then
local distance = GetDistanceSqr(enemyMinion)
if distance < 1500 * 1500 then
if enemyMinion.health > health375 then
minion375, health375 = enemyMinion, enemyMinion.health
end
if distance < 300 * 300 then
if enemyMinion.health > health300 then
minion300, health300 = enemyMinion, enemyMinion.health
end
end
if distance < 900 * 900 then
if enemyMinion.health > health900 then
minion900, health900 = enemyMinion, enemyMinion.health
end
end
if distance < 1500 * 1500 then
if enemyMinion.health > health1500 then
minion1500, health1500 = enemyMinion, enemyMinion.health
end
end
end
end
end
if cougar then
if minion300 then
if Qready and m.c.usecq then
CastSpell(_Q)
end
end
if minion375 then
if Wready and m.c.usecw then
CastSpell(_W, minion375 .x, minion375 .z)
end
if Eready and m.c.usece then
CastSpell(_E, minion375 .x, minion375 .z)
end
end
else
if minion1500 then
if Qready and m.c.usehq then
CastSpell(_Q, minion1500 .x, minion1500 .z)
end
end
if minion900 then
if Wready and m.c.usecw then
CastSpell(_W, minion900 .x, minion900 .z)
end
end
end
end
end
function JungleClear()
if m.key.junglekey then
local minion300, health300 = nil, 0
local minion375, health375 = nil, 0
local minion900, health900 = nil, 0
local minion1500, health1500 = nil, 0
for i, jungleMinion in pairs(jungleMinions.objects) do
if ValidTarget(jungleMinion) then
local distance = GetDistanceSqr(jungleMinion)
if distance < 1500 * 1500 then
if jungleMinion.health > health375 then
minion375, health375 = jungleMinion, jungleMinion.health
end
if distance < 300 * 300 then
if jungleMinion.health > health300 then
minion300, health300 = jungleMinion, jungleMinion.health
end
end
if distance < 900 * 900 then
if jungleMinion.health > health900 then
minion900, health900 = jungleMinion, jungleMinion.health
end
end
if distance < 1500 * 1500 then
if jungleMinion.health > health1500 then
minion1500, health1500 = jungleMinion, jungleMinion.health
end
end
end
end
if TargetHunted(jungleMinion) and (objhunt1 or objhunt2 or objhunt3) and ValidTarget(jungleMinion, 680) and Wready and cougar then
CastSpell(_W, jungleMinion.x, jungleMinion.z)
elseif
TargetHunted(jungleMinion) and (objhunt1 or objhunt2 or objhunt3) and ValidTarget(jungleMinion, 680) and Rready and human then
CastSpell(_R)
end
end
if cougar then
if minion300 then
if Qready and m.c.usecq then
CastSpell(_Q)
end
end
if minion375 then
if Wready and m.c.usecw then
CastSpell(_W, minion375 .x, minion375 .z)
end
if Eready and m.c.usece then
CastSpell(_E, minion375 .x, minion375 .z)
end
end
else
if minion1500 then
if Qready and m.c.usehq then
CastSpell(_Q, minion1500 .x, minion1500 .z)
end
end
if minion900 then
if Wready and m.c.usecw then
CastSpell(_W, minion900 .x, minion900 .z)
end
end
end
end
end
--[[
function OnApplyBuff(unit, buff)
if buff.name == 'nidaleepassivehunting' and unit.isMe then
hunting = true
end
end
function OnRemoveBuff(unit, buff)
if buff.name == 'nidaleepassivehunting' and unit.isMe then
hunting = false
end
end
]]
function OnIssueOrder(source, order, position, target)
if (SAC == true) or (SX == true ) then
if (_G.AutoCarry.Keys.AutoCarry or m.key.combokey) and source.isMe and order == 3 then -- 2 = move, 3 = attack
if GetDistance(position) - target.boundingRadius < myHero.range + myHero.boundingRadius then -- Check that they are in our AA range
CastSpell(_Q) -- This will cast before the "order" is actually sent to the server
end
end
else
return
end
end
function OnCreateObj(object)
if object.name == 'Nidalee_Base_Q_Tar.troy' then
objhunt1 = true
end
if object.name == 'Nidalee_Base_Q_Buf.troy' then
objhunt2 = true
end
if object.name == 'Nidalee_Base_P_Buf.troy' then
objhunt3 = true
end
end
function OnDeleteObj(object)
if object.name == 'Nidalee_Base_Q_Tar.troy' then
objhunt1 = false
end
if object.name == 'Nidalee_Base_Q_Buf.troy' then
objhunt2 = false
end
if object.name == 'Nidalee_Base_P_Buf.troy' then
objhunt3 = false
end
end
function TargetHunted(unit)
return TargetHaveBuff('nidaleepassivehunted', unit)
end
function Huntedcheck()
if TargetHunted(target) and human and (objhunt1 or objhunt2 or objhunt3) then
if m.combosettings.autocougar and m.key.combokey and target and ValidTarget(target, 650) and Rready then
CastSpell(_R)
end
else
return
end
end
function Huntedcheck()
if TargetHunted(target) and human and (objhunt1 or objhunt2 or objhunt3) then
if m.combosettings.autocougar and m.key.combokey and target and ValidTarget(target, 650) and Rready then
CastSpell(_R)
end
else
return
end
end
function range()
ts:update()
if cougar then
ts.range = 700
else
ts.range = 1500
end
end
function autoheal()
if not cougar then
if m.healmanager.enableheal and Eready and myHero.health <= (myHero.maxHealth * m.healmanager.heal / 100) then
CastSpell(_E)
end
elseif Rready and m.healmanager.healswitch and m.healmanager.enableheal and myHero.health <= (myHero.maxHealth * m.healmanager.heal / 100) then
CastSpell(_R)
end
end
function autozhonya()
if m.items.enableautozhonya then
if myHero.health <= (myHero.maxHealth * m.items.autozhonya / 100) then CastItem(3157)
end
end
end
-- Cast Function --
function CastCougarQ()
if m.key.combokey and Qready and m.combosettings.cougarcombo.usecq and target and ValidTarget(target) then
CastSpell(_Q)
end
end
-- VPrediction Q Cast --
function CastVQ(unit)
local CastPosition, HitChance, Position = VP:GetLineCastPosition(target, Spells.Q.delay, Spells.Q.width, Spells.Q.range, Spells.Q.speed, myHero, true)
if HitChance >= m.vip.hitchance then
CastSpell(_Q, CastPosition.x, CastPosition.z)
end
end
-- HPrediction Q Cast --
function CastHQ(unit)
local QPos, QHitChance = HPred:GetPredict(HP_Q, unit, myHero)
if QHitChance >= m.vip.hhitchance then
CastSpell(_Q, QPos.x, QPos.z)
end
end
-- HPrediction E Cast --
function CastHE(unit)
local QPos, QHitChance = HPred:GetPredict("HP_E", unit, myHero)
if QHitChance >= 2 then
CastSpell(_E, EPos.x, EPos.z)
end
end
function combo()
if not target then return end
if m.key.combokey then
-- cougar --
if cougar then
if Eready and target and GetDistance(target) < Spells.CE.range and m.combosettings.cougarcombo.usece then
--CastHE(target)
CastSpell(_E, target.x, target.z)
end
if Wready and target and ValidTarget(target) and GetDistance(target) > 160 and m.combosettings.cougarcombo.usecw then
CastSpell(_W, target.x, target.z)
end
-- Human --
else
if Qready and ValidTarget(target, 1400) and target and GetDistance(target) <= 1400 and m.combosettings.humancombo.usehq then
if m.vip.prediction == 1 then
CastVQ(target)
elseif m.vip.prediction == 2 then
CastHQ(target)
--elseif VIP_USER and m.vip.prediction == 3 then
-- CastDQ(target)
end
end
if Wready and ValidTarget(target, 650) and target and GetDistance(target) <= 650 and m.combosettings.humancombo.usehw then
CastSpell(_W, target.x, target.z)
end
end
end
end
function Killsteal()
for _, enemy in pairs(GetEnemyHeroes()) do
if Ignite ~= nil and m.ks.ignite and enemy.health < getDmg("IGNITE", enemy, myHero) and ValidTarget(enemy, 600) then CastSpell(Ignite, enemy)
end
if cougar and m.ks.usecq and ValidTarget(enemy, 250) then
local QDmg = getDmg('QM', enemy, myHero) or 0
if Qready and enemy.health <= QDmg then -- fuck getdmg srsly
CastSpell(_Q)
myHero:Attack(enemy)
end
end
if cougar and m.ks.usece and ValidTarget(enemy, 310) then
local EDmg = getDmg('EM', enemy, myHero) or 0
if Eready and enemy.health <= EDmg then
CastSpell(_E, enemy.x, enemy.z)
end
end
if cougar and m.ks.usecw and ValidTarget(enemy, 400) then
local WDmg = getDmg('WM', enemy, myHero) or 0
if Wready and enemy.health <= WDmg then
CastSpell(_W, enemy.x, enemy.z)
end
end
end
end
function Items()
if not target then return end
if m.key.combokey and m.items.useitems then
if cougar then
if m.items.hg == 2 then CastItem(3146, target) end
if m.items.hg == 4 then CastItem(3146, target) end
if m.items.yg == 2 then CastItem(3142) end
if m.items.yg == 4 then CastItem(3142) end
if m.items.blade == 2 then CastItem(3153, target) end
if m.items.blade == 4 then CastItem(3153, target) end
if m.items.cutlass == 2 then CastItem(3144, target) end
if m.items.cutlass == 4 then CastItem(3144, target) end
if m.items.sod == 2 then CastItem(3131) end
if m.items.sod == 4 then CastItem(3131) end
if m.items.fqc == 2 then CastItem(3092, target.x,target.z) end
if m.items.fqc == 4 then CastItem(3092, target.x,target.z) end
elseif ValidTarget(target, 525) then
if m.items.hg == 3 then CastItem(3146, target) end
if m.items.hg == 4 then CastItem(3146, target) end
if m.items.yg == 3 then CastItem(3142) end
if m.items.yg == 4 then CastItem(3142) end
if m.items.blade == 3 then CastItem(3153, target) end
if m.items.blade == 4 then CastItem(3153, target) end
if m.items.cutlass == 3 then CastItem(3144, target) end
if m.items.cutlass == 4 then CastItem(3144, target) end
if m.items.sod == 3 then CastItem(3131) end
if m.items.sod == 4 then CastItem(3131) end
if m.items.fqc == 3 then CastItem(3092, target.x,target.z) end
if m.items.fqc == 4 then CastItem(3092, target.x,target.z) end
end
end
end
function harass()
if not target then return end
if human then
if m.key.harass then
if Qready and ValidTarget(target, 1400) and target and m.key.harass then
if m.vip.prediction == 1 then
CastVQ(target)
else
CastHQ(target)
end
end
end
end
end
function OnDraw()
Drawings()
end
function Drawings()
if m.draw.drawq and not cougar then
DrawCircle3D(myHero.x, myHero.y, myHero.z, 1400, 1, ARGB(255, 255, 255, 255))
end
if m.draw.drawaa and not cougar then
DrawCircle3D(myHero.x, myHero.y, myHero.z, 550, 1, ARGB(255, 255, 255, 255))
end
end