SZÖVEG KIÍRÁSA A JÁTÉKOS FEJE FÖLÉ
Üdv! Sokan próbálnak szöveget megjeleníteni a játékos feje fölött vagy máshol. Erre a legegyszerûbb megoldás a 3D-szövegek használata.
Elõször, hozzunk létre egy
MAX_PLAYERS méretû tömböt, melyet a játékosok 3D-szövegének azonosítóinak tárolására használunk:
new Text3D:3DTextIdentifiers[MAX_PLAYERS]; // név lehet bármi, de a Text3D: címke maradjon
A játékosok csatlakozásakor, tehát az
OnPlayerConnect(playerid) esemény alatt, adjunk értéket a tömbnek, a következõ módon:
3DTextIdentifiers[playerid] = Create3DTextLabel(\"példaszöveg\", COLOR_WHITE, 0.0, 0.0, 0.0, 25.0, 0, 0);
A
Create3DTextLabel paraméterei egyébként:
text[] = szöveg
color = szín
Float:X, Float:Y, Float:Z = pozíciók a három tengely mentén (ez esetben lényegtelen, hiszen a játékoshoz fogjuk csatolni)
Float:DrawDistance = látótávolság
VirtualWorld = virtuális világ, amelyben látható (ez esetben lényegtelen, hiszen a játékoshoz fogjuk csatolni)
testLOS = látható-e a falon át? (szerintem nem, de, ahogy gondoljátok)
Ha szövegre például a játékos azonosítóját vagy más számot szeretnénk kiíratni, elõtte formáznunk kell azt...
Szintén az
OnPlayerConnect(playerid) esemény alatt vagy más tetszõleges helyen adjuk hozzá a 3D-szöveget a játékoshoz, például így:
Attach3DTextLabelToPlayer(3DTextIdentifiers[playerid], playerid, 0.0, 0.0, 0.5);
Az
Attach3DTextLabelToPlayer paraméterei egyébként:
Text3D:id = a 3D-szöveg azonosítója (ezt tárolja a tömbünk)
playerid = a játékos azonosítója
Float:OffsetX, Float:OffsetY, Float:OffsetZ = eltérés a játékostõl (Z-koordináta legyen nagyobb, hogy felette legyen)
Más csak egy maradt hátra, a 3D-szöveg megsemmisítése az
OnPlayerDisconnect(playerid, reason) esemény alatt:
Delete3DTextLabel(3DTextIdentifiers[playerid]);
Kiegészítés: Ha a szöveget és/vagy a színt meg szeretnéd késõbb változtatni, használd az
Update3DTextLabelText függvényt, melyrõl bõvebben
ITT olvashatsz.
Írta: Y2K (2010. augusztus 4.)