Wysłany: 2017-01-04, 20:24
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Co? takiego?
Pawn if( mysql_num_rows ())
{
mysql_fetch_row ( mstring , "|" );
mysql_free_result ();
sscanf ( mstring , "p<|>s[32]s[254]s[16]iiiiiiiiiiiiiiiiffff" , pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ],
pGracz [ playerid ][ Pieniadze ], pGracz [ playerid ][ PunktyScore ], pGracz [ playerid ][ Skin ], pGracz [ playerid ][ PunktyKarne ],
pGracz [ playerid ][ Zlecen ], pGracz [ playerid ][ Kanister ],
pGracz [ playerid ][ Kajdanki ], pGracz [ playerid ][ Mute ], pGracz [ playerid ][ MuteTime ],
pGracz [ playerid ][ Jail ], pGracz [ playerid ][ JailTime ], pGracz [ playerid ][ Blokada ], pGracz [ playerid ][ CzasBlokady ],
pGracz [ playerid ][ AdminLVL ], pGracz [ playerid ][ Police ], pGracz [ playerid ][ PierwszaGra ],
pGracz [ playerid ][ X_Pos ], pGracz [ playerid ][ Y_Pos ], pGracz [ playerid ][ Z_Pos ], pGracz [ playerid ][ A_Pos ]);
ShowPlayerDialog ( playerid , LoginDialog , DIALOG_STYLE_PASSWORD , "Logowanie" , "Witaj ponownie! Wpisz has?o aby przej?? do nast?pnego kroku." , "Zaloguj" , "Wyjd?" );
}
else
{
ShowPlayerDialog ( playerid , RegisterDialog , DIALOG_STYLE_PASSWORD , "Zak?adanie konta" , "Witaj na serwerze! Tw?j nick nie jest zarejestrowany.\nWpisz has?o aby przej?? do nast?pnego kroku." , "Zarejestruj" , "Wyjd?" );
}
W dalszym przypadku brak pobierania danych, spawnuje mnie pod texturami. Oraz has?o mog? wpisa? jakie chce.
Wysłany: 2017-01-04, 20:32
Wafelowski
Wiek: 29 Na forum: 5347 dni Posty: 428
Piwa : 100
Wyprintuj mstring
Kod:
i zobacz co tam w logach siedzi.
Wysłany: 2017-01-04, 20:39
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Wszystko jasne:
Kod: [20] sscanf warning: String buffer overflow.
Mam taki kod:
Pawn new mstring [ 500 ];
format ( mstring , sizeof mstring , "SELECT `Haslo`, `Email`, `IP`, `Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, \
`Zlecen`, `Kanister`, `Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, \
`Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, `X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos` FROM `Gracze` WHERE `Nick` = '%s' LIMIT 1" , PlayerName ( playerid ));
mysql_query ( mstring );
mysql_store_result (); //funkcja potrzebna przy uzyciu kwerendy SELECT
if( mysql_num_rows ())
{
mysql_fetch_row ( mstring , "|" );
mysql_free_result ();
sscanf ( mstring , "p<|>s[32]s[254]s[16]iiiiiiiiiiiiiiiiffff" , pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ],
pGracz [ playerid ][ Pieniadze ], pGracz [ playerid ][ PunktyScore ], pGracz [ playerid ][ Skin ], pGracz [ playerid ][ PunktyKarne ],
pGracz [ playerid ][ Zlecen ], pGracz [ playerid ][ Kanister ],
pGracz [ playerid ][ Kajdanki ], pGracz [ playerid ][ Mute ], pGracz [ playerid ][ MuteTime ],
pGracz [ playerid ][ Jail ], pGracz [ playerid ][ JailTime ], pGracz [ playerid ][ Blokada ], pGracz [ playerid ][ CzasBlokady ],
pGracz [ playerid ][ AdminLVL ], pGracz [ playerid ][ Police ], pGracz [ playerid ][ PierwszaGra ],
pGracz [ playerid ][ X_Pos ], pGracz [ playerid ][ Y_Pos ], pGracz [ playerid ][ Z_Pos ], pGracz [ playerid ][ A_Pos ]);
printf ( "%s" , mstring );
ShowPlayerDialog ( playerid , LoginDialog , DIALOG_STYLE_PASSWORD , "Logowanie" , "Witaj ponownie! Wpisz has?o aby przej?? do nast?pnego kroku." , "Zaloguj" , "Wyjd?" );
}
Pyt 1: za du?o rzeczy w sscanfie, st?d ten error. Jak to rozbi? na np dwie cz??cie?
Pyt 2: Da?em s[254] - taki mo?e by? najd?u?szy adres email - mo?e tak zosta??
Co do tego Unknown : SetGameModeText jest podane. Komendy dzia?aj?, ale np textdrawy nie wy?wietlaj? si? poprawnie. main{} posiadam, pluginy wszystkie dzia?aj?.
Wysłany: 2017-01-04, 20:58
Wafelowski
Wiek: 29 Na forum: 5347 dni Posty: 428
Piwa : 100
Spr?buj zwi?kszy? mstring do 1000 np. i zobacz co si? stanie a co do Unknown spr?buj wgra? nativechecker lub crashdetect i zobacz czy co? logi wypluj?.
Pobaw si? w zwi?kszanie warto?ci w sscanfie stringu z s[32] na np. s[35]. Je?eli chodzi o tego maila to my?l? mo?esz jaki? limit ustawi? na np. 20-25 znak?w bo i tak w?tpi? ?eby kto? mia? taki d?ugi mail, chyba ?e jaki? troll.
Wysłany: 2017-01-04, 21:10
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Ca?y error jaki pokazuje si? to:
Kod: [21] sscanf warning: String buffer overflow.
[21] 827ccb0eea8a706c4c34a16891f84e7b|tuemail|tuIP|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|155|-92|2|230
ten ci?g znak?w wywo?any jest przed hash md5. Mo?e to przez to?
Gdzie zapisuj? si? logi od crashdetect? Wgra?em tylko plugin, wystarczy?
//Edit: no tak, przecie? skoro u?ywam hasha to musz? zwi?kszy? s[26] xD
Error znikn??, ale nadal nie pobiera moich danych. Mog? wpisa? oboj?tnie jakie has?o, zepawnuje mnie pod texturami.
Wysłany: 2017-01-04, 21:40
Wafelowski
Wiek: 29 Na forum: 5347 dni Posty: 428
Piwa : 100
A zapisujesz pozycje do bazy danych? Jak to wygl?da od strony phpmyadmin? xD
Logi z crashdetect normalnie w konsoli powinny by? pokazane je?li co? nie gra.
Wysłany: 2017-01-04, 21:54
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Tak zapisuj? wszystkie dane:
Pawn stock SavePlayer ( playerid )
{
pGracz [ playerid ][ PunktyScore ] = GetPlayerScore ( playerid );
pGracz [ playerid ][ Pieniadze ] = GetPlayerMoney ( playerid );
pGracz [ playerid ][ Skin ] = GetPlayerSkin ( playerid );
GetPlayerPos ( playerid , pGracz [ playerid ][ X_Pos ], pGracz [ playerid ][ Y_Pos ], pGracz [ playerid ][ Z_Pos ]);
GetPlayerFacingAngle ( playerid , pGracz [ playerid ][ A_Pos ]);
new string [ 1000 ];
format ( string , sizeof (string), "UPDATE `Gracze` SET `Nick` = '%s', `Haslo` = MD5('%s'), `Email` = '%s' WHERE `Nick` = '%s' LIMIT 1" , PlayerName ( playerid ), pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], PlayerName ( playerid ));
mysql_query (string);
format ( string , sizeof (string), "UPDATE `Gracze` SET `Pieniadze` = '%d', `PunktyScore` = '%d', `Skin` = '%d', `PunktyKarne` = '%d', `Zlecen` = '%d', `Poszukiwany` = '%d' WHERE `Nick` = '%s' LIMIT 1, " , pGracz [ playerid ][ Pieniadze ], pGracz [ playerid ][ PunktyScore ], pGracz [ playerid ][ Skin ], pGracz [ playerid ][ PunktyKarne ], pGracz [ playerid ][ Zlecen ], pGracz [ playerid ][ Poszukiwany ], PlayerName ( playerid ));
mysql_query (string);
format ( string , sizeof (string), "UPDATE `Gracze` SET `Kanister` = '%d', `Kajdanki` = '%d', `Mute` = '%d', `MuteTime` = '%d', `Jail` = '%d', `JailTime` = '%d' WHERE `Nick` = '%s' LIMIT 1" , pGracz [ playerid ][ Kanister ], pGracz [ playerid ][ Kajdanki ], pGracz [ playerid ][ Mute ], pGracz [ playerid ][ MuteTime ], pGracz [ playerid ][ Jail ], pGracz [ playerid ][ JailTime ], PlayerName ( playerid ));
mysql_query (string);
format ( string , sizeof (string), "UPDATE `Gracze` SET `Blokada` = '%d', `CzasBlokady` = '%d', `AdminLVL` = '%d', `Police` = '%d', `PierwszaGra` = '%d' WHERE `Nick` = '%s' LIMIT 1" , pGracz [ playerid ][ Blokada ], pGracz [ playerid ][ CzasBlokady ], pGracz [ playerid ][ AdminLVL ], pGracz [ playerid ][ Police ], pGracz [ playerid ][ PierwszaGra ], PlayerName ( playerid ));
mysql_query (string);
format ( string , sizeof (string), "UPDATE `Gracze` SET `X_Pos` = '%f', `Y_Pos` = '%f', `Z_Pos` = '%f', `A_Pos` = '%f' WHERE `Nick` = '%s' LIMIT 1" , pGracz [ playerid ][ X_Pos ], pGracz [ playerid ][ Y_Pos ], pGracz [ playerid ][ Z_Pos ], pGracz [ playerid ][ A_Pos ], PlayerName ( playerid ));
mysql_query (string);
return 1 ;
}
(P??niej porozbijam na cz??ci, ?eby nie zapisywa? wszystkiego, bo mog? by? lagi) xD
//Og?lnie mam problem z d?ugim formatem, bo doda?em now? zmienn? Poszukiwany. Zrobi?em co? takiego:
Pawn new Query [ 1000 ];
format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Nick`, `Haslo`, `Email`, `IP`) VALUES('%s', MD5('%s'), '%s', '%s')" , PlayerName ( playerid ), pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ]);
mysql_query ( Query );
format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, `Zlecen`, `Poszukiwany`, `Kanister`, \
`Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, `Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, \
`X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos`) VALUES(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)" );
mysql_query ( Query );
Ale rozdzielaj?c na dwa formaty tworz? mi si? dwa rekordy. Jak zrobi?, ?eby ten drugi format by? w pierwszym rekordzie?
3) Wgra?em nativechecker i wywali?o sporo b??d?w.. Ale sk?d si? wzi??y?
streamer i sscanf dzia?a?y wcze?niej poprawnie. Czy co? si? mo?e gry???
//Edit: na forum sampa napisali ?eby ten nativechecker dawa? na ko?cu listy plugins. Zrobi?em tak i nie pokazuje tych b??d?w
//Edit2: Najprawdopodobniej przyczyn? jest stary plugin mysql, dlatego pokazuje si? Unknown. Ale na BlueG za choler? si? nie przenios?, bo go nie rozumiem.
Wysłany: 2017-01-05, 02:55
Wafelowski
Wiek: 29 Na forum: 5347 dni Posty: 428
Piwa : 100
Te dane co zapisujesz zr?b sobie w 1 formacie, najlepiej te potrzebne po wyj?ciu gracza czyli np. ?ycie, pancerz, pozycja itp. za? has?a nie musisz zapisywa? bo si? nie zmieni no chyba ?e si? zmieni to wtedy UPDATE z t? warto?ci?.
Z tym drugim tak samo walnij to do jednego formata.
Co do ostatniego no to musisz co? pokombinowa?, ja korzystam z pluginu od BlueG i nie mam z nim problem?w. Jednak?e nie wydaje mi si? ?eby co? by?o nie tak og?lnie z tym pluginem, kiedy? z niego korzysta?em i chyba nie mia?em problem?w, mo?e masz co? pomieszane?
Spr?buj tej wersji: http://gtao.pl.com/showpo...&postcount=1005
Wysłany: 2017-01-05, 12:40
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Sprawa z Unknown mode rozwi?zana. Przenios?em setgamemodetext na sam? g?r?, a ??czenie z mysql na sam d?? ongamemodeinit.
Teraz problem z formatem, gdy? linijka jest za d?uga i wywala mi b??d.
Kod: (1193) : error 075: input line too long (after substitutions)
Pawn new Query [ 1000 ];
format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Nick`, `Haslo`, `Email`, `IP, `Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, `Zlecen`, `Poszukiwany`, `Kanister`, \
`Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, `Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, \
`X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos`) VALUES('%s', MD5('%s'), '%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)" , PlayerName ( playerid ), pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ]);
mysql_query ( Query );
//EDIT
Rozbi?em na dwie cz??ci i jest prawie OK, z tym, ?e przy pozycjach X_Pos, Y_Pos, Z_Pos, A_Pos pokazuj? si? w phpmyadmin Null i jest error o sk?adni. Oto kod:
Pawn format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, `Zlecen`, `Poszukiwany`, `Kanister`, \
`Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, `Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, `X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos`) VALUES(0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0.0) WHERE `Nick` = '%s' LIMIT 1" , PlayerName ( playerid ));
strcat ( Query2 , Query );
mysql_query ( Query );
Wysłany: 2017-01-05, 15:08
WWilk1
Wiek: 30 Na forum: 4700 dni Posty: 116
Nick w MP: eep.Wilk
Piwa : 147
Poustawiaj w phpmyadmin warto?ci domy?lne na te pola. Na Float ustaw domy?lnie 0.0. W zapytaniu INSERT INTO nie sprawdza si? rekordu " WHERE `Nick` = '%s' LIMIT 1" bo w ko?cu dodajesz nowy rekord, a nie szukasz rekordu i w nim co? zmieniasz.
Jak poustawiasz te pola, kt?re chcesz aby mia?y warto?? domy?ln? wtedy dajesz np. takie zapytanie
Pawn mysql_query ( "INSERT INTO `Gracze` (`Pieniadze`) VALUES('0');" );
Wysłany: 2017-01-05, 15:39
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Ustawi?em te warto?ci domy?lne. Ale jak teraz przerobi? ten kod:
Pawn new Query [ 1200 ], Query2 [ 1010 ];
format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Nick`, `Haslo`, `Email`, `IP`) VALUES('%s', MD5('%s'), '%s', '%s')" , PlayerName ( playerid ), pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ]);
strcat ( Query2 , Query );
mysql_query ( Query );
format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, `Zlecen`, `Poszukiwany`, `Kanister`, \
`Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, `Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, `X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos`) VALUES('0', '0', '0', '0', '0', '0', '0', '0', \
'0', '0', '0', '0', '0', '0', '0', '0', '0', '0.0', '0.0', '0.0', '0.0')" );
strcat ( Query2 , Query );
mysql_query ( Query );
?eby wszystko by?o w jednej linijce (jak jest jedna to wywala b??d ?e d?uga linijka), bo teraz tworz? mi si? dwa rekordy w bazie. Jest to zapewne spowodowane tym, ?e dwa razy u?ywam mysql_query, ale jak to zast?pi??
Ostatnio zmieniony przez MG303 2017-01-05, 15:46, w całości zmieniany 1 raz
Wysłany: 2017-01-05, 15:42
WWilk1
Wiek: 30 Na forum: 4700 dni Posty: 116
Nick w MP: eep.Wilk
Piwa : 147
No to skoro ustawi?e? te warto?ci domy?lne, to wystarczy ?e dasz:
Pawn format ( Query , sizeof ( Query ), "INSERT INTO `Gracze` (`Nick`, `Haslo`, `Email`, `IP`) VALUES('%s', MD5('%s'), '%s', '%s');" , PlayerName ( playerid ), pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ]);
mysql_query ( Query );
?rednik na ko?cu zapytania tylko trzeba by?o doda?.
Ps. chyba zrobie skrypt na prost? rejestracje w MySQL, bo widz? ?e coraz wi?cej jest pyta? o to, a na forum nie znalaz?em dobrego takiego skryptu i do?? optymalnego.
Wysłany: 2017-01-05, 15:51
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Oj przyda?by si? ten skrypt/poradnik xD
Kolejny problem napotkany to sprawdzanie poprawno?ci has?a.
Jak wpisz? z?e has?o to wywala info, ?e z?e = niby ok.
Ale jak wpisz? poprawne to dzieje si? to samo. U?ywam hasha Md5 (jak powy?ej wida?).
Sprawdzam has?o w taki spos?b:
Kod: if(strcmp(inputtext, pGracz[playerid][Haslo], false))
{//reszta je?li has?o z?e
A tak pobieram dane z bazy:
Pawn new mstring [ 2000 ];
format ( mstring , sizeof mstring , "SELECT `Haslo`, `Email`, `IP`, `Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, \
`Zlecen`, `Poszukiwany`, `Kanister`, `Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, \
`Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, `X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos` FROM `Gracze` WHERE `Nick` = '%s' LIMIT 1" , PlayerName ( playerid ));
mysql_query ( mstring );
mysql_store_result (); //funkcja potrzebna przy uzyciu kwerendy SELECT
if( mysql_num_rows ())
{
mysql_fetch_row ( mstring , "|" );
mysql_free_result ();
sscanf ( mstring , "p<|>s[100]s[255]s[17]iiiiiiiiiiiiiiiiiffff" , pGracz [ playerid ][ Haslo ], pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ],
pGracz [ playerid ][ Pieniadze ], pGracz [ playerid ][ PunktyScore ], pGracz [ playerid ][ Skin ], pGracz [ playerid ][ PunktyKarne ],
pGracz [ playerid ][ Zlecen ], pGracz [ playerid ][ Poszukiwany ], pGracz [ playerid ][ Kanister ],
pGracz [ playerid ][ Kajdanki ], pGracz [ playerid ][ Mute ], pGracz [ playerid ][ MuteTime ],
pGracz [ playerid ][ Jail ], pGracz [ playerid ][ JailTime ], pGracz [ playerid ][ Blokada ], pGracz [ playerid ][ CzasBlokady ],
pGracz [ playerid ][ AdminLVL ], pGracz [ playerid ][ Police ], pGracz [ playerid ][ PierwszaGra ],
pGracz [ playerid ][ X_Pos ], pGracz [ playerid ][ Y_Pos ], pGracz [ playerid ][ Z_Pos ], pGracz [ playerid ][ A_Pos ]);
ShowPlayerDialog ( playerid , LoginDialog , DIALOG_STYLE_PASSWORD , "Logowanie" , "Witaj ponownie!\n\n{C0C0C0}Wpisz has?o do konta aby si? zalogowa?." , "Zaloguj" , "Wyjd?" );
}
else
{
ShowPlayerDialog ( playerid , RegisterDialog , DIALOG_STYLE_PASSWORD , "Zak?adanie konta (1/2)" , "Aby utworzy? konto, najpierw ustaw swoje has?o\n\n{C0C0C0}- Has?o musi zawiera? od 5 do 20 znak?w\n{C0C0C0}- Wielko?? liter ma znaczenie" , "Zarejestruj" , "Wyjd?" );
}
mysql_free_result ();
Wysłany: 2017-01-05, 16:01
WWilk1
Wiek: 30 Na forum: 4700 dni Posty: 116
Nick w MP: eep.Wilk
Piwa : 147
Nie musisz pobiera? has?a skoro szyfrujesz tylko MD5, wystarczy za pomoc? zapytania sprawdzi?. Przyk?ad:
Pawn new AntiSQLInjection [ 18 ];
mysql_real_escape_string ( inputtext , AntiSQLInjection );
format ( String , 128 , "SELECT `ID`, `Email`, `Money`, `xPos` FROM `players` WHERE `Nick` = '%s' AND `Pass` = MD5('%s') LIMIT 1" , PlayerName ( playerid ), AntiSQLInjection );
mysql_query (String);
mysql_store_result ();
if(! mysql_num_rows ())
{
//Nie znaleziono konta lub b??dne has?o wpisa?
mysql_free_result ();
return 1 ;
}
mysql_fetch_row ( String , "|" );
sscanf ( String , "p<|>is[18]if" , pPlayer [ playerid ][ UID ], pPlayer [ playerid ][ Email ], pPlayer [ playerid ][ Money ], pPlayer [ playerid ][ X_Pos ]);
mysql_free_result ();
Nie polecam tylko MD5 szyfrowa? gdyby by? to wi?kszy serwer, to lepiej u?y? https://wiki.sa-mp.com/wiki/SHA256_PassHash oraz s?l.
Wysłany: 2017-01-05, 16:25
MG303
Wiek: 30 Na forum: 6418 dni Posty: 654
Piwa : 2990
Nie za bardzo ogarniam, bo ten kod:
Pawn new mstring [ 2000 ];
format ( mstring , sizeof mstring , "SELECT `Email`, `IP`, `Pieniadze`, `PunktyScore`, `Skin`, `PunktyKarne`, \
`Zlecen`, `Poszukiwany`, `Kanister`, `Kajdanki`, `Mute`, `MuteTime`, `Jail`, `JailTime`, \
`Blokada`, `CzasBlokady`, `AdminLVL`, `Police`, `PierwszaGra`, `X_Pos`, `Y_Pos`, `Z_Pos`, `A_Pos` FROM `Gracze` WHERE `Nick` = '%s' AND `Haslo` = MD5('%s') LIMIT 1" , PlayerName ( playerid ), pGracz [ playerid ][ Haslo ]);
mysql_query ( mstring );
mysql_store_result (); //funkcja potrzebna przy uzyciu kwerendy SELECT
if( mysql_num_rows ())
{
mysql_fetch_row ( mstring , "|" );
mysql_free_result ();
sscanf ( mstring , "p<|>s[30]s[17]iiiiiiiiiiiiiiiiiffff" , pGracz [ playerid ][ Email ], pGracz [ playerid ][ IP ],
pGracz [ playerid ][ Pieniadze ], pGracz [ playerid ][ PunktyScore ], pGracz [ playerid ][ Skin ], pGracz [ playerid ][ PunktyKarne ],
pGracz [ playerid ][ Zlecen ], pGracz [ playerid ][ Poszukiwany ], pGracz [ playerid ][ Kanister ],
pGracz [ playerid ][ Kajdanki ], pGracz [ playerid ][ Mute ], pGracz [ playerid ][ MuteTime ],
pGracz [ playerid ][ Jail ], pGracz [ playerid ][ JailTime ], pGracz [ playerid ][ Blokada ], pGracz [ playerid ][ CzasBlokady ],
pGracz [ playerid ][ AdminLVL ], pGracz [ playerid ][ Police ], pGracz [ playerid ][ PierwszaGra ],
pGracz [ playerid ][ X_Pos ], pGracz [ playerid ][ Y_Pos ], pGracz [ playerid ][ Z_Pos ], pGracz [ playerid ][ A_Pos ]);
ShowPlayerDialog ( playerid , LoginDialog , DIALOG_STYLE_PASSWORD , "Logowanie" , "Witaj ponownie!\n\n{C0C0C0}Wpisz has?o do konta aby si? zalogowa?." , "Zaloguj" , "Wyjd?" );
}
else
{
ShowPlayerDialog ( playerid , RegisterDialog , DIALOG_STYLE_PASSWORD , "Zak?adanie konta (1/2)" , "Aby utworzy? konto, najpierw ustaw swoje has?o\n\n{C0C0C0}- Has?o musi zawiera? od 5 do 20 znak?w\n{C0C0C0}- Wielko?? liter ma znaczenie" , "Zarejestruj" , "Wyjd?" );
}
mysql_free_result ();
Jest po?o?ony w OnPlayerConnect.
A wydaje mi si?, ?e lepiej by?oby rozbi? go na dwie cz??ci, czyli w OnPlayerConnect pobiera? tylko Nick i sprawdzi? czy jest zarejestrowany.
A reszt? danych tj. Email itd itd pobra? dopiero w OnDialogResponse przy logowaniu.
Tagi: rejestracja :: mysql
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: