Professional Documents
Culture Documents
LD RAJwr V
LD RAJwr V
GetLibsStarted = true
socket = require("socket")
LibsDone = 0
SocketsClosed = 0
GotVersions = 0
clientversion = {}
clientscript = {}
for i=1,#_AutoUpdates do
clientversion[i] = socket.connect("reddi-ts.de", 80)
clientversion[i]:send("GET /BoL/Scripts.php?path=".._AutoUpdates
[i]["Version"].."&rand="..tonumber(math.random(10000)).." HTTP/1.0\r\n\r\n")
end
for i=1,#_AutoUpdates do
clientscript[i] = socket.connect("reddi-ts.de", 80)
clientscript[i]:send("GET /BoL/Scripts.php?path=".._AutoUpdates[
i]["Script"].."&rand="..tonumber(math.random(10000)).." HTTP/1.0\r\n\r\n")
end
end
if GotVersions ~= #_AutoUpdates then
for i=1,#_AutoUpdates do
if _AutoUpdates[i]["VersionClosed"] ~= true then
s, status, partial = clientversion[i]:receive(10
24)
if not _AutoUpdates[i]["VersionRaw"] then _AutoU
pdates[i]["VersionRaw"] = "" end
_AutoUpdates[i]["VersionRaw"] = _AutoUpdates[i][
"VersionRaw"]..(s or partial)
if status == "closed" then
clientversion[i]:close()
_AutoUpdates[i]["VersionClosed"] = true
GotVersions = GotVersions + 1
_AutoUpdates[i]["ServerVersion"] = tonum
ber(string.sub(_AutoUpdates[i]["VersionRaw"], -8))
end
end
end
end
if SocketsClosed ~= #_AutoUpdates then
for i=1,#_AutoUpdates do
if _AutoUpdates[i]["ScriptClosed"] ~= true then
s, status, partial = clientscript[i]:receive(102
4)
if not _AutoUpdates[i]["ScriptRaw"] then _AutoUp
dates[i]["ScriptRaw"] = "" end
_AutoUpdates[i]["ScriptRaw"] = _AutoUpdates[i]["
ScriptRaw"]..(s or partial)
if status == "closed" then
clientscript[i]:close()
_AutoUpdates[i]["ScriptClosed"] = true
SocketsClosed = SocketsClosed + 1
end
end
end
end
LibNameFile:write(LibNameStringS
ub)
end
LibNameFile:close()
end
end
LibsDone = LibsDone + 1
end
end
if LibsDone == #_AutoUpdates then
AutoUpdateDone = true
else
_AutoUpdate()
end
end
function _GetLocalVersion(LibName)
if LibName == "ShadowVayne" then
FilePath = SCRIPT_PATH.. GetCurrentEnv().FILE_NAME
else
FilePath = LIB_PATH..LibName..".lua"
end
if not FileExist(FilePath) then
LibNameFile = io.open(FilePath, "w+")
LibNameFile:write("version = 0")
LibNameFile:close()
end
LibNameFile = io.open(FilePath, "r")
LibNameString = LibNameFile:read("*a")
LibNameFile:close()
LibNameVersionPos = LibNameString:lower():find("version")
if type(LibNameVersionPos) == "number" then
for i = 1,20 do
GetCurrentChar = string.sub(LibNameString, LibNameVersio
nPos+i, LibNameVersionPos+i)
if type(tonumber(GetCurrentChar)) == "number" then
VersionNumberStartPos = LibNameVersionPos+i
break
end
end
for i = 0,20 do
GetCurrentChar = string.sub(LibNameString, VersionNumber
StartPos+i, VersionNumberStartPos+i)
if type(tonumber(GetCurrentChar)) ~= "number" and GetCur
rentChar ~= "." then
VersionNumberEndPos = VersionNumberStartPos+i-1
break
end
end
FileVersion = string.sub(LibNameString, VersionNumberStartPos, V
ersionNumberEndPos)
if tonumber(FileVersion) == nil then FileVersion = 0 end
if FileVersion == "2.431" then
return 5
else
return FileVersion
end
else
return 0.01
end
end
function _PrintUpdateMsg(Msg, LibName)
if LibName == nil or LibName == "ShadowVayne" then
print("<font color=\"#F0Ff8d\"><b>ShadowVayne:</b></font> <font
color=\"#FF0F0F\">"..Msg.."</font>")
else
print("<font color=\"#F0Ff8d\"><b>ShadowVayne("..LibName.."):</b
></font> <font color=\"#FF0F0F\">"..Msg.."</font>")
end
end
----------------------------- MainScript ----------------------------function _PrintScriptMsg(Msg)
PrintChat("<font color=\"#F0Ff8d\"><b>ShadowVayne:</b></font> <font colo
r=\"#FF0F0F\">"..Msg.."</font>")
end
function _SwapAutoUpdate(SwapState, LibName)
LibNameFile = io.open(LIB_PATH.."/"..LibName..".lua", "r")
LibNameString = LibNameFile:read("*a")
LibNameCutString = LibNameString
GroundPos = 0
LibNameFile:close()
for i = 1,10 do
LibNameUpdatePos = LibNameCutString:lower():find("autoupdate")
if type(LibNameUpdatePos) == "number" then
if string.find(string.sub(LibNameCutString, LibNameUpdat
ePos, LibNameUpdatePos+20), "= true") then
StartString = string.sub(LibNameString, 0, Groun
dPos+LibNameUpdatePos-1)
if SwapState == false then
ReplaceString = string.gsub(string.sub(L
ibNameString, GroundPos+LibNameUpdatePos, GroundPos+LibNameUpdatePos+20), "= tru
e", "= false")
else
ReplaceString = string.sub(LibNameString
, GroundPos+LibNameUpdatePos, GroundPos+LibNameUpdatePos+20)
end
EndString = string.sub(LibNameString, GroundPos+
LibNameUpdatePos+21)
break
elseif string.find(string.sub(LibNameCutString, LibNameU
pdatePos, LibNameUpdatePos+20), "= false") then
StartString = string.sub(LibNameString, 0, Groun
dPos+LibNameUpdatePos-1)
if SwapState == true then
ReplaceString = string.gsub(string.sub(L
ibNameString, GroundPos+LibNameUpdatePos, GroundPos+LibNameUpdatePos+20), "= fal
se", "= true")
else
ReplaceString = string.sub(LibNameString
, GroundPos+LibNameUpdatePos, GroundPos+LibNameUpdatePos+20)
end
EndString = string.sub(LibNameString, GroundPos+
LibNameUpdatePos+21)
break
else
LibNameCutString = string.sub(LibNameCutString,
20)
GroundPos = GroundPos + 20
end
else
StartString = LibNameString
ReplaceString = ""
EndString = ""
end
end
LibNameFile = io.open(LIB_PATH..LibName..".lua", "w+")
LibNameFile:write(StartString..ReplaceString..EndString)
LibNameFile:close()
end
function _RequireWithoutUpdate(LibName)
_SwapAutoUpdate(false, LibName)
require (LibName)
_SwapAutoUpdate(true, LibName)
end
function _CheckOrbWalkers()
if _G.AutoCarry ~= nil then
if _G.AutoCarry.Helper ~= nil then
Skills, Keys, Items, Data, Jungle, Helper, MyHero, Minio
ns, Crosshair, Orbwalker = AutoCarry.Helper:GetClasses()
SACLoaded = true
else
if _G.AutoCarry.AutoCarry ~= nil then
REVLoaded = true
REVMenu = _G.AutoCarry.AutoCarry.MainMenu
end
end
end
if _G.Reborn_Loaded then
SACLoaded = true
end
if _G.MMA_Loaded then
MMALoaded = true
end
if _G.SOWLoaded then
SOWLoaded = true
end
end
function _LoadSOWSTS()
VP = VPrediction(true)
STS = SimpleTS(STS_LESS_CAST_PHYSICAL)
SOWi = SOW(VP, STS)
SOWi:LoadToMenu(SVSOWMenu)
STS:AddToMenu(SVTSMenu)
end
function _LoadMenu()
end
else
if SACLoaded then
OrbWalkerTable = { "SOW", "Reborn"}
elseif REVLoaded then
OrbWalkerTable = { "SOW", "Revamped"}
else
OrbWalkerTable = { "SOW"}
end
end
end
for i=1,30 do
if SVMainMenu.keysetting._param[i].text == "Choose..." then
StartParam = i + 1
break
end
end
SVMainMenu.keysetting:addParam("AutoCarryOrb", "Orbwalker in AutoCarry:
", SCRIPT_PARAM_LIST, 1, OrbWalkerTable)
SVMainMenu.keysetting:addParam("MixedModeOrb", "Orbwalker in MixedMode:
", SCRIPT_PARAM_LIST, 1, OrbWalkerTable)
SVMainMenu.keysetting:addParam("LaneClearOrb", "Orbwalker in LaneClear:
", SCRIPT_PARAM_LIST, 1, OrbWalkerTable)
SVMainMenu.keysetting:addParam("LastHitOrb", "Orbwalker in LastHit: ", S
CRIPT_PARAM_LIST, 1, OrbWalkerTable)
--~ SAC R84 FIX
SVMainMenu.keysetting:addParam("SACAutoCarry","Hidden SAC V84 Pa
ram", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.keysetting:addParam("SACMixedMode","Hidden SAC V84 Pa
ram", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.keysetting:addParam("SACLaneClear","Hidden SAC V84 Pa
ram", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.keysetting:addParam("SACLastHit","Hidden SAC V84 Para
m", SCRIPT_PARAM_ONOFF, false)
if SACLoaded then
Keys:RegisterMenuKey(SVMainMenu.keysetting, "SACAutoCarry", Auto
Carry.MODE_AUTOCARRY)
Keys:RegisterMenuKey(SVMainMenu.keysetting, "SACMixedMode", Auto
Carry.MODE_MIXEDMODE)
Keys:RegisterMenuKey(SVMainMenu.keysetting, "SACLaneClear", Auto
Carry.MODE_LANECLEAR)
Keys:RegisterMenuKey(SVMainMenu.keysetting, "SACLastHit", AutoCa
rry.MODE_LASTHIT)
end
if SVMainMenu.keysetting._param[StartParam+0].listTable[SVMainMenu.keyse
tting.AutoCarryOrb] == nil then SVMainMenu.keysetting.AutoCarryOrb = 1 end
if SVMainMenu.keysetting._param[StartParam+1].listTable[SVMainMenu.keyse
tting.MixedModeOrb] == nil then SVMainMenu.keysetting.MixedModeOrb = 1 end
if SVMainMenu.keysetting._param[StartParam+2].listTable[SVMainMenu.keyse
tting.LaneClearOrb] == nil then SVMainMenu.keysetting.LaneClearOrb = 1 end
if SVMainMenu.keysetting._param[StartParam+3].listTable[SVMainMenu.keyse
tting.LastHitOrb] == nil then SVMainMenu.keysetting.LastHitOrb = 1 end
--~
SVMainMenu.anticapcloser:addSubMenu((enemy.charName).."
"..(isAGapcloserUnitTarget[enemy.charName].spellKey), (enemy.charName)..(isAGapc
loserUnitTarget[enemy.charName].spellKey))
SVMainMenu.anticapcloser[(enemy.charName)..(isAGapcloser
UnitTarget[enemy.charName].spellKey)]:addParam("sep", "Interrupt "..(enemy.charN
ame).." "..(isAGapcloserUnitTarget[enemy.charName].spellKey)..":", SCRIPT_PARAM_
INFO, "")
SVMainMenu.anticapcloser[(enemy.charName)..(isAGapcloser
UnitTarget[enemy.charName].spellKey)]:addParam((enemy.charName).."AutoCarry", "i
n AutoCarry", SCRIPT_PARAM_ONOFF, true)
SVMainMenu.anticapcloser[(enemy.charName)..(isAGapcloser
UnitTarget[enemy.charName].spellKey)]:addParam((enemy.charName).."MixedMode", "i
n MixedMode", SCRIPT_PARAM_ONOFF, true)
SVMainMenu.anticapcloser[(enemy.charName)..(isAGapcloser
UnitTarget[enemy.charName].spellKey)]:addParam((enemy.charName).."LaneClear", "i
n LaneClear", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.anticapcloser[(enemy.charName)..(isAGapcloser
UnitTarget[enemy.charName].spellKey)]:addParam((enemy.charName).."LastHit", "in
LastHit", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.anticapcloser[(enemy.charName)..(isAGapcloser
UnitTarget[enemy.charName].spellKey)]:addParam((enemy.charName).."Always", "Alwa
ys", SCRIPT_PARAM_ONOFF, false)
end
--~
SVMainMenu.targets[enemy.charName]:addParam((enemy.charName).."L
astHit", "in LastHit", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.targets[enemy.charName]:addParam((enemy.charName).."A
lways", "Always", SCRIPT_PARAM_ONOFF, false)
--~
"","" )
SVMainMenu.anticapcloser:addParam("fap", "Gapcloser Overwrite:",
SCRIPT_PARAM_INFO, "","" )
SVMainMenu.anticapcloser:addParam("OverwriteAutoCarry", "Enable
All Gapcloser in AutoCarry", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.anticapcloser:addParam("OverwriteMixedMode", "Enable
All Gapcloser in Mixedmode", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.anticapcloser:addParam("OverwriteLaneClear", "Enable
All Gapcloser in LaneClear", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.anticapcloser:addParam("OverwriteLastHit", "Enable Al
Draw Menu
SVMainMenu.draw:addParam("DrawERange", "Draw E Range", SCRIPT_PA
RAM_ONOFF, false)
SVMainMenu.draw:addParam("DrawAARange", "Draw Basicattack Range"
, SCRIPT_PARAM_ONOFF, false)
SVMainMenu.draw:addParam("DrawNeededAutohits", "Draw Needed Auto
hits", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.draw:addParam("DrawEColor", "E Range Color", SCRIPT_P
ARAM_LIST, 1, { "Riot standard", "Green", "Blue", "Red", "Purple" })
SVMainMenu.draw:addParam("DrawAAColor", "Basicattack Range Color
", SCRIPT_PARAM_LIST, 1, { "Riot standard", "Green", "Blue", "Red", "Purple" })
--~
Autolevel Menu
SVMainMenu.autolevel:addParam("UseAutoLevelfirst", "Use AutoLeve
lSpells Level 1-3", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.autolevel:addParam("UseAutoLevelrest", "Use AutoLevel
Spells Level 4-18", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.autolevel:addParam("first3level", "Level 1-3:", SCRIP
T_PARAM_LIST, 1, { "Q-W-E", "Q-E-W", "W-Q-E", "W-E-Q", "E-Q-W", "E-W-Q" })
SVMainMenu.autolevel:addParam("restlevel", "Level 4-18:", SCRIPT
_PARAM_LIST, 1, { "Q-W-E", "Q-E-W", "W-Q-E", "W-E-Q", "E-Q-W", "E-W-Q" })
SVMainMenu.autolevel:addParam("fap", "", SCRIPT_PARAM_INFO, "","
" )
SVMainMenu.autolevel:addParam("fap", "You can Click on the \"Q-W
-E\"", SCRIPT_PARAM_INFO, "","" )
SVMainMenu.autolevel:addParam("fap", "to change the Autospellord
er", SCRIPT_PARAM_INFO, "","" )
--~
Vip Menu
SVMainMenu.vip:addParam("EPackets", "Use Packets for E Cast (VIP
Only)", SCRIPT_PARAM_ONOFF, true)
--~
SVMainMenu.vip:addParam("vpred", "Use VPrediction (VIP Only)", S
CRIPT_PARAM_ONOFF, true)
--~
SVMainMenu.vip:addParam("selector", "Use Selector (VIP Only) (Ne
ed Reload!)", SCRIPT_PARAM_ONOFF, false)
SVMainMenu.vip:addParam("pr0diction", "Use Pr0diction (VIP Only)
", SCRIPT_PARAM_ONOFF, false)
--~
PermaShow Menu
SVMainMenu.permashowsettings:addParam("epermashow", "PermaShow \
"E on Next BasicAttack\"", SCRIPT_PARAM_ONOFF, true)
SVMainMenu.permashowsettings:addParam("carrypermashow", "PermaSh
ow: AutoCarry", SCRIPT_PARAM_ONOFF, true)
SVMainMenu.permashowsettings:addParam("mixedpermashow", "PermaSh
ow: Mixed Mode", SCRIPT_PARAM_ONOFF, true)
SVMainMenu.permashowsettings:addParam("laneclearpermashow", "Per
maShow: Laneclear", SCRIPT_PARAM_ONOFF, true)
SVMainMenu.permashowsettings:addParam("lasthitpermashow", "Perma
Show: Last hit", SCRIPT_PARAM_ONOFF, true)
--~
['Akali']
['Alistar']
spellKey = "R"},
spellKey
= "W"},
['Diana']
spellKey
spellKey
spellKey
spellKey
= "R"},
['Irelia']
= "Q"},
['Jax']
= "Q"},
['Jayce']
= "Q"},
['Maokai']
=
['MonkeyKing'] =
['Pantheon']
=
['Poppy']
=
['Quinn']
spellKey = "E"},
['XinZhao']
=
= "E"},
['LeeSin']
= "Q"},
['Fizz']
= "Q"},
['Rengar']
spellKey = "Q/R"},
}
{true, spell =
{true, spell =
{true, spell =
{true, spell =
= {true,
"MaokaiUnstableGrowth",spellKey
"MonkeyKingNimbus",
spellKey
"Pantheon_LeapBash", spellKey
"PoppyHeroicCharge", spellKey
spell = "QuinnE",
=
=
=
=
"W"},
"E"},
"W"},
"E"},
spellKey
spellKey
spellKey
isAGapcloserUnitNoTarget = {
["AatroxQ"]
= {true, champ =
"Aatrox",
range = 1000, projSpeed = 1200, spellKey = "Q"},
["GragasE"]
= {true, champ =
"Gragas",
range = 600,
projSpeed = 2000, spellKey = "E"},
["GravesMove"]
= {true, champ = "Graves
",
range = 425,
projSpeed = 2000, spellKey = "E"},
["HecarimUlt"]
= {true, champ = "Hecari
m",
range = 1000, projSpeed = 1200, spellKey = "R"},
["JarvanIVDragonStrike"]
= {true, champ = "JarvanIV",
range = 770,
projSpeed = 2000, spellKey = "Q"},
["JarvanIVCataclysm"]
= {true, champ = "JarvanIV",
range = 650,
projSpeed = 2000, spellKey = "R"},
["KhazixE"]
= {true, champ =
"Khazix",
range = 900,
projSpeed = 2000, spellKey = "E"},
["khazixelong"]
= {true, champ = "Khazix
",
range = 900,
projSpeed = 2000, spellKey = "E"},
["LeblancSlide"]
= {true, champ = "Leblan
c",
range = 600,
projSpeed = 2000, spellKey = "W"},
["LeblancSlideM"]
= {true, champ = "Leblan
c",
range = 600,
projSpeed = 2000, spellKey = "WMimic"},
["LeonaZenithBlade"]
= {true, champ = "Leona",
range = 900,
projSpeed = 2000, spellKey = "E"},
["UFSlash"]
= {true, champ =
"Malphite",
range = 1000, projSpeed = 1800, spellKey = "R"},
["RenektonSliceAndDice"]
= {true, champ = "Renekton",
range = 450,
projSpeed = 2000, spellKey = "E"},
["SejuaniArcticAssault"]
= {true, champ = "Sejuani",
range = 650,
projSpeed = 2000, spellKey = "Q"},
["ShenShadowDash"]
= {true, champ = "Shen",
range = 575,
projSpeed = 2000, spellKey = "E"},
["RocketJump"]
= {true, champ = "Trista
na",
range = 900,
projSpeed = 2000, spellKey = "W"},
["slashCast"]
= {true, champ = "Trynda
mere", range = 650,
projSpeed = 1450, spellKey = "E"},
}
isAChampToInterrupt = {
["KatarinaR"]
= {true, champ =
"Katarina",
spellKey = "R"},
["GalioIdolOfDurand"]
= {true, champ = "Galio"
,
spellKey = "R"},
["Crowstorm"]
= {true, champ =
"FiddleSticks",spellKey = "R"},
["Drain"]
= {true,
champ = "FiddleSticks",spellKey = "W"},
["AbsoluteZero"]
= {true, champ =
"Nunu",
spellKey = "R"},
["ShenStandUnited"]
= {true, champ =
"Shen",
spellKey = "R"},
["UrgotSwap2"]
= {true, champ =
"Urgot",
spellKey = "R"},
["AlZaharNetherGrasp"]
= {true, champ = "Malzah
ar",
spellKey = "R"},
["FallenOne"]
= {true, champ =
"Karthus",
spellKey = "R"},
["Pantheon_GrandSkyfall_Jump"] = {true, champ = "Pantheon",
spellKey = "R"},
["VarusQ"]
= {true,
champ = "Varus",
spellKey = "Q"},
["CaitlynAceintheHole"]
= {true, champ = "Caitly
n",
spellKey = "R"},
["MissFortuneBulletTime"]
= {true, champ = "MissFo
rtune", spellKey = "R"},
["InfiniteDuress"]
= {true, champ =
"Warwick",
spellKey = "R"},
["LucianR"]
= {true,
champ = "Lucian",
spellKey = "R"}
}
AutoLevelSpellTable = {
["SpellOrder"] = {"QWE", "QEW", "WQE", "WEQ", "EQW", "EWQ"},
["QWE"] = {1,2,3,1,1,4,1,2,1,2,4,2,2,3,3,4,3,3},
["QEW"] = {1,3,2,1,1,4,1,3,1,3,4,3,3,2,2,4,2,2},
["WQE"] = {2,1,3,2,2,4,2,1,2,1,4,1,1,3,3,4,3,3},
["WEQ"] = {2,3,1,2,2,4,2,3,2,3,4,3,3,1,1,4,1,1},
["EQW"] = {3,1,2,3,3,4,3,1,3,1,4,1,1,2,2,4,2,2},
["EWQ"] = {3,2,1,3,3,4,3,2,3,2,4,2,2,1,1,4,1,1}
}
priorityTable = {
AP = {
"Ahri", "Akali", "Anivia", "Annie", "Brand", "Cassiopeia", "Diana", "Eve
lynn", "FiddleSticks", "Fizz", "Gragas", "Heimerdinger", "Karthus",
"Kassadin", "Katarina", "Kayle", "Kennen", "Leblanc", "Lissandra", "Lux"
, "Malzahar", "Mordekaiser", "Morgana", "Nidalee", "Orianna",
"Rumble", "Ryze", "Sion", "Swain", "Syndra", "Teemo", "TwistedFate", "Ve
igar", "Viktor", "Vladimir", "Xerath", "Ziggs", "Zyra", "MasterYi", "Velkoz"
},
Support = {
"Blitzcrank", "Janna", "Karma", "Leona", "Lulu", "Nami", "Sona", "Soraka
local
[2] =
[3] =
[4] =
[5] =
priorityOrder = {
{5,4,4,4,4},
{5,4,4,3,3},
{5,4,3,2,2},
{5,4,3,2,1},
}
for i, enemy in ipairs(GetEnemyHeroes()) do
for i=1,#priorityTable.AD_Carry do
if enemy.charName == priorityTable.AD_Carry[i] then
SVSTSMenu.STS[enemy.hash] = priorityOrder[#GetEn
emyHeroes()][1]
end
end
for i=1,#priorityTable.AP do
if enemy.charName == priorityTable.AP[i] then
SVSTSMenu.STS[enemy.hash] = priorityOrder[#GetEn
emyHeroes()][2]
end
end
for i=1,#priorityTable.Support do
if enemy.charName == priorityTable.Support[i] then
SVSTSMenu.STS[enemy.hash] = priorityOrder[#GetEn
emyHeroes()][3]
end
end
for i=1,#priorityTable.Bruiser do
if enemy.charName == priorityTable.Bruiser[i] then
SVSTSMenu.STS[enemy.hash] = priorityOrder[#GetEn
emyHeroes()][4]
end
end
for i=1,#priorityTable.Tank do
if enemy.charName == priorityTable.Tank[i] then
SVSTSMenu.STS[enemy.hash] = priorityOrder[#GetEn
emyHeroes()][5]
end
end
end
end
function _GetRunningModes()
--~ Get the Keysettings from SVMainMenu
ShadowVayneAutoCarry = SVMainMenu.keysetting.autocarry
ShadowVayneMixedMode = SVMainMenu.keysetting.mixedmode
ShadowVayneLaneClear = SVMainMenu.keysetting.laneclear
ShadowVayneLastHit = SVMainMenu.keysetting.lasthit
--~ Recall-Check when ToggleMode is on
if (Recalling or RecallCast) and SVMainMenu.keysetting.togglemode then
ShadowVayneAutoCarry = false
ShadowVayneMixedMode = false
ShadowVayneLaneClear = false
ShadowVayneLastHit = false
end
end
if MixedModeOrbText == "SOW" then SVSOWMenu.Mode1 = ShadowVayneMixedMode
end
if LaneClearOrbText == "SOW" then SVSOWMenu.Mode2 = ShadowVayneLaneClear
end
if LastHitOrbText == "SOW" then SVSOWMenu.Mode3 = ShadowVayneLastHit end
end
function _AutoLevelSpell()
if GetGame().map.index ~= 4 and myHero.level < 4 then
LevelSpell(_Q)
LevelSpell(_W)
LevelSpell(_E)
end
if SVMainMenu.autolevel.UseAutoLevelfirst and myHero.level < 4 then
return AutoLevelSpellTable[AutoLevelSpellTable["SpellOrder"][SVM
ainMenu.autolevel.first3level]][myHero.level]
end
if SVMainMenu.autolevel.UseAutoLevelrest and myHero.level > 3 then
return AutoLevelSpellTable[AutoLevelSpellTable["SpellOrder"][SVM
ainMenu.autolevel.restlevel]][myHero.level]
end
end
function _UsePermaShows()
CustomPermaShow("AutoCarry (Using "..AutoCarryOrbText..")", SVMainMenu.k
eysetting.autocarry, SVMainMenu.permashowsettings.carrypermashow, nil, 142652102
4, nil, 1)
CustomPermaShow("MixedMode (Using "..MixedModeOrbText..")", SVMainMenu.k
eysetting.mixedmode, SVMainMenu.permashowsettings.mixedpermashow, nil, 142652102
4, nil, 2)
CustomPermaShow("LaneClear (Using "..LaneClearOrbText..")", SVMainMenu.k
eysetting.laneclear, SVMainMenu.permashowsettings.laneclearpermashow, nil, 14265
21024, nil, 3)
CustomPermaShow("LastHit (Using "..LastHitOrbText..")", SVMainMenu.keyse
tting.lasthit, SVMainMenu.permashowsettings.lasthitpermashow, nil, 1426521024, n
il, 4)
CustomPermaShow("Auto-E after next BasicAttack", SVMainMenu.keysetting.b
asiccondemn, SVMainMenu.permashowsettings.epermashow, nil, 1426521024, nil, 5)
end
function _GetSTSTarget()
STSTarget = STS:GetTarget(myHero.range)
end
function _UseBotRK()
local BladeSlot = GetInventorySlotItem(3153)
if STSTarget ~= nil and GetDistance(STSTarget) < 450 and not STSTarget.d
ead and STSTarget.visible and BladeSlot ~= nil and myHero:CanUseSpell(BladeSlot)
== 0 then
if (SVMainMenu.botrksettings.botrkautocarry and ShadowVayneAutoC
arry) or
(SVMainMenu.botrksettings.botrkmixedmode and ShadowVayneMixedMo
de) or
(SVMainMenu.botrksettings.botrklaneclear and ShadowVayneLaneCle
ar) or
(SVMainMenu.botrksettings.botrklasthit and ShadowVayneLastHit)
or
(SVMainMenu.botrksettings.botrkalways) then
if (math.floor(myHero.health / myHero.maxHealth * 100))
<= SVMainMenu.botrksettings.botrkmaxheal then
if (math.floor(STSTarget.health / STSTarget.maxH
ealth * 100)) >= SVMainMenu.botrksettings.botrkminheal then
CastSpell(BladeSlot, STSTarget)
end
end
end
end
end
function _UseBilgeWater()
local BilgeSlot = GetInventorySlotItem(3144)
if STSTarget ~= nil and GetDistance(STSTarget) < 500 and not STSTarget.d
ead and STSTarget.visible and BilgeSlot ~= nil and myHero:CanUseSpell(BilgeSlot)
== 0 then
if (SVMainMenu.bilgesettings.bilgeautocarry and ShadowVayneAutoC
arry) or
(SVMainMenu.bilgesettings.bilgemixedmode and ShadowVayneMixedMo
de) or
(SVMainMenu.bilgesettings.bilgelaneclear and ShadowVayneLaneCle
ar) or
(SVMainMenu.bilgesettings.bilgelasthit and ShadowVayneLastHit)
or
(SVMainMenu.bilgesettings.bilgealways) then
if (math.floor(myHero.health / myHero.maxHealth * 100))
<= SVMainMenu.bilgesettings.bilgemaxheal then
if (math.floor(STSTarget.health / STSTarget.maxH
ealth * 100)) >= SVMainMenu.bilgesettings.bilgeminheal then
CastSpell(BilgeSlot, STSTarget)
end
end
end
end
end
function _NonTargetGapCloserAfterCast()
if spellExpired == false and (GetTickCount() - informationTable.spellCas
tedTick) <= (informationTable.spellRange/informationTable.spellSpeed)*1000 then
local spellDirection
= (informationTable.spellEndPos - infor
mationTable.spellStartPos):normalized()
local spellStartPosition = informationTable.spellStartPos + spel
lDirection
local spellEndPosition = informationTable.spellStartPos + spel
lDirection * informationTable.spellRange
local heroPosition = Point(myHero.x, myHero.z)
local SkillShot = LineSegment(Point(spellStartPosition.x, spellS
tartPosition.y), Point(spellEndPosition.x, spellEndPosition.y))
if heroPosition:distance(SkillShot) <= 300 then
CastSpell(_E, informationTable.spellSource)
end
else
spellExpired = true
informationTable = {}
end
end
function _SetToggleMode()
if OldToggleStatus ~= SVMainMenu.keysetting.togglemode then
OldToggleStatus = SVMainMenu.keysetting.togglemode
if SVMainMenu.keysetting.togglemode then
SVMainMenu.keysetting._param[7].pType = SCRIPT_PARAM_ONK
EYTOGGLE
SVMainMenu.keysetting._param[8].pType = SCRIPT_PARAM_ONK
EYTOGGLE
SVMainMenu.keysetting._param[9].pType = SCRIPT_PARAM_ONK
EYTOGGLE
SVMainMenu.keysetting._param[10].pType = SCRIPT_PARAM_ON
KEYTOGGLE
else
SVMainMenu.keysetting._param[7].pType = SCRIPT_PARAM_ONK
EYDOWN
SVMainMenu.keysetting._param[8].pType = SCRIPT_PARAM_ONK
EYDOWN
SVMainMenu.keysetting._param[9].pType = SCRIPT_PARAM_ONK
EYDOWN
SVMainMenu.keysetting._param[10].pType = SCRIPT_PARAM_ON
KEYDOWN
end
end
end
function _ClickThreshLantern()
if VIP_USER and SVMainMenu.keysetting.threshlantern and LanternObj then
LanternPacket = CLoLPacket(0x39)
LanternPacket:EncodeF(myHero.networkID)
LanternPacket:EncodeF(LanternObj.networkID)
LanternPacket.dwArg1 = 1
LanternPacket.dwArg2 = 0
SendPacket(LanternPacket)
end
end
function _CheckRengarExist()
for i, enemy in ipairs(GetEnemyHeroes()) do
if enemy.charName == "Rengar" then
RengarHero = enemy
end
end
end
function _CheckRengarGapcloser()
if ShootRengar and not RengarHero.dead and RengarHero.health > 0 and Get
DistanceSqr(RengarHero) < 1000*1000 then
CastSpell(_E, RengarHero)
else
ShootRengar = false
end
end
function _UseTumble()
if IsAttacking then return end
if myHero.dead then return end
if myHero:CanUseSpell(_Q) ~= READY then return end
if ShootRengar then return end
if not LastAttackedEnemy then return end
if LastAttackedEnemy.dead then return end
if LastAttackedEnemy.health < 1 then return end
if ShadowVayneAutoCarry and STSTarget then
TumbleTarget = STSTarget
else
TumbleTarget = LastAttackedEnemy
end
if (SVMainMenu.tumble.Qautocarry and ShadowVayneAutoCarry and (100/myHe
ro.maxMana*myHero.mana > SVMainMenu.tumble.QManaAutoCarry)) or
(SVMainMenu.tumble.Qmixedmode and ShadowVayneMixedMode and (100/
myHero.maxMana*myHero.mana > SVMainMenu.tumble.QManaMixedMode)) or
(SVMainMenu.tumble.Qlaneclear and ShadowVayneLaneClear and (100/
myHero.maxMana*myHero.mana > SVMainMenu.tumble.QManaLaneClear)) or
(SVMainMenu.tumble.Qlasthit and ShadowVayneLastHit and (100/myH
ero.maxMana*myHero.mana > SVMainMenu.tumble.QManaLastHit)) or
(SVMainMenu.tumble.Qalways) then
local AfterTumblePos = myHero + (Vector(mousePos) - myHero):norm
alized() * 300
if GetDistance(AfterTumblePos, TumbleTarget) < 600 then
if NextAA > GetTickCount() then
CastSpell(_Q, mousePos.x, mousePos.z)
end
end
end
end
function OnProcessSpell(unit, spell)
if not ScriptLoaded then return end
if myHero.dead then return end
if unit.team ~= myHero.team then
-- AntiGapCloser Targeted Spells
if isAGapcloserUnitTarget[unit.charName] and spell.name == isAGa
pcloserUnitTarget[unit.charName].spell then
if spell.target ~= nil and spell.target.hash == myHero.h
ash then
if SVMainMenu.anticapcloser[(unit.charName)..(is
AGapcloserUnitTarget[unit.charName].spellKey)][(unit.charName).."AutoCarry"] and
ShadowVayneAutoCarry then CastSpell(_E, unit) end
if SVMainMenu.anticapcloser[(unit.charName)..(is
AGapcloserUnitTarget[unit.charName].spellKey)][(unit.charName).."LastHit"] and S
hadowVayneMixedMode then CastSpell(_E, unit) end
if SVMainMenu.anticapcloser[(unit.charName)..(is
AGapcloserUnitTarget[unit.charName].spellKey)][(unit.charName).."MixedMode"] and
ShadowVayneLaneClear then CastSpell(_E, unit) end
if SVMainMenu.anticapcloser[(unit.charName)..(is
AGapcloserUnitTarget[unit.charName].spellKey)][(unit.charName).."LaneClear"] and
ShadowVayneLastHit then CastSpell(_E, unit) end
if SVMainMenu.anticapcloser[(unit.charName)..(is
AGapcloserUnitTarget[unit.charName].spellKey)][(unit.charName).."Always"] then C
astSpell(_E, unit) end
if SVMainMenu.autostunn.OverwriteAutoCarry and S
hadowVayneAutoCarry then CastSpell(_E, unit) end
if SVMainMenu.autostunn.OverwriteMixedMode and S
hadowVayneMixedMode then CastSpell(_E, unit) end
if SVMainMenu.autostunn.OverwriteLaneClear and S
hadowVayneLaneClear then CastSpell(_E, unit) end
if SVMainMenu.autostunn.OverwriteLastHit and Sha
dowVayneLastHit then CastSpell(_E, unit) end
if SVMainMenu.autostunn.Overwritealways then Ca
stSpell(_E, unit) end
end
end
}
end
end
if unit.isMe then
if spell.name:lower():find("attack") then
LastAttackedEnemy = spell.target
TimeToNextAA = math.floor((spell.animationTime - (GetLat
ency() / 2000))*1000)
WindUpTime = math.floor((spell.windUpTime - (GetLatency(
) / 2000))*1000)
NextAA = GetTickCount() + TimeToNextAA - WindUpTime - Wi
ndUpTime
IsAttacking = true
DelayAction(function() IsAttacking = false end, spell.wi
ndUpTime - (GetLatency() / 2000))
if SVMainMenu.keysetting.basiccondemn and spell.target.t
ype == myHero.type then
SVMainMenu.keysetting.basiccondemn = false
DelayAction(function() CastSpell(_E, LastAttacke
dEnemy) end, spell.windUpTime - GetLatency() / 2000)
else
SVMainMenu.keysetting.basiccondemn = false
end
end
if spell.name == "Recall" then
RecallCast = true
DelayAction(function() RecallCast = false end, 0.75)
end
if spell.name:find("VayneCondemn") then
ShootRengar = false
end
end
end
function OnCreateObj(Obj)
if not AutoUpdateDone then return end
if not ScriptLoaded then return end
if myHero.dead then return end
if Obj.name == "ThreshLantern" then
LanternObj = Obj
end
if RengarHero ~= nil and Obj.name == "Rengar_LeapSound.troy" and GetDist
anceSqr(RengarHero) < 1000*1000 then
if SVMainMenu.anticapcloser[("Rengar")..(isAGapcloserUnitTarget[
"Rengar"].spellKey)][("Rengar").."AutoCarry"] and ShadowVayneAutoCarry then Shoo
tRengar = true end
if SVMainMenu.anticapcloser[("Rengar")..(isAGapcloserUnitTarget[
"Rengar"].spellKey)][("Rengar").."LastHit"] and ShadowVayneMixedMode then ShootR
engar = true end
if SVMainMenu.anticapcloser[("Rengar")..(isAGapcloserUnitTarget[
"Rengar"].spellKey)][("Rengar").."MixedMode"] and ShadowVayneLaneClear then Shoo
tRengar = true end
if SVMainMenu.anticapcloser[("Rengar")..(isAGapcloserUnitTarget[
"Rengar"].spellKey)][("Rengar").."LaneClear"] and ShadowVayneLastHit then ShootR
engar = true end
if SVMainMenu.anticapcloser[("Rengar")..(isAGapcloserUnitTarget[
"Rengar"].spellKey)][("Rengar").."Always"] then ShootRengar = true end
if SVMainMenu.autostunn.OverwriteAutoCarry and ShadowVayneAutoCa
rry then ShootRengar = true end
if SVMainMenu.autostunn.OverwriteMixedMode and ShadowVayneMixedM
ode then ShootRengar = true end
if SVMainMenu.autostunn.OverwriteLaneClear and ShadowVayneLaneCl
ear then ShootRengar = true end
if SVMainMenu.autostunn.OverwriteLastHit and ShadowVayneLastHit
then ShootRengar = true end
if SVMainMenu.autostunn.Overwritealways then ShootRengar = true
end
end
end
function OnWndMsg(msg, key)
if not ScriptLoaded then return end
if not SVMainMenu.keysetting.togglemode then return end
if key == SVMainMenu.keysetting._param[7].key then -- AutoCarry
SVMainMenu.keysetting.mixedmode,SVMainMenu.keysetting.laneclea
r,SVMainMenu.keysetting.lasthit = false,false,false
end
if key == SVMainMenu.keysetting._param[8].key then -- MixedMode
SVMainMenu.keysetting.autocarry,SVMainMenu.keysetting.laneclea
r,SVMainMenu.keysetting.lasthit = false,false,false
end
if key == SVMainMenu.keysetting._param[9].key then -- LaneClear
SVMainMenu.keysetting.autocarry,SVMainMenu.keysetting.mixedmod
e,SVMainMenu.keysetting.lasthit = false,false,false
end
if key == SVMainMenu.keysetting._param[10].key then -- LastHit
SVMainMenu.keysetting.autocarry,SVMainMenu.keysetting.mixedmod
e,SVMainMenu.keysetting.laneclear = false,false,false
end
end
function OnDraw()
if not ScriptLoaded then return end
if VIP_USER then
if SVMainMenu.walltumble.spot1 then
if GetDistance(TumbleSpots.VisionPos_1) < 125
ance(TumbleSpots.VisionPos_1, mousePos) < 125 then
DrawCircle(TumbleSpots.VisionPos_1.x,
s.VisionPos_1.y, TumbleSpots.VisionPos_1.z, 100, 0x107458)
else
DrawCircle(TumbleSpots.VisionPos_1.x,
s.VisionPos_1.y, TumbleSpots.VisionPos_1.z, 100, 0x80FFFF)
end
end
if SVMainMenu.walltumble.spot2 then
if GetDistance(TumbleSpots.VisionPos_2) < 125
ance(TumbleSpots.VisionPos_2, mousePos) < 125 then
DrawCircle(TumbleSpots.VisionPos_2.x,
s.VisionPos_2.y, TumbleSpots.VisionPos_2.z, 100, 0x107458)
or GetDist
TumbleSpot
TumbleSpot
or GetDist
TumbleSpot
else
DrawCircle(TumbleSpots.VisionPos_2.x, TumbleSpot
s.VisionPos_2.y, TumbleSpots.VisionPos_2.z, 100, 0x80FFFF)
end
end
end
if SVMainMenu.draw.DrawERange then
if SVMainMenu.draw.DrawEColor == 1 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawEColor == 2 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawEColor == 3 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawEColor == 4 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawEColor == 5 then
DrawCircle(myHero.x, myHero.y, myHero.z,
end
end
if SVMainMenu.draw.DrawAARange then
if SVMainMenu.draw.DrawAAColor == 1 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawAAColor == 2 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawAAColor == 3 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawAAColor == 4 then
DrawCircle(myHero.x, myHero.y, myHero.z,
elseif SVMainMenu.draw.DrawAAColor == 5 then
DrawCircle(myHero.x, myHero.y, myHero.z,
end
end
710, 0x80FFFF)
710, 0x0080FF)
710, 0x5555FF)
710, 0xFF2D2D)
710, 0x8B42B3)
655, 0x80FFFF)
655, 0x0080FF)
655, 0x5555FF)
655, 0xFF2D2D)
655, 0x8B42B3)
CurrentDirection = CurrentDirection:norm
alized()
end
ChampInfoTable[enemy.charName].CurrentAngle = Ch
ampInfoTable[enemy.charName].CurrentDirection:dotP( CurrentDirection )
ChampInfoTable[enemy.charName].CurrentDirection
= CurrentDirection
ChampInfoTable[enemy.charName].CurrentVector = V
ector(enemy)
if ChampInfoTable[enemy.charName].CurrentDirecti
on ~= Vector(0,0,0) then
if ChampInfoTable[enemy.charName].Curren
tAngle and ChampInfoTable[enemy.charName].CurrentAngle > 0.8 then
local AfterCastPos = Vector(enem
y) + ChampInfoTable[enemy.charName].CurrentDirection * (enemy.ms * 0.0005)
local timeElapsed = _GetCollisio
nTime(AfterCastPos, ChampInfoTable[enemy.charName].CurrentDirection, enemy.ms, m
yHero, 2200 )
if timeElapsed ~= nil then
StunnPos = Vector(enemy
) + ChampInfoTable[enemy.charName].CurrentDirection * enemy.ms * (timeElapsed +
0.5)/2
end
end
else
StunnPos = Vector(enemy)
end
end
if VIP_USER and not SVMainMenu.vip.pr0diction then -- VP
RED
GroundDelay = 0.32
EnemyPos = VP:GetPredictedPos(enemy, GroundDelay
, enemy.ms, myHero, false)
if EnemyPos ~= nil then
EnemyDistance = GetDistance(EnemyPos)
FlyTimeDelay = _GetFlyTime(math.floor(En
emyDistance))
for i=1,10 do
EnemyPos = VP:GetPredictedPos(en
emy, GroundDelay+FlyTimeDelay, enemy.ms, EnemyPos, false)
if EnemyPos~= nil then
EnemyDistance = GetDista
nce(EnemyPos)
FlyTimeDelay = _GetFlyTi
me(math.floor(EnemyDistance))
end
end
StunnPos = VP:GetPredictedPos(enemy, Gro
undDelay+FlyTimeDelay, enemy.ms, EnemyPos, false)
end
end
if VIP_USER and SVMainMenu.vip.pr0diction then -- PR0D
GroundDelay = 0.32
if enemy ~= nil and GroundDelay ~= nil then
EnemyPos = Prodiction.GetTimePrediction(
enemy, GroundDelay)
if EnemyPos ~= nil then
EnemyDistance = GetDistance(Enem
yPos)
FlyTimeDelay = _GetFlyTime(math.
floor(EnemyDistance))
for i=1,10 do
if enemy ~= nil and Grou
ndDelay ~= nil and FlyTimeDelay ~= nil then
EnemyPos = Prodi
ction.GetTimePrediction(enemy, GroundDelay+FlyTimeDelay)
if EnemyPos~= ni
l then
EnemyDis
tance = GetDistance(EnemyPos)
FlyTimeD
elay = _GetFlyTime(EnemyDistance)
end
end
end
if enemy ~= nil and GroundDelay
~= nil and FlyTimeDelay ~= nil then
StunnPos = Prodiction.Ge
tTimePrediction(enemy, GroundDelay+FlyTimeDelay)
end
end
end
end
if StunnPos ~= nil and GetDistance(StunnPos) < 710 then
_CheckWallStunn(StunnPos, enemy)
end
end
end
end
function _CheckWallStunn(StunnPos, enemy)
if not _DrawStunnCircles then _DrawStunnCircles = {} end
local BushFound, Bushpos = false, nil
local FoundWall = false
for i = 1, SVMainMenu.autostunn.pushDistance, 15 do
local CheckWallPos = Vector(StunnPos) + (Vector(StunnPos) - myHe
ro):normalized()*(i)
if IsWallOfGrass(D3DXVECTOR3(CheckWallPos.x, CheckWallPos.y, Che
ckWallPos.z)) and not BushFound then
BushFound = true
BushPos = CheckWallPos
end
if IsWall(D3DXVECTOR3(CheckWallPos.x, CheckWallPos.y, CheckWallP
os.z)) then
if not FoundWall then _DrawStunnCircles = { [enemy.charN
ame] = CheckWallPos };FoundWall = true end
if
(SVMainMenu.targets[enemy.charName][(enemy.charN
ame).."AutoCarry"] and ShadowVayneAutoCarry) or
(SVMainMenu.targets[enemy.charName][(enemy.charN
ame).."MixedMode"] and ShadowVayneMixedMode) or
(SVMainMenu.targets[enemy.charName][(enemy.charN
ame).."LaneClear"] and ShadowVayneLaneClear) or
(SVMainMenu.targets[enemy.charName][(enemy.charN
ame).."LastHit"] and ShadowVayneLastHit) or
(SVMainMenu.targets[enemy.charName][(enemy.charN
ame).."Always"])
then
if UnderTurret(D3DXVECTOR3(CheckWallPos.x, Check
WallPos.y, CheckWallPos.z), true) then
if SVMainMenu.autostunn.towerstunn then
if SVMainMenu.autostunn.target a
nd STSTarget then
if STSTarget == enemy th
en
CastSpell(_E, en
emy)
CastedLastE = Ge
tTickCount() + 500
break
end
else
CastSpell(_E, enemy)
CastedLastE = GetTickCou
nt() + 500
break
end
end
else
if SVMainMenu.autostunn.target and STSTa
rget then
if STSTarget == enemy then
CastSpell(_E, enemy)
CastedLastE = GetTickCou
nt() + 500
if BushFound and SVMainM
enu.autostunn.trinket and myHero:CanUseSpell(ITEM_7) == 0 then
CastSpell(ITEM_7
, BushPos.x, BushPos.z)
end
break
end
else
CastSpell(_E, enemy)
CastedLastE = GetTickCount() + 5
00
if BushFound and SVMainMenu.auto
stunn.trinket and myHero:CanUseSpell(ITEM_7) == 0 then
CastSpell(ITEM_7, BushPo
s.x, BushPos.z)
end
break
end
end
end
end
end
if FoundWall == false then
_DrawStunnCircles = { [enemy.charName] = nil }
end
end
function _GetCollisionTime (targetPos, targetDir, targetSpeed, sourcePos, projSp
eed ) --Function done by Yomie from EzCondemn
local velocity = targetDir * targetSpeed
local velocityX = velocity.x
local velocityY = velocity.z
local relStart = targetPos - sourcePos
DontBlockNext = true
TumbleOverWall_1 = true
end
end
end
end
if SVMainMenu.walltumble.spot2 then
if GetDistance(TumbleSpots.VisionPos_2) < 125 or GetDist
ance(TumbleSpots.VisionPos_2, mousePos) < 125 then
p.pos = 1
P_NetworkID = p:DecodeF()
P_SpellID = p:Decode1()
if P_NetworkID == myHero.networkID and P_SpellID
== _Q then
if DontBlockNext then
DontBlockNext = false
else
p:Block()
DontBlockNext = true
TumbleOverWall_2 = true
end
end
end
end
end
if p.header == 113 then
p.pos = 1
P_NetworkID = p:DecodeF()
p:Decode1()
P_X = p:DecodeF()
P_X2 = RoundNumber(P_X, 2)
P_Y = p:DecodeF()
P_Y2 = RoundNumber(P_Y, 2)
if TumbleOverWall_1 == true and SVMainMenu.walltumble.spot1 then
RunToX, RunToY = TumbleSpots.StandPos_1.x, TumbleSpots.S
tandPos_1.y
if not (P_X2 == RunToX and P_Y2 == RunToY) then
p:Block()
myHero:MoveTo(TumbleSpots.StandPos_1.x, TumbleSp
ots.StandPos_1.y)
end
end
if TumbleOverWall_2 == true and SVMainMenu.walltumble.spot2 then
RunToX, RunToY = TumbleSpots.StandPos_2.x, TumbleSpots.S
tandPos_2.y
if not (P_X2 == RunToX and P_Y2 == RunToY) then
p:Block()
myHero:MoveTo(TumbleSpots.StandPos_2.x, TumbleSp
ots.StandPos_2.y)
end
end
end
end
--------------------------- AddParam Hooks --------------------------_G.scriptConfig.CustomaddParam = _G.scriptConfig.addParam