#1

Hola tengo este comando:
pawn Код:
CMD:entrar(playerid, params[])
{
    for(new i = 0; i < MAX_CASAS; i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 1.0, casaInfo[i][posicionCasa][0], casaInfo[i][posicionCasa][1], casaInfo[i][posicionCasa][2]))
        {
            SetPlayerPos(playerid, casaInfo[i][cX], casaInfo[i][cY], casaInfo[i][cZ]);
            SetPlayerFacingAngle(playerid, casaInfo[i][cAngle]);
            SetPlayerInterior(playerid, casaInfo[i][Interior]);
            SetPlayerVirtualWorld(playerid, casaInfo[i][Virtualw]);

            SendClientMessage(playerid, -1, "Bienvenido.");
        }
        else
        {
            SendClientMessage(playerid, -1, "No estбs cerca de la puerta de una casa.");
        }
    }
    return 1;
}
El problema es cuando agrego un else, si la condiciуn se cumple muestra el msj 1 vez, pero si no lo hace se repite 100 veces, quй hago para evitar eso?
Reply
#2

@Edit: Si lo detienes con break, las iteraciones no serбn las indicadas para abarcar todo el array 'casaInfo'.
pawn Код:
CMD:entrar(playerid, params[])
{
    new i;  
    for(i = 0; i < MAX_CASAS; i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 1.0, casaInfo[i][posicionCasa][0], casaInfo[i][posicionCasa][1], casaInfo[i][posicionCasa][2]))
        {
            SetPlayerPos(playerid, casaInfo[i][cX], casaInfo[i][cY], casaInfo[i][cZ]);
            SetPlayerFacingAngle(playerid, casaInfo[i][cAngle]);
            SetPlayerInterior(playerid, casaInfo[i][Interior]);
            SetPlayerVirtualWorld(playerid, casaInfo[i][Virtualw]);

            SendClientMessage(playerid, -1, "Bienvenido.");
            break;
        }
    }
    if(i == MAX_CASAS) SendClientMessage(playerid, -1, "No estбs cerca de la puerta de una casa.");
    return 1;
}
Reply
#3

Me acabo de dar cuenta que utilizando el break no me funciona del todo, el else siempre me manda el msj aunque la condiciуn se cumpla :I
Reply
#4

Break, corta el ciclo el cual esta ejecutando el bucle lo que debes hacer es colocar una variable o hacer una funciуn aparte, simple pero no darй absolutamente nada de cуdigo.
Reply
#5

Quote:
Originally Posted by Parka
Посмотреть сообщение
Break, corta el ciclo el cual esta ejecutando el bucle lo que debes hacer es colocar una variable o hacer una funciуn aparte, simple pero no darй absolutamente nada de cуdigo.
No tengo idea por algo pregunto... -.-

Alguien sabe?
Reply
#6

їProbaste el cуdigo que publique?.
El ciclo no lo rompes sн no se encuentra en las coordenadas, al final verificas sн el ciclo fue completado para mandar el mensaje.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)