[Ajuda] Me ajudem criar comando para setar admin
#1

Galera estou criando um servidor e preciso de saber como faзo para setar admin no meu servidor por exemplo logo na rcon e seto admin tipo loguei na rcon e digito /DarAdmin [id] [level] era isso que precisava.

Meu sistema de admin й esse sу falta criar comando de setar.

Code:
new Admin[MAX_PLAYERS];
Code:
if(Admin[playerid] == 1)
me ajudem por favor.
Reply
#2

#include <a_samp>
#include <gl_common.inc>
new Admin[MAX_PLAYERS];
PHP Code:
public OnPlayerCommandText(playeridcmdtext[])
{
new 
tmp[256], cmd[256], idx;
if(
strcmp(cmd"/setar"true) == 0)
{
    if(
Admin[playerid] == 1)
    {
        new 
gstring[256];
        new 
Recebeu[256];
        new 
id strval(tmp);
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp))
        {
        
SendClientMessage(playerid, -1"| ERRO | Digite: /Setar [Id da Pessoa]");
        return 
1;
        }
        
Admin[id] = 1;
        
format(gstringsizeof(gstring), "| SETAR | Vocк setou ao jogador %s Admin!"id);
        
SendClientMessage(playerid, -1gstring);
        
format(Recebeusizeof(Recebeu), "| MEGASENA | Vocк ganhou admin do Ademir %s"playerid);
        
SendClientMessage(id, -1Recebeu);
    }
    else
    {
    
SendClientMessage(playerid, -1"| ERRO | Tu nгo й admin Nгo Safado KKK");
    return 
1;
    }
}
return 
0;

Reply
#3

Lembrando que vocк estб salvando o admin do player em variavel array, sendo assim quando ele deslogar e logar novamente no servidor nгo serб mas admin
Reply
#4

Quote:
Originally Posted by GuiKommander
View Post
#include <a_samp>
#include <gl_common.inc>
new Admin[MAX_PLAYERS];
PHP Code:
public OnPlayerCommandText(playeridcmdtext[])
{
new 
tmp[256], cmd[256], idx;
if(
strcmp(cmd"/setar"true) == 0)
{
    if(
Admin[playerid] == 1)
    {
        new 
gstring[256];
        new 
Recebeu[256];
        new 
id strval(tmp);
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp))
        {
        
SendClientMessage(playerid, -1"| ERRO | Digite: /Setar [Id da Pessoa]");
        return 
1;
        }
        
Admin[id] = 1;
        
format(gstringsizeof(gstring), "| SETAR | Vocк setou ao jogador %s Admin!"id);
        
SendClientMessage(playerid, -1gstring);
        
format(Recebeusizeof(Recebeu), "| MEGASENA | Vocк ganhou admin do Ademir %s"playerid);
        
SendClientMessage(id, -1Recebeu);
    }
    else
    {
    
SendClientMessage(playerid, -1"| ERRO | Tu nгo й admin Nгo Safado KKK");
    return 
1;
    }
}
return 
0;

