Need Help MySQL R34 orm i making account system
#1

i join my server with new name and i put the password the question is i don't know to create new account to database. so tell me pls what i need to do

Код:
#include <a_samp>
#include <a_mysql>
#include <zcmd>

#define SQLHOST "127.0.0.1"
#define SQLUSER "root"
#define SQLDATABASE "sampdatabase"
#define SQLPASSWORD "password"
#define MAX_FACTION_NAME 32
#define COLOR_BLUE3 0xA9C4E4FF
#define DIALOG_LOGIN 125
#define DIALOG_REGISTER 126

new Logged[MAX_PLAYERS];
enum E_PLAYER
{
	ORM:pORM_ID,
	pID,
	pName[MAX_PLAYER_NAME+1],
	pPassword[32],
	pAdmin,
	pClass,
	pLevel,
	pRespect,
	pPoint,
	pCash,
	pFac,
	pRank,
	pJob,
	pSkill
}
new PlayerInfo[MAX_PLAYERS][E_PLAYER];

enum E_FAC
{
	ORM:fORM_ID,
	fID,
	fName[MAX_FACTION_NAME+1],
	Float:fSpX,
	Float:fSpY,
	Float:fSpZ,
	fSpI,
	fSpV,
	fLevel,
	fRespect,
	fMoney
}
new FacInfo[MAX_PLAYERS][E_FAC];
public OnGameModeInit()
{
	mysql_connect(SQLHOST, SQLUSER, SQLDATABASE, SQLPASSWORD);
	SetGameModeText("GF2 (v. cb)");
	AddPlayerClass(2, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 200, 0, 0, 0, 0);
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	Logged[playerid] = 0;
    GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
    new ORM:ormid = PlayerInfo[playerid][pORM_ID] = orm_create("players");

    orm_addvar_int(ormid, PlayerInfo[playerid][pID], "ID");
    orm_addvar_string(ormid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME+1, "Name");
    orm_addvar_string(ormid, PlayerInfo[playerid][pPassword], 32, "Password");
    orm_setkey(ormid, "Name");
	SendClientMessage(playerid,COLOR_BLUE3,"key set to Name");
    orm_select(ormid, "OnPlayerDataLoad", "d", playerid);
	return 1;
}
forward OnPlayerDataLoad(playerid);
public OnPlayerDataLoad(playerid)
{
    switch(orm_errno(PlayerInfo[playerid][pORM_ID]))
    {
        case ERROR_OK: {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Please insert your password.", "Login", "Abort");
        }
        case ERROR_NO_DATA: {
            ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Please insert your password.", "Register", "Abort");
        }
    }
    orm_setkey(PlayerInfo[playerid][pORM_ID], "ID");
    SendClientMessage(playerid,COLOR_BLUE3,"key set to ID");
    return 1;
}

forward OnPlayerRegister(playerid);
public OnPlayerRegister(playerid)
{
    printf("Player %d signed up and their ID value is %d.", playerid, PlayerInfo[playerid][pID]);
}

public OnPlayerDisconnect(playerid, reason)
{
    if(PlayerInfo[playerid][pID] != 0) {
        orm_update(PlayerInfo[playerid][pORM_ID]);
    }
    orm_destroy(PlayerInfo[playerid][pORM_ID]);

    for(new E_PLAYER:e; e < E_PLAYER; ++e)
        PlayerInfo[playerid][e] = 0;
	return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_REGISTER)
	{
	    if(response)
	    {
			if(strlen(inputtext) < 8 || strlen(inputtext) > 32)
			{
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Password needs at least 6 characters and maximum 36.\nTry Again.", "Register", "Abort");
			}
			else if(strlen(inputtext) > 8 && strlen(inputtext) < 32)
			{
				format(PlayerInfo[playerid][pPassword], strlen(inputtext), "%s", inputtext);
                orm_insert(PlayerInfo[playerid][pORM_ID], "OnPlayerRegistered", "d", playerid);
			}
		}
		if(!response)
		{
		    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "You have to finishd register.\nTry Again.", "Register", "Abort");
		}
	}
	return 1;
}
Reply
#2

Read about how to create a mysql system with ORM: https://sampforum.blast.hk/showthread.php?tid=461766
You're forgetting a few functions to save/store and interact with the data.
Reply
#3

That will save if no the name right ? with orm_insert ?
how about password how to sync to orm from inputtext dialog and send go orm insert
Reply
#4

some one answer pls
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)