Escribir informaciуn de un array.
#1

Buenas, tengo un problema y es como hacer para escribir la informaciуn de un array dependiendo de otra informaciуn del mismo. (Seguro no entendieron).
Tengo el siguiente cуdigo:
pawn Код:
enum oAccesoriosInfo
{
    oModelo,
    oNombre[24]
}

new oAccesorios[][oAccesoriosInfo] = {
{19521, "Gorra oficial"},
{19520, "Gorra piloto"}
};
Quiero escribir el numero de modelo y por consiguiente escriba el nombre del objeto, algo como
pawn Код:
printf(oAccesorios[19521][oNombre]);
Ese cуdigo no funciona ya que el nъmero (19521) debe corresponder al id del dato (0, para el 19521. 1, para el 19520)
Alguien sabe como ayudarme?
Reply
#2

Aqui te dejo un ejemplo:

pawn Код:
enum oAccesoriosInfo
{
    oModelo,
    oNombre[24]
}

new
    oAccesorios[][oAccesoriosInfo] =
    {
        {19521, "Gorra oficial"},
        {19520, "Gorra piloto"}
    };

public OnFilterScriptInit()
{
    new
        number = ((random(2)) ? (19520) : (19521));//Solo para ejemplificar, numero sera 19520 o 19521
       
    if(number == oAccesorios[0][oModelo])//No utilizo el operador ternario ya que puede generar bugs al operar con arrays
        printf("Texto: %s", oAccesorios[0][oNombre]);
    else
        printf("Texto: %s", oAccesorios[1][oNombre]);
       
    return 1;
}
Reply
#3

Creo entender tu cуdigo, pero que sea uno u otro no me sirve. Ya que es para usar de una forma como:
pawn Код:
SetPlayerAttachedObject(playerid, x, ObjetoInfo[playerid][x][oModelo], ObjetoInfo[playerid][x][oBone], ObjetoInfo[playerid][x][oPosX], ObjetoInfo[playerid][x][oPosY], ObjetoInfo[playerid][x][oPosZ], ObjetoInfo[playerid][x][oRotX], ObjetoInfo[playerid][x][oRotY], ObjetoInfo[playerid][x][oRotZ],
            ObjetoInfo[playerid][x][oScaleX], ObjetoInfo[playerid][x][oScaleY], ObjetoInfo[playerid][x][oScaleZ]);

printf("El nombre de tu objeto es: ");
printf(oAccesorios[ObjetoInfo[playerid][x][oModelo]][oNombre]);

//El x es porque los objetos son puestos en un bucle.
Reply
#4

pawn Код:
enum oAccesoriosInfo
{
    oModelo,
    oNombre[24],
    oBone,
    Float:oPosX,
    Float:oPosY,
    Float:oPosZ,
    Float:oRotX,
    Float:oRotY,
    Float:oRotZ,
    Float:oScaleX,
    Float:oScaleY,
    Float:oScaleZ
}

new
    oAccesorios[][oAccesoriosInfo] =
    {
        {/*id*/(19521), /*nombre*/"Gorra oficial", /*bone*/(0), /*pos*/0.0,0.0,0.0, /*rot*/0.0,0.0,0.0, /*scale*/0.0,0.0,0.0},
        {/*id*/(19520), /*nombre*/"Gorra piloto", /*bone*/(0), /*pos*/0.0,0.0,0.0, /*rot*/0.0,0.0,0.0, /*scale*/0.0,0.0,0.0},
        //etc...
    };
   

SetPlayerAttachedObject(playerid,
    array,
    oAccesorios[array][oModelo],  \
    oAccesorios[array][oBone],  \
    oAccesorios[array][oPosX],  \
    oAccesorios[array][oPosY],  \
    oAccesorios[array][oPosZ],  \
    oAccesorios[array][oRotX],  \
    oAccesorios[array][oRotY],  \
    oAccesorios[array][oRotZ],  \
    oAccesorios[array][oScaleX],  \
    oAccesorios[array][oScaleY],  \
    oAccesorios[array][oScaleZ] ;

printf("El nombre de tu objeto es: %s", oAccesorios[array][oNombre]);
Reply
#5

Muchisimas gracias Otacon.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)