Sveiki, išleidus 0.3.7 versiją, atsirado galimybė LABAI lengvai sukurti stovinčius, nejudančius NPC. Apie tai šioje pamokoje ir norėčiau pakalbėti ir paskatinti Jus juos naudoti.
Kas yra "actor"?
Actor tai yra nejudantis NPC. Tai reiškia kad jis negali vairuoti transporto priemonės ar atlikti kitų veiksmų. Judėjimas gali būti simuliuotas naudojant animacijas. Šie NPC neužima "player-slot" - jų nerodys žaidėjų sąraše prie prisijungusių žaidėjų.
NPC naudojimas buvo dažnai vengiamas dėl sudėtingo jų kūrimo(įrašo kūrimas) bei jų resursų(pralaidumo) naudojimas. Žinoma actor irgi naudoja resursus, tačiau šiek tiek mažiau..
Kaip sukurti actor?
Paprasčiau ir būti negali! Naudojama funkcija CreateActor.
Parametras | Reikšmė |
---|---|
modelid | Išvaizdos(skin) modelis |
X | Atsiradimo X koordinatė |
Y | Atsiradimo Y koordinatė |
Z | Atsiradimo Z koordinatė |
Rotation | Atsiradimo pasisukimo kampas |
Visi parametrai turėtų būti žinomi, kadangi jie atitinka žaidėjo nustatymus.
Ši funkcija gražina sukurto actor ID, kurio jums reikės kitų funkcijų naudojimui.
Actor funkcijos
Funkcija | Naudojimas |
---|---|
DestroyActor(actorid); | Sunaikina actor |
IsActorStreamedIn(actorid, forplayerid); | Patikrina ar actor yra "pakrautas" žaidėjui |
SetActorVirtualWorld(actorid, vworld); | Nustato actor virtualųjį pasaulį |
GetActorVirtualWorld(actorid); | Gražina actor virtualųjį pasaulį |
ApplyActorAnimation(actorid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time); | Nustato actor animaciją, atitinka ApplyAnimation žaidėjams |
ClearActorAnimations(actorid); | Pašalina actor vykdomas animacijas |
SetActorPos(actorid, Float:X, Float:Y, Float:Z); | Nustato actor poziciją |
GetActorPos(actorid, &Float:X, &Float:Y, &Float:Z); | Gražina actor poziciją |
SetActorFacingAngle(actorid, Float:ang); | Nustato actor pasisukimo kampą |
GetActorFacingAngle(actorid, &Float:ang); | Gražina actor pasisukimo kampą |
SetActorHealth(actorid, Float:health); | Nustato actor gyvybių skaičių |
GetActorHealth(actorid, &Float:health); | Gražina actor gyvybių skaičių |
SetActorInvulnerable(actorid, invulnerable = true); | Nustato ar actor turi būti nemirtingas. True - nemirtingas, false - mirtingas |
IsActorInvulnerable(actorid); | Patikrina ar actor yra nemirtingas |
IsValidActor(actorid); | Patikrina ar nurodytas ID yra actor |
Ko gero galingiausia funkcija yra "ApplyActorAnimation", su ja galite priversti actor gulėti, sedėti ar net vaikščioti!
Pabaiga
Vargu ar tai galima pavadinti "pamoka", bet tiesiog norėjau paskatinti šio 0.3.7 privalumo naudojimą, nes, mano nuomone, su tuo jais galima daug nuveikti!