Problema con loop a travйs de objetos -
CrossOv3r - 25.12.2013
Bueno resulta que estoy trabajando con objetos creados y guardados en un array
pawn Код:
BauxitaObj[0] = CreateObject(905, 498.3402,779.9998,-21.6000, 0, 0, 0, 0);
BauxitaObj[1] = CreateObject(1303, 486.9699,787.3400,-21.9700, 0, 0, 0, 0);
BauxitaObj[2] = CreateObject(1304, 659.8332,738.1844,-10.3000, 0, 0, 0, 0);
//...
Y estoy creando un comando para verificar si se estб cerca de ese objeto o no, usй esta funciуn:
pawn Код:
stock IsPlayerNearObject(Float:radi, playerid, objectid)
{
new Float:Pos[3];
GetObjectPos(objectid,Pos[0],Pos[1],Pos[2]);
if(GetPlayerDistanceFromPoint(playerid,Pos[0],Pos[1],Pos[2]) <= radi)
return 1;
return 0;
}
Y lo que quiero es un loop que pasй a travйs de mis 13 objetos y detectй si estб cerca o no de alguno de ellos, intentй asн, pero no detecta si es que estб cerca o no o.o
pawn Код:
for(new id=0; id < 13, id++;)
{
if(!IsPlayerNearObject(5.0, playerid, BauxitaObj[id])) return SendClientMessage(playerid, -1, "[ERROR] No estбs cerca de un mineral!");
}
- Cuando estoy lejos de alguno de esos objetos, no me sale el error
- Si estoy cerca, tampoco sale nada( Aunque no tengo funciones establecidas obviamente)
Si pueden ayudarme les agradecerнa mucho, gracias.
Respuesta: Problema con loop a travйs de objetos -
Swedky - 25.12.2013
Creo que por que estбs haciendo un loop que verifica si el jugador estб cerca de los 13 objetos.
Saludos.
Respuesta: Problema con loop a travйs de objetos -
CrossOv3r - 25.12.2013
Hm igualmente deberнa salirme el error entonces, cosa que no aparece.
Gracias.
Respuesta: Problema con loop a travйs de objetos -
Swedky - 25.12.2013
Quote:
Originally Posted by CrossOv3r
Hm igualmente deberнa salirme el error entonces, cosa que no aparece.
Gracias.
|
Mm.., no creo, ya que estбs cerca de un objeto y no de otros.
Lo que te recomiendo es que uses if.
Respuesta: Problema con loop a travйs de objetos -
OTACON - 25.12.2013
pawn Код:
stock DistanceBetweenObjectAndPlayer(playerid, Float:dist, variable[], min, max){
new Float:pos[3];
for(new slots=min,idx=max;slots!=idx;slots++){
GetObjectPos(variable[slots], pos[0], pos[1], pos[2]);
if(IsPlayerInRangeOfPoint(playerid, dist, pos[0], pos[1], pos[2]))return true;
}return false;}
Respuesta: Problema con loop a travйs de objetos -
CrossOv3r - 25.12.2013
Gracias otacon, funciono perfecto!.
Y gracias enzo por tu ayuda.