Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Najlepszy skrypt na xin zhao ?


Rekomendowane odpowiedzi

  • 4 miesiące temu...
Opublikowano

Gra Xinem nie wymaga specjalnych skryptow, skrypt ci moze przeszkodzic bo wleci ci przypadkiem w nie tego co trzeba... Ale bez zbednego spamu.

 

 

Łap:

local VERSION = "1.04"

 
-- Xin Zhao by INEEDBEER --
 
 
if myHero.charName ~= "XinZhao" then return end
 
---------------------
------Auto Update----
---------------------
local latestVersion=nil
local updateCheck = false
---------------------
------Update Func----
---------------------
function getDownloadVersion(response)
        latestVersion = response
end
 
function getVersion()
        GetAsyncWebResult("dl.dropboxusercontent.com","/s/tuwyuce3kznu8lt/XinVersion.txt",getDownloadVersion)
end 
 
function update()
    if updateCheck == false then
        local PATH = BOL_PATH.."Scripts\\Xin Zhao - By INEEDBEER.lua"
        if latestVersion~=nil and latestVersion ~= VERSION then
            updateCheck = true
            PrintChat("Updating Xin Zhao - By INEEDBEER to latest version...")
            DownloadFile(URL, PATH,function ()
                PrintChat("Update finished - reload please (F9 twice)")
            end)            
        elseif latestVersion == VERSION then
            updateCheck = true
  PrintChat("You are running version "..VERSION.." of Xin Zhao by INEEDBEER")        
        end
    end
end
AddTickCallback(update)
 
 
function OnLoad()
  getVersion()
Variables()
XinZhaoMenu()
PrintChat(">> Xin Zhao by INEEDBEER loaded <<")
 
end
 
function OnTick()
Checks()
DamageCalculation()
JungleMobList()
 
ComboKey =   XinZhaoMenu.combo.comboKey
HarassKey =  XinZhaoMenu.harass.harassKey
--ClearKey =   XinZhaoMenu.clear.clearKey
JungleKey =  XinZhaoMenu.jungle.jungleKey
 
if ComboKey then FullCombo() end
if HarassKey then HarassCombo() end
if JungleKey then JungleClear() end
 
--if ClearKey and not (ComboKey or HarassKey) then Farming() end
 
LastHitKey = XinZhaoMenu.lasthit.lasthitKey
if LastHitKey and not (ComboKey or HarassKey) then LastHit() end
end
 
 
---------------------
----Jungle mobs------
---------------------
function JungleMobList()
JungleMobs = {}
JungleFocusMobs = {}
 
-- Stolen from Apple who Stole it from Sida --
JungleMobNames = { 
["Wolf8.1.2"] = true,
["Wolf8.1.3"] = true,
["YoungLizard7.1.2"] = true,
["YoungLizard7.1.3"] = true,
["LesserWraith9.1.3"] = true,
["LesserWraith9.1.2"] = true,
["LesserWraith9.1.4"] = true,
["YoungLizard10.1.2"] = true,
["YoungLizard10.1.3"] = true,
["SmallGolem11.1.1"] = true,
["Wolf2.1.2"] = true,
["Wolf2.1.3"] = true,
["YoungLizard1.1.2"] = true,
["YoungLizard1.1.3"] = true,
["LesserWraith3.1.3"] = true,
["LesserWraith3.1.2"] = true,
["LesserWraith3.1.4"] = true,
["YoungLizard4.1.2"] = true,
["YoungLizard4.1.3"] = true,
["SmallGolem5.1.1"] = true,
}
FocusJungleNames = {
["Dragon6.1.1"] = true,
["Worm12.1.1"] = true,
["GiantWolf8.1.1"] = true,
["AncientGolem7.1.1"] = true,
["Wraith9.1.1"] = true,
["LizardElder10.1.1"] = true,
["Golem11.1.2"] = true,
["GiantWolf2.1.1"] = true,
["AncientGolem1.1.1"] = true,
["Wraith3.1.1"] = true,
["LizardElder4.1.1"] = true,
["Golem5.1.2"] = true,
["GreatWraith13.1.1"] = true,
["GreatWraith14.1.1"] = true,
}
 
