Problema de bucle en OnPlayerPickupPickup
#5

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:
PHP код:
public OnPlayerPickUpPickup(playeridpickupid)
{
    new 
string[256];
    if (
InfoUsuario[playerid][uPickup] != pickupid){
        for (new 
0<= MAX_GARAJESg++)
        {
            if (
GarajesE0[g] == pickupid || GarajesE1[g] == pickupid || GarajesS1[g] == pickupid || GarajesS2[g] == pickupid){
                new 
Float:XFloat:YFloat:Z;
                
GetPlayerPos(playerid,X,Y,Z);
                   
TextDrawShowForPlayer(playeridInfoPickup[3]);
                
TextDrawShowForPlayer(playeridInfoPickup[1]);
                 
TextDrawShowForPlayer(playeridInfoPickup[2]);
                if (
InfoGaraje[g][gPuerta] == 0){
                       
format(stringsizeof(string), "~W~Lugar: ~B~Garaje~N~~W~Puerta: ~R~Cerrada ~N~");
                   }
                   if (
InfoGaraje[g][gPuerta] == 1){
                    
format(stringsizeof(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 0<= MAX_CASASi++){
            
Mensaje(playerid, -1"3"); -------------------------> al inicio del bucle
            
if (CasasP[i] == pickupid || CasasZ[i] == pickupid){
                new 
Float:XFloat:YFloat:Z;
                
GetPlayerPos(playerid,X,Y,Z);
                if (
InfoCasa[i][cComprada] == 0){
                    
TextDrawShowForPlayer(playeridInfoPickup[0]);
                    
TextDrawShowForPlayer(playeridInfoPickup[1]);
                    
TextDrawShowForPlayer(playeridInfoPickup[2]);
                    if (
InfoCasa[i][cCerrada] == 0){
                        
format(stringsizeof(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(stringsizeof(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(playeridInfoPickup[0]);
                       
TextDrawShowForPlayer(playeridInfoPickup[1]);
                    
TextDrawShowForPlayer(playeridInfoPickup[2]);
                    if (
InfoCasa[i][cCerrada] == 0){
                        
format(stringsizeof(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(stringsizeof(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;

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.
Reply


Messages In This Thread
Problema de bucle en OnPlayerPickupPickup - by ryanx - 13.12.2015, 04:41
Respuesta: Problema de bucle en OnPlayerPickupPickup - by romperson - 13.12.2015, 15:34
Re: Problema de bucle en OnPlayerPickupPickup - by NullBot - 13.12.2015, 15:38
Respuesta: Problema de bucle en OnPlayerPickupPickup - by wharlos - 13.12.2015, 16:48
Re: Problema de bucle en OnPlayerPickupPickup - by ryanx - 13.12.2015, 17:47

Forum Jump:


Users browsing this thread: 1 Guest(s)