13.12.2015, 17:47
Los return estбn especificados correctamente ya que si cumple el if que si esta en tal pickup no necesita abrir el otro bucle ya que esta en el pickup del garaje no en el de la casa, sin embargo quite los return y probй y sigue igual.
Intente colocando mensajes al inicio del otro bucle y al final de toda la funciуn:
Entonces me paro en un pickup del primer bucle y sуlo aparece el textdrawn correspondiente y el mensaje 5, y cuando me paro en el de una casa que es el segundo bucle no manda ni textdrawn ni mensaje.
Intente colocando mensajes al inicio del otro bucle y al final de toda la funciуn:
PHP код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
new string[256];
if (InfoUsuario[playerid][uPickup] != pickupid){
for (new g = 0; g <= MAX_GARAJES; g++)
{
if (GarajesE0[g] == pickupid || GarajesE1[g] == pickupid || GarajesS1[g] == pickupid || GarajesS2[g] == pickupid){
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
TextDrawShowForPlayer(playerid, InfoPickup[3]);
TextDrawShowForPlayer(playerid, InfoPickup[1]);
TextDrawShowForPlayer(playerid, InfoPickup[2]);
if (InfoGaraje[g][gPuerta] == 0){
format(string, sizeof(string), "~W~Lugar: ~B~Garaje~N~~W~Puerta: ~R~Cerrada ~N~");
}
if (InfoGaraje[g][gPuerta] == 1){
format(string, sizeof(string), "~W~Lugar: ~B~Garaje~N~~W~Puerta: ~G~Abierta ~N~");
}
TextDrawSetString(InfoPickup[2], string);
InfoUsuario[playerid][uPickup] = pickupid;
InfoUsuario[playerid][uPickup_X] = X;
InfoUsuario[playerid][uPickup_Y] = Y;
InfoUsuario[playerid][uPickup_Z] = Z;
}
}
Mensaje(playerid, -1, "2"); ----------------------------------> cuando va iniciar el 2 bucle
for (new i = 0; i <= MAX_CASAS; i++){
Mensaje(playerid, -1, "3"); -------------------------> al inicio del bucle
if (CasasP[i] == pickupid || CasasZ[i] == pickupid){
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
if (InfoCasa[i][cComprada] == 0){
TextDrawShowForPlayer(playerid, InfoPickup[0]);
TextDrawShowForPlayer(playerid, InfoPickup[1]);
TextDrawShowForPlayer(playerid, InfoPickup[2]);
if (InfoCasa[i][cCerrada] == 0){
format(string, sizeof(string), "~W~Lugar: ~B~Casa~N~~W~Direccion: ~B~%s ~N~~W~Tipo: ~B~%s ~N~~W~Puerta: ~R~Cerrada ~N~~W~Precio: ~G~$%d~N~~W~Use: ~R~/Comprar Casa",
InfoCasa[i][cDireccion],
InfoCasa[i][cTipo],
InfoCasa[i][cPrecio]);
}
else if (InfoCasa[i][cCerrada] == 1){
format(string, sizeof(string), "~W~Lugar: ~B~Casa~N~~W~Direccion: ~B~%s ~N~~W~Tipo: ~B~%s ~N~~W~Puerta: ~G~Abierta ~N~~W~Precio: ~G~$%d~N~~W~Use: ~R~/Comprar Casa",
InfoCasa[i][cDireccion],
InfoCasa[i][cTipo],
InfoCasa[i][cPrecio]);
}
TextDrawSetString(InfoPickup[2], string);
InfoUsuario[playerid][uPickup] = pickupid;
InfoUsuario[playerid][uPickup_X] = X;
InfoUsuario[playerid][uPickup_Y] = Y;
InfoUsuario[playerid][uPickup_Z] = Z;
}
else if (InfoCasa[i][cComprada] == 1){
TextDrawShowForPlayer(playerid, InfoPickup[0]);
TextDrawShowForPlayer(playerid, InfoPickup[1]);
TextDrawShowForPlayer(playerid, InfoPickup[2]);
if (InfoCasa[i][cCerrada] == 0){
format(string, sizeof(string), "~W~Lugar: ~B~Casa~N~~W~Descripcion: ~B~%s ~N~~W~Direccion: ~B~%s ~N~~W~Tipo: ~B~%s ~N~~W~Puerta: ~R~Cerrada ~N~",
InfoCasa[i][cTitulo],
InfoCasa[i][cDireccion],
InfoCasa[i][cTipo]);
}
else if (InfoCasa[i][cCerrada] == 1){
format(string, sizeof(string), "~W~Lugar: ~B~Casa~N~~W~Descripcion: ~B~%s ~N~~W~Direccion: ~B~%s ~N~~W~Tipo: ~B~%s ~N~~W~Puerta: ~G~Abierta ~N~",
InfoCasa[i][cTitulo],
InfoCasa[i][cDireccion],
InfoCasa[i][cTipo]);
}
TextDrawSetString(InfoPickup[2], string);
InfoUsuario[playerid][uPickup] = pickupid;
InfoUsuario[playerid][uPickup_X] = X;
InfoUsuario[playerid][uPickup_Y] = Y;
InfoUsuario[playerid][uPickup_Z] = Z;
}
}
}
Mensaje(playerid, -1, "4"); -------------------------> cuando sale del bucle 1 y 2
}
Mensaje(playerid, -1, "5");-------------------------------> cuando sale de toda la funcion
return 1;
}