SendClientMessage ne salje poruku

Započeo Qiyamet, Maj 06, 2022, 15:05:08 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Opis problema: napravio sam stock za slanje poruke rcon adminu, medjutim cim je poruka malo duza uopste se ne posalje. ( a u slucaju da klasicnim putem formatiram string i saljem poruku, posalje se bez problema, a iste je duzine ).
Dio skripte : stock SendClientMessageToRCON(message[])   {
            new string[256];
            for (new i = 0; i < MAX_PLAYERS; i++ )   {
               if( IsPlayerConnected(i) )   {
                  if( IsPlayerAdmin(i) )   {
                     format(string, sizeof(string), ""color_yellow"*** ( RCON Chat ) "color_gray"%s"color_yellow".", message);
                     SendClientMessage(i, -1, string);
                  }
               }
            }
            return 1;
         }

Slika/Video://
Poslednja Izmena: Maj 07, 2022, 17:45:39 POSLE PODNE od Deleted User
Alen Hadzimustafic

256   :D
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.


Nema smisla davati toliki size stringu, jer chat message je max 128 karaktera. Ako je poruka veća od 128 karaktera, onda se neće ni poslati.
• Website: www.vasic.dev
Web Development & Cyber Security

Citat: Vasic poslato Maj 06, 2022, 15:23:28 POSLE PODNE
Nema smisla davati toliki size stringu, jer chat message je max 128 karaktera. Ako je poruka veća od 128 karaktera, onda se neće ni poslati.
Pokusao sam i sa 128 velicinom, meni je problem sto ako poruku saljem bez ovog stocka, samo sa stringom i formatiranjem tog stringa, poruka se posalje. Ista takva poruka koju saljem sa ovim stockom se nece poslat. Desave mi se taj problem i sa Error porukom ( stockom ) koji sam napravio na istom principu. Izludjuje me vec 3 dana ne znam kako da rijesim to.
stock SendErrorMessage(playerid, message[]) {
new string[128];
format(string, sizeof(string), ""color_error"( Error ) "color_white"%s"color_gray", "color_gray"%s"color_gray".", PlayerNameFromID(playerid), message);
SendClientMessage(playerid, -1, string);
return 1;
}
Poslednja Izmena: Maj 06, 2022, 15:26:50 POSLE PODNE od Qiyamet
Alen Hadzimustafic

Citat: Vasic poslato Maj 06, 2022, 15:23:28 POSLE PODNE
Nema smisla davati toliki size stringu, jer chat message je max 128 karaktera. Ako je poruka veća od 128 karaktera, onda se neće ni poslati.
Input je 128, output je 144+1(null)

SendClientMessage funkcija nece poslati poruku ukoliko je string veci od 144 karaktera - https://open.mp/docs/scripting/functions/SendClientMessage

Direktan odgovor na tvoj problem je da stavis string da je 144.


Takodje, embeded boje u samp-u funkcionisu tako sto koristis RRGGBB boju u hexadecimalnom zapisu gde svaki hexadecimalni karakter je jedan karakter u stringu, i to se ubacuje izmedju {} zagrada. Znaci 2 zagrade i 6 karaktera hexadecimalnog zapisa = 8 karaktera svaki put kad iskoristis jednu boju.
U slucaju sa ""color_yellow"*** ( RCON Chat ) "color_gray"%s"color_yellow"." Pre nego sto ubacis text u format imas color_yellow (8 karaktera) , rcon chat kao text (17 karaktera) , i color gray (8 karaktera). Znaci 33 karaktera si potrosio jos pre nego sto si ubacio message. I nakon toga imas jos 8 karaktera boje i jedan karakter koji je tacka znaci jos 9 sto je ukupno 42 bez message. Tako da si trecinu poruke iskoristio samo na formatiranje.

Citat: Deleted User poslato Maj 06, 2022, 18:21:03 POSLE PODNE
SendClientMessage funkcija nece poslati poruku ukoliko je string veci od 144 karaktera - https://open.mp/docs/scripting/functions/SendClientMessage

Direktan odgovor na tvoj problem je da stavis string da je 144.


Takodje, embeded boje u samp-u funkcionisu tako sto koristis RRGGBB boju u hexadecimalnom zapisu gde svaki hexadecimalni karakter je jedan karakter u stringu, i to se ubacuje izmedju {} zagrada. Znaci 2 zagrade i 6 karaktera hexadecimalnog zapisa = 8 karaktera svaki put kad iskoristis jednu boju.
U slucaju sa ""color_yellow"*** ( RCON Chat ) "color_gray"%s"color_yellow"." Pre nego sto ubacis text u format imas color_yellow (8 karaktera) , rcon chat kao text (17 karaktera) , i color gray (8 karaktera). Znaci 33 karaktera si potrosio jos pre nego sto si ubacio message. I nakon toga imas jos 8 karaktera boje i jedan karakter koji je tacka znaci jos 9 sto je ukupno 42 bez message. Tako da si trecinu poruke iskoristio samo na formatiranje.
Konacno neko ko razumije srz problema, hvala ti brate. Fixo si mi problem. Lock cu temu
Alen Hadzimustafic