←  Tutoriale

AMXX.pl: Support AMX Mod X i SourceMod

»

CS:GO
CodMod_Stary - Dodanie codtop15 i codranku

  • +
  • -
Linux' - zdjęcie Linux' 08.08.2015

opis

 

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.

Odpowiedz