Szerző Téma: [TUT] Színezett szöveg (0.3c)  (Megtekintve 3061 alkalommal)

Nem elérhető Y2K

  • 488
    • Profil megtekintése
[TUT] Színezett szöveg (0.3c)
« Dátum: 2011. március 15. - 19:29:37 »
0 Show voters
Íme, újra írásra szántam magam, s ezúttal a színek szövegésével (OMFG; reggel van) szövegek színezésével fogok foglalkozni. Alapvetõen a dolog nem nehéz, de hátha akad valaki, aki még nem ismeri. Szeretném megjegyezni, hogy ez csakis a 0.3c verzióban mûködik!
Magát a színt a kiírandó szövegbe kell beilleszteni {RRGGBB} formában. Az eddig használt integer típusban mentett színek 0xRRGGBBAA formátumban vannak mentve, így, ha megszeretnénk kapni egy szín beillesztendõ kódját, elég levenni a 0x-et (hex elõtag), illetve az utolsó két számot (alpha komponens), illetve hozzáadni a { és } jeleket.
Konkrét példa:
Kiírandó szöveg: Y2K
 
SendClientMessageToAll(0xF81414AA, \"Y{FFAF00}2{6EF83C}K\");

 
Hát ez így great! Kicsit még magyaráznék, utána jön egy kis trükk... Az Y-nak nem adtam meg még egyszer a színét, hiszen a függvény elsõ paramétere a kezdõszínt adja, azaz, amivel a szöveg legeleje kiíródik. Ha esetleg nekünk így nem tetszene, a következõ a megoldás:
 
SendClientMessageToAll(-1, \"{F81414}Y{FFAF00}2{6EF83C}K\");

 
Remélem érthetõ! Most vetõdik fel a kényelmetlenség: mi történik, ha neadj\'isten 1000 karakteres szöveget szeretnénk kiszínezni. Oda-vissza ugráljuk a kódban, ki-be másolgatva a színkódokat? Íme a trükkje: definiálni kell a színkódokat, nem megfeledkezve a { és } jelekrõl, pl.:
 
#define TC_RED {F81414}
#define TC_ORANGE {FFAF00}
#define TC_GREEN {6EF83C}

 
Most a definiált színkódokat be tudjuk illeszteni, ha lezárjuk a szöveget (\" karakterrel), odaírjuk a definiált nevet, majd újra megnyitjuk a szöveget és írjuk tovább, pl.:
 
SendClientMessageToAll(-1, \"\"#TC_RED\"Y\"#TC_ORANGE\"2\"#TC_GREEN\"K\");

 
Máris sokkal átláthatóbbak a színek, és egyszerûbb is õket létrehozni!
 
SendClientMessageToAll(-1, \"\"#TC_RED\"KÖSZÖNÖM A FIGYELMET! #\"TC_GREEN\"KÉRDÉSEK?\");
« Utoljára szerkesztve: 2011. március 17. - 19:32:42 írta Y2K »

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[TUT] Színezett szöveg (0.3c)
« Válasz #1 Dátum: 2011. március 15. - 19:55:21 »
0 Show voters
Hibás a leírás.
« Utoljára szerkesztve: 2011. március 17. - 19:10:02 írta ScreaM »

[TUT] Színezett szöveg (0.3c)
« Válasz #2 Dátum: 2011. március 16. - 23:38:59 »
0 Show voters
Szép leírás de én próbáltam alkalmazni az itt leírt definiciós megoldást de csak hibákat kaptam.
 

#include <a_samp>
#define TC_RED {F81414}
#define TC_ORANGE {FFAF00}
#define TC_GREEN {6EF83C}
public OnFilterScriptInit()
{
SendClientMessageToAll(-1, \"\"TC_RED\"Y\"TC_ORANGE\"2\"TC_GREEN\"K\");
return 1;
}

 


teszt.pwn(9) : error 001: expected token: \"-string end-\", but found \"-identifier-\"
teszt.pwn(9) : error 017: undefined symbol \"F81414\"
teszt.pwn(9) : warning 217: loose indentation
teszt.pwn(9) : error 029: invalid expression, assumed zero
teszt.pwn(9) : fatal error 107: too many error messages on one line

 
Az általam ismert megoldás az, hogy karakterláncként kell definiálni a szöveg színezéséhez való kódokat.
 

#include <a_samp>
#define TC_RED \"{F81414}\"
#define TC_ORANGE \"{FFAF00}\"
#define TC_GREEN \"{6EF83C}\"
public OnFilterScriptInit()
{
SendClientMessageToAll(-1, \"\"#TC_RED\"Y\"#TC_ORANGE\"2\"#TC_GREEN\"K\");
return 1;
}

[TUT] Színezett szöveg (0.3c)
« Válasz #3 Dátum: 2011. március 17. - 07:00:04 »
0 Show voters
Ez egy full sz4r leírás, ami televan hibákkal.

[TUT] Színezett szöveg (0.3c)
« Válasz #4 Dátum: 2011. március 17. - 15:39:00 »
0 Show voters
Valóban rossz, a definíciós színezés így mûködik:
 
#define TC_RED F81414
#define TC_ORANGE FFAF00
#define TC_GREEN 6EF83C
public OnFilterScriptInit()
{
   SendClientMessageToAll(-1, \"{\"#TC_RED\"}Y{\"#TC_ORANGE\"}2{\"#TC_GREEN\"}K\");
   return 1;
}

Nem elérhető Y2K

  • 488
    • Profil megtekintése
[TUT] Színezett szöveg (0.3c)
« Válasz #5 Dátum: 2011. március 17. - 19:32:01 »
0 Show voters
Kimaradt pár # jel! ;D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal