W tym tutku opisze w jaki sposob mozna dodac codtop15 oraz codrank do silnika.
Pierw gdzies na gorze dodajemy:
new String:top_string[1024];
Nastepnie szukamy:
public OnMapStart() {
i do srodka dodajemy:
WczytajTopke();
Przechodzimy teraz do:
public Action:Komendy(client, args) {
i gdzies w srodku dodajemy:
else if(strcmp(text, "/codtop15", false) == 0) Top15Serwera(client); else if(strcmp(text, "/codrank", false) == 0) RankSerwera(client);
Teraz juz tylko gdzies na dole wystarczy dodac:
public Action:RankSerwera(client) { if(klasa_gracza[client]) { new String:tmp[512]; new String:authid[64]; if(!GetClientAuthId(client, AuthId_Steam2, authid, sizeof(authid))) return; Format(tmp, sizeof(tmp), "SELECT count(xp) FROM codmod WHERE xp >= (SELECT xp FROM codmod WHERE steamid = '%s' AND klasa = '%s') ORDER BY xp;", authid, nazwy_klas[klasa_gracza[client]]); new Handle:query = SQL_Query(sql, tmp); new pozycja; if(query == INVALID_HANDLE) { SQL_GetError(sql, dbError, sizeof(dbError)); PrintToServer("Failed to INSERT query (error: %s)", dbError); return; } if(SQL_FetchRow(query)) pozycja = SQL_FetchInt(query, 0); PrintToChat(client, "[COD:MW] Twoja pozycja w CodRanku: %i miejsce - Wymagane: %i doswiadczenie do nastepnego poziomu.", pozycja, doswiadczenie_poziomu[poziom_gracza[client]]-doswiadczenie_gracza[client]); CloseHandle(query); } else PrintToChat(client, "[COD:MW] Musisz miec wybrana klase aby moc sprawdzic rank!"); } public Action:Top15Serwera(client) { PrintToConsole(client, top_string); PrintToChat(client, "[COD:MW] Lista CodTop15 Serwera zostala wyswietlona w twojej konsoli."); } public Action:WczytajTopke() { new String:tmp[512]; Format(tmp, sizeof(tmp), "SELECT lvl, xp, klasa, steamid FROM codmod ORDER BY xp DESC LIMIT 15;"); new Handle:query = SQL_Query(sql, tmp); if(query == INVALID_HANDLE) { SQL_GetError(sql, dbError, sizeof(dbError)); PrintToServer("Failed to readClassFromDB query (error: %s)", dbError); return; } new String:klasa[512]; new String:authid[64]; new poziom; new doswiadczenie; new len = Format(top_string, sizeof(top_string), "Lista CodTop15 Serwera:\nMiejsce | Steam | Klasa | Poziom | Doswiadczenie"); for(new i = 1; SQL_FetchRow(query); i ++) { poziom = SQL_FetchInt(query, 0); doswiadczenie = SQL_FetchInt(query, 1); SQL_FetchString(query, 2, klasa, sizeof(klasa)) SQL_FetchString(query, 3, authid, sizeof(authid)) len += Format(top_string[len], sizeof(top_string) - len, "\n%i. %s - %s - %i - %i", i, authid, klasa, poziom, doswiadczenie); } CloseHandle(query); }
I gotowe. Po wykonaniu powyzszej instrukcji powinienes otrzymac codtop15 oraz codrank po wpisaniu odpowiednich komend.
Podziekowania dla plx211 za pomoc przy tworzeniu kodu.