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
 

DarkLink - zdjęcie

DarkLink

Rejestracja: 31.12.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 02.06.2015 21:44
-----

Moje tematy

[ROZWIĄZANE] Int i string w set_task, operacje na tablicach

23.04.2015 22:10

Witam, mam pewien problem, otóż edytowałem roundsound'a i dodałem do niego tutor, ale tutor zasłania ostatniego "killa" (te w prawym górnym rogu), więc chciałem dodać opóźnienie do wyświetlania tutora, ale nie wiem jak przesłać set_task'iem i integer'a i string'a. Dokładniejszym problemem dla mnie jest właśnie jak w jednego array'a zapisać i int i string i jak potem te zmienne wczytać do nowych zmiennych (int) iPlayer i (string) szText[256] z tegoż właśnie array'a po przesłaniu go set_taski'em. Próbowałem tak jak poniżej, ale iPlayer jest pusty, chociaż może tak pewnie być, a szText zawiera jeden znak. Więc prosiłbym o pomoc, a może ktoś ma inny, łatwiejszy pomysł na wykonanie tego? Chyba, że można set_task'iem przesłać tablicę wielowymiarową?

public showInfo(szFile[]){
	for(new iPlayer = 1 ; iPlayer <= maxPlayers ; iPlayer++ ){
		if(!is_user_connected( iPlayer ) || !playSoundOn[ iPlayer ]){
		continue;
	}
	new data[257];
	data[0] = iPlayer;
	data[1] = szFile[0];
	set_task(5.0, "showTutor", .parameter=data, .len=257, .flags="a", .repeat=1);
}
public showTutor(data[]){
	new iPlayer, szText;
	iPlayer = data[0];
	szText = data[1];
	tutorMake(iPlayer,TUTOR_GREEN,4.0,"%s", szText);
}

Z góry dziękuję za pomoc ;)

Błąd zapytania SQL

06.03.2015 17:38

Witam, kilka dni temu zacząłem się uczyć pisania pluginów, no i napotkałem problem przy sql, a dokładniej łączy mnie z bazą danych, ale nie mogę zwrócić żadnych wyników, a zwracany błąd to "HamFilter" i nie wiem o co dokładniej chodzi :/ Mam dosyć spore doświadczenie w pisaniu kodów, a przynajmniej rozumiem co i jak :D ale w PAWN'ie nigdy nie pisałem.

Oto kod:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <sqlx>

#define PLUGIN "Mysql"
#define VERSION "1.0"
#define AUTHOR "DarkLink"

new Handle:gTuple;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say test","CheckData",ADMIN_KICK,"Testuje polaczenie")
	gTuple = SQL_MakeDbTuple("host","uzytkownik","haslo","baza")
}

public CheckData(id){

new Data[1]
Data[0] = id;
new qCommand[512], szName[32]
get_user_name(id, szName, charsmax(szName))
format(qCommand, sizeof qCommand-1, "SELECT * FROM `jml_cs_curskin` WHERE `nick` = '%s'", szName)
SQL_ThreadQuery(gTuple, "CheckHandler", qCommand, Data, 1)
}

public CheckHandler(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize)
{
new id = Data[0]
if(Errorcode)
log_amx("Blad w zapytaniu: %s [CheckData]", Error)

if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Nie mozna podlaczyc sie do bazy danych.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Zapytanie anulowane [CheckData]")
return PLUGIN_CONTINUE
}

if(!SQL_MoreResults(Query))
log_amx("Brak danych!")
else
{
new zwrot[1];
zwrot[0] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "userid"));
client_print(id,print_chat,zwrot[0])
}

return PLUGIN_CONTINUE
}

Natomiast zwracana wartość po wpisaniu w konsoli "say test" lub w say'u "test" to:

 

L 03/06/2015 - 17:16:50: [testsql.amxx] Blad w zapytaniu: HamFilter [CheckData]

Prosiłbym o pomoc :)

 

//Edit:

Zmieniając linijki od 53. do 55. na:

new szText[128];
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "userid"), szText, 127);
console_print(id,"Tekst: %s", szText)

Wyświetla mi

 

Tekst: 986

Czyli to co chciałem, ale nadal wyrzuca ten błąd w zapytaniu: HamFilter, nie wie ktoś o co chodzi?