Detaljan opis problema: Pozdrav svima. Skinuo sam Dynamic Vehicle Ownership skriptu; http://balkan-samp.com/forum/index.php?topic=25812.0 i prebacio je u moj gamemode. Obrisao sam sve nepotrebno i skripta radi kako treba. Takodje sam napravio tabelu u bazi i sve bi trebalo valjati. Kada spawnujem vozilo, kupim i izadjem sa servera, proverim u Databazi i sve je lepo sacuvano. Tu su koordinate vozila i sve ostalo. Medjutim, kada opet pokrenem server deo gde program treba Loadovati skriptu ne radi. Debug sam deo koji loaduje i mysql_tquery mi vraca 0, takodje 0 za rows i fields, a kada u phpMyAdmin rucno unesem SELECT * FROM `privateveh` WHERE `vID` < 50 on vraca dva reda, kao sto i treba.
Dio skripte: Evo cele te funkcije: https://pastebin.com/6mnb09T1 Znaci neki je problem u mysql_tquery.. Ali zanimljivo je to sto mi radi u delu gde cuva vozila, a koristi se isti mysql_tquery.. Probao sam da debug sve zivo, cak mi na "SELECT 1" on vraca 0. Ako neko zna da mi pomogne bio bih mu zahvalan jer evo vec 2 dana mucim glavu 😕 Verzija MySQL koju koristim je R40.
Neke slike/video za lakse dobivanje pomoci(neobavezno):
MySQL_tquery vraca 0 kao rezultat
1,104
pregleda
12
postova
19. Jan. 2018.
Probaj koristiti mysql_query umjesto tquery, jer (t)hread radi asinkrono sto ce ti naravno prikazati 0 ako zatražiš rezultat iste milisekunde, pozovi callback ili radi sinkroni query
Iskoristi sve parametre, tquery koristi kada insertas u bazu tada ti ne treba callback a kada citas iz baze ako oces asinkrono onda iskoristi sve parametre
Iskoristi sve parametre, tquery koristi kada insertas u bazu tada ti ne treba callback a kada citas iz baze ako oces asinkrono onda iskoristi sve parametre
(MySQL:handle, const query[], const callback[] = "", const format[] = "", {Float,_}:...)20. Jan. 2018.
mysql_query(Database, "SELECT * FROM `privateveh` WHERE `vID` < 50 ORDER BY vID");Ovo nije pomoglo, jos uvek ne ocitava ni jedno vozilo iz baze. A nisam te skapirao za callback? Kako to da pozovem? Mozes li da pojasnis parametre u tvom kodu?
Sry prilicno sam nov u Pawn, prvi put da radim gamemode, jos ga radim od nule..
20. Jan. 2018.
ShomyTKD wrote on January 20, 2018, 12:31 am:
mysql_query(Database, "SELECT * FROM `privateveh` WHERE `vID` < 50 ORDER BY vID");Ovo nije pomoglo, jos uvek ne ocitava ni jedno vozilo iz baze. A nisam te skapirao za callback? Kako to da pozovem? Mozes li da pojasnis parametre u tvom kodu?
Sry prilicno sam nov u Pawn, prvi put da radim gamemode, jos ga radim od nule..
https://github.com/pBlueG/SA-MP-MySQL/blob/master/example_scripts/login_system-cache.pwn
20. Jan. 2018.
Jel meni treba deo kod OnPlayerConnect() ?
new query;
mysql_format(g_SQL, query, sizeof query, "SELECT * FROM `players` WHERE `username` = '%e' LIMIT 1", Player);
mysql_tquery(g_SQL, query, "OnPlayerDataLoaded", "dd", playerid, g_MysqlRaceCheck);20. Jan. 2018.
ShomyTKD wrote on January 20, 2018, 12:57 am:
Jel meni treba deo kod OnPlayerConnect() ?
new query;
mysql_format(g_SQL, query, sizeof query, "SELECT * FROM `players` WHERE `username` = '%e' LIMIT 1", Player);
mysql_tquery(g_SQL, query, "OnPlayerDataLoaded", "dd", playerid, g_MysqlRaceCheck);Nemoj samo kopirati, to sto sam ti poslao je primjer samo, ne treba ti varijabla mysqlRaceCheck, radi sa razumijevanjem a ne samo copy paste napamet
Ako ne znas sto je to thread, ovdje mozes pronaci objasnjenje
https://en.m.wikipedia.org/wiki/Thread_(computing)
20. Jan. 2018.
Nisam te bas najbolje shvatio, ali evo, nekog napretka ima. Evo sta sam uradio. Prvo sam onaj stock promenio u public, sada izgleda ovako:
https://pastebin.com/fNecJz3u
Na vrh fajla sam dodao forward public LoadPVehicles();
I u OnGameModeInit() sam dodao sledece:
E sad, kada pokrenem server, pocne da se spamuje nesto i nikako da stane, kao da je zaglavljen u while loop. Evo kako izgleda server.log:
https://pastebin.com/FR6WyZCB I bukvalno samo spamuje ove poslednje linije u fajlu. While loop mi je sumnjiv, ali ne znam sta je problem..
@Ino42O
https://pastebin.com/fNecJz3u
Na vrh fajla sam dodao forward public LoadPVehicles();
I u OnGameModeInit() sam dodao sledece:
new Query;
mysql_format(Database, Query, sizeof(Query), "SELECT * FROM `privateveh` WHERE `vID` < 2 ORDER BY vID");
mysql_tquery(Database, Query, "LoadPVehicles"); E sad, kada pokrenem server, pocne da se spamuje nesto i nikako da stane, kao da je zaglavljen u while loop. Evo kako izgleda server.log:
https://pastebin.com/FR6WyZCB I bukvalno samo spamuje ove poslednje linije u fajlu. While loop mi je sumnjiv, ali ne znam sta je problem..
@Ino42O
20. Jan. 2018.
Sredio sam sve to nekako. Sad imam problem sa setovanjem vlasnika vozila u bazi. Kako da dodjem do ID igraca u bazi i da ga povezem sa vozilom, tako da se zna kome pripada vozilo? Treba li u bazi da se pravi strani kljuc (foreign key)?
U skripti lik koristi mysql_real_escape_string ali toga nema u R40 MySQL.
U skripti lik koristi mysql_real_escape_string ali toga nema u R40 MySQL.
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava