Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ShomyTKD poslato Mart 30, 2020, 16:40:58 POSLE PODNE

Naslov: Ucitavanje fakcija MySQL R41-4
Poruka od: ShomyTKD poslato Mart 30, 2020, 16:40:58 POSLE PODNE
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
Naslov: Odg: Ucitavanje fakcija MySQL R41-4
Poruka od: .agency poslato Mart 30, 2020, 16:46:09 POSLE PODNE
Imas li kreiranih factionsa u bazi?
Naslov: Odg: Ucitavanje fakcija MySQL R41-4
Poruka od: ShomyTKD poslato Mart 30, 2020, 16:51:53 POSLE PODNE
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?
Naslov: Odg: Ucitavanje fakcija MySQL R41-4
Poruka od: TarikBrt poslato Mart 30, 2020, 16:56:15 POSLE PODNE
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]
Naslov: Odg: Ucitavanje fakcija MySQL R41-4
Poruka od: ShomyTKD poslato Mart 30, 2020, 17:02:31 POSLE PODNE
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 :)