Pitanje/savjet: Zanima me da li neko zna u cemu moze da bude problem. Radim svoj register sistem pomocu MySQL-a i do sada je sve islo odlicno. Dodao sam 3 razlicite stvari ali kada sam zeleo da dodam i eure, nakon zavrsene registracije se igrac ne spawnuje a samim tim ni ne registruje u bazu podataka. Ispod mozete videti liniju koja koju koristim za unosenje podataka u bazu
[pawn]
new
query[256],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Kada iz ovoga izbrisem `Euro` i 100, skripta radi normalno, igrac se spawnuje i ubacuje u bazu podataka.
Treba mi savet:
U bazi podataka mi je "As defined" postavljeno na 100(sto se eura tice), kada se igrac registruje, taj podatak se izvlaci i igracu se postavlja tih 100 eura. Da li je pametno da radim na takav nacin ili ne?
`Zlato`, `Euro`
Citat: cofilinko poslato Januar 08, 2024, 19:24:17 POSLE PODNE
Pitanje/savjet: Zanima me da li neko zna u cemu moze da bude problem. Radim svoj register sistem pomocu MySQL-a i do sada je sve islo odlicno. Dodao sam 3 razlicite stvari ali kada sam zeleo da dodam i eure, nakon zavrsene registracije se igrac ne spawnuje a samim tim ni ne registruje u bazu podataka. Ispod mozete videti liniju koja koju koristim za unosenje podataka u bazu
[pawn]
new
query[256],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Kada iz ovoga izbrisem `Euro` i 100, skripta radi normalno, igrac se spawnuje i ubacuje u bazu podataka.
Treba mi savet:
U bazi podataka mi je "As defined" postavljeno na 100(sto se eura tice), kada se igrac registruje, taj podatak se izvlaci i igracu se postavlja tih 100 eura. Da li je pametno da radim na takav nacin ili ne?
Fali ti
` stavi ovako
`zlato`
Citat: sexeniiosi poslato Januar 08, 2024, 20:39:39 POSLE PODNE
`Zlato`, `Euro`
[pawn]
new
query[256],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`,
`Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
forward NakonRegistracije(playerid);
public NakonRegistracije(playerid)
{
new query[256];
mysql_format(DBase, query, sizeof(query), "SELECT * FROM `users` WHERE `Ime` = '%s' LIMIT 1", GetName(playerid));
mysql_tquery(DBase, query, "UcitajNalog", "i", playerid);
return 1;
}
forward UcitajNalog(playerid);
public UcitajNalog(playerid){
new rows;
cache_get_row_count(rows);
if(!rows) return 0;
else{
cache_get_value_int(0, "Level", PI[playerid][Level]);
cache_get_value_int(0, "Novac", PI[playerid][Novac]);
cache_get_value_int(0, "Godine", PI[playerid][Godine]);
cache_get_value_int(0, "Pol", PI[playerid][Pol]);
cache_get_value_int(0, "Drzava", PI[playerid][Drzava]);
cache_get_value(0, "Email", PI[playerid][Email], 255);
cache_get_value_int(0, "Smrti", PI[playerid][Smrti]);
cache_get_value_int(0, "Ubistva", PI[playerid][Ubistva]);
cache_get_value_int(0, "Skin", PI[playerid][Skin]);
cache_get_value_int(0, "Spawn", PI[playerid][Spawn]);
cache_get_value_int(0, "Banka", PI[playerid][Banka]);
cache_get_value_int(0, "Racun", PI[playerid][Racun]);
cache_get_value_int(0, "Zlato", PI[playerid][Zlato]);
cache_get_value_int(0, "Euro", PI[playerid][Euro]);
SetPlayerScore(playerid, PI[playerid][Level]);
ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PI[playerid][Novac]);
SetPlayerSkin(playerid, PI[playerid][Skin]);
}
PI[playerid][IsLoggedIn] = true;
SpawnIgraca(playerid);
return 1;
}
[/pawn]
Slucajno sam obrisao ` kad sam editovao ovde. Evo celokupan sistem da kazem.
https://imgur.com/a/AkIej48 - Baza podataka
[pawn]
enum pInfo{
ID,
Lozinka[30],
Ime[MAX_PLAYER_NAME],
Level,
Novac,
Godine,
Pol,
Drzava,
Email[60],
Smrti,
Ubistva,
Skin,
Spawn,
Banka,
Racun,
Zlato,
Euro,
bool:IsLoggedIn,
LoginAttempts,
LoginTimer
}; new PI[MAX_PLAYERS][pInfo];
[/pawn]
Player Enum
Bump
Postavi logove mysql-a ukoliko ima nekih gresaka u istim. Logove mozes naci u logs/errors.log.
Ukoliko nema nista onda ukljuci sve logove i posalji ih ovdje. Logove mozes naci u logs/plugins/mysql.log. Logovanje svega mozes ukljuciti funkcijom:
mysql_log(ALL);
logs/errors.log
[pawn]
[01/10/24 15:28:56] [plugins/mysql] mysql_format: destination size '256' is too small (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:601)
[01/10/24 15:28:56] [plugins/mysql] error #1065 while executing query "": Query was empty (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:603)
[01/10/24 15:28:56] [log-core] exception 0XC0000005 (ACCESS_VIOLATION) from Vectored Exception Handler catched; shutting log-core down
[/pawn]
600-603 Linija
[pawn]
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, `Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Citat: cofilinko poslato Januar 10, 2024, 15:31:18 POSLE PODNE
logs/errors.log
[pawn]
[01/10/24 15:28:56] [plugins/mysql] mysql_format: destination size '256' is too small (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:601)
[01/10/24 15:28:56] [plugins/mysql] error #1065 while executing query "": Query was empty (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:603)
[01/10/24 15:28:56] [log-core] exception 0XC0000005 (ACCESS_VIOLATION) from Vectored Exception Handler catched; shutting log-core down
[/pawn]
600-603 Linija
[pawn]
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, `Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Osecam se mnogo glupo. Povecao sam broj karaktera u 'query' i sve radi bez problema. Hvala puno svima.
Izvinjavam se.