Portal SAMP
[Ajuda] setar variavel - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] setar variavel (/showthread.php?tid=2965)



setar variavel - gbzin - 05/11/2022

bom queria fazer um sistema de "classes" quando o player clica em "Policial" ele ganha a varivel Policial, mais agr quando ele tenta trocar de variavel
a antiga continua.
Código PHP:
                case 0:
        
        {
                    
CargoCivil[playerid] = 1;
                }
                case 
1:
                {
                    
CargoPolicial[playerid] = 1;
                }
                case 
2:
                {
             
    CargoLadrao[playerid] = 1;
                



RE: setar variavel - MarcosBrazz - 05/11/2022

É só zerar as outras amigo
Código PHP:
case 0:
{

   
CargoPolicial[playerid] = 0;
   
CargoLadrao[playerid] = 0;

 
  CargoCivil[playerid] = 1;
}
case 
1:
{
   CargoPolicial[playerid] = 1;

   
CargoLadrao[playerid] = 0;

   CargoCivil[playerid] = 0;
}
case 
2:
{
   CargoPolicial[playerid] = 0;

   
CargoLadrao[playerid] = 1;

   
CargoCivil[playerid] = 0;




RE: setar variavel - gbzin - 05/11/2022

(05/11/2022 11:57)MarcosBrazz Escreveu: É só zerar as outras amigo
Código PHP:
case 0:
{

   CargoPolicial[playerid] = 0;
   CargoLadrao[playerid] = 0;

 
  CargoCivil[playerid] = 1;
}
case 
1:
{
   CargoPolicial[playerid] = 1;

   CargoLadrao[playerid] = 0;

   CargoCivil[playerid] = 0;
}
case 
2:
{
   CargoPolicial[playerid] = 0;

   CargoLadrao[playerid] = 1;

   CargoCivil[playerid] = 0;


Ok, tem como me ajudar na questão de apenas quem tá com a variável "Policial"usar um comando? Quem puder ajudar agradeço


RE: setar variavel - Vel - 05/11/2022

Código:
enum CARGO {
  CARGO_CIVIL,
  CARGO_POLICIAL,
  CARGO_LADRAO
};

new Cargo[MAX_PLAYERS];

public OnPlayerConnect(playerid) {
  Cargo[playerid] = CARGO_CIVIL;
}

SetarCargo(playerid, cargo) {
  Cargo[playerid] = cargo;
}

ObterCargo(playerid) {
  return Cargo[playerid];
}
Código:
if (ObterCargo(playerid) != CARGO_POLICIAL) {
  return SendClientMessage(playerid, -1, "Não é policial.");
}



RE: setar variavel - gbzin - 05/11/2022

(05/11/2022 12:32)Vel Escreveu:
Código:
enum CARGO {
  CARGO_CIVIL,
  CARGO_POLICIAL,
  CARGO_LADRAO
};

new Cargo[MAX_PLAYERS];

public OnPlayerConnect(playerid) {
  Cargo[playerid] = CARGO_CIVIL;
}

SetarCargo(playerid, cargo) {
  Cargo[playerid] = cargo;
}

ObterCargo(playerid) {
  return Cargo[playerid];
}
Código:
if (ObterCargo(playerid) != CARGO_POLICIAL) {
  return SendClientMessage(playerid, -1, "Não é policial.");
}

esta acontecendo isso:
Código PHP:
warning 213tag mismatch

error 028
invalid subscript (not an array or too many subscripts): "CARGO_POLICIAL"

warning 215expression has no effect



error 001
expected token";"but found "]"

error 029invalid expressionassumed zero

fatal error 107
too many error messages on one line 



RE: setar variavel - White_Blue - 05/11/2022

(05/11/2022 13:24)gbzin Escreveu:
(05/11/2022 12:32)Vel Escreveu:
Código:
enum CARGO {
  CARGO_CIVIL,
  CARGO_POLICIAL,
  CARGO_LADRAO
};

new Cargo[MAX_PLAYERS];

public OnPlayerConnect(playerid) {
  Cargo[playerid] = CARGO_CIVIL;
}

SetarCargo(playerid, cargo) {
  Cargo[playerid] = cargo;
}

ObterCargo(playerid) {
  return Cargo[playerid];
}
Código:
if (ObterCargo(playerid) != CARGO_POLICIAL) {
  return SendClientMessage(playerid, -1, "Não é policial.");
}

esta acontecendo isso:
Código PHP:
warning 213tag mismatch

error 028
invalid subscript (not an array or too many subscripts): "CARGO_POLICIAL"

warning 215expression has no effect



error 001
expected token";"but found "]"

error 029invalid expressionassumed zero

fatal error 107
too many error messages on one line 
Tem que criar a variável e setar o array depois do MAX_PLAYERS.

Código PHP:
new Cargo[MAX_PLAYERS][CARGO]; 


Modo de uso:
Código PHP:
Cargo[playerid][CARGO_CIVIL] = 1// Seta o cargo de civil no player.
Cargo[playerid][CARGO_CIVIL] = 0// Tira o cargo de civil do player. 



RE: setar variavel - Carlos Victor - 05/11/2022

Código:
enum {
    CARGO_CIVIL,
    CARGO_CRIMINOSO,
    CARG_MILITAR
};

new playerCargo[MAX_PLAYERS];

playerCargo[playerid] = CARGO_MILITAR;

if(playerCargo[playerid] != CARGO_MILITAR)
    return SendClientMessage(playerid, -1, "* Você não é um militar.");

Lembrando que quando cria uma enum, o primeiro item é automáticamente atribuido como zero.

Então no caso CARGO_CIVIL é a mesma coisa que 0.

CARGO_CIVIL = 0
CARGO_CRIMINOSOS = 1
CARGO_MILITAR = 2

Você pode substituir enum por defines, números etc... Mas fica a seu critério. Provavelmente o uso da enum é melhor no seu caso.