3 errors still, please help!
#1

Hey, if it isn't ask much, can you guys help me with this 3 errors? I converted an basic register system from a tut for zcmd and sscanf and i get some erros.... Thanks Very MUCH!

This erros:
Код:
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(22) : warning 219: local variable "file" shadows a variable at a preceding level
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(36) : error 017: undefined symbol "eadmin"
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(62) : error 029: invalid expression, assumed zero
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(74) : error 029: invalid expression, assumed zero
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(120) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
On this code:
pawn Код:
#include <a_samp>
#include <dini>
#include <dudb>
#include <zcmd>
#include <sscanf>

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

enum pInfo
{
    AdminLevel,
    Cash,
    Score,
}
new PlayerInfo[MAX_PLAYERS][pInfo];

COMMAND:register(playerid, params[])
{
    new file[128], tmp[256];
    new name[MAX_PLAYER_NAME];
    new id;
    GetPlayerName(playerid, name, sizeof(name));
    if(!sscanf(params, "u", id))
    {
            format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
            if(!fexist(file))
            {
                dini_Create(file);
                dini_IntSet(file,"Password", udb_hash(tmp));
                dini_IntSet(file,"AdminLevel", 0);
                dini_IntSet(file,"Cash", 0);
                dini_IntSet(file,"Score", 0);
                SendClientMessage(playerid, eadmin, "[System]: Account Created!");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                GetPlayerName(playerid, name, sizeof(name));
                printf("%s has registered a account!", name);
                return 1;
            }
            else
            {
                SendClientMessage(playerid, 0xFFFFFFFF, " Account Already Found In Database");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                return 1;
            }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /register [password]");
}

COMMAND:login(playerid, params[])
{
    new tmp[256], tmp2[256];
    new id;
    new PlayerName[24];
    if(!sscanf(params, "u", id))
    {
        new name[MAX_PLAYER_NAME];
        if(IsLogged[playerid] == 1)
        {
            else
            {
                GetPlayerName(playerid, name, sizeof(name));
                format(file,sizeof(file),"%s.ini",name);
                if(fexist(file))
                {
                    tmp2 = dini_Get(file, "Password");
                    if(udb_hash(tmp) != strval(tmp2))
                    {
                        SendClientMessage(playerid, 0xFFFFFFFF, "Login Failed!");
                        GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
                        printf("%s has failed to login", name);
                        else
                        {
                            IsLogged[playerid] = 1;
                            SetPlayerMoney(playerid, dini_Int(file, "Cash"));
                            PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                            SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Logged into!");
                        }
                    }
                }
            }
        }
        else return SendClientMessage(playerid, 0xFFFFFFFF, "You already are logged in!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /login [password]");
    return 1;
}
public OnPlayerDisconnect(playerid)
{
    IsLogged[playerid] = 0;
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(gLogged[playerid] == 0)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "SERVER:Use /login [password] to save your stats!");
        return 1;
    }
    return 1;
}
public OnPlayerConnect(playerid)
{
    if(gRegistred[playerid] == 1)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "Use /login to login into your account!");
        return 1;
    }
    if(gRegistred[playerid] == 0)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "Use /register to register your account!");
        return 1;
    }
    return 1;
}
Thanks very Much
Reply
#2

Try change the size of file from 128 to 256, only when dealing with files is it efficient to use 256 cell strings. And the other error is in the SendClientMessage, the parameters for that function is playerid, color, message, so change eadmin to a color, you can use this 0xFFFFFFAA, it's bright red
Reply
#3

Thanks, now i have only this 2 erros... Please help me with this 2 last...
Код:
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(62) : error 029: invalid expression, assumed zero
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(74) : error 029: invalid expression, assumed zero
C:\Users\Ricardo\Desktop\Mini-DM\Mini-DM\Freedoom\filterscripts\adminric.pwn(120) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Here the lines:
pawn Код:
COMMAND:login(playerid, params[])
{
    new tmp[256], tmp2[256];
    new id;
    new PlayerName[24];
    if(!sscanf(params, "u", id))
    {
        new name[MAX_PLAYER_NAME];
        if(IsLogged[playerid] == 1)
        {
            else
            {
                GetPlayerName(playerid, name, sizeof(name));
                format(file,sizeof(file),"%s.ini",name);
                if(fexist(file))
                {
                    tmp2 = dini_Get(file, "Password");
                    if(udb_hash(tmp) != strval(tmp2))
                    {
                        SendClientMessage(playerid, 0xFFFFFFFF, "Login Failed!");
                        GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
                        printf("%s has failed to login", name);
                        else
                        {
                            IsLogged[playerid] = 1;
                            SetPlayerMoney(playerid, dini_Int(file, "Cash"));
                            PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                            SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Logged into!");
                        }
                    }
                }
            }
        }
        else return SendClientMessage(playerid, 0xFFFFFFFF, "You already are logged in!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /login [password]");
    return 1;
}
Reply
#4

Can you show me which lines are 62 and 74?
Reply
#5

Ups, no need thanks, by the way, can you tell me how do i save the starts on this code? Coz it created good a file with the stuffs, but don't save nothing... only the password! What are the thinks i could put on OnPlayerDisconnect(playerid) to check and save? The code is this:

pawn Код:
#include <a_samp>
#include <dini>
#include <dudb>
#include <zcmd>
#include <sscanf>

new IsLogged[MAX_PLAYERS];
new gLogged[MAX_PLAYERS];
new gRegistred[MAX_PLAYERS];
new file[256];

enum pInfo
{
    AdminLevel,
    Cash,
    Score,
}
new PlayerInfo[MAX_PLAYERS][pInfo];

COMMAND:register(playerid, params[])
{
    new tmp[256];
    new name[MAX_PLAYER_NAME];
    new id;
    GetPlayerName(playerid, name, sizeof(name));
    if(!sscanf(params, "u", id))
    {
            format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
            if(!fexist(file))
            {
                dini_Create(file);
                dini_IntSet(file,"Password", udb_hash(tmp));
                dini_IntSet(file,"AdminLevel", 0);
                dini_IntSet(file,"Cash", 0);
                dini_IntSet(file,"Score", 0);
                SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Created!");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                GetPlayerName(playerid, name, sizeof(name));
                printf("%s has registered a account!", name);
                return 1;
            }
            else
            {
                SendClientMessage(playerid, 0xFFFFFFFF, " Account Already Found In Database");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                return 1;
            }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /register [password]");
}

COMMAND:login(playerid, params[])
{
    new tmp[256], tmp2[256];
    new id;
    new PlayerName[24];
    if(!sscanf(params, "u", id))
    {
        new name[MAX_PLAYER_NAME];
        if(IsLogged[playerid] == 1)
        {
           
                GetPlayerName(playerid, name, sizeof(name));
                format(file,sizeof(file),"%s.ini",name);
                if(fexist(file))
                {
                    tmp2 = dini_Get(file, "Password");
                    if(udb_hash(tmp) != strval(tmp2))
                    {
                        SendClientMessage(playerid, 0xFFFFFFFF, "Login Failed!");
                        GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
                        printf("%s has failed to login", name);
                        IsLogged[playerid] = 1;
                        SetPlayerMoney(playerid, dini_Int(file, "Cash"));
                        PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
                        SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Logged into!");
                       
                    }
                }
           
        }
        else return SendClientMessage(playerid, 0xFFFFFFFF, "You already are logged in!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /login [password]");
    return 1;
}
public OnPlayerDisconnect(playerid)
{
    IsLogged[playerid] = 0;
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(gLogged[playerid] == 0)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "SERVER:Use /login [password] to save your stats!");
        return 1;
    }
    return 1;
}
public OnPlayerConnect(playerid)
{
    if(gRegistred[playerid] == 1)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "Use /login to login into your account!");
        return 1;
    }
    if(gRegistred[playerid] == 0)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "Use /register to register your account!");
        return 1;
    }
    return 1;
}
Thanks man!
Reply
#6

I don't quite understand what your saying.
What do you mean when you say, "how do i save the starts", and, "it created a good file with the stuffs".
Reply
#7

Ok, i explain... This system could save our money, score and adminlevel when disconect...
It create the file with my name in scriptfiles but don't save the stuff...
Don't save nothing, only save pasword!
I want it to save my money and score!
Reply
#8

pawn Код:
COMMAND:register(playerid, params[])
{
    new tmp[256];
    new name[MAX_PLAYER_NAME];
    new id[128];
    GetPlayerName(playerid, name, sizeof(name));
    if(!sscanf(params, "s[128]", id))
    {
            format(file,sizeof(file),"RicAdmin/users/%s.ini",name);
            if(!dini_Exists(file))
            {
                dini_Create(file);
                dini_IntSet(file,"Password", id);
                dini_IntSet(file,"AdminLevel", 0);
                dini_IntSet(file,"Cash", 0);
                dini_IntSet(file,"Score", 0);
                SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Created!");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                GetPlayerName(playerid, name, sizeof(name));
                printf("%s has registered a account!", name);
                return 1;
            }
            else
            {
                SendClientMessage(playerid, 0xFFFFFFFF, " Account Already Found In Database");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                return 1;
            }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /register [password]");
}
I'm not sure if this will work, but try that.
Reply
#9

No, I know it is needed to put something under OnPlayerDisconect to check and save money, score and adm level, i just don't know the code!
Coz on Register It only create the file, after, when disconect, it save the stats, and when login, load the file!
Reply
#10

Okay

pawn Код:
public OnPlayerDisconnect(playerid)
{
    new name[24], file[246];
    GetPlayerName(playerid,name,24);
    format(file,sizeof(file),"RicAdmin/users/%s.ini",name);
    if(dini_Exists(file))
    {
        dini_IntSet(file,"Cash",GetPlayerMoney(playerid));
        dini_IntSet(file,"AdminLevel",PlayerInfo[playerid][AdminLevel]);
        IsLogged[playerid] = 0;
        return 1;
    }
   
    return 1;
}
I think that should work, i haven't tested it though
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)