Skocz do zawartości
Gość

[Rozwiązane] Exception reported: Client index ******* is invalid (arg 5)

Rekomendowane odpowiedzi

Gość

Witajcie,

Mam void OnClientDisconnect w którym wykonuje się zapis SQL

		char query[1024], steamid[64], name[64];
		GetClientAuthId(client, AuthId_Steam3, steamid, sizeof(steamid));
		GetClientName(client, name, sizeof(name));
		DatabaseHandle.Format(query, sizeof(query), "... SET `... WHERE `steamid` = '%s';", ..., steamid);
		DatabaseHandle.Query(SavePlayerStatistics, query, GetClientUserId(client));

Lecz mam błąd

L 03/03/2019 - 00:46:46: [SM] Exception reported: Client index ******* is invalid (arg 5)

 

Spotkał się ktoś już tym błędem?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pokażesz cały kod erroru oraz wskażesz dokładną linię w kodzie? Error mówi że nieprawidłowy jest argument numer 5, gdzie do tych funkcji nie ma przekazywanych 5 argumentów, maksymalnie 4

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Przed chwilą, Vasto_Lorde napisał:

Pokażesz cały kod erroru oraz wskażesz dokładną linię w kodzie? Error mówi że nieprawidłowy jest argument numer 5, gdzie do tych funkcji nie ma przekazywanych 5 argumentów, maksymalnie 4 

Cytat

DatabaseHandle.Format(query, sizeof(query), "... SET `... WHERE `steamid` = '%s';", ..., steamid);

Błąd jest w formacie tylko nie rozumiem tego błędu

 

Cytat

L 03/03/2019 - 00:53:00: [SM] Exception reported: Client index 1769234765 is invalid (arg 5)

L 03/03/2019 - 00:53:00: [SM] Blaming: ****.smx

L 03/03/2019 - 00:53:00: [SM] Call stack trace:

L 03/03/2019 - 00:53:00: [SM] [0] Database.Format

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli byłby to error w SQL, błąd wywaliłoby dopiero po wykonaniu zapytania. Upewnij się że masz dokładnie tyle %s ile argumentów po zapytaniu. W samym formatowaniu możesz sobie wbijać do stringu jakiekolwiek chcesz rzeczy i nie powinno to sprawować żadnego problemu. Ewentualnie zamień wszystkie %s %i na %d ¯\_(ツ)_/¯ 

 

Bardziej kierowałbym się tym:

DatabaseHandle.Query(SavePlayerStatistics, query, GetClientUserId(client));

Jesteś pewien że w Query wysyła się GetClientUserId(client) a nie samego client?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość

Rozwiązane!

Zamiast

GetClientName(client, name, sizeof(name));

I %N

dałem %N i argument client

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Pomoc udzielona

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ę...