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: [pawn]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;
}
[/pawn]
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
Imas li kreiranih factionsa u bazi?
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?
Bolje koristi mysql_tquery :) I zašto query[400] xd ?
[pawn]
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);
}
[/pawn]
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 :)