for i = 0, objManager.maxObjects do
local object = objManager:getObject(i)
if object ~= nil then
if FocusJungleNames[object.name] then
table.insert(JungleFocusMobs, object)
elseif JungleMobNames[object.name] then
table.insert(JungleMobs, object)
end
end
end
end
 
---------------------
------Variables------
---------------------
 
function Variables()
 
ToInterrupt = {}
InterruptList = {
    { charName = "Caitlyn", spellName = "CaitlynAceintheHole"},
    { charName = "FiddleSticks", spellName = "Crowstorm"},
    { charName = "Galio", spellName = "GalioIdolOfDurand"},
    { charName = "Karthus", spellName = "FallenOne"},
    { charName = "Katarina", spellName = "KatarinaR"},
    { charName = "Lucian", spellName = "LucianR"},
    { charName = "Malzahar", spellName = "AlZaharNetherGrasp"},
    { charName = "MissFortune", spellName = "MissFortuneBulletTime"},
    { charName = "Nunu", spellName = "AbsoluteZero"},                            
    { charName = "Pantheon", spellName = "Pantheon_GrandSkyfall_Jump"},
    { charName = "Shen", spellName = "ShenStandUnited"},
    { charName = "Urgot", spellName = "UrgotSwap2"},
{ charName = "Warwick", spellName = "InfiniteDuress"},
{ charName = "Velkoz", spellName = "VelkozR"}
}
 
mousemoving = true
    waitDelay = 450
    scanAdditionalRange = 750
    nextTick = 0
lastCast = "none"
AAcount = 0
lastTarget = myHero.name
q1, q2, q3 = 0, 0, 0
eRange, rRange = 600, 500
qName, wName, eName, rName = "Three Talon Strike", "Battle Cry", "Audacious Charge", "Crescent Sweep"
qReady, wReady, eReady, rReady = false, false, false, false
lastAnimation, lastAttack, lastAttackCD, lastWindUpTime = "", GetTickCount(), 0, 0
enemyMinions = minionManager(MINION_ENEMY, eRange, player, MINION_SORT_HEALTH_ASC)
TextList = {"Harass him!!", "F**k him up!!"}
KillText = {}
waittxt = {} -- prevents UI lags, all credits to Dekaron
for i=1, heroManager.iCount do waittxt = i*3 end
 
end
 
---------------------
---------Menu--------
---------------------
 
function XinZhaoMenu()
 
XinZhaoMenu = scriptConfig("Xin Zhao by INEEDBEER", "XinZhao")
 
XinZhaoMenu:addSubMenu("Combo Settings", "combo")
XinZhaoMenu.combo:addParam("comboKey", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
XinZhaoMenu.combo:addParam("comboQ", "Use "..qName.." (Q)", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.combo:addParam("comboW", "Use "..wName.." (W)", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.combo:addParam("comboE", "Use "..eName.." (E)", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.combo:addParam("comboR", "Use "..rName.." ®", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.combo:addParam("comboOrbwalk", "OrbWalk on Combo", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.combo:permaShow("comboKey") 
 
XinZhaoMenu:addSubMenu("Harass Settings", "harass")
XinZhaoMenu.harass:addParam("harassKey", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
XinZhaoMenu.harass:addParam("harassQ", "Use "..qName.." (Q)", SCRIPT_PARAM_ONOFF, false)
XinZhaoMenu.harass:addParam("harassE", "Use "..eName.." (E)", SCRIPT_PARAM_ONOFF, false)
XinZhaoMenu.harass:addParam("harassOrbwalk", "OrbWalk on Harass", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.harass:permaShow("harassKey") 
 
XinZhaoMenu:addSubMenu("LastHit Settings", "lasthit")
XinZhaoMenu.lasthit:addParam("lasthitKey", "Lasthit", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
XinZhaoMenu.lasthit:permaShow("lasthitKey") 
 
--XinZhaoMenu:addSubMenu("LaneClear Settings", "clear")
--XinZhaoMenu.clear:addParam("clearKey", "LaneClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("Z"))
--XinZhaoMenu.clear:addParam("qClear", "Use "..qName.." (Q)", SCRIPT_PARAM_ONOFF, false)
--XinZhaoMenu.clear:addParam("eClear", "Use "..eName.." (E)", SCRIPT_PARAM_ONOFF, false)
--XinZhaoMenu.clear:addParam("clearOrbwalk", "OrbWalk in LaneClear", SCRIPT_PARAM_ONOFF, true)
--XinZhaoMenu.clear:permaShow("clearKey") 
 
XinZhaoMenu:addSubMenu("Jungle Settings", "jungle")
XinZhaoMenu.jungle:addParam("jungleKey", "Jungle clear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
XinZhaoMenu.jungle:addParam("jungleQ", "Use "..qName.." (Q)", SCRIPT_PARAM_ONOFF, false)
XinZhaoMenu.jungle:addParam("jungleW", "Use "..wName.." (W)", SCRIPT_PARAM_ONOFF, false)
XinZhaoMenu.jungle:addParam("jungleE", "Use "..eName.." (E)", SCRIPT_PARAM_ONOFF, false)
XinZhaoMenu.jungle:addParam("jungleOrbwalk", "OrbWalk in Jungle", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.jungle:permaShow("jungleKey") 
 
XinZhaoMenu:addSubMenu("Interrupt Settings", "interrupt")
XinZhaoMenu.interrupt:addParam("interruptQ", "Use "..qName.." (Q) to Interrupt", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.interrupt:addParam("interruptR", "Use "..rName.." ® to Interrupt", SCRIPT_PARAM_ONOFF, true)
 
XinZhaoMenu:addSubMenu("Drawing Settings", "drawing")
XinZhaoMenu.drawing:addParam("eDraw", "Draw "..eName.." (E) Range", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.drawing:addParam("rDraw", "Draw "..rName.." ® Range", SCRIPT_PARAM_ONOFF, true)
XinZhaoMenu.drawing:addParam("cDraw", "Draw Killtext", SCRIPT_PARAM_ONOFF, true)
 
 
XinZhaoMenu:addSubMenu("Misc", "misc")
 
XinZhaoMenu.misc:addParam("AUlt", "Min enemies for Auto ult", SCRIPT_PARAM_SLICE, 3, 1, 5, 0)
 
TargetSelector = TargetSelector(TARGET_LOW_HP, eRange,DAMAGE_MAGIC)
TargetSelector.name = "Xin Zhao"
XinZhaoMenu:addTS(TargetSelector)
 
for i = 1, heroManager.iCount, 1 do
enemy = heroManager:getHero(i)
if enemy.team ~= myHero.team then
for _, champ in pairs(InterruptList) do
if enemy.charName == champ.charName then
table.insert(ToInterrupt, champ.spellName)
end
end
end
end
 
end
 
---------------------
--Passive detection--
---------------------
 
function PassiveActive(Target)
    for i = 1, Target.buffCount do
        local tBuff = Target:getBuff(i)
        if BuffIsValid(tBuff) and (tBuff.name == "xenzhaointimidate") then
            return true
        end
    end 
    return false
end
 
---------------------
----Combo function---
---------------------
 
function FullCombo()
if Target ~= nil then
if Target.name ~= lastTarget then
lastTarget = Target.name
AAcount = 0
lastCast = "none"
end
else
AAcount = 0
lastCast = "none"
end
if XinZhaoMenu.combo.comboOrbwalk then
if Target ~= nil then
OrbWalking(Target)
else
moveToCursor()
end
end
if Target ~= nil then
if eReady and XinZhaoMenu.combo.comboE then
CastSpell(_E, Target)
lastCast = "E"
AAcount = 0
end
if rReady and XinZhaoMenu.combo.comboR and lastCast == "E" and AAcount >= 1 and PassiveActive(Target) then
CastSpell(_R)
lastCast = "R"
AAcount = 0
end
if wReady and XinZhaoMenu.combo.comboW and (lastCast == "R" or lastCast == "E") and AAcount >= 1 then
CastSpell(_W)
lastCast = "W"
AAcount = 0
end
if qReady and XinZhaoMenu.combo.comboQ and (lastCast == "W" or lastCast == "E") and AAcount >= 1 then
CastSpell(_Q)
lastCast = "Q"
AAcount = 0
end
end
end
 
---------------------
---Harass function---
---------------------
 
function HarassCombo()
if Target ~= nil then
if Target.name ~= lastTarget then
lastTarget = Target.name
AAcount = 0
lastCast = "none"
end
else
AAcount = 0
lastCast = "none"
end
if XinZhaoMenu.combo.comboOrbwalk then
if Target ~= nil then
OrbWalking(Target)
else
moveToCursor()
end
end
if Target ~= nil then
if eReady and XinZhaoMenu.combo.comboE then
CastSpell(_E, Target)
lastCast = "E"
AAcount = 0
end
if qReady and XinZhaoMenu.combo.comboQ and lastCast == "E" and AAcount >= 1 then
CastSpell(_Q)
lastCast = "Q"
AAcount = 0
end
end
end
 
---------------------
---Farming function--
---------------------
--SOON
 
---------------------
--Last hit function--
---------------------
function LastHit()
    enemyMinions:update()
if mousemoving and GetTickCount() > nextTick then
            moveToCursor()
    end
    for index, minion in pairs(enemyMinions.objects) do
if GetDistance(minion, myHero) <= (myHero.range+scanAdditionalRange) and GetTickCount() > nextTick + waitDelay then
aDmg = getDmg("AD", minion, myHero)
            if (aDmg)>minion.health then
                myHero:Attack(minion)
                nextTick = GetTickCount() + waitDelay
            end
        end
    end
end
 
---------------------
---Jungle function---
---------------------
function JungleClear()
local JungleMob = GetJungleMob()
if XinZhaoMenu.jungle.jungleOrbwalk then
if JungleMob ~= nil then
OrbWalking(JungleMob)
else
moveToCursor()
end
end
if JungleMob ~= nil then
if XinZhaoMenu.jungle.jungleQ and GetDistance(JungleMob) <= (myHero.range+scanAdditionalRange) then
CastSpell(_Q)
myHero:Attack(JungleMob)
end
if XinZhaoMenu.jungle.jungleW and GetDistance(JungleMob) <= (myHero.range+scanAdditionalRange) then CastSpell(_W) end
if XinZhaoMenu.jungle.jungleE and GetDistance(JungleMob) <= eRange then CastSpell(_E, JungleMob) end
end
end
 
function GetJungleMob()
        for _, Mob in pairs(JungleFocusMobs) do
                if ValidTarget(Mob, eRange) then return Mob end
        end
        for _, Mob in pairs(JungleMobs) do
                if ValidTarget(Mob, eRange) then return Mob end
        end
end
 
---------------------
---Dmg calculation---
---------------------
 
function DamageCalculation()
for i=1, heroManager.iCount do
local enemy = heroManager:GetHero(i)
if ValidTarget(enemy) then
qDmg, eDmg, rDmg, myDmg = 0, 0, 0, 0
qDmg = getDmg("Q",enemy,myHero)
eDmg = getDmg("E",enemy,myHero)
rDmg = getDmg("R",enemy,myHero)
 
if qReady then myDmg = myDmg + qDmg end
if eReady then myDmg = myDmg + eDmg end
if rReady then myDmg = myDmg + rDmg end
 
KillText = 1
if enemy.health <= myDmg then
KillText = 2
end
end
end
end
 
function OnCreateObj(obj)
if obj ~= nil then
if obj.name:find("Global_Item_HealthPotion.troy") then
if GetDistance(obj, myHero) <= 70 then
usingHPot = true
usingFlask = true
end
end
if obj.name:find("TeleportHome.troy") then
if GetDistance(obj) <= 70 then
Recalling = true
end
end
end
end
 
function OnDeleteObj(obj)
if obj ~= nil then
if obj.name:find("Global_Item_HealthPotion.troy") then
if GetDistance(obj) <= 70 then
usingHPot = false
usingFlask = false
end
end
if obj.name:find("TeleportHome.troy") then
if GetDistance(obj) <= 70 then
Recalling = false
end
end
end
end
 
function OnRecall(hero, channelTimeInMs)
if hero.networkID == player.networkID then
Recalling = true
end
end
 
function OnAbortRecall(hero)
if hero.networkID == player.networkID then
Recalling = false
end
end
 
function OnFinishRecall(hero)
if hero.networkID == player.networkID then
Recalling = false
end
end
 
function OnDraw()
if not myHero.dead then
if eReady and XinZhaoMenu.drawing.eDraw then
DrawCircle(myHero.x, myHero.y, myHero.z, eRange, 0x0000FF)
end
if rReady and XinZhaoMenu.drawing.rDraw then
DrawCircle(myHero.x, myHero.y, myHero.z, rRange, 0x0000FF)
end
end
if XinZhaoMenu.drawing.cDraw then
for i=1, heroManager.iCount do
local Unit = heroManager:GetHero(i)
if ValidTarget(Unit) then
if waittxt == 1 and (KillText ~= nil or 0 or 1) then
PrintFloatText(Unit, 0, TextList[KillText])
end
end
if waittxt == 1 then
waittxt = 30
else
waittxt = waittxt-1
end
end
end
 
end
 
function OrbWalking(Target)
if TimeToAttack() and GetDistance(Target) <= myHero.range + GetDistance(myHero.minBBox) then
myHero:Attack(Target)
    elseif heroCanMove() then
        moveToCursor()
    end
end
 
function TimeToAttack()
    return (GetTickCount() + GetLatency()/2 > lastAttack + lastAttackCD)
end
 
function heroCanMove()
return (GetTickCount() + GetLatency()/2 > lastAttack + lastWindUpTime + 20)
end
 
function moveToCursor()
if GetDistance(mousePos) > 1 or lastAnimation == "Idle1" then
local moveToPos = myHero + (Vector(mousePos) - myHero):normalized()*300
myHero:MoveTo(moveToPos.x, moveToPos.z)
end
end 
 
 
function OnProcessSpell(unit, spell)
 
if Target ~= nil then
if XinZhaoMenu.interrupt.interruptR and rReady and #ToInterrupt > 0 and PassiveActive(Target) == false then
for _, ability in pairs(ToInterrupt) do
if spell.name == ability and unit.team ~= myHero.team then
if GetDistance(unit) <= rRange then CastSpell(_R)
lastCast = "R"
end
end
end
end
 
if XinZhaoMenu.interrupt.interruptQ and qReady and #ToInterrupt > 0 then
for _, ability in pairs(ToInterrupt) do
if spell.name == ability and unit.team ~= myHero.team then
if GetDistance(unit) <= 150 then
CastSpell(_Q)
myHero:Attack(unit)
lastCast = "Q"
end
end
end
end
end
 
if unit.isMe then
 
if spell.name:lower():find("attack") then
--print("Basic Attack!")
lastAttack = GetTickCount() - GetLatency()/2
lastWindUpTime = spell.windUpTime*1000
lastAttackCD = spell.animationTime*1000
AAcount = AAcount + 1
end 
 
if spell and spell.name:find("XenZhaoThrust") and (not spell.name:find("XenZhaoThrust2") and not spell.name:find("XenZhaoThrust3")) then
--print("Q1!")
AAcount = AAcount + 1
end
 
if spell and spell.name:find("XenZhaoThrust2") then
--print("Q2!")
AAcount = AAcount + 1
end
 
if spell and spell.name:find("XenZhaoThrust3") then
--print("Q3!")
AAcount = AAcount + 1
end
 
if spell.name == myHero:GetSpellData(_Q).name then
--print("Cast Q")
lastCast = "Q"
end
if spell.name == myHero:GetSpellData(_W).name then
--print("Cast W")
lastCast = "W"
end
if spell.name == myHero:GetSpellData(_E).name then
--print("Cast E")
lastCast = "E"
end
if spell.name == myHero:GetSpellData(_R).name then
--print("Cast R")
lastCast = "R"
end
end
end
 
function OnAnimation(unit,animationName)
    if unit.isMe and lastAnimation ~= animationName then lastAnimation = animationName end
end
 
function Checks()
 
if CountEnemyHeroInRange(rRange) >= XinZhaoMenu.misc.AUlt then
CastSpell(_R)
end
 
 
TargetSelector:update()
Target = TargetSelector.target
 
qReady = (myHero:CanUseSpell(_Q) == READY)
wReady = (myHero:CanUseSpell(_W) == READY)
eReady = (myHero:CanUseSpell(_E) == READY)
rReady = (myHero:CanUseSpell(_R) == READY)
 
enemyMinions:update()
end

 

Albicoolvod->Katatuki

 

d64cee27e8dd47f0bbd3738cee5a7cce.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...