IT - Tutorial Scripting LUA

Aici vom discuta pe tema IT care va include : c++, visual basic, php, html, css si multe altele; veti gasi si diverse stiri.

Moderators: Moderator ajutator, Moderator

skill +2
skill +2
Status: Offline
Posts: 120
Registered for: 13 years
13
Status: Lenes (:|
Location: Bucuresti
Contact:

IT - Tutorial Scripting LUA Post by Darkraid »

Bine ati venit la tutorialul meu pentru a creea propriul script LUA. Mai intai trebuie sa va downloadati Notepad++. Dupa deschideti un fisier .txt si apoi il salvati ca .lua . Acel fisier (ex.: WoWScript.lua) il editati cu Notepad++ si acum hai sa incepem lucrul.

PASUL 1:
Mai intai trebuie ca script-ul sa recunoasca ID-ul NPC-ului care va functiona dupa cum ii trimite informatiile script-ul.

Code: Select all

local NPCID = <npcID>
Unde este scris "<npcID>" trebuie sa puneti ID-ul NPC-ului (ex. local NPCID = 102). Acestea fiind scrise, incepem sa scriem ce trebuie ca boss-ul sa faca in diferite etape.

PASUL 2:
Nu prea conteaza ordinea dar, normal, incepem cand boss-ul este atacat.

Code: Select all

function <NUME>_OnCombat(pUnit, event, player)
 pUnit:SendChatMessage(14, 0, "<MESAJ>")
 pUnit:RegisterEvent("<NUME>_Phase1", 1000, 0)
end
<NUME> = aici pui ce nume vrei (ex. function Boss_OnCombat(pUnit, event, player) )
<MESAJ> = aici pui ce mesaj vrei ca boss-ul sa spuna cand e atacat (ex. pUnit:SendChatMessage(14, 0, "IMA GONNA KILL YOU!!!") ). Apropo in loc de 14 (care inseamna ca tipa) puteti sa puneti 12 (care inseamna ca vorbeste normal).

Acum urmeaza partea cand el iese din lupta (adica cei care se lupta cu el ori au murit ori au fugit de el).

Code: Select all

function <NUME>_OnLeaveCombat(pUnit, event, player)
 pUnit:RemoveEvents() 
 pUnit:SendChatMessage(14, 0, "<MESAJ>")
end
<NUME> = exact ca mai sus
<MESAJ> = exact ca mai sus doar ca aici spune ceva cand nu se mai lupta (ex. pUnit:SendChatMessage(14, 0, "Sunteti niste lasi!") )
pUnit:RemoveEvents() = aceasta comanda face ca boss-ul sa anuleze tot ce facea inainte si orice magie avea care sa-l ajute

Acum urmeaza partea cand boss-ul moare.

Code: Select all

function <NUME>_OnDeath(pUnit, event, player
 pUnit:RemoveEvents()
 pUnit:SendChatMessage(14, 0, "<MESAJ>")
end
<NUME> = exact ca mai sus
<MESAJ> = exact ca mai sus doar ca zice cand moare (ex. pUnit:SendChatMessage(14, 0, "O sa ma razbun...!") )
pUnit:RemoveEvents() = ca mai sus

PASUL 3:
Ati vazut un cod cam asa mai sus cand boss-ul este atacat:

Code: Select all

pUnit:RegisterEvent("<NUME>_Phase1", 1000, 0)
<NUME> = ca mai inainte
Practic, acest lucru inregistreaza un event care se poate intampla la un anumit moment. Cel mai mult folosit este atunci cand boss-ul ajunge la un anumit HP si se intampla cam asa.

Code: Select all

function <NUME>_Phase1(pUnit, event, player)
 if pUnit:GetHealthPct() == 85 then
 pUnit:SendChatMessage(14, 0, <MESAJ>")
 pUnit:RemoveEvents()
 pUnit:CastSpell(<MagieID>)
end
end
La faza cu "GetHealthPct" inseamna ca boss-ul, cand ajunge la un anumit HP (aici fiind 85%), se va intampla urmatorul lucru. Boss-ul va trimite un mesaj, si am pus RemoveEvents deoarece spammeaza chat-ul daca nu-l pun. Acum in loc de "<MagieID>" trebuie sa puneti ID-ul magiei folosind comanda ".lookup spell <nume magie>" . Ati vazut ca sunt 2 de end deoarece primul end inchide "if" si al doilea inchide "function". Puteti sa faceti cate faze vreti.

PASUL 4:
Acum trebuie sa inregistram si primele functii din joc.

Code: Select all

RegisterUnitEvent(<npcID>, 1, "<NUME>_OnCombat")
RegisterUnitEvent(<npcID>, 2, "<NUME>_OnLeaveCombat")
RegisterUnitEvent(<npcID>, 4, "<NUME>_OnDeath")
In loc de <npcID> scrieti ID-ul NPC-ului iar numele "1, 2, 4" arata ordinea functiilor. Multumesc ca ati citit acest tutorial :D .

P.S.: LUA este folosit (nu stiu daca si pentru altceva) pentru emulatoarele World of Warcraft. Se foloseste si C++ pentru a scripta ceva pentru un server de WoW dar mi s-a parut mai usor LUA, C++ folosindu-l pentru a crea programe sau mini-jocuri si, de asemenea, sa nu incurc comenzile pentru WoW cu cele normale.

P.S.S.: AICI este un exemplu de boss pentru WoW care l-am facut.
  • Informatii:
1. Nume Minecraft: _Darkraid
2. Cont Premium: Da!
3. Experienta Minecraft: Foarte mare, joc din patch-ul 1.3 (am inceput cu foarte putin inainte dar peste cateva zile a aparut 1.3) .

Image
skill +4
skill +4
Status: Offline
Posts: 325
Registered for: 12 years 2 months
12
Location: Giurgiu,Romania
Contact:

Re: Tutorial Scripting LUA (bazat pe jocul WoW) Post by andrei8d »

Foarte folositor gg
Image
Acest topic a fost inchis de catre , utilizatorii nu mai pot posta in el.

Singurii care pot posta in acest topic sunt moderatorii si administratorii.


Daca tot sunteti aici, de ce nu ne urmariti si ne promovati pe urmatoarele site-uri de jos ?! (daca nu ai facut-o deja)

Forum locked Post a reply

Return to “Discutii IT”