Need Help in saving the Accounts
#1

hi , i have this FS :

PHP код:
#define FILTERSCRIPT
#include <a_samp>
#include <dutils>
#include <Dini>
#pragma unused ret_memcpy
enum pInfo {
    
AdminLevel,
    
level,
    
cash,
    
pw,
}
new 
PlayerInfo[MAX_PLAYERS][pInfo];
public 
OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
"Login & Register system by Alae");
    print(
"--------------------------------------\n");
    return 
1;
}
public 
OnFilterScriptExit()
{
    return 
1;
}
public 
OnGameModeExit()
{
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    new 
name[MAX_PLAYER_NAME], file[128];
    
GetPlayerName(playeridnameMAX_PLAYER_NAME);
    
format(filesizeof(file), "ZMRP/Users/%s.ini"name);
    if(!
fexist(file)) {
        
SendClientMessage(playerid, -1"You are not registered, please register");
        
ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Please Register""Enter Your Password Below""Register""Cancel");
    }
    else {
        new 
str[128];
        
GetPlayerName(playeridnameMAX_PLAYER_NAME);
        
format(strsizeof(str), "Welcome Back ~r~%s. Enjoy!"name);
        
SendClientMessage(playerid, -1str);
        
ShowPlayerDialog(playerid2DIALOG_STYLE_INPUT"Please Login""Enter Your Password Below""Login""Cancel");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
file[128], name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnameMAX_PLAYER_NAME);
    
format(filesizeof(file), "ZMRP/Users/%s.ini"name);
    if(
dini_Exists(file)) {
        
dini_IntSet(file"pw"PlayerInfo[playerid][pw]);
        
dini_IntSet(file"AdminLevel"PlayerInfo[playerid][AdminLevel]);
        
dini_IntSet(file"cash"PlayerInfo[playerid][cash]);
        
dini_IntSet(file"level"PlayerInfo[playerid][level]);
    }
    return 
1;
}
public 
OnPlayerRequestSpawn(playerid)
{
    
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 1) {
        new 
file[128], name[MAX_PLAYER_NAME], str[128];
        
GetPlayerName(playeridnameMAX_PLAYER_NAME);
        
format(filesizeof(file), "ZMRP/Users/%s.ini"name);
        if(
response) {
            if(
strlen(inputtext)) {
                
dini_Create(file);
                
dini_IntSet(file"pw"num_hash(inputtext));
                
dini_IntSet(file"AdminLevel"PlayerInfo[playerid][AdminLevel]);
                
dini_IntSet(file"cash"PlayerInfo[playerid][cash]);
                
dini_IntSet(file"level"PlayerInfo[playerid][level]);
                
format(strsizeof(str), "You are registered as ~r~%s. Your password is ~r~%s. /changepass to change it"nameinputtext);
                
SendClientMessage(playerid, -1str);
                
PlayerInfo[playerid][level] = dini_Int(file"level");
                
PlayerInfo[playerid][cash] = dini_Int(file"cash");
                
PlayerInfo[playerid][AdminLevel] = dini_Int(file"AdminLevel");
            }
        }
        else {
            
Kick(playerid);
        }
    }
    if(
dialogid == 2) {
        new 
file[128], name[MAX_PLAYER_NAME], str[128];
        
GetPlayerName(playeridnameMAX_PLAYER_NAME);
        
format(strsizeof(str), "ZMRP/Users/%s.ini"name);
        if(
response) {
            if(
strlen(inputtext)) {
                if(
num_hash(inputtext) != dini_Int(file"pw")) {
                    
SendClientMessage(playerid, -1"Wrong Password");
                    
ShowPlayerDialog(playerid2DIALOG_STYLE_INPUT"Please Login""Enter Your Password Below""Login""Cancel");
                }
                else {
                    
SendClientMessage(playerid, -1"Succesfuly logged in");
                    
PlayerInfo[playerid][level] = dini_Int(file"level");
                    
PlayerInfo[playerid][cash] = dini_Int(file"cash");
                    
GivePlayerMoney(playeriddini_Int(file"cash"));
                    
PlayerInfo[playerid][AdminLevel] = dini_Int(file"AdminLevel");
                }
            }
        }
        else {
            
Kick(playerid);
        }
    }
    return 
