[Ayuda] Se traba el bucle
#1

Hola, necesito ayuda, ya que estoy intentando encontrar la soluciуn hace rato pero no se me ocurre una forma de solucionarlo, la cosa es asн, creo yo que el bucle se traba o continua, no sй bien que pasa, pero el problema es que al tomar la primer variable en el bucle, ya queda como que seteada, cada vez que uso el bucle pasa lo mismo, es como se usara siempre lo mismo, no sй si me explique bien.
El cуdigo:
PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
PRESSED(KEY_WALK))
    {
        if(
GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
        {
            foreach(
iObjetosi)
            {
                new 
Float:xFloat:yFloat:z;
                
GetDynamicObjectPos(Objeto[i], xyz);
                if(
IsPlayerInRangeOfPoint(playerid1.0xyz+1.0))
                {
                    if(
IsValidDynamicObject(Objeto[i]))
                    {
                        switch(
InformacionO[i][O_UTIL])
                        {
                            case 
1:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}pizza.");
                                
Informacion[playerid][pPizza]++;
                            }
                            case 
2:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}botella de agua.");
                                
Informacion[playerid][pJugo]++;
                            }
                            case 
3:
                            {
                                
SendClientMessage(playerid, -1"Recogiste un {008AF6}botiquin.");
                                
Informacion[playerid][pBotiquin]++;
                            }
                            case 
4:
                            {
                                if(
Informacion[playerid][pMochila] > 1) return SendClientMessage(playeridCOLOR_ROJO"Ya tienes una mochila mбs grande.");
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}mochila pequeсa.");
                                
Informacion[playerid][pMochila] = 1;
                                
Informacion[playerid][pEspacioMochila] = 22;
                                if(
IsPlayerAttachedObjectSlotUsed(playerid0))
                                {
                                    
RemovePlayerAttachedObject(playerid0);
                                }
                                
SetPlayerAttachedObject(playerid030261, -0.142000, -0.0129990.0109990.0000000.0000000.0000001.0000001.0000001.000000);
                            }
                            case 
5:
                            {
                                if(
Informacion[playerid][pMochila] == || Informacion[playerid][pMochila] == 2) return SendClientMessage(playeridCOLOR_ROJO"Ya tienes una mochila mбs grande.");
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}mochila mediana.");
                                
Informacion[playerid][pMochila] = 2;
                                
Informacion[playerid][pEspacioMochila] = 36;
                                if(
IsPlayerAttachedObjectSlotUsed(playerid0))
                                {
                                    
RemovePlayerAttachedObject(playerid0);
                                }
                                
SetPlayerAttachedObject(playerid037110.049000, -0.0409990.0000000.00000085.3999780.0000001.0000001.0000001.000000);
                            }
                            case 
6:
                            {
                                if(
Informacion[playerid][pMochila] == 3) return SendClientMessage(playeridCOLOR_ROJO"Ya tienes una mochila grande.");
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}mochila grande.");
                                
Informacion[playerid][pMochila] = 3;
                                
Informacion[playerid][pEspacioMochila] = 50;
                                if(
IsPlayerAttachedObjectSlotUsed(playerid0))
                                {
                                    
RemovePlayerAttachedObject(playerid0);
                                }
                                
SetPlayerAttachedObject(playerid013101, -0.137999, -0.108000, -0.0350000.00000085.4999840.0000001.0000001.0000001.000000);
                            }
                            case 
7:
                            {
                                
SendClientMessage(playerid, -1"Recogiste un {008AF6}bidon de gasolina lleno.");
                                
Informacion[playerid][pBidonLleno]++;
                            }
                            case 
8:
                            {
                                
SendClientMessage(playerid, -1"Recogiste un {008AF6}bidon de gasolina vacio.");
                                
Informacion[playerid][pBidonVacio]++;
                            }
                            case 
9:
                            {
                                
SendClientMessage(playerid, -1"Recogiste unas {008AF6}cajas de leche.");
                                
Informacion[playerid][pJugo]++;
                            }
                            case 
10:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}soda.");
                                
Informacion[playerid][pJugo]++;
                            }
                            case 
11:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}navaja.");
                                
GivePlayerWeapon(playerid41);
                            }
                            case 
12:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}pistola 9mm.");
                                
GivePlayerWeapon(playerid22150);
                            }
                            case 
13:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}pistola 9mm con silenciador.");
                                
GivePlayerWeapon(playerid23150);
                            }
                            case 
14:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}escopeta.");
                                
GivePlayerWeapon(playerid25150);
                            }
                            case 
15:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}spas-12.");
                                
GivePlayerWeapon(playerid27150);
                            }
                            case 
16:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}mp5.");
                                
GivePlayerWeapon(playerid29150);
                            }
                            case 
17:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}Ak47.");
                                
GivePlayerWeapon(playerid30150);
                            }
                            case 
18:
                            {
                                
SendClientMessage(playerid, -1"Recogiste una {008AF6}M4.");
                                
GivePlayerWeapon(playerid31150);
                            }
                            case 
19:
                            {
                                
SendClientMessage(playerid, -1"Recogiste un {008AF6}Sniper.");
                                
GivePlayerWeapon(playerid34150);
                            }
                        }
                        
DestroyDynamicObject(Objeto[i]);
                        
DestroyDynamic3DTextLabel(LabelObj[i]);
                        
                        break;
                    }
                    else continue;
                }
            }
        }
    }
    return 
1;

El problema es asн, si yo tomo una mp5 del piso, luego intento tomar una botella de agua del suelo, y me dice que agarre una Mp5 mientras que yo estoy agarrando agua, y asн pasa siempre con lo primero que agarro.

Desde ya muchas gracias.
Reply
#2

їY si remuevo el valor del Iterator para evitar que vuelva a usarse el mismo?
Reply
#3

para que utilizas bucle si son acciones/funciones individual'. -.-
Reply
#4

No sй xD.
Igual ya solucione mi problema.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)