Making Admin Name (+REP and REWARDS WHO CAN HELP ME)
#10

Scripted by me from my script:

PHP код:
#define DIALOG_REGISTER 500
#define DIALOG_LOGIN 501
#define PATH "/info/%s.ini" 
Add in your scriptfiles folder a new one know by "info"

Under on player connect
PHP код:
    if(fexist(UserPath(playerid)))
    {
        
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra true, .extra playerid);
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
    }
    else
    {
        
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
    } 
Anywhere
PHP код:
public LoadUser_data(playerid,name[],value[])
{   
// =========================== Loading User Data from the INI File ================================ //
    
INI_Int("Password",PlayerInfo[playerid][pPass]);
    
INI_Int("Cash",PlayerInfo[playerid][pMoney]);
    
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    
INI_Int("Skin",PlayerInfo[playerid][pSkin]);
    
INI_Int("Police",PlayerInfo[playerid][pPolice]);
    
INI_Int("Gang",PlayerInfo[playerid][pGang]);
    
INI_Int("Horseshoes"PlayerInfo[playerid][pHorseshoes]);
    
INI_Int("Score"PlayerInfo[playerid][pScore]);
    
INI_Int("Warnings"PlayerInfo[playerid][pWarnings]);
    
INI_Int("Dealer"PlayerInfo[playerid][pDealer]);
    return 
1;
}
forward  LoadUser_data(playerid,name[],value[]);
stock UserPath(playerid)
{   
// User's Path
    
new string[128],playername[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,playername,sizeof(playername));
    
format(string,sizeof(string),PATH,playername);
    return 
string;
}
stock udb_hash(buf[])
{   
// ========== Password Hash ================== //
    
new length=strlen(buf);
    new 
s1 1;
    new 
s2 0;
    new 
n;
    for (
n=0n<lengthn++)
    {
       
s1 = (s1 buf[n]) % 65521;
       
s2 = (s2 s1)     % 65521;
    }
    return (
s2 << 16) + s1;

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch( 
dialogid )
     {
        case 
DIALOG_REGISTER:
        {
            if(!
response) return Kick(playerid);
            if(
fexist(UserPath(playerid)))
            {
                
fremove(UserPath(playerid));
            }
            if(
response)
            {
                
                if(!
strlen(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_PASSWORD"Account","Welcome to SA-MP Server!\n\n{FF1493}Your account is not found on the server, we hope you enjoy your stay!\n{FF1493}In order to reguster account successfully, Fill in your desired password for the next login:""Continue""Leave");
                new 
INI:file INI_Open(UserPath(playerid));
                
INI_SetTag(file,"data");
                
INI_WriteInt(file,"Password",udb_hash(inputtext));
                
INI_WriteInt(file,"Cash",75000);
                
INI_WriteInt(file,"Admin",0);
                
INI_WriteInt(file,"Skin",0);
                
INI_WriteInt(file,"Score",0);
                
INI_WriteInt(file,"Police",0);
                
INI_WriteInt(file,"Gang",0);
                
INI_WriteInt(file"Horseshoes"0);
                
INI_WriteInt(file,"Warnings",0);
                
INI_WriteInt(file,"Dealer",0);
                
INI_Close(file);
                   
SetSpawnInfo(playerid001958.331343.1215.36269.15000000);
                
SpawnPlayer(playerid);
                
LoggedIn[playerid] = true;
                
freezed[playerid] = false;
                
pm[playerid] = true;
            }
        }
        case 
DIALOG_LOGIN:
                 {
            if(!
response) return Kick(playerid);
            if(
response)
            {
                if(
udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra true, .extra playerid);
                    
GivePlayerMoney(playeridPlayerInfo[playerid][pMoney]);
                    
SendClientMessage(playerid0xFF7F2480,"You have successfully logged in your game account!");
                    
SetPlayerScore(playeridPlayerInfo[playerid][pScore]);
                    
GivePlayerMoney(playeridPlayerInfo[playerid][pMoney]);
                     
SetSpawnInfo(playerid001958.331343.1215.36269.15000000);
                    
SpawnPlayer(playerid);
                     
LoggedIn[playerid] = true;
                     
freezed[playerid] = false;
                     
pm[playerid] = true;
                     if(
PlayerInfo[playerid][pWarnings] == 3)
                    {
                    
PlayerInfo[playerid][pWarnings] = 0;
                    }
                }
                else
                {
                       
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_PASSWORD,"Account","Welcome to SA-MP Server!\n\n{FF1493}Your account is registered on the server, we hope you enjoy your stay!\n{FF1493}In order to log in your account successfully, Fill in your password correctly:\n\n{FF0033}*Password you typed is incorrect","Continue","Leave");
                    
LoggedIn[playerid] = false;
                }
            }
        } 
Under on player disconnect
PHP код:
    new INI:FILE INI_Open(UserPath(playerid));
    
INI_SetTag(FILE,"data");
    
INI_WriteInt(FILE,"Cash",GetPlayerMoney(playerid));
    
INI_WriteInt(FILE,"Admin",PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(FILE,"Skin",GetPlayerSkin(playerid));
    
INI_WriteInt(FILE,"Score",GetPlayerScore(playerid));
    
INI_WriteInt(FILE,"Police",PlayerInfo[playerid][pPolice]);
    
INI_WriteInt(FILE,"Gang",PlayerInfo[playerid][pGang]);
    
INI_WriteInt(FILE"Horseshoes"PlayerInfo[playerid][pHorseshoes]);
    
INI_WriteInt(FILE"Dealer"PlayerInfo[playerid][pDealer]);
    
INI_WriteInt(FILE"Warnings"PlayerInfo[playerid][pWarnings]);
    
INI_Close(FILE); 
This is a full register and login system with dialogs.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 3 Guest(s)