Estб totalmente errado, vocк atribuiu com que o jogador que vai receber o adm tem que estб no level = 1 para pode setar o adm, fora que o seu cуdigo estб em strcmp e mal indentado, sem contar os outros erros que notei.
PHP Code:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
//#include <Pawn.CMD>
enum pew{
    
Admin
}
new 
PlayerInfo[MAX_PLAYERS][pew];
cmd:daradmin(playeridparams[])
{
    new 
OutroJogadorLeveladm[MAX_PLAYER_NAME], nome[MAX_PLAYER_NAME], msg[86];
    if(
IsPlayerAdmin(playerid))
    {
        if (
sscanf(params"ui"OutroJogadorLevel)) SendClientMessage(playerid, -1"Use: /daradmin [ID] [Level]");
        {
            if (
IsPlayerConnected(OutroJogador))
            {
                if(
Level == 0) return SendClientMessage(playerid0xFF0000AA"O jogador nгo pode ter seu level igual a zero!");
                 
PlayerInfo[OutroJogador][Admin] = 1;
                
GetPlayerName(playeridadmsizeof(adm));
                
GetPlayerName(OutroJogadornomesizeof(nome));
                
format(msg86"O administrador %s promoveu o jogador %s para o level 1!"admnome);
                
SendClientMessageToAll(-1msg);
            }
            else 
SendClientMessage(playerid0xFF0000FF"O jogador nгo estб online!");
        }
    }
    else 
SendClientMessage(playerid0xFF0000FF"Vocк precisa estб logado na RCON para usar esse comando!");
    return 
1;
}
cmd:tiraradm(playeridparams[])
{
    new 
OutroJogadorLeveladm[MAX_PLAYER_NAME], nome[MAX_PLAYER_NAME], msg[86];
    if(
IsPlayerAdmin(playerid))
    {
        if (
sscanf(params"ui"OutroJogadorLevel)) SendClientMessage(playerid, -1"Use: /tiraradm [ID] [Level]");
        {
            if (
IsPlayerConnected(OutroJogador))
            {
                 
PlayerInfo[OutroJogador][Admin] = 0;
                
GetPlayerName(playeridadmsizeof(adm));
                
GetPlayerName(OutroJogadornomesizeof(nome));
                
format(msg86"O administrador %s rebaixou o jogador %s para o level 0!"admnome);
                
SendClientMessageToAll(-1msg);
            }
            else 
SendClientMessage(playerid0xFF0000FF"O jogador nгo estб online!");
        }
    }
    else 
SendClientMessage(playerid0xFF0000FF"Vocк precisa estб logado na RCON para usar esse comando!");
    return 
1;

Fiz uma base para vocк em zcmd/Pawn.CMD, ъnica coisa que vocк irб fazer й apagar a variбvel "new Admin[MAX_PLAYERS];" e colocar "Admin" dentro do enumerador, armazene o valor da variбvel no seu banco de dados e pronto.

Lembre-se, isso й uma base para vocк fazer o seu prуprio sistema, porйm essa foi espelhada na sua variбvel.
Reply
#5

eu coloquei tudo mais deu esses erros.

C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(454) : error 017: undefined symbol "params"
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(459) : warning 215: expression has no effect
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(459) : error 001: expected token: ";", but found "["
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(459) : error 029: invalid expression, assumed zero
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(459) : warning 215: expression has no effect
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(459) : error 001: expected token: ";", but found "]"
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(459) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


5 Errors.
Reply
#6

ainda da esse erro й um dos mais chatos mano.

C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(450) : error 017: undefined symbol "params"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


1 Error.
Reply
#7

mano esse erro й o mais chato por que meus comandos nгo й em cmd, sгo todos em /

Erro

C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : error 017: undefined symbol "params"


Code:
    if (strcmp("/DarAdmin", cmdtext, true, 8) == 0)
 	{
    new id, nivel;
    if(sscanf(params, "ud", id, nivel)) return SendClientMessage(playerid, -1, "Digite: '/setadmin' [ID] [NIVEL]");
    Admin[id] = nivel;
    return 1;
    }
Reply
#8

troquei agora deu mais erros ainda.

Code:
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : error 001: expected token: "-string end-", but found "-identifier-"
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : warning 215: expression has no effect
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : warning 215: expression has no effect
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : error 001: expected token: ";", but found ")"
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : error 029: invalid expression, assumed zero
C:\Users\PC\Desktop\Cidade Vida Social RPG [v0.5]\gamemodes\CVSR.pwn(449) : fatal error 107: too many error messages on one line
Reply
#9

Use sscanf e zcmd...Vocк tem a include sscanf ?
Reply
#10

Deixa eu resolvi vocк tinha coloca um simbolo errado. vamos testar agora mais tipo й sу eu entra no servidor e digita /daradmin e vai apareзer /DarAdmin [id] [leve] essas coisa? ou precisa de colocar mais algo
Reply
#11

Vocк deve usar uma condicional para verificar se o jogador que ira setar й Admin.
Reply
#12

mano agora fui entra e tava dando outro erro quando diz que nгo tem gm ETC ai eu queria o sscanf vocк pode me passar? eu fui ver o que era e й ele que ta dando o erro.
Reply
#13

Bom agora tirei o erro de sscanf baixei outra mбs eu entro no servidor e meu admin nгo й setado eu digito o comando e nгo apareзe nada queria saber se tipo meu serve tem 3 level de adm que estгo definidos assim em todos os comandos de adm

Code:
if(Admin[playerid] == 0) 2 3 tenho 3 leveis
Preciso de fazer algo para poder setar algum dos leveis a mais no comando?

Code:
    if (strcmp("/DarAdmin", cmdtext, true, 8) == 0)
 	{
		if(IsPlayerAdmin(playerid))
		{
        new id, nivel;
        if(sscanf(cmdtext, "ud", id, nivel)) return SendClientMessage(playerid, -1, "Use: /DarAdmin [ID] [Level]");
		}
		return 1;
    }
Reply
#14

Quote:
Originally Posted by Cycle
View Post
A funзгo jб estб setada normalmente, apenas sem nenhuma mensagem para ser enviada ao cliente(remetente).

Caso queira restringir a quantidade de niveis, insira a condicional.:
PHP Code:
if(nivel || nivel 3) return SendClientMessage... 
Para fazer essa checagem com mais rapidez, digite:
Code:
if(0 <= nivel <= 3) return SendClientMessage(...);
Assim vocк sу checa a variбvel uma vez.
Reply
#15

AQUI ESTA MEU AMIGO

Code:
new Admin[MAX_PLAYERS];

CMD:setadmin(playerid, params[])
{
   new id, nivel;
   if(sscanf(params, "ud", id, nivel)) return SendClientMessage(playerid, -1, "Digite: '/setadmin' [ID] [NIVEL]");
   Admin[id] = nivel;
   return true;
}
Reply
#16

Se nгo tiver resolvido ainda tente dessa forma:
PHP Code:
#include            <a_samp>
#include            <sscanf2>
#include            <zcmd>
CMD:dararma(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)
        return 
SendClientMessage(playerid0xFF0000FF"|ERRO| » Vocк nгo й Admin RCON!");
    new 
player1ArmaNome[32], IdArmaQuantiaArmaNome2[32], string[128];
    if(
sscanf(params"us[32]D(500)"player1ArmaNomeQuantia))
        return 
SendClientMessage(playerid0xFF0000FF"|USE| » /dararma [playerid] [arma id/arma nome] [muniзгo]");
    if(
player1 == INVALID_PLAYER_ID)
        return 
SendClientMessage(playerid0xFF0000FF"|ERRO| » O jogador nгo estб conectado.");
    if(!
IsNumeric(ArmaNome)) IdArma GetWeaponIDFromName(ArmaNome); else IdArma strval(ArmaNome);
    
GetWeaponName(IdArmaArmaNome232);
    
format(stringsizeof(string), "Vocк deu a arma %s (%d) com %d de muniзгo para o jogador: \"%s\""ArmaNome2IdArmaQuantiapName(player1));
    
SendClientMessage(playerid0x00FF00FFstring);
    if(
player1 != playerid)
    {
        
format(string,sizeof(string),"O Admin \"%s\" te deu a arma %s (%d) com %d de muniзгo"pName(playerid), ArmaNome2IdArmaQuantia);
        
SendClientMessage(player10xFFFF00FFstring);
    }
    
GivePlayerWeapon(player1IdArmaQuantia);
    return 
1;
}
stock GetWeaponIDFromName(WeaponName[])
{
    if(
strfind("molotov",WeaponName,true)!=-1) return 18;
    for(new 
0<= 46i++)
    {
        switch(
i)
        {
            case 
0,19,20,21,44,45: continue;
            default:
            {
                new 
name[32]; GetWeaponName(i,name,32);
                if(
strfind(name,WeaponName,true) != -1) return i;
            }
        }
    }
    return -
1;
}
stock IsNumeric(string[])
{
    for (new 
0strlen(string); ji++)
    {
        if (
string[i] > '9' || string[i] < '0') return 0;
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)