[Leírás] Szöveg kiíratása a játékos feje fölé

Indította Y2K, 2011. március 15. - 19:30:17

Előző téma - Következő téma

Y2K

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 http://wiki.sa-mp.com/wiki/Update3DTextLabelText\" rel=\"external nofollow\">ITT olvashatsz.
Írta: Y2K (2010. augusztus 4.)

SoAP

Szép, bõ leírás :amazed: :amazed: Szép munka, grat :)

ALIEN


Y2K

Köszönöm... Igazából ezeket még akkor írtam, amikor nem is éltetek, azóta keringnek a hypertérben. :)

ALIEN

#4
Nálam kicsit rossz:
A változó nevét így nem fogadta el: 3DTextIdentifiers
vagyis a 3-ast,
csak így: DTextIdentifiers
És így jó. Nem tudom ti hogy vagytok vele de nekem nem fogadta el. (De végül is lényegtelen.)
E: Y2K, ezt te is látod vagy csak a másik playerek?
 
Idézetet írta: Y2K date=1300386628\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6849\" data-ipsquote-contentclass=\"forums_TopicKöszönöm... Igazából ezeket még akkor írtam, amikor nem is éltetek, azóta keringnek a hypertérben. :)
 
OFF: Igaz Augusztus 4. után születtem pár nappal  :amazed:

Y2K

Hát igen, számmal nem kezdõdhet a változó neve... Most látszik, hogy mennyire figyelnek oda a másik fórumon, mert még 5 napja is kaptam hozzászólást erre, de több mint fél év alatt senki nem vette észre ezeket a hibákat...

norbee0170

öm hali nemvagyok pro scripter \"még :D \" de miaz h \"\"esemény alatt\"\" ?
nenézzetek hülyének,és bocs h kérdezek :D

Mambo

Idézetet írta: norbee0170 date=1304690170\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6849\" data-ipsquote-contentclass=\"forums_Topicöm hali nemvagyok pro scripter \"még :D \" de miaz h \"\"esemény alatt\"\" ?
nenézzetek hülyének,és bocs h kérdezek :D
az csak annyi, hogy az Onplayerconnectnél fut le. az esemény az amikor a játékos csatlakozik

RedLine0108

Csuma. ez mind szép és jó de nekem olyan kellene hogy amit beírsz azt írja ki a neved fölé.. üzenetet.
amit beírsz azt írja ki a neved fölé.. üzenetet.
plíz help és elõre is köszi.. ;)

Kovacs_Bela

#9
Kis keresés a http://wiki.sa-mp.com\" rel=\"external nofollow\">samp wikin, hasznos dolgokra képes :)

http://wiki.sa-mp.com/wiki/SetPlayerChatBubble\" rel=\"external nofollow\">Ebben pont az a példa.

ha rákeresnél a
http://wiki.sa-mp.com/wiki/SetPlayerChatBubble\" rel=\"external nofollow\">SetPlayerChatBubble-re az jobb lenne :)

Remélem sokat segítettem

George Santiago


[T.I.R.]Kenguru

#11
Idézetet írta: Y2K date=1300213817\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6849\" data-ipsquote-contentclass=\"forums_TopicSokan 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.
 
Szerintem ez egyszerûbb:
[pawn]
SetPlayerChatBubble(playerid, text, szín, láthatóság, idõ);
[/pawn]
Példa:
[pawn]public OnPlayerText(playerid, text[])
{
    SetPlayerChatBubble(playerid, text, 0xFFFFFFFF, 80.0, 9000);
    return 1;
}[/pawn]

N@rbirock


Koncz_Norbert

Idézetet írta: N@rbirock date=1316841802\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6849\" data-ipsquote-contentclass=\"forums_Topicmi a parancs hozzá
 
Nincs parancs hozzá. Márha Gumikacsa hozzászólására gondolsz.
Egyszerûen írsz a chatboxba és megjelenik a karakter fölött. ( Kivéve neked nem fog. )

JackBronson

Idézetet írta: N@rbirock date=1316841802\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6849\" data-ipsquote-contentclass=\"forums_Topicmi a parancs hoza
 
Alapból ha irsz akkor megjelenik annál a fügvénynél.
De ezt már 0xC01DFACE leirta.