Skocz do zawartości

[TuT] Pisanie skryptów do BoL'a cz.4 (FULL)


ajgoreq
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Hejo tutaj  :D
Czas na część 4
Lekcja : Listy, pierwszy skrypt do postaci (Ryze)
 
Okejo to zaczynamy od skryptu pod postać  :D
 
Po pierwsze musimy nasz skrypt zdefiniować pod wybraną postać :
 
 


if myHero.charName ~= "Ryze" then
return
end

 
 
albo
 
 

if myHero.charName ~= "Ryze" then return end

 
Ja zazwyczaj używam tego drugiego.
Ten kawałek skryptu oznacza :

"if-Jeśli my- moja hero- postać ~= - nie nazywa się Ryze then - to return - zastopuj resztę skryptu"
Ale uwaga nie umieszczamy tego na samej górze skryptu, bo na górze umieszczamy local'e ( ale nie wszystkie (Zaraz o tym pogadamy))
Teraz musimy zdefiniować zasięg umiejętności postaci :
Dane zasięgów bierzemy z : http://pl.leagueoflegends.wikia.com/wiki/postać  -- Tu gdzie postać wpisujecie nazwe postaci

local QRANGE = 625
local WRANGE = 600
local ERANGE = 600
local RRANGE = nil --tego nie musimy definiować przy skrypcie do Ryze, ale były by pytania co z tym zrobić

if myHero.charName ~= "Ryze" then return end

 
Następnie definiujemy dostępność umiejętności ale to już w funkcji :
 

local QRANGE = 625
local WRANGE = 600
local ERANGE = 600
local RRANGE = nil --tego nie musimy definiować ale były by pytania co z tym zrobić

if myHero.charName ~= "Ryze" then return end

function OnLoad()
print("Skrypt do ryze by AjGoReQ")
end

[b]function SpellREADY() [/b]-- oto nasza funkcja i musimy ją dodać do OnTick()
QREADY = (myHero:CanUseSpell(_Q) == READY)
WREADY = (myHero:CanUseSpell(_W) == READY)
EREADY = (myHero:CanUseSpell(_E) == READY)
RREADY = (myHero:CanUseSpell(_R) == READY)
end

function OnTick()
[b]SpellREADY()[/b]
end 

 
Następnie tworzymy menu oraz definiujemy target selector :
 
 

local QRANGE = 625
local WRANGE = 600
local ERANGE = 600
local RRANGE = nil --tego nie musimy definiować ale były by pytania co z tym zrobić

if myHero.charName ~= "Ryze" then return end


local QRANGE = 625
local WRANGE = 600
local ERANGE = 600
local RRANGE = nil --tego nie musimy definiować ale były by pytania co z tym zrobić

if myHero.charName ~= "Ryze" then return end

function OnLoad()
print("Skrypt do ryze by AjGoReQ")
end

function SpellREADY()
QREADY = (myHero:CanUseSpell(_Q) == READY)
WREADY = (myHero:CanUseSpell(_W) == READY)
EREADY = (myHero:CanUseSpell(_E) == READY)
RREADY = (myHero:CanUseSpell(_R) == READY)
end

function OnTick()
SpellREADY()
end 

function Menu() -- Menu
local ts = TargetSelector(TARGET_LOW_HP_PRIORITY,QRANGE) -- Target Selector
Config = scriptConfig("Ryze Combo", "ryzecombobyajgoreq")
Config:addParam("combo", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
Config:addParam("usespellr", "Uzyj R", SCRIPT_PARAM_ONOFF, true)
end

 
Dobra teraz zajmijmy się castowaniem spelli :
Są 3 rodzaje castu spella przez zwykły selector :
 

CastSpell(_id, ts.target) -- castowanie spella nie namierzanego np. Q,W,E Katy
CastSpell(_id, ts.target.x, ts.target.z) -- Castowanie Spella namierzanego np. Q i W Ezreala
CastSpell(_id) -- Tutaj spelle bez zaznaczenia i namierzania. np. Q sivir i R Katy

 
 
Ok no to zabieramy się za funkcje castu Q
 
 

function CastQ()
ts:update() -- Szukanie nowego celu
if ValidTarget(ts.target) then -- jeśli cel jest dostępny to :
CastSpell(_Q, ts.target) -- Castowanie Q w przeciwnika
end -- Zakończenie If
end -- Zakończenie funkcji.

 
Powyższą funkcje dodajemy do OnTick() z jedną ważną linijką :
 
 

local QRANGE = 625
local WRANGE = 600
local ERANGE = 600
local RRANGE = nil --tego nie musimy definiować ale były by pytania co z tym zrobić

if myHero.charName ~= "Ryze" then return end


local QRANGE = 625
local WRANGE = 600
local ERANGE = 600
local RRANGE = nil --tego nie musimy definiować ale były by pytania co z tym zrobić

if myHero.charName ~= "Ryze" then return end

function OnLoad()
print("Skrypt do ryze by AjGoReQ")
end

function SpellREADY()
QREADY = (myHero:CanUseSpell(_Q) == READY)
WREADY = (myHero:CanUseSpell(_W) == READY)
EREADY = (myHero:CanUseSpell(_E) == READY)
RREADY = (myHero:CanUseSpell(_R) == READY)
end

function OnTick()
if Config.combo then -- Nasza ważna linijka oznacza : jeżeli przycisk 32 (Spacja) z menu jest aktywny to wykonaj funkcje CastQ
CastQ() -- U
end
SpellREADY()
end

function Menu() -- Menu
local ts = TargetSelector(TARGET_LOW_HP_PRIORITY,QRANGE) -- Target Selector
Config = scriptConfig("Ryze Combo", "ryzecombobyajgoreq")
Config:addParam("combo", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
Config:addParam("usespellr", "Uzyj R", SCRIPT_PARAM_ONOFF, true)
end

function CastQ()
ts:update() -- Szukanie nowego celu
if ValidTarget(ts.target) then -- jeśli cel jest dostępny to :
CastSpell(_Q, ts.target) -- Castowanie Q w przeciwnika
end -- Zakończenie If
end -- Zakończenie funkcji.

Aby dodać więcej funkcji castu tworzymy funkcje Combo() i do niej dodajemy CastQ(), CastW() itd. po czym w OnTick() dodajecie zamiast CastQ() : Combo()
 
Jeśli coś jeszcze źle wytłumaczyłem proszę pisać.
Nie mam zbyt dużo czasu ale obiecuje, że kolejne poradniki będą bardziej rozbudowane.

Pozdrawiam :)

Odnośnik do komentarza

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności