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?


Dodatki SourceMod












