MakeAdmin Problem with levels!
#1

Hey guys, 1 more time and i hope the last on this work i am doing, i need help! I think is the last hard part on my LONG work! I hope so.

Ok, I am making now a /makeadmin cmd... But i don't even know how to define the admin level and set it....
Here he cmd code:
pawn Code:
COMMAND:makeadmin(playerid, params[])
{
    new id;
    new AdminLevel;
    if(IsPlayerConnected(id))
    {
        if(IsPlayerAdmin(playerid))
        {
            if(!sscanf(params, "ui", id, AdminLevel))
            {
                if(AdminLevel <= 101 || 102 || 103 || 104 || 105 || 106 || 1338)
                {
                    new string[64];
                    new name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, name, sizeof(name));
                    GetPlayerName(id, PlayerName, sizeof(PlayerName));
                    format(string, sizeof(string), "%s Has Given You %d Admin Level.", name, AdminLevel);
                    SendClientMessage(id, 0x0259EAAA, string);
                    format(string, sizeof(string), "You Gave %d Admin Level To %s .", AdminLevel, PlayerName);
                    SendClientMessage(playerid, 0x0259EAAA, string);
                    PlayerInfo[id][AdminLevel];
                    return 1;
                }
                else return SendClientMessage(playerid, 0x0259EAAA, "Avaliable Levels: 101, 102, 103, 104, 105, 106, 1338");
            }
            else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]");
        }
        else return SendClientMessage(playerid, 0xFFFFFFFF, "You Need Rcon Admin To Use This Command!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Player Is Not Connected");
}
And the whole code(with register/login system too)
pawn Code:
#include <a_samp>
#include <dini>
#include <dudb>
#include <zcmd>
#include <sscanf>

#pragma unused ret_memcpy

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

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

COMMAND:register(playerid, params[])
{
    if(!strlen(params)) return SendClientMessage(playerid, 0xFFFFFFFF, "[Usage]: /register <password>");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    {
            format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
            if(!fexist(file))
            {
                dini_Create(file);
                dini_IntSet(file,"Password", udb_hash(params));
                dini_IntSet(file,"AdminLevel", 0);
                dini_IntSet(file,"Cash", 0);
                dini_IntSet(file,"Score", 0);
                dini_IntSet(file,"Color", 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;
            }
    }
}

COMMAND:login(playerid, params[])
{
    if(!strlen(params)) return SendClientMessage(playerid, 0xFFFFFFFF, "[Usage]: /login <password>");
    new tmp2[256];
    new PlayerName[24];
    new name[MAX_PLAYER_NAME];
    if(IsLogged[playerid] == 0)
    {
        GetPlayerName(playerid, name, sizeof(name));
        format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
        if(fexist(file))
        {
            tmp2 = dini_Get(file, "Password");
            if(udb_hash(params) == strval(tmp2))
            {
                SendClientMessage(playerid, 0xFFFFFFFF, "Login Sucefull!");
                GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
                IsLogged[playerid] = 1;
                SetPlayerMoney(playerid, dini_Int(file, "Cash"));
                SetPlayerScore(playerid, dini_Int(file, "Score"));
                SetPlayerColor(playerid, dini_Int(file, "Color"));
                PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
            }
            else
            {
                SendClientMessage(playerid, 0xFFFFFFFF, "Login Failed");
            }
        }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "You already are logged in!");
    return 1;
}
//-------------------------------Admin Commands---------------------------------
COMMAND:makeadmin(playerid, params[])
{
    new id;
    new AdminLevel;
    if(IsPlayerConnected(id))
    {
        if(IsPlayerAdmin(playerid))
        {
            if(!sscanf(params, "ui", id, AdminLevel))
            {
                if(AdminLevel <= 101 || 102 || 103 || 104 || 105 || 106 || 1338)
                {
                    new string[64];
                    new name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, name, sizeof(name));
                    GetPlayerName(id, PlayerName, sizeof(PlayerName));
                    format(string, sizeof(string), "%s Has Given You %d Admin Level.", name, AdminLevel);
                    SendClientMessage(id, 0x0259EAAA, string);
                    format(string, sizeof(string), "You Gave %d Admin Level To %s .", AdminLevel, PlayerName);
                    SendClientMessage(playerid, 0x0259EAAA, string);
                    PlayerInfo[id][AdminLevel];
                    return 1;
                }
                else return SendClientMessage(playerid, 0x0259EAAA, "Avaliable Levels: 101, 102, 103, 104, 105, 106, 1338");
            }
            else return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]");
        }
        else return SendClientMessage(playerid, 0xFFFFFFFF, "You Need Rcon Admin To Use This Command!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Player Is Not Connected");
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
    new name[24];
    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,"Score",GetPlayerScore(playerid));
        dini_IntSet(file,"Color",GetPlayerColor(playerid));
        dini_IntSet(file,"AdminLevel",PlayerInfo[playerid][AdminLevel]);
        IsLogged[playerid] = 0;
        return 1;
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}
public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(file,sizeof(file),"/RicAdmin/users/%s.ini",name);
    if(fexist(file))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "Use /login to join your account!");
    }
    else
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "User /register to register your account!");
    }
    return 1;
}
Thanks and sorry for be allways asking help
Reply


Messages In This Thread
MakeAdmin Problem with levels! - by ricardo178 - 19.03.2011, 15:00
Re: MakeAdmin Problem with levels! - by -Rebel Son- - 19.03.2011, 15:03
Re: MakeAdmin Problem with levels! - by ricardo178 - 19.03.2011, 15:06
Re: MakeAdmin Problem with levels! - by -Rebel Son- - 19.03.2011, 15:17
Re: MakeAdmin Problem with levels! - by ricardo178 - 19.03.2011, 15:23
Re: MakeAdmin Problem with levels! - by JaTochNietDan - 19.03.2011, 16:45
Re: MakeAdmin Problem with levels! - by ricardo178 - 19.03.2011, 16:49
Re: MakeAdmin Problem with levels! - by JaTochNietDan - 19.03.2011, 16:51
Re: MakeAdmin Problem with levels! - by ricardo178 - 19.03.2011, 16:52
Re: MakeAdmin Problem with levels! - by JaTochNietDan - 19.03.2011, 16:55

Forum Jump:


Users browsing this thread: 1 Guest(s)