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>
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
<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
<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
<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)
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
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")
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.