1;

i created the folder "ZMRP" in scriptfiles , and inside ZMRP i created "Users" but the problem is whene i register, the account doesn't save in Users folder . Need Help.((+1rep for the Helper))
Reply
#2

Why do you even use DINI? That's kinda old, try using y_ini - that's much better.
Reply
#3

U know what i said the last time , Y_ini is the wrost thing i can use , it says Error: repose was 006, and some times Congratulation! You are runing the last Version , so no , i will never use it , can u help me to fix this problem ? thankx
Reply
#4

You need to learn how to use y_ini it's not that hard. Be sure you downloaded the latest version and updated everything correct. Anyway I will look into this script.

// This works for me:
pawn Код:
#define FILTERSCRIPT

#include <a_samp>
#include <dutils>
#include <Dini>

enum pInfo {
    AdminLevel,
    level,
    cash,
    pw,
}
new PlayerInfo[MAX_PLAYERS][pInfo];



public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("Login & Register system by Alae");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}


public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME], file[128];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
    if(!fexist(file)) {
        SendClientMessage(playerid, -1, "You are not registered, please register");
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Please Register", "Enter Your Password Below", "Register", "Cancel");
    }
    else {
        new str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(str, sizeof(str), "Welcome Back ~r~%s. Enjoy!", name);
        SendClientMessage(playerid, -1, str);
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new file[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
    if(dini_Exists(file)) {
        dini_IntSet(file, "pw", PlayerInfo[playerid][pw]);
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
        dini_IntSet(file, "cash", PlayerInfo[playerid][cash]);
        dini_IntSet(file, "level", PlayerInfo[playerid][level]);
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{

    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 1) {
        new file[128], name[MAX_PLAYER_NAME], str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
        if(response) {
            if(strlen(inputtext)) {
                dini_Create(file);
                dini_IntSet(file, "pw", num_hash(inputtext));
                dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
                dini_IntSet(file, "cash", PlayerInfo[playerid][cash]);
                dini_IntSet(file, "level", PlayerInfo[playerid][level]);
                format(str, sizeof(str), "You are registered as ~r~%s. Your password is ~r~%s. /changepass to change it", name, inputtext);
                SendClientMessage(playerid, -1, str);
                PlayerInfo[playerid][level] = dini_Int(file, "level");
                PlayerInfo[playerid][cash] = dini_Int(file, "cash");
                PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
            }
        }
        else {
            Kick(playerid);
        }
    }
    if(dialogid == 2) {
        new file[128], name[MAX_PLAYER_NAME], str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(str, sizeof(str), "ZMRP/Users/%s.ini", name);
        if(response) {
            if(strlen(inputtext)) {
                if(num_hash(inputtext) != dini_Int(file, "pw")) {
                    SendClientMessage(playerid, -1, "Wrong Password");
                    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
                }
                else {
                    SendClientMessage(playerid, -1, "Succesfuly logged in");
                    PlayerInfo[playerid][level] = dini_Int(file, "level");
                    PlayerInfo[playerid][cash] = dini_Int(file, "cash");
                    GivePlayerMoney(playerid, dini_Int(file, "cash"));
                    PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                }
            }
        }
        else {
            Kick(playerid);
        }
    }
    return 1;
}
Be sure your folder is correct. (lowercast - highercast)
Reply
#5

You have nothing to worry about the y_ini thing, anyway, try this:
Код:
Right Click on samp-server.exe
Click on Properties
And check the box that says Run as Administrator
Then click OK and test it.
Reply
#6

Quote:
Originally Posted by Kingunit
Посмотреть сообщение
You need to learn how to use y_ini it's not that hard. Be sure you downloaded the latest version and updated everything correct. Anyway I will look into this script.

// This works for me:
pawn Код:
#define FILTERSCRIPT

#include <a_samp>
#include <dutils>
#include <Dini>

enum pInfo {
    AdminLevel,
    level,
    cash,
    pw,
}
new PlayerInfo[MAX_PLAYERS][pInfo];



public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("Login & Register system by Alae");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}


public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME], file[128];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
    if(!fexist(file)) {
        SendClientMessage(playerid, -1, "You are not registered, please register");
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Please Register", "Enter Your Password Below", "Register", "Cancel");
    }
    else {
        new str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(str, sizeof(str), "Welcome Back ~r~%s. Enjoy!", name);
        SendClientMessage(playerid, -1, str);
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new file[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
    if(dini_Exists(file)) {
        dini_IntSet(file, "pw", PlayerInfo[playerid][pw]);
        dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
        dini_IntSet(file, "cash", PlayerInfo[playerid][cash]);
        dini_IntSet(file, "level", PlayerInfo[playerid][level]);
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{

    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 1) {
        new file[128], name[MAX_PLAYER_NAME], str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(file, sizeof(file), "ZMRP/Users/%s.ini", name);
        if(response) {
            if(strlen(inputtext)) {
                dini_Create(file);
                dini_IntSet(file, "pw", num_hash(inputtext));
                dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][AdminLevel]);
                dini_IntSet(file, "cash", PlayerInfo[playerid][cash]);
                dini_IntSet(file, "level", PlayerInfo[playerid][level]);
                format(str, sizeof(str), "You are registered as ~r~%s. Your password is ~r~%s. /changepass to change it", name, inputtext);
                SendClientMessage(playerid, -1, str);
                PlayerInfo[playerid][level] = dini_Int(file, "level");
                PlayerInfo[playerid][cash] = dini_Int(file, "cash");
                PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
            }
        }
        else {
            Kick(playerid);
        }
    }
    if(dialogid == 2) {
        new file[128], name[MAX_PLAYER_NAME], str[128];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME);
        format(str, sizeof(str), "ZMRP/Users/%s.ini", name);
        if(response) {
            if(strlen(inputtext)) {
                if(num_hash(inputtext) != dini_Int(file, "pw")) {
                    SendClientMessage(playerid, -1, "Wrong Password");
                    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Please Login", "Enter Your Password Below", "Login", "Cancel");
                }
                else {
                    SendClientMessage(playerid, -1, "Succesfuly logged in");
                    PlayerInfo[playerid][level] = dini_Int(file, "level");
                    PlayerInfo[playerid][cash] = dini_Int(file, "cash");
                    GivePlayerMoney(playerid, dini_Int(file, "cash"));
                    PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                }
            }
        }
        else {
            Kick(playerid);
        }
    }
    return 1;
}
Be sure your folder is correct. (lowercast - highercast)
Yeah i'm sire Man , and i tested but doens't saving ,

@Jafet : i will try Later ,and i don't think that this will correct the Y_ini problem , ****** should fix it himself
Reply
#7

****** doens't need to fix anything. It's working at me and like 90% of the SA:MP users. The problem is at you. Be sure you updated everything right.
Reply
#8

Quote:
Originally Posted by ServerScripter
Посмотреть сообщение
Yeah i'm sire Man , and i tested but doens't saving ,

@Jafet : i will try Later ,and i don't think that this will correct the Y_ini problem , ****** should fix it himself
No, I meant to try that to fix your dini problem.
Reply
#9

@Kingunit: No , i have put the folder "YSI" in the includes(inside YSI there are y_ini...... and it is the last version)

@jafet : no don't working , i don't know why the accounts doesn't save in Users ..
Reply
#10

Receiving an error upon execution of the console window (whilst having the YSI directory) means that your having trouble pinging ******'s website. Though, this does not mean that it's a problem!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)