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
CoD Nowy

Statystyka obrażenia zapis SQL

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 Arbitralny

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:124
  • Imię:Adrian
  • Lokalizacja:Gdańsk
Offline

Napisano 04.08.2014 22:41

Po dodaniu nowej statystyki, usunięciu starej tabeli z bazy i restarcie serwera klasy działają normalnie aż do utworzenia się nowej tabeli, w której brakuje owej statystyki.

L 08/04/2014 - 22:17:19: [MySQL] Invalid column: -1
L 08/04/2014 - 22:17:19: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 08/04/2014 - 22:17:19: [AMXX] Run time error 10: native error (native "SQL_ReadResult")
L 08/04/2014 - 22:17:19: [AMXX]    [0] QTM_CodMod.sma::handleCacheDane (line 729)
public client_putinserver(id)
{
	for(new i=0; i<MAX_ILOSC_KLAS; i++)
	{
		lvl_klasy_gracza[id][i] = 1;
		xp_klasy_gracza[id][i] = 0;
		int_klasy_gracza[id][i] = 0;
		zdr_klasy_gracza[id][i] = 0;
		wyt_klasy_gracza[id][i] = 0;
		kon_klasy_gracza[id][i] = 0;
		obr_klasy_gracza[id][i] = 0;
	}
	gracz_zdobyl_expa[id] = 0;
	wczytane_dane[id] = false;
	
	UsunUmiejetnosci(id);
	
	get_user_name(id, nazwa_gracza[id], 63);
	replace_all(nazwa_gracza[id], 63, "'", "\'");
	replace_all(nazwa_gracza[id], 63, "`", "\`");
	
	new data[1], szTemp[256];
	data[0] = id;
	formatex(szTemp, 255, "SELECT * FROM `%s` WHERE name = '%s'", Tabela, nazwa_gracza[id]);
	SQL_ThreadQuery(hookSql, "handleCacheDane", szTemp, data, 1);
	
	UsunZadania(id);

	set_task(10.0, "PokazReklame", id+ZADANIE_POKAZ_REKLAME);
}

public handleCacheDane(failstate, Handle:query, error[], errnum, data[], size)
{
	if(failstate != TQUERY_SUCCESS)
	{
		log_amx("<Query> Error: %s", error);
		return;
	}
	new id = data[0];
	if(!is_user_connected(id) && !is_user_connecting(id))
		return;
	
	new szClass[32], int;
	while(SQL_MoreResults(query))
	{
		SQL_ReadResult(query, SQL_FieldNameToNum(query, "klasa"), szClass, 31);
		TrieGetCell(ClassName, szClass, int);
				
		lvl_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "level"));
		xp_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "xp"));
		int_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "intelligence"));
		zdr_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "health"));
		wyt_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "strength"));
		kon_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "stamina"));
		obr_klasy_gracza[id][int] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "damage"));

		SQL_NextRow(query);
	}
	wczytane_dane[id] = true;
	if(is_user_alive(id) && !g_rozgrzewka)
		WybierzKlase(id);
}

public ZapiszDane(id, level)
{
	if(!klasa_gracza[id] || !wczytane_dane[id])
		return;
		
	new szTemp[1024];
	formatex(szTemp, 1023, "UPDATE `%s` SET xp=(`xp` + %d), level=(`level` + %d), intelligence='%d', health='%d', strength='%d', stamina='%d', damage='%d WHERE name='%s' AND klasa='%s'", Tabela, 
		gracz_zdobyl_expa[id], level, inteligencja_gracza[id],
		zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], obrazenia_gracza[id],
		nazwa_gracza[id], nazwy_klas[klasa_gracza[id]]);
	
	doswiadczenie_gracza[id] += gracz_zdobyl_expa[id];
	gracz_zdobyl_expa[id] = 0;//wyzeruj expa po dodaniu do bazy zeby nie dawalo 2x tyle expa typowi
		
	lvl_klasy_gracza[id][klasa_gracza[id]] = poziom_gracza[id];
	xp_klasy_gracza[id][klasa_gracza[id]] = doswiadczenie_gracza[id];
	int_klasy_gracza[id][klasa_gracza[id]] = inteligencja_gracza[id];
	zdr_klasy_gracza[id][klasa_gracza[id]] = zdrowie_gracza[id];
	wyt_klasy_gracza[id][klasa_gracza[id]] = wytrzymalosc_gracza[id];
	kon_klasy_gracza[id][klasa_gracza[id]] = kondycja_gracza[id];
	obr_klasy_gracza[id][klasa_gracza[id]] = obrazenia_gracza[id];
	
	SQL_ThreadQuery(hookSql, "handleIgnore", szTemp);
}

public WczytajDane(id, klasa)
{
	if(!klasa || !wczytane_dane[id])
		return;
		
	gracz_zdobyl_expa[id] = 0;
	poziom_gracza[id] = max(1, lvl_klasy_gracza[id][klasa]);
	doswiadczenie_gracza[id] = xp_klasy_gracza[id][klasa];
	inteligencja_gracza[id] = int_klasy_gracza[id][klasa];
	zdrowie_gracza[id] = zdr_klasy_gracza[id][klasa];
	wytrzymalosc_gracza[id] = wyt_klasy_gracza[id][klasa];
	kondycja_gracza[id] = kon_klasy_gracza[id][klasa];
	obrazenia_gracza[id] = obr_klasy_gracza[id][klasa];

	punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-obrazenia_gracza[id];
	if(poziom_gracza[id] && !doswiadczenie_gracza[id])
	{
		doswiadczenie_gracza[id] = 1;
		xp_klasy_gracza[id][klasa] = 1;
		new szTemp[512];
		formatex(szTemp, 511, "INSERT INTO `%s` (`name`, `klasa`) VALUES ('%s', '%s')", Tabela, nazwa_gracza[id], nazwy_klas[klasa]);
		SQL_ThreadQuery(hookSql, "handleIgnore", szTemp);
	}
}

  • +
  • -
  • 0

#2 Arbitralny

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 9
Nowy

  • Postów:124
  • Imię:Adrian
  • Lokalizacja:Gdańsk
Offline

Napisano 04.08.2014 22:52

Poradziłem już sobie. Temat do zamknięcia.


  • +
  • -
  • 0

#3 freetu

    Wszechwiedzący

  • Power User

Reputacja: 71
Pomocny

  • Postów:505
  • Lokalizacja:Kwidzyn
Offline

Napisano 04.08.2014 23:26

może wstaw rozwiązanie? inaczej temat nigdy nikomu nie pomoże.


  • +
  • -
  • 0

#4 Arbitralny

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 9
Nowy

  • Postów:124
  • Imię:Adrian
  • Lokalizacja:Gdańsk
Offline

Napisano 05.08.2014 00:34

W public plugin_cfg() zamienić to:

formatex(szTemp, charsmax(szTemp), "CREATE TABLE IF NOT EXISTS `%s` (name VARCHAR(35) NOT NULL, klasa VARCHAR(64) NOT NULL, xp INT UNSIGNED NOT NULL DEFAULT 1, level INT UNSIGNED NOT NULL DEFAULT 1, PRIMARY KEY(name, klasa), ", Tabela);
	add(szTemp,  charsmax(szTemp), "intelligence INT UNSIGNED NOT NULL DEFAULT 0, health INT UNSIGNED NOT NULL DEFAULT 0, strength INT UNSIGNED NOT NULL DEFAULT 0, stamina INT UNSIGNED NOT NULL DEFAULT 0)");	

na to:

formatex(szTemp, charsmax(szTemp), "CREATE TABLE IF NOT EXISTS `%s` (name VARCHAR(35) NOT NULL, klasa VARCHAR(64) NOT NULL, xp INT UNSIGNED NOT NULL DEFAULT 1, level INT UNSIGNED NOT NULL DEFAULT 1, PRIMARY KEY(name, klasa), ", Tabela);
	add(szTemp,  charsmax(szTemp), "intelligence INT UNSIGNED NOT NULL DEFAULT 0, health INT UNSIGNED NOT NULL DEFAULT 0, strength INT UNSIGNED NOT NULL DEFAULT 0, stamina INT UNSIGNED NOT NULL DEFAULT 0, damage INT UNSIGNED NOT NULL DEFAULT 0)");	

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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