Skocz do zawartości
qwerty

[Rozwiązane] error 092: number of arguments does not match definition

Rekomendowane odpowiedzi

Witam!
Jestem zielony w sourcepawnie także ten.. XD

Do poniższego pluginu chcę dodać pobieranie UserID do zmiennej, lecz przy kompilacji mam takie błędy:

plugin.sp(54) : error 092: number of arguments does not match definition
plugin.sp(54) : error 092: number of arguments does not match definition

Z czego co się dowiedziałem w internecie to jest chyba za dużo argumentów w GetClientUserId.

I moim problemem jest to, że nie mam pomysłu jak pobrać UserID do zmiennej.

 

//TU też jest kod

public Action cmdPlayerList(int client, int args)
{
	char sName[MAX_NAME_LENGTH + 1];
	char sSteamId[32];
	char sIPAddress[32];
	char sCountry[32];
	char sCode[4];
	char sUserId[16];
	Format(sName, sizeof(sName), "Nick");
	Format(sSteamId, sizeof(sSteamId), "SteamID");
	Format(sIPAddress, sizeof(sIPAddress), "IP");
	Format(sCountry, sizeof(sCountry), "Kraj");
	Format(sUserId, sizeof(sUserId), "UserID");
	
	PrintToConsole(client, "+------------------------------------------------------------------------+");
	PrintToConsole(client, "#  #%s %-21s %-16s %-10s %s", sUserId, sSteamId, sIPAddress, sCountry, sName);
	PrintToConsole(client, "+------------------------------------------------------------------------+");
	int iCount;
	bool bFind;
	for (int iPlayer = 1; iPlayer <= MaxClients; iPlayer++)
	{
		if (IsClientInGame(iPlayer) && !IsFakeClient(iPlayer))
		{
			iCount++;
			GetClientIP(iPlayer, sIPAddress, sizeof(sIPAddress));
			GetClientAuthId(iPlayer, AuthId_Steam2, sSteamId, sizeof(sSteamId));
			bFind = GeoipCode3(sIPAddress, sCode);
			GetClientOfUserId(iPlayer, sUserId, sizeof(sUserId));
			if (!bFind)
			{
				Format(sCountry, sizeof(sCountry), "Nie znaleziono");
				PrintToConsole(client, "%d. #%s %-21s %-16s %-10s %N", iCount, sUserId, sSteamId, sIPAddress, sCountry, iPlayer);
			}
			else
			{
				PrintToConsole(client, "%d. #%s %-21s %-16s %-10s %N", iCount, sUserId, sSteamId, sIPAddress, sCode, iPlayer);
			}
		}
	}
	PrintToConsole(client, "+------------------------------------------------------------------------+");
  
  // Jakiś tam kod

Error występuje w GetClientOfUserId(iPlayer, sUserId, sizeof(sUserId));

Edytowane przez qwerty

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zacznijmy do czego ci to? Po drugie treść błędu wskazuje że masz dodaną zmienną która nigdzie nie jest zadeklarowana 

Przez Vasto_Lorde,

Dla klaryfikacji: number of arguments does not match definition = liczba argumentów użytych w kodzie nie pasuje liczbie argumentów w definicji używanej funkcji //////////////// Co znaczy tylko i wyłącznie to, że autor użył jakiejś funkcji i w nawiasie po nazwie funkcji podał za dużo lub za mało argumentów

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pobierasz gracza po jego userid i później wypisujesz jego userid? Źle to robisz.
Myślę, że chcesz pobrać USERID gracza, a nie GRACZA po USERID.
int userid = GetClientUserId(iPlayer);
Jeżeli chcesz pobrać gracza po UserID robisz int client = GetClientOfUserId(userid); // Pierw musisz pobrać userid.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
5 minut temu, szogun napisał:

Zacznijmy do czego ci to? Po drugie treść błędu wskazuje że masz dodaną zmienną która nigdzie nie jest zadeklarowana 

 

Ogólnie ta wtyczka bez pobierania userid działa bardzo dobrze tylko, że ja jeszcze dostałem zachcianki aby dodać tam UserID

 

Ogólnie ta wtyczka ma na celu stworzenia listy graczy z ich IP, SID, Kraj itd. 

I wiem, że komenda "status" robi prawie to samo.

 

 

8 minut temu, Brum Brum napisał:

Pobierasz gracza po jego userid i później wypisujesz jego userid? Źle to robisz.
Myślę, że chcesz pobrać USERID gracza, a nie GRACZA po USERID.
int userid = GetClientUserId(iPlayer);
Jeżeli chcesz pobrać gracza po UserID robisz int client = GetClientOfUserId(userid); // Pierw musisz pobrać userid.

 

Znaczy, ja chciałem dać userid do zmiennej aby potem te userid wyświetliło się w PrintToConsole.

	PrintToConsole(client, "#  #%s %-21s %-16s %-10s %s", sUserId, sSteamId, sIPAddress, sCountry, sName);

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zamiast GetClientOfUserId(iPlayer, sUserId, sizeof(sUserId));
int userid = GetClientUserId(iPlayer);

w PrintToConsole zamiast %s robisz %d sUserId zamieniasz na userid

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
31 minut temu, Brum Brum napisał:

zamiast GetClientOfUserId(iPlayer, sUserId, sizeof(sUserId));
int userid = GetClientUserId(iPlayer);

w PrintToConsole zamiast %s robisz %d sUserId zamieniasz na userid

Dziękuję! Działa jak trzeba. :)
Można zamknąć

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie.

 

Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...