[HELP]Creating a Three-Dimensional Array
#1

Hello, I'm trying to create the following array, but it's giving error: warning 213: tag mismatch
PHP код:
new Mapa_PostosLS[][][] =
{
    {
Float:1942.3726,Float:-1772.8423,Float:13.6406,"Terrestre"}// posto 1 ls
}; 
To be read in:
PHP код:
IsPlayerInRangeOfPoint(playerid10.0Mapa_PostosLS[0][0], Mapa_PostosLS[0][1], Mapa_PostosLS[0][2])
format(DialogStringsizeof(DialogString), "Categoria: %s",Mapa_PostosLV[0][3]); 
Based in: https://sampforum.blast.hk/showthread.php?tid=318212


EDIT

Fixed

PHP код:
enum Pos_Postos {Float:PX,Float:PY,Float:PZ,PS[20]}
new 
Mapa_PostosLS[][Pos_Postos] =
{
    {
1942.3726,-1772.8423,13.6406,"Terrestre"}// posto 1 ls
}; 
To be read in:
PHP код:
IsPlayerInRangeOfPoint(playerid10.0Mapa_PostosLS[0][PX], Mapa_PostosLS[0][PY], Mapa_PostosLS[0][PZ])
format(DialogStringsizeof(DialogString), "Categoria: %s",Mapa_PostosLV[0][PS]); 

WORKING FINE
Reply
#2

You can do something like this, instead using array.

Код:
#DEFINE MAX_MAPS 1

enum E_MAP
{
      Float: pMapX,
      Float: pMapY,
      Float: pMapZ,
      pMapName[35]
};
new MapInfo[MAX_MAPS][E_MAP];

hook OnGameModeInit()
{
     MapInfo[0][pMapX] = 1942.3726;
     MapInfo[0][pMapY] = -1772.8423;
     MapInfo[0][pMapZ] = 13.6406;
     sizeof(MapInfo[0][pMapName], 35, "Terrestre");
     return 1;
}
Or try this.

Код:
new Mapa_PostosLS[2][4] = 
{ 
    {Float:1942.3726, Float:-1772.8423, Float:13.6406, "Terrestre"},
    {Float:1942.3726, Float:-1772.8423, Float:13.6406, "Terrestre2"}
};
Reply
#3

I will need it to be just in an array, as it will be too large to use in OnGameModeInit.
Quote:
Originally Posted by kingmk
Посмотреть сообщение
You can do something like this, instead using array.

Код:
#DEFINE MAX_MAPS 1

enum E_MAP
{
      Float: pMapX,
      Float: pMapY,
      Float: pMapZ,
      pMapName[35]
};
new MapInfo[MAX_MAPS][E_MAP];

hook OnGameModeInit()
{
     MapInfo[0][pMapX] = 1942.3726;
     MapInfo[0][pMapY] = -1772.8423;
     MapInfo[0][pMapZ] = 13.6406;
     sizeof(MapInfo[0][pMapName], 35, "Terrestre");
     return 1;
}
Don't work:
Quote:

Or try this.
Код:
new Mapa_PostosLS[2][4] = 
{ 
    {Float:1942.3726, Float:-1772.8423, Float:13.6406, "Terrestre"},
    {Float:1942.3726, Float:-1772.8423, Float:13.6406, "Terrestre2"}
};
Reply
#4

this is what you`re looking for,really good explained,hope it helps you

Reply
#5

Quote:
Originally Posted by PepsiCola23
Посмотреть сообщение
this is what you`re looking for,really good explained,hope it helps you

But I'm trying this way and get error...
Reply
#6

PHP код:
enum Mapa_enum  {
    
Float:Mapa_PosX,
    
Float:Mapa_PosY,
    
Float:Mapa_PosZ,
    
Mapa_Name[30]
};
new const 
Mapa_PostosLS[][Mapa_enum] = 

    {
Float:1942.3726,Float:-1772.8423,Float:13.6406,"Terrestre"}// posto 1 ls 
}; 
PHP код:
if(IsPlayerInRangeOfPoint(playerid10.0Mapa_PostosLS[0][Mapa_PosX], Mapa_PostosLS[0][Mapa_PosY], Mapa_PostosLS[0][Mapa_PosZ]))
format(DialogStringsizeof(DialogString), "Categoria: %s",Mapa_PostosLV[0][Mapa_Name]); 
if you are gonna use the same code for a lot of things use this.
PHP код:
for(new i,j=sizeof(Mapa_PostosLS); i<ji++)
{
    if(
IsPlayerInRangeOfPoint(playerid10.0Mapa_PostosLS[i][Mapa_PosX], Mapa_PostosLS[i][Mapa_PosY], Mapa_PostosLS[i][Mapa_PosZ]))
    {
        
format(DialogStringsizeof(DialogString), "Categoria: %s",Mapa_PostosLV[i][Mapa_Name]);  
        
//.. code here after this and before break.
        
break;
    }    

Reply
#7

Quote:
Originally Posted by AroseKhanNiazi
Посмотреть сообщение
PHP код:
enum Mapa_enum  {
    
Float:Mapa_PosX,
    
Float:Mapa_PosY,
    
Float:Mapa_PosZ,
    
Mapa_Name[30]
};
new const 
Mapa_PostosLS[][Mapa_enum] = 

    {
Float:1942.3726,Float:-1772.8423,Float:13.6406,"Terrestre"}// posto 1 ls 
}; 
PHP код:
if(IsPlayerInRangeOfPoint(playerid10.0Mapa_PostosLS[0][Mapa_PosX], Mapa_PostosLS[0][Mapa_PosY], Mapa_PostosLS[0][Mapa_PosZ]))
format(DialogStringsizeof(DialogString), "Categoria: %s",Mapa_PostosLV[0][Mapa_Name]); 
if you are gonna use the same code for a lot of things use this.
PHP код:
for(new i,j=sizeof(Mapa_PostosLS); i<ji++)
{
    if(
IsPlayerInRangeOfPoint(playerid10.0Mapa_PostosLS[i][Mapa_PosX], Mapa_PostosLS[i][Mapa_PosY], Mapa_PostosLS[i][Mapa_PosZ]))
    {
        
format(DialogStringsizeof(DialogString), "Categoria: %s",Mapa_PostosLV[i][Mapa_Name]);  
        
//.. code here after this and before break.
        
break;
    }    

Yeah, fixed before you post, but thank you! hahahahah
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)