[Ajuda] Erro bobo (error 033)
#1

Olб, bom dia, estava tentando criar umas profissхes simples, e quando compilo da o tal error 033 "arrey index out of bounds(Profissao)"


O cуdigo й simples mas preciso de uma ajudinha ^^

PHP код:
//INCLUDES
#include <a_samp>
#include <sscanf2>
#include <zcmd>
//DEFINES
////////////////////CORES PROFISSХES//////////////////////
#define COR_GOVERNO 0x87CEFAFF
#define COR_PM 0x4682B4FF
#define COR_PF 0x808080FF
#define COR_GN 0x006400FF
#define COR_MEC 0x556B2FFF
#define COR_VAGOS 0xFFFF00FF
#define COR_AZTECAS 0x0000FFFF
#pragma tabsize 0
//NEWS
enum Profs
{
 
GOVERNO,
 
POLICIA_MILITAR,
 
POLICIA_FEDERAL,
 
GUARDA_NACIONAL,
 
MECANICO,
 
VAGOS,
 
AZTECAS
}
new 
Profissao[MAX_PLAYERS][Profs];
/////////////////CARROS DAS PROFISSOES/////////////////
//FORWARDS
forward CarregarProfissao(playerid);
///////////////////////////////////////////////////////////////////////////////COMANDO DAS ORGS//////////////////////////////////////////////////////////////////////////////////////
public CarregarProfissao(playerid)
{
if(
Profissao[playerid][Profs] == GOVERNO)
    {
       
SetPlayerColor(playeridCOR_GOVERNO);
    }
if(
Profissao[playerid][Profs] == POLICIA_MILITAR)
    {
       
SetPlayerColor(playeridCOR_PM);
    }
if(
Profissao[playerid][Profs] == POLICIA_FEDERAL)
    {
       
SetPlayerColor(playeridCOR_PF);
    }
if(
Profissao[playerid][Profs] == GUARDA_NACIONAL)
    {
       
SetPlayerColor(playeridCOR_GN);
    }
if(
Profissao[playerid][Profs] == MECANICO)
    {
       
SetPlayerColor(playeridCOR_MEC);
    }
if(
Profissao[playerid][Profs] == VAGOS)
    {
       
SetPlayerColor(playeridCOR_VAGOS);
    }
if(
Profissao[playerid][Profs] == AZTECAS)
    {
       
SetPlayerColor(playeridCOR_AZTECAS);
    }
    return 
1;

Todas as linhas com Profissao[playerid][Profs] estб dando este erro.

Obrigado pela ajuda!

Sennior
Reply
#2

Vocк tб usando da maneira errada, o certo seria vocк definir apenas um "Trabalho" e setar por nъmeros...

Governo = Nъmero 1
Policia = Nъmero 2

pawn Код:
enum Profs
{
    Trabalho
}
new Profissao[MAX_PLAYERS][Profs];

if(Profissao[playerid][Trabalho] == 1)
{
    SetPlayerColor(playerid, COR_GOVERNO);
}
if(Profissao[playerid][Trabalho] == 2)
{
    SetPlayerColor(playerid, COR_PM);
}
e assim por diante
Reply
#3

LS muito obrigado pela ajuda. Apenas uma perguntar para sanar de vez a dъvida, onde eu irei definir as profissхes? Por exemplo, para GOVERNO ser 1, POLICIA ser 2, EXERCITO ser 3, etc... Para na funзao eu poder pegar o nъmero delas com o Profissao[playerid][Trabalho] desculpe nгo ter entendido e obrigado pelo seu tempo!

Abs.
Reply
#4

Fiz aqui, mas nгo testei creio eu que nгo tem erro!

Topo do GM

PHP код:
static Profissao[MAX_PLAYERS];
#define COR_GOVERNO 0x87CEFAFF
#define COR_PM 0x4682B4FF
#define COR_PF 0x808080FF
#define COR_GN 0x006400FF
#define COR_MEC 0x556B2FFF
#define COR_VAGOS 0xFFFF00FF
#define COR_AZTECAS 0x0000FFFF
#define GOVERNO 0
#define POLICIA_MILITAR 1
#define POLICIA_FEDERAL 2
#define GUARDA_NACIONAL 3
#define MECANICO 4
#define VAGOS 5
#define AZTECAS 6 
Public

PHP код:
forward CarregarProfissao(playerid);
public 
CarregarProfissao(playerid)
{
    if (
Profissao[playerid] == GOVERNO)
    {
       
SetPlayerColor(playeridCOR_GOVERNO);
    }
    else if(
Profissao[playerid] == POLICIA_MILITAR)
    {
       
SetPlayerColor(playeridCOR_PM);
    }
    else if(
Profissao[playerid] == POLICIA_FEDERAL)
    {
       
SetPlayerColor(playeridCOR_PF);
    }
    else if(
Profissao[playerid] == GUARDA_NACIONAL)
    {
       
SetPlayerColor(playeridCOR_GN);
    }
    else if(
Profissao[playerid] == MECANICO)
    {
       
SetPlayerColor(playeridCOR_MEC);
    }
    else if(
Profissao[playerid] == VAGOS)
    {
       
SetPlayerColor(playeridCOR_VAGOS);
    }
    else if(
Profissao[playerid] == AZTECAS)
    {
       
SetPlayerColor(playeridCOR_AZTECAS);
    }
    return 
1;

ex de comando!

PHP код:
CMD:governo(playerid)
{
    
Profissao[playerid] = GOVERNO;
    
SendClientMessage(playerid, -1"Agora vocк faz parte do governo");
    return 
1;

Reply
#5

Obrigado IgorLuiz irei testar, irei perguntar uma coisa, static seria o que? Seria algo igual new, para criar variбveis? Nгo vi isso ainda
Reply
#6

Quote:
Originally Posted by Sennior
Посмотреть сообщение
Obrigado IgorLuiz irei testar, irei perguntar uma coisa, static seria o que? Seria algo igual new, para criar variбveis? Nгo vi isso ainda
"Static" nгo й a mesma coisa que "new"!

Veja mais sobre variбveis: https://sampforum.blast.hk/showthread.php?tid=235924
Reply
#7

Hum, obrigado, eu li isso daqui:
Quote:

Mesmo sendo local ela nгo й destruнda aqui. Por essa razгo, no prуximo giro do loop ela nгo й criada novamente e contйm o mesmo valor que tinha antes do momento no qual era para ser apagada.

Quer dizer que em qualquer lugar que a static tiver, ela serб global? Ou entendi errado? Por que vocк colocou static ao em vez de new? Desculpe, mas nгo entendi essa parte mesmo

Obrigado!
Reply
#8

Quote:
Originally Posted by Sennior
Посмотреть сообщение
Hum, obrigado, eu li isso daqui:
Quer dizer que em qualquer lugar que a static tiver, ela serб global? Ou entendi errado? Por que vocк colocou static ao em vez de new? Desculpe, mas nгo entendi essa parte mesmo

Obrigado!
"new" й uma variбvel que pode ser modificada e nгo й acumulada, e no final da execuзгo й sempre destruнda
jб o "static" ela tambйm pode ser modificada, mas й acumulada, quer dizer que nгo й destruнda, mas use da forma que quiser, coloquei "static" porque eu gosto de trabalhar com ela, pesquise mais sobre variбveis para entender melhor!
Reply
#9

Certo Igor, obrigado, entendi, mas eu preciso mesmo criar com enum, para ficar mais fбcil o salvamento das mesmas em DOF2 aqui em meu GAME MODE, saberia como?

PHP код:
//INCLUDES 
#include <a_samp> 
#include <sscanf2> 
#include <zcmd> 
//DEFINES 
////////////////////CORES PROFISSХES////////////////////// 
#define COR_GOVERNO 0x87CEFAFF 
#define COR_PM 0x4682B4FF 
#define COR_PF 0x808080FF 
#define COR_GN 0x006400FF 
#define COR_MEC 0x556B2FFF 
#define COR_VAGOS 0xFFFF00FF 
#define COR_AZTECAS 0x0000FFFF 
#pragma tabsize 0 
//NEWS 
enum Profs 

 
GOVERNO
 
POLICIA_MILITAR
 
POLICIA_FEDERAL
 
GUARDA_NACIONAL
 
MECANICO
 
VAGOS
 
AZTECAS 

new 
Profissao[MAX_PLAYERS][Profs]; 
/////////////////CARROS DAS PROFISSOES///////////////// 

//FORWARDS 
forward CarregarProfissao(playerid); 





///////////////////////////////////////////////////////////////////////////////COMANDO DAS ORGS////////////////////////////////////////////////////////////////////////////////////// 

public CarregarProfissao(playerid


if(
Profissao[playerid][Profs] == GOVERNO
    { 
       
SetPlayerColor(playeridCOR_GOVERNO); 
    } 

if(
Profissao[playerid][Profs] == POLICIA_MILITAR
    { 
       
SetPlayerColor(playeridCOR_PM); 
    } 

if(
Profissao[playerid][Profs] == POLICIA_FEDERAL
    { 
       
SetPlayerColor(playeridCOR_PF); 
    } 

if(
Profissao[playerid][Profs] == GUARDA_NACIONAL
    { 
       
SetPlayerColor(playeridCOR_GN); 
    } 

if(
Profissao[playerid][Profs] == MECANICO
    { 
       
SetPlayerColor(playeridCOR_MEC); 
    } 

if(
Profissao[playerid][Profs] == VAGOS
    { 
       
SetPlayerColor(playeridCOR_VAGOS); 
    } 

if(
Profissao[playerid][Profs] == AZTECAS
    { 
       
SetPlayerColor(playeridCOR_AZTECAS); 
    } 
    return 
1

Este meu cуdigo estб dando os erros que eu disse, error 033 "arrey index out of bounds(variable, "Profissao")"

Quote:

o certo seria vocк definir apenas um "Trabalho" e setar por nъmeros...

LS explicou e eu entendi mais ou menos, faltou sabe onde definir as profissoes para ficarem de acordo com a enum, para assim, serem setadas.

Abs.
Reply
#10

Bom, se a questгo й estйtica, faзa assim:
PHP код:
enum
{
     
GOVERNO,
     
POLICIA_MILITAR,
     
POLICIA_FEDERAL,
     
GUARDA_NACIONAL,
     
MECANICO,
     
VAGOS,
     
AZTECAS
}
new 
Prof[MAX_PLAYERS]; 
Como utilizar:
PHP код:
Prof[playerid] = POLICIA_FEDERAL
PHP код:
if(Prof[playerid] == POLICIA_FEDERAL) { 
Espero ter ajudado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)