Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
CS:GO

Cmod, lvl znika lub ktoś dostaje z nikąd.Cmod Core

cs:go core cmod

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 rekowiesz

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:51
  • Imię:Rafik
Offline

Napisano 22.06.2016 13:24

Witam.

 

Mam problem z lvl na moim COD. Ludziom czasami lvl znika a niektórzy po prostu dostają znikąd lvl (Pewnie czyjś się kopiuje).

Jest to strasznie problematyczne.

 

Czy ktoś wie jak to naprawić???

 

Tutaj zapodaję jak wygląda mój sql.inc

#define SQL_SYS

stock Module:g_moduleSQLSys;

public SQLSys_OnPluginStart(){
	new moduledata[ModuleData];
	
	moduledata[ModuleData_Disabled] = false;
	moduledata[ModuleData_Hidden] = true;
	strcopy(moduledata[ModuleData_FullName], MM_DATA_FULLNAME, "[Cmod:core] Save data system");
	strcopy(moduledata[ModuleData_ShortName], MM_DATA_SHORTNAME, "SQLSys");
	strcopy(moduledata[ModuleData_Description], MM_DATA_DESCRIPTION, "Basic save system");
	moduledata[ModuleData_Dependencies][0] = INVALID_MODULE;
	
	g_moduleSQLSys = ModuleMgr_Register(moduledata);
	
	EventMgr_RegisterEvent(g_moduleSQLSys, "Event_OnEventsRegister", "SQLSys_OnEventsRegister");
	
	g_hCmodSQL = SQLite_UseDatabase("codmod_lvl", g_sCmodSQLError, sizeof(g_sCmodSQLError));
	if(g_hCmodSQL == INVALID_HANDLE)
		PrintToServer("Could not connect: %s", g_sCmodSQLError);
	
	SQL_FastQuery(g_hCmodSQL, "CREATE VIRTUAL TABLE IF NOT EXISTS codmod_info USING fts4(steamid, class);");
		
	SQL_FastQuery(g_hCmodSQL, "CREATE TABLE IF NOT EXISTS codmod (id INTEGER primary key autoincrement, steamid TEXT references codmod_info(steamid), class TEXT references codmod_info(class), lvl INTEGER, exp INTEGER, sInt INTEGER, sCon INTEGER, sStr INTEGER, sDex INTEGER, UNIQUE(steamid, class) ON CONFLICT REPLACE);");	
	
}

public SQLSys_OnEventsRegister(){
	#if defined EVENT_MANAGER	
		EventMgr_RegisterEvent(g_moduleSQLSys, "Event_OnClientPutInServer", "SQLSys_OnClientPutInServer");
		EventMgr_RegisterEvent(g_moduleSQLSys, "Event_OnClientDisconnect", "SQLSys_OnClientDisconnect");
	#endif
}

public SQLSys_OnClientPutInServer(client){
	g_iCmodPlayerClass[client] = 0;
	SQLSys_Load(client, 0);
}

public SQLSys_OnClientDisconnect(client){
	SQLSys_Save(client);
}

public SQLSys_Save(id)
{
	decl String:_tmp[1025];
	decl String:_authid[64];
	
	if(IsFakeClient(id))
		return;
		
	if(!GetClientAuthId(id, AuthId_Steam2, _authid, 63))
		return;
	
	//LogError("_auth = %s", _authid);
	
	Format(_tmp, sizeof(_tmp), "INSERT INTO codmod (steamid, class, lvl, exp, sInt, sCon, sStr, sDex) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d);", _authid, g_sCmodClassName[g_iCmodPlayerClass[id]], g_iCmodLvl[id], g_iCmodExp[id], g_iCmodPlayerINT[id], g_iCmodPlayerCON[id], g_iCmodPlayerSTR[id], g_iCmodPlayerDEX[id]);
	SQL_TQuery(g_hCmodSQL, SQLSys_SaveHandle, _tmp);
}

public SQLSys_SaveHandle(Handle:owner, Handle:hndl, const String:error[], any:data){
	if (hndl == INVALID_HANDLE){
		LogError("[Cmod:SQL:Save]Query failed! %s", error);
	}
}

public SQLSys_Load(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, sInt, sCon, sStr, sDex FROM codmod WHERE steamID = '%s' AND class = '%s';", _authid, g_sCmodClassName[classN]);
	new Handle:_query = SQL_Query(g_hCmodSQL, _tmp);
	
	if(_query == INVALID_HANDLE){
		SQL_GetError(g_hCmodSQL, g_sCmodSQLError, sizeof(g_sCmodSQLError));
		PrintToServer("Failed to readClassFromDB query (error: %s)", g_sCmodSQLError);
		return 0;
	}
	
	if(SQL_GetRowCount(_query)){
		g_iCmodLvl[id] = SQL_FetchInt(_query, 0);
		g_iCmodExp[id] = SQL_FetchInt(_query, 1);
		g_iCmodPlayerINT[id] = SQL_FetchInt(_query, 2);
		g_iCmodPlayerCON[id] = SQL_FetchInt(_query, 3);
		g_iCmodPlayerSTR[id] = SQL_FetchInt(_query, 4);
		g_iCmodPlayerDEX[id] = SQL_FetchInt(_query, 5);
		g_iCmodPlayerPoint[id] = (g_iCmodLvl[id]-1)*2-g_iCmodPlayerINT[id]-g_iCmodPlayerCON[id]-g_iCmodPlayerSTR[id]-g_iCmodPlayerDEX[id];
	}else{
		g_iCmodLvl[id] = 1;
		g_iCmodExp[id] = 0;
		g_iCmodPlayerPoint[id] = 0;
		g_iCmodPlayerINT[id] = 0;
		g_iCmodPlayerCON[id] = 0;
		g_iCmodPlayerSTR[id] = 0;
		g_iCmodPlayerDEX[id] = 0;
	}
	
	CloseHandle(_query);
	return 1;
}

public SQLSys_LoadLvl(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 FROM codmod WHERE steamID = '%s' AND class = '%s';", _authid, g_sCmodClassName[classN]);
	new Handle:_query = SQL_Query(g_hCmodSQL, _tmp);
	
	if(_query == INVALID_HANDLE){
		SQL_GetError(g_hCmodSQL, g_sCmodSQLError, sizeof(g_sCmodSQLError));
		PrintToServer("Failed to query readLvlClassFromDB (error: %s)", g_sCmodSQLError);
		return -2;
	}
	
	if(SQL_GetRowCount(_query)){
		new _r = SQL_FetchInt(_query, 0);
		CloseHandle(_query);
		return _r;
	}else{
		CloseHandle(_query);
		return 1;
	}
}


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cs:go, core, cmod

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych