[Alguem] System Adm.
#1

Alguйm poderia fazer o comando /setadmin para salvamento em DOF2, estou criando um sistema de admin mais nгo sei fazer esse comando..
se alguйm poderia fazer fico grбto.

semtrolls
Reply
#2

Sim, claro q poderia.
Reply
#3

Tб ai, R$5 -brinks.
pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf>
#include <DOF2>

enum pInfo
{
    Admin
};
new PlayerInfo[MAX_PLAYERS][pInfo];

CMD:setadmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] < 1000) return SendClientMessage(playerid,-1,"Voce precisa estar logado na rcon ou ser admin nivel 1000");
    new giveplayerid, nivel;
    if(sscanf(params,"ud", giveplayerid, nivel)) return SendClientMessage(playerid,-1,"Use: /setadmin [ID] [Nivel]");
    if(nivel > 1000) return SendClientMessage(playerid,-1,"o nivel tem que ser no maximo 1000");
    if(nivel == 0)
    {
        new string[100];
        format(string, sizeof(string),"%s tirou o cargo de admin de %s.", PlayerName(playerid), PlayerName(giveplayerid));
        SendClientMessage(playerid,-1,string);
        SendClientMessage(giveplayerid,-1, string);
        PlayerInfo[giveplayerid][Admin] = nivel;
        Salvar(giveplayerid);
    }
    else if(nivel > 0)
    {
        new string[100];
        format(string, sizeof(string),"%s deu admin nivel %d pra %s.", PlayerName(playerid), nivel, PlayerName(giveplayerid));
        SendClientMessage(playerid, -1 ,string);
        SendClientMessage(giveplayerid, -1, string);
        PlayerInfo[giveplayerid][Admin] = nivel;
        Salvar(giveplayerid);
    }
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}

stock Salvar(playerid)
{
    new file[56];
    format(file, sizeof(file),"Contas/%s.ini", PlayerName(playerid));
    if(DOF2_FileExists(file))
    {
        DOF2_SetInt(file, "Admin", PlayerInfo[playerid][Admin]);
        DOF2_SaveFile();
    }
    return 1;
}

stock PlayerName(playerid)
{
    new n[MAX_PLAYER_NAME];
    GetPlayerName(playerid, n, sizeof(n));
    return n;
}
Reply
#4

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Tб ai, R$5 -brinks.
pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf>
#include <DOF2>

enum pInfo
{
    Admin
};
new PlayerInfo[MAX_PLAYERS][pInfo];

CMD:setadmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][Admin] < 1000) return SendClientMessage(playerid,-1,"Voce precisa estar logado na rcon ou ser admin nivel 1000");
    new giveplayerid, nivel;
    if(sscanf(params,"ud", giveplayerid, nivel)) return SendClientMessage(playerid,-1,"Use: /setadmin [ID] [Nivel]");
    if(nivel > 1000) return SendClientMessage(playerid,-1,"o nivel tem que ser no maximo 1000");
    if(nivel == 0)
    {
        new string[100];
        format(string, sizeof(string),"%s tirou o cargo de admin de %s.", PlayerName(playerid), PlayerName(giveplayerid));
        SendClientMessage(playerid,-1,string);
        SendClientMessage(giveplayerid,-1, string);
        PlayerInfo[playerid][Admin] = nivel;
        Salvar(giveplayerid);
    }
    else if(nivel > 0)
    {
        new string[100];
        format(string, sizeof(string),"%s deu admin nivel %d pra %s.", PlayerName(playerid), nivel, PlayerName(giveplayerid));
        SendClientMessage(playerid, -1 ,string);
        SendClientMessage(giveplayerid, -1, string);
        PlayerInfo[playerid][Admin] = nivel;
        Salvar(giveplayerid);
    }
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}

stock Salvar(playerid)
{
    new file[56];
    format(file, sizeof(file),"Contas/%s.ini", PlayerName(playerid));
    if(DOF2_FileExists(file))
    {
        DOF2_SetInt(file, "Admin", PlayerInfo[playerid][Admin]);
        DOF2_SaveFile();
    }
    return 1;
}

stock PlayerName(playerid)
{
    new n[MAX_PLAYER_NAME];
    GetPlayerName(playerid, n, sizeof(n));
    return n;
}
Nгo vejo porque usar enum sendo que vai colocar apenas uma variбvel.

Alйm do mais seu cуdigo atribui um valor а variбvel relativa ao nнvel de administrador de quem executa o comando, e nгo do id especificado pelo mesmo.

pawn Код:
CMD:setadmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1000) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando.");
    new id, level;
    if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, -1, "Use /setadmin <id/nome> <level>");
    if(level > 1000) return SendClientMessage(playerid, -1, "O nнvel deve ser inferior a mil (1000).");
    new cmdString[100],
        name[2][MAX_PLAYER_NAME];
       
    GetPlayerName(playerid, name[0], MAX_PLAYER_NAME);
    GetPlayerName(id, name[1], MAX_PLAYER_NAME);
   
    if(level < 1)
        format(cmdString, sizeof cmdString, "O admin %s tirou o cargo de administrador de %s.", name[0], name[1]);
    else
        format(cmdString, sizeof cmdString, "O admin %s promoveu %s a nнvel %d de administrador.", name[0], name[1], level);
       
    SendClientMessage(playerid, -1, cmdString);
    SendClientMessage(id, -1, cmdString);
       
    PlayerInfo[id][pAdmin] = level;
    Salvar(id);
    return 1;
}
Reply
#5

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Nгo vejo porque usar enum sendo que vai colocar apenas uma variбvel.

Alйm do mais seu cуdigo atribui um valor а variбvel relativa ao nнvel de administrador de quem executa o comando, e nгo do id especificado pelo mesmo.

pawn Код:
CMD:setadmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1000) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando.");
    new id, level;
    if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, -1, "Use /setadmin <id/nome> <level>");
    if(level > 1000) return SendClientMessage(playerid, -1, "O nнvel deve ser inferior a mil (1000).");
    new cmdString[100],
        name[2][MAX_PLAYER_NAME];
       
    GetPlayerName(playerid, name[0], MAX_PLAYER_NAME);
    GetPlayerName(id, name[1], MAX_PLAYER_NAME);
   
    if(level < 1)
        format(cmdString, sizeof cmdString, "O admin %s tirou o cargo de administrador de %s.", name[0], name[1]);
    else
        format(cmdString, sizeof cmdString, "O admin %s promoveu %s a nнvel %d de administrador.", name[0], name[1], level);
       
    SendClientMessage(playerid, -1, cmdString);
    SendClientMessage(id, -1, cmdString);
       
    PlayerInfo[id][pAdmin] = level;
    Salvar(id);
    return 1;
}
Verdade, й mesmo, eu fiz o comando com pressa por isso em vez de colocar giveplayerid coloquei playerid, e o enum coloquei pq ele pode querer por mais coisas dps
Reply
#6

strcmp queridos. pf
Reply
#7

Deseja chб e biscoitos tambйm meu caro? Existem conversores pra isso.
Reply
#8

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Deseja chб e biscoitos tambйm meu caro? Existem conversores pra isso.
І (: , Fora que strcmp estб ultrapassado jб -q
Reply
#9

Quote:
Originally Posted by Gaaaab
Посмотреть сообщение
strcmp queridos. pf
Salvamento em DOF2 e comandos em strcmp? Vocк sу pode estar brincando...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)