Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Problem z wyświetlaniem nicku w motd


Najlepsza odpowiedź Robiin, wczoraj, 18:33

Divider nie będzie miał znaczenia w nicku, bo zapisane dane rozdzielasz wtedy funkcją split a nie parse. Wtedy dzielisz tylko stringa "5#Moj nick" na dwie części (lewą i prawą, bazując na "#"). Także w efekcie dostajesz dwa nowe stringi: "5" i "Moj nick".

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 Maliko

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:4
  • Imię:Andrzej
Offline

Napisano 21.08.2025 20:10

Witam, mam taki problem z wyswietlaniem nicku w motd bo go ucina, jest duży zapas a jest np niick Twoj Nick i pisze w tabeli tylko Twoj

ogolnie to chce zrobic top15 przy pomocy nvault_util , wszystko dziiala, ale ucina nick :/
w navult zapisuje nick gracza dodatkowo (jesli jest steam) a potem go odczytuje
 

	
	new szMOTD[1536], pos;
	pos = formatex(szMOTD, charsmax(szMOTD),
	"<body bgcolor=#000000><pre><font color=#FFFFFF>%s^n^n", szTytul);
	
	new iLimit = min(iCount, 15);
	for(iRow = 0; iRow < iLimit; iRow++)
	{
		nvault_util_read(iVault, iSort[iRow][Offset], szKey, charsmax(szKey), data, charsmax(data));
		
		parse(data,
		szPunkty, charsmax(szPunkty),
		szNick, charsmax(szNick)
		);
		
		new szKolor[7];
		if(iRow == 0)
		{
			szKolor = "FFD700";
		}
		else if(iRow == 1)
		{
			szKolor = "C0C0C0";
		}
		else if(iRow == 2)
		{
			szKolor = "CD7F32";
		}
		else
		{
			szKolor = "FFFFFF";
		}
		
		if(iKolumna == 0)
		{
			new iRank = 0;
			while(iRank < 20 && iSort[iRow][Value] >= rankPoints[iRank]) iRank++;
			iRank = max(iRank - 1, 0);
			
			pos += formatex(szMOTD[pos], charsmax(szMOTD) - pos,
			"<font color=#%s>%2d. %-25s	%-25s %4d</font>^n",
			szKolor, iRow+1, szNick, rankNames[iRank], iSort[iRow][Value]);
		}
		else if(iKolumna == 1) 
		{
			new iTotalSec = iSort[iRow][Value];
			new iDni = iTotalSec / 86400;
			new iGodz = (iTotalSec % 86400) / 3600;
			new iMin = (iTotalSec % 3600) / 60;
			
			pos += formatex(szMOTD[pos], charsmax(szMOTD) - pos,
			"<font color=#%s>%2d. %-25s	%d dni, %d h i %d min</font>^n",
			szKolor, iRow+1, szNick, iDni, iGodz, iMin);
		}
		else
		{
			pos += formatex(szMOTD[pos], charsmax(szMOTD) - pos,
			"<font color=#%s>%2d. %-25s	%4d</font>^n",
			szKolor, iRow+1, szNick, iSort[iRow][Value]);
		}
	}
	
	formatex(szMOTD[pos], charsmax(szMOTD) - pos, "</pre></font></body>");
	show_motd(id, szMOTD, szTytul);
	
	nvault_util_close(iVault);
}

Użytkownik Maliko edytował ten post 21.08.2025 20:15

  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 122
Super Hero

  • Postów:2 075
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 22.08.2025 22:04

Zakładam, że funkcja parse łapie spacje w nicku jako osobny token, a ty zapisujesz dane przykładowo tak (dla nicku "Twoj nick" i punktów 5) "5 Twoj nick", więc parse łapie 3 tokeny: 5, Twoj, nick. Musisz zapisywać/odczytywać dane w jakiś inny sposób, np. oddzielać jakimś kluczem (przykładowo #).


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 Maliko

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:4
  • Imię:Andrzej
Offline

Napisano wczoraj, 15:34

Zakładam, że funkcja parse łapie spacje w nicku jako osobny token, a ty zapisujesz dane przykładowo tak (dla nicku "Twoj nick" i punktów 5) "5 Twoj nick", więc parse łapie 3 tokeny: 5, Twoj, nick. Musisz zapisywać/odczytywać dane w jakiś inny sposób, np. oddzielać jakimś kluczem (przykładowo #).

a co jeśli ktoś bedzie mial w nicku # ? :)


  • +
  • -
  • 0

#4 Robiin

    Godlike

  • Support Team

Reputacja: 1 122
Super Hero

  • Postów:2 075
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano wczoraj, 18:33   Najlepsza odpowiedź

Divider nie będzie miał znaczenia w nicku, bo zapisane dane rozdzielasz wtedy funkcją split a nie parse. Wtedy dzielisz tylko stringa "5#Moj nick" na dwie części (lewą i prawą, bazując na "#"). Także w efekcie dostajesz dwa nowe stringi: "5" i "Moj nick".


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych