Login system, one confusing error...
#1

the code:

pawn Код:
CMD:login(playerid, params[])
{
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);

    if(IsLogged[playerid] == 0)
    {
        new password[24];
        if(sscanf(params, "s", password))return SendClientMessage(playerid,0xFFA429FF,"[LOGIN-USAGE] /login [PASSWORD]");
        else
        {
            format(file,sizeof(file),"CSAdmin/Users/%s.ini",PlayerName);
            if(dini_Exists(file))
            {
                if(strcmp(dini_Get(file, "Password"), udb_hash(password), true)) <--- line 296
                {
                    GivePlayerMoney(playerid, dini_Int(file, "Money"));
                    SetPlayerScore(playerid, dini_Int(file, "Score"));
                    SetPlayerSkin(playerid, dini_Int(file, "Skin"));
                    IsLogged[playerid] = 1;
                }
                else
                {
                    SendClientMessage(playerid,0xFFA429FF,"[LOGIN-ERROR] That is the wrong password, please retype the correct one.");
                }
           
            }
            else
            {
                SendClientMessage(playerid,0xFFA429FF,"[LOGIN-WARNING] That account is not registered.");
                SendClientMessage(playerid,0xFFA429FF,"Please use /register");
            }
        }
       
    }
    else
    {
        SendClientMessage(playerid,0xFFA429FF,"[LOGIN-WARNING] You are already logged in!");
    }
    return 1;
}

the error:

Код:
(296) : error 035: argument type mismatch (argument 2)

cant figure out what it could be -.- everythings defined and that...

it occured when i did

#include <Dudb>

but without that i got that

udb_hash is an undefined symbol -.-


complete script:

pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT

#include <a_samp>
#include <Dini>
#include <zcmd>
#include <sscanf2>
#include <Dudb>
#pragma unused ret_memcpy


#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("|-------------------------------------------|");
    print(".::CS Admin::.");
    print("Used includes: Dini, ZCMD, and sscanf2");
    print("|_This filter script was created by CSMajor_|");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else


main()
{
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
}

#endif

new IsLogged[MAX_PLAYERS];
new file[128];

public OnGameModeInit()
{
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SavePlayer(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
CMD:register(playerid,params[])
{
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME);
    if(IsLogged[playerid] == 0)
    {
     new password[24];
     if(sscanf(params,"s",password))return SendClientMessage(playerid,0xFFA429FF,"[REGISTER-USAGE] /register [PASSWORD]");
     else
     {
        format(file,sizeof(file),"%s.ini",PlayerName);
        if(!dini_Exists(file))
        {
            dini_Create(file);
            dini_IntSet(file,"Password", udb_hash(password));
            dini_IntSet(file,"Money", GetPlayerMoney(playerid));
            dini_IntSet(file,"Score", GetPlayerScore(playerid));
            //dini_IntSet(file,"AdminLevel");
            dini_IntSet(file,"Skin", GetPlayerSkin(playerid));
           
            SendClientMessage(playerid,0xFFA429FF,"[REGISTRATION] You have sucessfully registered this account!");
            }
            else
            {
                SendClientMessage(playerid,0xFFA429FF,"[REGISTER-WARNING!] That account is already registered!");
            }
        }
    }
    else
    {
        SendClientMessage(playerid,0xFFA429FF,"[REGISTER-WARNING!] You are already logged in!");
    }
    return 1;
}

CMD:login(playerid, params[])
{
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);

    if(IsLogged[playerid] == 0)
    {
        new password[24];
        if(sscanf(params, "s", password))return SendClientMessage(playerid,0xFFA429FF,"[LOGIN-USAGE] /login [PASSWORD]");
        else
        {
            format(file,sizeof(file),"CSAdmin/Users/%s.ini",PlayerName);
            if(dini_Exists(file))
            {
                if(strcmp(dini_Get(file, "Password"), udb_hash(password), true))
                {
                    GivePlayerMoney(playerid, dini_Int(file, "Money"));
                    SetPlayerScore(playerid, dini_Int(file, "Score"));
                    SetPlayerSkin(playerid, dini_Int(file, "Skin"));
                    IsLogged[playerid] = 1;
                }
                else
                {
                    SendClientMessage(playerid,0xFFA429FF,"[LOGIN-ERROR] That is the wrong password, please retype the correct one.");
                }
           
            }
            else
            {
                SendClientMessage(playerid,0xFFA429FF,"[LOGIN-WARNING] That account is not registered.");
                SendClientMessage(playerid,0xFFA429FF,"Please use /register");
            }
        }
       
    }
    else
    {
        SendClientMessage(playerid,0xFFA429FF,"[LOGIN-WARNING] You are already logged in!");
    }
    return 1;
}

SavePlayer(playerid)
{
    if(IsLogged[playerid] == 1)
    {
        dini_IntSet(file, "Money", GetPlayerMoney(playerid));
        dini_IntSet(file, "Score", GetPlayerMoney(playerid));
        dini_IntSet(file, "Skin", GetPlayerSkin(playerid));
        IsLogged[playerid] = 0;
    }
    return 1;
}
Reply
#2

----
Reply
#3

i have multiple times, rarely ever come to the forums for errors... this ones just not solveable for me.
Reply
#4

help please
Reply
#5

What is the line of code where the error occurs?
Reply
#6

its posted in the code tags above


but here is the lines that could be affecting it


pawn Код:
CMD:login(playerid, params[])
{
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);

    if(IsLogged[playerid] == 0)
    {
        new password[24];
        if(sscanf(params, "s", password))return SendClientMessage(playerid,0xFFA429FF,"[LOGIN-USAGE] /login [PASSWORD]");
        else
        {
            format(file,sizeof(file),"CSAdmin/Users/%s.ini",PlayerName);
            if(dini_Exists(file))
            {
                if(strcmp(dini_Get(file, "Password"), udb_hash(password), true)) <--- line 296 this is where the error occurs
Reply
#7

can i get any help?
Reply
#8

pawn Код:
CMD:login(playerid, params[])
{
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
    {
        if(IsLogged[playerid] == 0)
        {
            new password[24];
            if(sscanf(params, "s", password))return SendClientMessage(playerid,0xFFA429FF,"[LOGIN-USAGE] /login [PASSWORD]");
            else
            {
                format(file,sizeof(file),"CSAdmin/Users/%s.ini",PlayerName);
                if(dini_Exists(file))
                {
                    if(strcmp(dini_Get(file, "Password"), udb_hash(password), true)) <--- line 296
                    {
                        GivePlayerMoney(playerid, dini_Int(file, "Money"));
                        SetPlayerScore(playerid, dini_Int(file, "Score"));
                        SetPlayerSkin(playerid, dini_Int(file, "Skin"));
                        IsLogged[playerid] = 1;
                    }
                    else
                    {
                        SendClientMessage(playerid,0xFFA429FF,"[LOGIN-ERROR] That is the wrong password, please retype the correct one.");
                    }

                }
                else
                {
                    SendClientMessage(playerid,0xFFA429FF,"[LOGIN-WARNING] That account is not registered.");
                    SendClientMessage(playerid,0xFFA429FF,"Please use /register");
                }
            }
        }
    }
    else
    {
        SendClientMessage(playerid,0xFFA429FF,"[LOGIN-WARNING] You are already logged in!");
    }
    return 1;
}
Maybe??
Reply
#9

tell me what you changed?
Reply
#10

nope still the same problem -.-
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)