←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CS:GO
[ROZWIĄZANE] Top15 w oparciu o zapis SqlLite

Locked

  • +
  • -
Linux''s Photo Linux' 13.06.2015

Moja modyfikacja korzysta z zapisu z tego coda http://amxx.pl/topic...odmod-dla-csgo/ i teraz taki problem, że chciałbym utworzyć top15 pod względem np poziomów ale moja wiedza na temat zapisu jest nikła. Proszę o pomoc, niżej załączam wyciągnięty public odpowiedzialny za zapis i wczytywanie poziomów.


public saveToDB(id)
{
	new String:tmp[1025];
	decl String:authid[64];
	if(!GetClientAuthId(id, AuthId_Steam2, authid, 63))
		return -1;

	Format(tmp, sizeof(tmp), "INSERT INTO codmod (steamid, class, lvl, exp, sPoints, sInt, sCon, sStr, sDex) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d);", authid, className[playerClass[id]], playerLvl[id], playerExp[id], playerPoints[id], playerInt[id], playerCon[id], playerStr[id], playerDex[id]);
	if(!SQL_FastQuery(sql, tmp))
	{
		SQL_GetError(sql, dbError, sizeof(dbError))
		PrintToServer("Failed to INSERT query (error: %s)", dbError)
		return 1;
	}

	return 0;
}
public readClassFromDB(id, classN)
{
	new String:tmp[513];
	decl String:authid[64];
	if(!GetClientAuthId(id, AuthId_Steam2, authid, 63))
		return -1;

	Format(tmp, sizeof(tmp), "SELECT lvl, exp, sPoints, sInt, sCon, sStr, sDex FROM codmod WHERE steamID = '%s' AND class = '%s';", authid, className[classN]);
	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 0;
	}
	if(SQL_GetRowCount(query))
	{
		playerLvl[id] = SQL_FetchInt(query, 0);
		playerExp[id] = SQL_FetchInt(query, 1);
		playerPoints[id] = SQL_FetchInt(query, 2);
		playerInt[id] = SQL_FetchInt(query, 3);
		playerCon[id] = SQL_FetchInt(query, 4);
		playerStr[id] = SQL_FetchInt(query, 5);
		playerDex[id] = SQL_FetchInt(query, 6);
	}
	else
	{
		playerLvl[id] = 1;
		playerExp[id] = 0;
		playerPoints[id] = 0;
		playerInt[id] = 0;
		playerCon[id] = 0;
		playerStr[id] = 0;
		playerDex[id] = 0;
	}

	CloseHandle(query)
	return 1;
}
Quote

  • +
  • -
plx211's Photo plx211 14.06.2015

To zapytanie zwróci ci 15 rekordów z największym expem (nie testowane):
SELECT * FROM codmod ORDER BY exp DESC LIMIT 15;
Po wykonaniu zapytania, będziesz musiał przenieść sobie wynik do zmiennych, jak to zrobić dowiesz się z api i z https://wiki.alliedm...ceMod_Scripting) (Processing result)
Quote

  • +
  • -
DarkGL's Photo DarkGL 15.06.2015

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked