SA-MP Forums Archive
[Ayuda] Se traba el bucle - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] Se traba el bucle (/showthread.php?tid=566264)



[Ayuda] Se traba el bucle - Ghost112397 - 04.03.2015

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.


Respuesta: [Ayuda] Se traba el bucle - Ghost112397 - 04.03.2015

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


Respuesta: [Ayuda] Se traba el bucle - OTACON - 04.03.2015

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


Respuesta: [Ayuda] Se traba el bucle - Ghost112397 - 05.03.2015

No sй xD.
Igual ya solucione mi problema.