Witam, mam takie pytanko na temat SQL w pluginie.
Piszę swój własny serwer, a razem z nim własne pluginy, mam pewien problem z MySQL otóż:
stock PrintToAdminChat(char string[128]) { for (new p = 1; p <= GetMaxClients(); p++) { if(!IsClientConnected(p)) continue; if(IsFakeClient(p)) continue; if(IsClientAdmin(p) < 1) continue; PrintToChat(p,string); } }
zrobiłem taką funkcję, która printuje text tylko do adminów, ale spójrzcie jak mam to zrobione
int IsClientAdmin(int client) { char clientSerial[64]; GetClientAuthId(client, AuthId_Steam2, clientSerial, sizeof(clientSerial)); char query[128]; Format(query,sizeof(query),"SELECT `level` FROM `as_admins` WHERE `steamid`='%s' AND `level`>='%d'",clientSerial,LEVEL_TEST_ADMIN); //DBResultSet r = SQL_Query(db,query); SQL_TQuery(db, SQL_IsClientAdmin, query);}
public SQL_IsClientAdmin(Handle:owner, Handle:hndl, const String:error[], any:data) { if (!SQL_GetRowCount(hndl)) { return 0; } if (!SQL_FetchRow(hndl)) { return 0; } adminlvl = SQL_FetchInt(hndl, 0); return adminlvl; }
To mi kompletnie nie chce zadziałać, ponieważ w funkcji PrintToAdminChat mam sprawdzanie funkcji isPlayerAdmin, a dane returnują się dopiero w publicu SQL_IsClientAdmin i nie działa warunek. Jak mogę zrobić to inaczej?