Szerző Téma: /say - Levágja a szöveg végét  (Megtekintve 2226 alkalommal)

/say - Levágja a szöveg végét
« Dátum: 2013. április 10. - 11:41:42 »
0 Show voters
Halihó, olyan gond lenne az alábbi scripttel, hogy ha kicsivel hosszabb szöveget írok pl.
\"mindenki vegyen magához fegyvert és szálljon be egy gépjármûbe\"
akkor a fegyvert résznél levágja a szöveget, s nem jeleníti meg a többit.
 
CMD:say(playerid, params[])
{
    new beszelo[MAX_PLAYER_NAME], string[512];
    GetPlayerName(playerid, beszelo, sizeof(beszelo));
    if(sscanf(params, \"s\", params[0])) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /say [szöveg]\");
    format(string, sizeof(string), \"{ABCDEF}%s {375FFF}katonatiszt mondja: {FF9900}%s\", beszelo, params[0]);
    return SendClientMessageToAll(0xB3D5B2AA,string);
}

 
Mi lehet a probléma?  :hmmm: Esetleg tud valaki hasonló, példa scriptet adni?
Köszönöm elõre is!
« Utoljára szerkesztve: 2013. április 10. - 14:20:44 írta Bloodest44 »

/say - Levágja a szöveg végét
« Válasz #1 Dátum: 2013. április 10. - 12:17:39 »
0 Show voters
Mert túl lépi az egy üzenetben megjeleníthetõ maximális karakterek számát, mely hol 128 vagy 144.

/say - Levágja a szöveg végét
« Válasz #2 Dátum: 2013. április 10. - 14:03:53 »
0 Show voters
Na de pl. ezt kiírja teljes egészében, és kihasználja rendesen a chatsort:
 
format(string, sizeof(string), \"{FF0606}(Felszólítás) {FFFF00}%s (ID: %d) {FF9900}Azonnal vonuljon be a 2-es számú katonai bázisra, csomagellenõrzés céljából!\", giveplayer, giveplayerid);
SendClientMessageToAll(COLOR_GREEN, string);

 
 :shurg:
« Utoljára szerkesztve: 2013. április 10. - 14:06:20 írta Bloodest44 »

Nem elérhető ][Fo[R]cE][

  • 86
  • SAJT!
    • Profil megtekintése
/say - Levágja a szöveg végét
« Válasz #3 Dátum: 2013. április 10. - 14:11:46 »
0 Show voters
Ajánlom neked:
 
CMD:say(playerid, params[])
{
    new beszelo[MAX_PLAYER_NAME], string[1900];
    GetPlayerName(playerid, beszelo, sizeof(beszelo));
    if(sscanf(params, \"s\", params[0])) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /say [szöveg]\");
    format(string, sizeof(string), \"{ABCDEF}%s {375FFF}katonatiszt mondja: {FF9900}%s\", beszelo, params[0]);
    return SendClientMessageToAll(0xB3D5B2AA,string);
}

 
Itt a \"string[512]\"-nek a string ketrecet kellett feljebb vinni.

/say - Levágja a szöveg végét
« Válasz #4 Dátum: 2013. április 10. - 14:31:24 »
0 Show voters
Nem jó. Azt írja szerveren, hogy unknown commands :no:

Nem elérhető Gabor..

  • 1883
  • Gabor..
    • Profil megtekintése
/say - Levágja a szöveg végét
« Válasz #5 Dátum: 2013. április 10. - 14:37:32 »
0 Show voters
[Lo_.\" post=413017\" timestamp=\"1365595906]
Ajánlom neked:
 
CMD:say(playerid, params[])
{
    new beszelo[MAX_PLAYER_NAME], string[1900];
    GetPlayerName(playerid, beszelo, sizeof(beszelo));
    if(sscanf(params, \"s\", params[0])) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /say [szöveg]\");
    format(string, sizeof(string), \"{ABCDEF}%s {375FFF}katonatiszt mondja: {FF9900}%s\", beszelo, params[0]);
    return SendClientMessageToAll(0xB3D5B2AA,string);
}

 
Itt a \"string[512]\"-nek a string ketrecet kellett feljebb vinni.
 
[/quote]Hiába növeled a karakterlánc celláinak a számát, ha a SAMP-ban a maximális megjeleníthetõ karakterek száma, színkódokkal együtt 128, avagy 144(felbontás függõ).

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/say - Levágja a szöveg végét
« Válasz #6 Dátum: 2013. április 11. - 06:43:41 »
+1 Show voters
[Lo_.\" post=413017\" timestamp=\"1365595906]
Ajánlom neked:
 
CMD:say(playerid, params[])
{
    new beszelo[MAX_PLAYER_NAME], string[1900];
    GetPlayerName(playerid, beszelo, sizeof(beszelo));
    if(sscanf(params, \"s\", params[0])) return SendClientMessage(playerid, COLOR_YELLOW, \"Használat: /say [szöveg]\");
    format(string, sizeof(string), \"{ABCDEF}%s {375FFF}katonatiszt mondja: {FF9900}%s\", beszelo, params[0]);
    return SendClientMessageToAll(0xB3D5B2AA,string);
}

 
Itt a \"string[512]\"-nek a string ketrecet kellett feljebb vinni.
 
[/quote]
még az 512 is túl sok!!!
Ezt a \"ketrec\" dolgot szerintem Zyzu leírásából vetted...olvasd el ott a kommentemet is :) van 1 tömböd és annak cellái vannak...ez nem állatkert :D de ha tévednék akkor bocs :D
45+20+128-1-5+1=188 ennyi lehetne max ennek a szövegnek a hossza...
45 = {ABCDEF} {375FFF}katonatiszt mondja: {FF9900}
20 = Játékos Max név hossza ( nem 24! )
128 = Max Parancs szöveg hossz
-1 = String végét jelzõ karakter
-5 = \"/say \"
1 = String végét jelzõ karakter
de a chatbe nem tudsz ennyi karaktert megjeleníteni 1 SORBAN ! ezért kell törni és 2 sorban küldeni az üzenetet :)
de lehetne spórolni a karakterekkel :)
szöveg elejére tök felesleges ez: {ABCDEF}
 
SendClientMessageToAll(0xB3D5B2AA,string);

 
0xB3D5B2AA helyett RGBA-ba átalakítva kell megadni és máris 8 karakterrel kevesebb :)
Mondjuk itt nem a színezés a gond mivel azt nem jeleníti meg a chatben mint karaktereket...
Végeztem 1 tesztet...



Az 1. sort megjelenítette a 2.-at már nem...
1. sor: 140 karakter
2. sor: 148 karakter
Szóval ha 2 sorba akarod törni, a karakterek számát kell figyelembe venni és nem a megjelenítettet !
 
SendClientMessage(playerid,0xFF6600FF,\"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\");
SendClientMessage(playerid,0xFF6600FF,\"{FFFFFF}12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\");
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal