
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.


Dodatki SourceMod















