Wysłany: 2014-12-27, 13:40
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
Witam mam logowanie mysql
?
Zrobi?em taki kod aczkolwiek mam nadal ten sam problem, pobiera informacje z nieba oto kod do funkcji Wczytaj Konto jak i do ca?ego panelu
Kod: stock WczytajKonto(playerid)
{
new
s_buf[128];
//format(s_buf, 512, "SELECT uid, skin, cash, plec, wiek, posx, posy, posz, posa, HP, VW, Int, SpawnType, admin FROM gracze WHERE name='%s' LIMIT 1;", NickName(playerid) );
format(s_buf, sizeof(s_buf), "SELECT * FROM `gracze` WHERE `name` = '%s' LIMIT 1;", NickName(playerid));
mysql_query(s_buf);
mysql_store_result();
if(mysql_fetch_row(s_buf, "|"))
{
sscanf(s_buf, "p<|>ds[32]ddddfffffdddd",
PlayerInfo[playerid][uid],
PlayerInfo[playerid][name],
PlayerInfo[playerid][skin],
PlayerInfo[playerid][cash],
PlayerInfo[playerid][plec],
PlayerInfo[playerid][wiek],
PlayerInfo[playerid][posx],
PlayerInfo[playerid][posy],
PlayerInfo[playerid][posz],
PlayerInfo[playerid][posa],
PlayerInfo[playerid][HP],
PlayerInfo[playerid][VW],
PlayerInfo[playerid][Int],
PlayerInfo[playerid][SpawnType],
PlayerInfo[playerid][ADMIN]);
}
mysql_free_result();
}
A oto logowanie z dialogid
Kod: if(dialogid == D_LOGIN)
{
new string[512];
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "["GAMEMODENAME"] Logowanie", "Witaj, aby zalogowa? si? na naszym serwerze\n\
nale?y wpisa? poni?ej has?o", "Zaloguj", "Anuluj");
return 1;
}
format(string, sizeof(string), "SELECT * FROM `gracze` WHERE `name` = '%s' AND `haslo` = '%s'", NickName(playerid), inputtext);
mysql_query(string);
mysql_store_result();
if(mysql_num_rows() == 0)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Nie poprawne has?o spr?buj jeszcze raz.");
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "["GAMEMODENAME"] Logowanie", "Witaj, aby zalogowa? si? na naszym serwerze\n\
nale?y wpisa? poni?ej has?o", "Zaloguj", "Anuluj");
}
else
{
WczytajKonto(playerid);
TogglePlayerSpectating(playerid, 0);
SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid, PlayerInfo[playerid][cash]);
SendClientMessageFormat(playerid, 0xFFFFFFFF, "Witaj zalogowa?es si? na postaci "COL_DEF"%s{FFFFFF} (UID:%d | ID:%d). Milej gry!", NickName(playerid), PlayerInfo[playerid][uid], playerid);
if(PlayerInfo[playerid][ADMIN] != 0)
{
SendClientMessageFormat(playerid, 0xFFFFFFFF, "Posiadasz %d poziom administratora", PlayerInfo[playerid][ADMIN]);
}
SpawnPlayer(playerid);
}
}
}
Bardzo prosi? bym o szybk? pomoc, skrypt pisze od zera jest to skrypt pod DeathMatch RPG i mam problemy z logowaniem.
?
Log z MySQL wygl?da tak:
Kod: [Sat Dec 27 02:45:58 2014] Function: mysql_query executed: "SELECT * FROM `gracze` WHERE `name` = 'Gadula' AND `haslo` = 'test'" with result: "0".
[Sat Dec 27 02:45:58 2014] Function: mysql_store_result executed with result: "1"
[Sat Dec 27 02:45:58 2014] Function: mysql_num_rows executed with result: "".
[Sat Dec 27 02:45:58 2014] Function: mysql_query executed: "SELECT * FROM `gracze` WHERE `name` = 'Gadula' LIMIT 1;" with result: "0".
[Sat Dec 27 02:45:58 2014] Function: mysql_store_result executed with result: "1"
[Sat Dec 27 02:45:58 2014] Function: mysql_fetch_row executed with result: "9|Gadula|test|0|200|0|0|0|0|0|0|100|0|0|1|0".
[Sat Dec 27 02:45:58 2014] Function: mysql_free_result executed.
[Sat Dec 27 02:46:07 2014] Function: mysql_query executed: "UPDATE `gracze` SET `skin`=97, `cash`=100, `plec`=117, `wiek`=108, `posx`=-1959.026245, `posy`=138.576049, `posz`=27.694049, `posa`=92.189697, `HP`=100.000000, `VW`=0, `Int`=0 WHERE `name`='Gadula'" with result: "0".
skin jest ustawiony na 0 a ustawia si? 97 pieni?dze z 200 na 100, i to jest randomowo bardzo prosz? o pomoc.
Wysłany: 2014-12-27, 14:01
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Chwila, bo nie rozumiem. Skin powinien by? 97 czy 0? Zapytanie UPDATE aktualizuje skin na 97, kas? na 100 - jak jest na wej?ciu? Wejd? na serwer, nast?pnie wyjd? i wejd? jeszcze raz - z tego daj logi, musz? wiedzie? jakie warto?ci s? zapisywane w zapytaniu a jakie odczytywane. Jaki plugin u?ywasz? PMA pokazuje dobrze czy te? ?le?
Wysłany: 2014-12-27, 14:17
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
A wi?c tak, u?ywam pluginu MySQL Plugin 2.1.1 my?l? ?e najlepszy dla mnie.
Wpisa?em zapytania do bazy danych i tak wygl?da posta? w bazie danych.
Pierwsze Logowanie:
Kod: [Sat Dec 27 14:16:33 2014] Function: mysql_query executed: "SELECT `name` FROM `gracze` WHERE `name` = 'Gadula'" with result: "0".
[Sat Dec 27 14:16:33 2014] Function: mysql_store_result executed with result: "1"
[Sat Dec 27 14:16:33 2014] Function: mysql_num_rows executed with result: "".
[Sat Dec 27 14:16:33 2014] Function: mysql_free_result executed.
[Sat Dec 27 14:16:35 2014] Function: mysql_query executed: "SELECT * FROM `gracze` WHERE `name` = 'Gadula' AND `haslo` = 'test'" with result: "0".
[Sat Dec 27 14:16:35 2014] Function: mysql_store_result executed with result: "1"
[Sat Dec 27 14:16:35 2014] Function: mysql_num_rows executed with result: "".
[Sat Dec 27 14:16:35 2014] Function: mysql_query executed: "SELECT * FROM `gracze` WHERE `name` = 'Gadula' LIMIT 1;" with result: "0".
[Sat Dec 27 14:16:35 2014] Function: mysql_store_result executed with result: "1"
[Sat Dec 27 14:16:35 2014] Function: mysql_fetch_row executed with result: "1|Gadula|test|123|1000|1|29|-1973.22|138.32|27.6875|270.502|100|0|0|1|0".
[Sat Dec 27 14:16:35 2014] Function: mysql_free_result executed.
[Sat Dec 27 14:16:51 2014] Function: mysql_query executed: "UPDATE `gracze` SET `skin`=97, `cash`=100, `plec`=117, `wiek`=108, `posx`=-1951.878906, `posy`=137.941711, `posz`=26.281250, `posa`=92.189697, `HP`=100.000000, `VW`=0, `Int`=0 WHERE `name`='Gadula'" with result: "0".
i Drugie jest takie samo tyle ?e pobiera te warto?ci co s? tutaj wpisane czyli to
Kod: [Sat Dec 27 14:16:51 2014] Function: mysql_query executed: "UPDATE `gracze` SET `skin`=97, `cash`=100, `plec`=117, `wiek`=108, `posx`=-1951.878906, `posy`=137.941711, `posz`=26.281250, `posa`=92.189697, `HP`=100.000000, `VW`=0, `Int`=0 WHERE `name`='Gadula'" with result: "0".
Nie wiem czemu tak jest
Oto funkcja zapisu gracza kt?ra w kodzie jest u?ywana jedynie po wyj?ciu z serwera:
Kod: Funkcja::ZapisGracza(playerid)
{
new query[512];
GetPlayerHealth(playerid, PlayerInfo[playerid][HP]);
GetPlayerPos(playerid, PlayerInfo[playerid][posx], PlayerInfo[playerid][posy], PlayerInfo[playerid][posz]);
GetPlayerFacingAngle(playerid, PlayerInfo[playerid][posa]);
format(query, sizeof(query),"UPDATE `gracze` SET `skin`=%d, `cash`=%d, `plec`=%d, `wiek`=%d, `posx`=%f, `posy`=%f, `posz`=%f, `posa`=%f, `HP`=%f, `VW`=%d, `Int`=%d WHERE `name`='%s'",
PlayerInfo[playerid][skin],
PlayerInfo[playerid][cash],
PlayerInfo[playerid][plec],
PlayerInfo[playerid][wiek],
PlayerInfo[playerid][posx],
PlayerInfo[playerid][posy],
PlayerInfo[playerid][posz],
PlayerInfo[playerid][posa],
PlayerInfo[playerid][HP],
PlayerInfo[playerid][VW],
PlayerInfo[playerid][Int],
NickName(playerid));
mysql_query(query);
return 1;
}
Wysłany: 2014-12-27, 16:33
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Wygl?da na to, ?e SELECT zwraca takie warto?ci jakie s? w bazie, czyli dobrze. B??d tkwi w UPDATE, mo?e format co? psuje.
"Szimwu" napisał/a :Oto funkcja zapisu gracza kt?ra w kodzie jest u?ywana jedynie po wyj?ciu z serwera:
Zapisujesz dane gracza po wyj?ciu z serwera? Raczej powinno si? przed wyj?ciem, ostatecznie w OnPlayerDisconnect.
Wysłany: 2014-12-28, 04:01
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
Cytat: Zapisujesz dane gracza po wyj?ciu z serwera? Raczej powinno si? przed wyj?ciem, ostatecznie w OnPlayerDisconnect.
S?uchaj nie rozumiem troch? jak przed wyj?ciem, baza danych co ile? czasu b?dzie si? obci??a?a jak tak zrobi?.
Wysłany: 2014-12-29, 02:18
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
"Szimwu" napisał/a : Cytat: Zapisujesz dane gracza po wyj?ciu z serwera? Raczej powinno si? przed wyj?ciem, ostatecznie w OnPlayerDisconnect.
S?uchaj nie rozumiem troch? jak przed wyj?ciem, baza danych co ile? czasu b?dzie si? obci??a?a jak tak zrobi?.
. parsk?em ?miechem. idz se poczytaj na google ile znosi baza danych, potem wr??
Tagi: logowanie :: mysql
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: