Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <a_mysql>
- main(){}
- new SQL = -1, gQuery[256];
- new string[128];
- new pLogged[MAX_PLAYERS];
- #define function%0(%1) forward%0(%1); public %0(%1)
- #define SCM SendClientMessage
- enum pInfo {
- pSQLID,
- pName[MAX_PLAYER_NAME],
- pPassword[32]
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- enum {
- DIALOG_REGISTER,
- DIALOG_LOGIN
- }
- public OnGameModeInit() {
- SQL = mysql_connect("localhost", "root", "samp_db", "");
- return 1;
- }
- public OnPlayerRequestClass() {
- return 1;
- }
- public OnPlayerConnect(playerid) {
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
- mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
- pLogged[playerid] = 0;
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case DIALOG_REGISTER: {
- if(!response) return Kick(playerid);
- SCM(playerid, -1, "TE-AI INREGISTRAT PE SERVER."); //register message
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
- mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
- format(PlayerInfo[playerid][pPassword], 32, inputtext);
- }
- case DIALOG_LOGIN: {
- if(!response) return Kick(playerid);
- mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", GetName(playerid), inputtext);
- mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
- }+
- }
- return 1;
- }
- stock GetName(playerid) {
- new playerName[24];
- GetPlayerName(playerid, playerName, 24);
- return playerName;
- }
- function OnLogin(playerid) {
- switch(cache_num_rows() ) {
- case 0: SCM(playerid, -1, "Parola incorecta."); //incorrect password message
- case 1: {
- new result[64];
- PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
- cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
- cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
- printf("%s s-a logat pe server.", GetName(playerid)); //debug with player who logged in
- SCM(playerid, -1, "TE-AI LOGAT PE SERVER."); //login message
- }
- }
- return 1;
- }
- function checkAccount(playerid){
- switch(cache_num_rows()) {
- case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register (NU AI UN CONT)", "Parola:", "Insert", "Cancel"); //if i don't have an account
- case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login (AI DEJA UN CONT)", "Parola:", "Login", "Cancel"); //if i have an account
- }
- return 1;
- }
- function insertAccount(playerid) {
- PlayerInfo[playerid][pSQLID] = cache_insert_id();
- printf("%s s-a inregistrat cu SQLID: %d", GetName(playerid), PlayerInfo[playerid][pSQLID]);//debug with player who registered
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment