#include a_samp#include a_mysql#include sscanf2#include zcmd#define MYSQL_HOST \"-\"#define MYSQL_USER \"-\"#define MYSQL_DATA \"-\"#define MYSQL_PASS \"-\"#define DIALOG_LOGIN 1#define DIALOG_REGISTER 2enum PlayerInfo{ RegID, Name[ 24 ], password[ 128 ], IP[ 16 ], Admin, Money, Score, Logged}new pInfo[ MAX_PLAYERS ][ PlayerInfo ];new MySQL[ 1024 ];public OnFilterScriptInit( ){ mysql_debug( true ); mysql_connect( MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS ); mysql_query( \"CREATE TABLE IF NOT EXISTS `accounts` (\" \\ \"`RegID` int(10) NOT NULL AUTO_INCREMENT,\" \\ \"`Name` varchar(24) NOT NULL,\" \\ \"`password` varchar(64) NOT NULL,\" \\ \"`IP` varchar(16) NULL,\" \\ \"`Admin` int(15) NULL,\" \\ \"`Money` int(15) NULL,\" \\ \"`Score` int(15) NULL,\" \\ \"PRIMARY KEY (`RegID`)\" \\ \") ENGINE=InnoDB DEFAULT CHARSET=latin1;\" ); if( mysql_ping( ) > -1 ) return printf( \":: MySQL :: Sikeresen csatlakoztál \'%s\' nevû adatbázishoz!\", MYSQL_DATA ); else printf( \":: MySQL :: Sikertelen csatlakozás \'%s\' nevû adatbázishoz!\", MYSQL_DATA ); return 1;} public OnFilterScriptExit( ) { mysql_close( ); return 1;}public OnPlayerConnect( playerid ){ new karakterlanc[ 228 + 1 ]; format( MySQL, sizeof( MySQL ), \"SELECT `Name` FROM `accounts` WHERE `Name` = \'%s\'\", pName( playerid ) ); mysql_query( MySQL ); mysql_store_result( ); if( mysql_num_rows( ) != 0 ) { format( karakterlanc, sizeof( karakterlanc ), \"» Üdvözöllek %s!\\n» A karaktered neve már szerepel az adatbázisunban!\\n» Kérlek írd be a lenti ablakba a jelszód, majd klikkelj tovább a \'BELÉPÉS\' gombjára!\\n» Bejeletkezés után minden adat betöltésre kerül!\", pName( playerid ), pIP( playerid ) ); ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, \"{ffffff}Bejelentkezés\", karakterlanc, \"Belépés\", \"Mégsem\" ); } else { format( karakterlanc, sizeof( karakterlanc ), \"» Üdvözöllek %s!\\n» A karaktered neve még nem szerepel az adatbázisunban!\\n» Kérlek írj be a lenti ablakba egy jelszót, majd klikkelj tovább a \'REGISZTRÁL\' gombjára!\\n» Regisztráció után minden adat mentésre kerül!\", pName( playerid ), pIP( playerid ) ); ShowPlayerDialog( playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, \"{ffffff}Regisztráció\", karakterlanc, \"Regisztrál\", \"Mégsem\" ); } mysql_free_result( ); return 1;}public OnPlayerDisconnect( playerid, reason ){ SavePlayerStats( playerid ); return 1;}public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ){ if( dialogid == DIALOG_REGISTER ) { if( !response ) return Kick( playerid ); if( response ) { if( strlen( inputtext ) == 0 ) { SendClientMessage( playerid, -1, \"Hiba: 3\" ); } else { new pass[ 128 ]; MySQL[ 0 ] = EOS; mysql_real_escape_string( inputtext, pass ); format( MySQL, sizeof( MySQL ), \"INSERT INTO `accounts` ( Name, password, IP, Money, Score, Admin ) VALUES( \'%s\', \'%s\', \'%s\', \'5000\', \'0\', \'0\' )\", pName( playerid ), pass, pIP( playerid ) ); mysql_query( MySQL ); new karakterlanc[ 328 + 1 ]; //format( karakterlanc, sizeof( karakterlanc ), \":: {51ff00}REGISZTRÁCIÓ {ffffff}:: {%06x}%s {949494}regisztrált a szerverre, összesen {ff0000}%i {949494}játékos található az adatbázisban!\", GetPlayerColor( playerid ) >>> 8, pName( playerid ), mysql_insert_id( ) ); format( karakterlanc, sizeof( karakterlanc ), \":: REGISZTRÁCIÓ :: %s regisztrált a szerverre, összesen %i játékos található az adatbázisban!\", pName( playerid ), mysql_insert_id( ) ); SendClientMessageToAll( -1, karakterlanc ); pInfo[ playerid ][ Logged ] = 1; LoadPlayerStats( playerid ); SendClientMessage( playerid, -1, \"» {1eff00}Sikeresen regisztráltál{ffffff}!\" ); } } } if( dialogid == DIALOG_LOGIN ) { if( !response ) return Kick( playerid ); if( response ) { if( strlen( inputtext ) == 0 ) { SendClientMessage( playerid, -1, \"Hiba: 2\" ); } else { MySQL[ 0 ] = EOS; format( MySQL, sizeof( MySQL ), \"SELECT `password` FROM `accounts` WHERE `Name` = \'%s\' AND `password` = \'%s\'\", pName( playerid ), inputtext ); mysql_query( MySQL ); mysql_store_result( ); if( mysql_num_rows( ) != 0 ) { SendClientMessage( playerid, -1, \"» {1eff00}Sikeresen bejelentkeztél{ffffff}!\" ); pInfo[ playerid ][ Logged ] = 1; LoadPlayerStats( playerid ); } else { SendClientMessage( playerid, -1, \"Hiba: 1\" ); } } } } return 1;}stock LoadPlayerStats( playerid ){ format( MySQL, sizeof( MySQL ), \"SELECT `Money`, `Score`, `Admin` FROM `accounts` WHERE `Name` = \'%s\'\", pName( playerid ) ); mysql_query( MySQL ); mysql_store_result( ); if( mysql_fetch_row_format( MySQL ) ) { sscanf( MySQL, \"p<|>iii\", pInfo[ playerid ][ Money ], pInfo[ playerid ][ Score ], pInfo[ playerid ][ Admin ] ); } mysql_free_result( ); GivePlayerMoney( playerid, pInfo[ playerid ][ Money ] ); SetPlayerScore( playerid, pInfo[ playerid ][ Score ] ); return 1;}stock SavePlayerStats( playerid ){ if( pInfo[ playerid ][ Logged ] == 1 ) { format( MySQL, sizeof( MySQL ), \"UPDATE `accounts` SET `Money` = \'%i\', `Score` = \'%i\', `Admin` = \'%i\' WHERE `Name` = \'%s\'\", GetPlayerMoney( playerid), GetPlayerScore( playerid ), GetPVarInt( playerid, \"Admin\" ), pName( playerid ) ); mysql_query( MySQL ); mysql_free_result( ); } return 1;}stock pName( playerid ){ new name[ MAX_PLAYER_NAME ]; GetPlayerName( playerid, name, sizeof name ); return name;}stock pIP( playerid ){ new ip[ MAX_PLAYER_NAME ]; GetPlayerIp( playerid, ip, sizeof ip ); return ip;}
Nem akarok akadékoskodni, meg offolni, de miért nem az új MySQL plugint használod, amivel pár(száz) sorból tudsz menteni, és késõbb sokkal egyszerûbb menteni? Tudom, az R6 könnyebb az R7-nél, de az R38-nál nem.Ezzel én is egyetértek, de kérlek ne hozzátok fel, mert ez valóban nem egy szükséges hozzászólás. Na meg ZyZu. már ezerszer elmondta (legalábbis nekem biztosan), hogy õ úgyis marad az R6-nál, mert még az is neki. (Hiába könnyebb és újabb nála az R38.) Szóval ezt senki se hozza fel többet!Bocsi, nem ismerek itt mindenkit! Legközelebb nem hozom fel. :rolleyes: