Ucitavanje fakcija MySQL R41-4


Započeo ShomyTKD, Mart 30, 2020, 16:40:58 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Pozdrav svima! Posle duže pauze sam rešio da nastavim rad na svom projektu, i upravo sam naleteo na ogroman problem :'( Pokušavam da napravim dinamični Faction system koji će raditi sa MySQL R41-4. Ovo što vidite dole je ono što sam napravio, međutim server uopšte neće da se pokrene, dobijam grešku u MySQL logu: [ERROR] mysql_close: invalid connection handle '0'. Čim uklonim ovaj deo koda, sve radi kako treba.
U OnGameModeInit pozivam LoadFactions();
Dio skripte:
forward LoadFactions();
public LoadFactions() {
	new query[400], rows;
	mysql_format(Database, query, sizeof(query), "SELECT * FROM `FACTIONS`");
	mysql_tquery(Database, query);
	if(cache_get_row_count(rows) > 0)
	for(new id = 0; id < rows; id++) {
		cache_get_value_int(id, "ID", fInfo[id][fID]);
		cache_get_value_name(id, "Name", fInfo[id][fName], 32);
		cache_get_value_name(id, "Rank1", fInfo[id][fRank1], 32);
		cache_get_value_name(id, "Rank2", fInfo[id][fRank2], 32);
		cache_get_value_name(id, "Rank3", fInfo[id][fRank3], 32);
		cache_get_value_name(id, "Rank4", fInfo[id][fRank4], 32);
		cache_get_value_name(id, "Rank5", fInfo[id][fRank5], 32);
		Total_Factions_Created++;
	}
	printf("%d factions have been loaded from the database.", Total_Factions_Created);
	return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
[ERROR] mysql_close: invalid connection handle '0'

Slika/video ingame problema(obavezno ako je ingame problem): N/A
Poslednja Izmena: Mart 30, 2020, 17:05:45 POSLE PODNE od Galardo
Nisam pro, samo pokušavam da pomognem :)





Imam. Ja sam retard.. Mlatim se 2 sata oko ovoga, a trebao sam samo da koristim query umesto tquery... I to mi je tek sad palo na pamet kad sam postavio ovu temu :D

Interesuje me samo još jedno: Da li sam dobro odradio LoadFactions funkciju u smislu efikasnosti?
Nisam pro, samo pokušavam da pomognem :)




Bolje koristi mysql_tquery :) I zašto query[400] xd ?

forward LoadFactions();
public LoadFactions() {
	new query[25];
	mysql_format(Database, query, sizeof(query), "SELECT * FROM `FACTIONS`");
	mysql_tquery(Database, query, "OnLoadFrac");
	return 1;
}

forward OnLoadFrac();
public OnLoadFrac()
{
        new r;
        cache_get_row_count(r);
	for(new id = 0; id < r; id++) 
       {
		cache_get_value_name_int(id, "ID", fInfo[id][fID]);
		cache_get_value_name(id, "Name", fInfo[id][fName], 32);
		cache_get_value_name(id, "Rank1", fInfo[id][fRank1], 32);
		cache_get_value_name(id, "Rank2", fInfo[id][fRank2], 32);
		cache_get_value_name(id, "Rank3", fInfo[id][fRank3], 32);
		cache_get_value_name(id, "Rank4", fInfo[id][fRank4], 32);
		cache_get_value_name(id, "Rank5", fInfo[id][fRank5], 32);
		Total_Factions_Created++;
	}
	printf("%d factions have been loaded from the database.", Total_Factions_Created);
}

Nemam pojma zašto query[400], video sam da tako ljudi stavljaju pa i ja, iskreno xD Jel 400 broj karaktera u "SELECT..."?

Ahaaa, radi i tako. Ja sam probao veoma sličnu stvar, samo što nisam imao dve funkcije kao što ti imaš, nego sam ovo iz funkcije LoadFactions() stavio u OnGameModeInit, i to nije radilo. Koji je razlog? Zbog čega je potrebno imati dve funkcije?

Hvala puno na pomoći :)
Nisam pro, samo pokušavam da pomognem :)