Something wrong with my register system.
#1

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new name[MAX_PLAYER_NAME], file[128], Float:x, Float:y, Float:z;
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), SERVER_USER_FILE, name);
    if(gPlayerLogged[playerid] == 1)
    {
        dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
        dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
        dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
        dini_IntSet(file, "WantedLevel",GetPlayerWantedLevel(playerid));
        dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
        dini_IntSet(file, "Cop", PlayerInfo[playerid][pCop]);
        dini_IntSet(file, "Civilian", PlayerInfo[playerid][pCivilian]);
        dini_IntSet(file, "FirstTime", PlayerInfo[playerid][pFirstTime] = 1);
        GetPlayerPos(playerid, x, y, z);
        dini_FloatSet(file, "posX", x);
        dini_FloatSet(file, "posY", y);
        dini_FloatSet(file, "posZ", z);
    }
    gPlayerLogged[playerid] = 0;
    return 1;
}

public OnPlayerSpawn(playerid)
{
     new name[MAX_PLAYER_NAME], file[128], Float:x, Float:y, Float:z;
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), SERVER_USER_FILE, name);
    if(PlayerInfo[playerid][pFirstTime] == 1)
    {
        PlayerInfo[playerid][pCop] = dini_Int(file, "Cop");
        PlayerInfo[playerid][pCivilian] = dini_Int(file, "Civilian");
        x = dini_Float(file, "posX");
        y = dini_Float(file, "posY");
        z = dini_Float(file, "posZ");
        SetPlayerPos(playerid, x, y, z);
        SetPlayerSkin(playerid,dini_Int(file,"Skin"));
        SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
        PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
        GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
        SetPlayerWantedLevel(playerid, dini_Int(file, "WantedLevel"));
        SendClientMessage(playerid,COLOR_GREEN, "[SYSTEM]: Logged in.");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == 1)
    {
        new name[MAX_PLAYER_NAME], file[128], string[128];
        GetPlayerName(playerid, name, sizeof(name));
        format(file, sizeof(file), SERVER_USER_FILE, name);
        if(!response) return Kick(playerid);
        if (!strlen(inputtext)) return
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register:", "Register please.", "Register", "leave");
        dini_Create(file);
        dini_IntSet(file, "Password", udb_hash(inputtext));
        dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);
        dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 5000);
        dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
        dini_IntSet(file, "WantedLevel",PlayerInfo[playerid][pWanted] = 0);
        dini_IntSet(file, "Skin",PlayerInfo[playerid][pSkin] = 0);
        dini_IntSet(file, "Cop",PlayerInfo[playerid][pCop] = -1);
        dini_IntSet(file, "Civilian",PlayerInfo[playerid][pCivilian] = -1);
        dini_IntSet(file, "FirstTime",PlayerInfo[playerid][pFirstTime] = 0);
        format(string, 128, "[SYSTEM]: Registered and logged in.", name, inputtext);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        gPlayerLogged[playerid] = 1;
    }
    if (dialogid == 2)
    {
        new name[MAX_PLAYER_NAME], file[128];
        GetPlayerName(playerid, name, sizeof(name));
        format(file, sizeof(file), SERVER_USER_FILE, name);
        if(!response) return Kick(playerid);
        if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login:", "Please login", "Login", "Leave);
        new tmp;
        tmp = dini_Int(file, "
Password");
        if(udb_hash(inputtext) != tmp) {
            SendClientMessage(playerid, COLOR_RED, "
Vale parool!");
            ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "
Login:", "Please login", "Login", "Leave);
        }
        else
        {
            gPlayerLogged[playerid] = 1;
            PlayerInfo[playerid][pCop] = dini_Int(file, "Cop");
            PlayerInfo[playerid][pCivilian] = dini_Int(file, "Civilian");
            SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
            PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
            GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
            SetPlayerWantedLevel(playerid, dini_Int(file, "WantedLevel"));
            SetPlayerSkin(playerid,dini_Int(file,"Skin"));
            SendClientMessage(playerid,COLOR_GREEN, "[SYSTEM]: You are logged.");
        }
    }
    return 1;
}
Something wrong with it, if you register and get logged in then your money will be 000000 but if you relog then you will have 5000 money, you sould have 5000 money already then if you first register. I can't find missing stuff, mybe you can?
Reply


Messages In This Thread
Something wrong with my register system. - by tuuker - 04.03.2011, 13:34
Re: Something wrong with my register system. - by YungGee - 04.03.2011, 13:42

Forum Jump:


Users browsing this thread: 1 Guest(s)