Escribir informaciуn de un array. -
MrKaiser - 05.03.2014
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?
Respuesta: Escribir informaciуn de un array. -
TheChaoz - 05.03.2014
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;
}
Respuesta: Escribir informaciуn de un array. -
MrKaiser - 05.03.2014
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.
Respuesta: Escribir informaciуn de un array. -
OTACON - 05.03.2014
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]);
Respuesta: Escribir informaciуn de un array. -
MrKaiser - 05.03.2014
Muchisimas gracias Otacon.