[PREGUNTA]IsPlayerInRangeOfPoint
#1

Hola gente, tengo una Duda como puedo resolver lo siguiente... Para que pueda usar todas las posiciones y no solo 1 osea supongan se yo pongo en ls una alarma y se puede volver a usar en 5 horas, voy a lv y pongo otra que sea por 5 horas tambiйn, luego las uso osea voy a la alarma de ls y pongo /alarma y se activa, luego voy a la de lv y no se activa osea es como que solo en una se ejecuta el comando como podrнa solucionar eso?


pawn Код:
//-----------------------------------------------------ALARMA---------------------------------------------------------
forward Alarma(playerid);
public Alarma(playerid)
{
         if(!IsPlayerInRangeOfPoint(playerid, 1.3, 5054.5391, 2799.7700, 13.4235) && !IsPlayerInRangeOfPoint(playerid, 1.3, 5044.3691, 2731.3176, 9.6651)) return SendClientMessage(playerid, -1, "No te encuentras en una {F6FF00}Alarma");//terminado
        {
            new rand = random(15); // Puede ser 0 - armas, 1- vida o 2- armadura
            switch(rand)
            {
                case 0..100: //Alarma
                {
                        ProxPlayAudioStreamForPlayer(30, playerid, "http://www.sonidosmp3gratis.com/sounds/alarma-de-incendios.mp3");
                        ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 0, 0);
                        new iString[1000];
                        {
                        strcat(iString, "{F0F0F0}ЎAlarma Activada!\n");
                        strcat(iString, "{F0F0F0}Enviaste una seсal a los Satйlites\n");
                        strcat(iString, "{F0F0F0}____________________________________________________________________________\n");
                        strcat(iString, "{F0F0F0}Para activar la alarma nuevamente tienes que esperar {23BFE0}1 Hora\n");
                        ShowPlayerDialog(playerid,420, DIALOG_STYLE_MSGBOX, "{E4E943}Alarma", iString, "Ok", "");
                }
                }
            }
            Puedeentrar[playerid] = 1;
            SetTimerEx("TimerDejar", 100000, false, "i", playerid);
        }
        return 1;
}
//---------------------------------------------------------------------------------------------------------------------
Reply
#2

Eso te pasa por que al usar dicho comando en cualquiera de esas posiciones automбticamente evita que se vuelva a poder utilizar.

Prueba a ver asн:

pawn Код:
new Zona[2];

forward Alarma(playerid);
public Alarma(playerid)
{
         if(!IsPlayerInRangeOfPoint(playerid, 1.3, 5054.5391, 2799.7700, 13.4235) && !IsPlayerInRangeOfPoint(playerid, 1.3, 5044.3691, 2731.3176, 9.6651)) return SendClientMessage(playerid, -1, "No te encuentras en una {F6FF00}Alarma");//terminado
        {
            new rand = random(15); // Puede ser 0 - armas, 1- vida o 2- armadura
            switch(rand)
            {
                if(!IsPlayerInRangeOfPoint(playerid, 3.0, 5054.5391, 2799.7700, 13.4235 && Zona[0] == 1) return  SendClientMessage(playerid, -1, "Esta alarma ya fue {F6FF00}activada");
                if(!IsPlayerInRangeOfPoint(playerid, 3.0, 5044.3691, 2731.3176, 9.6651 && Zona[1] == 1) return  SendClientMessage(playerid, -1, "Esta alarma ya fue {F6FF00}activada");
                case 0..100: //Alarma
                {
                    ProxPlayAudioStreamForPlayer(30, playerid, "http://www.sonidosmp3gratis.com/sounds/alarma-de-incendios.mp3");
                    ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 0, 0);
                    new iString[1000];
                    strcat(iString, "{F0F0F0}ЎAlarma Activada!\n");
                    strcat(iString, "{F0F0F0}Enviaste una seсal a los Satйlites\n");
                    strcat(iString, "{F0F0F0}____________________________________________________________________________\n");
                    strcat(iString, "{F0F0F0}Para activar la alarma nuevamente tienes que esperar {23BFE0}1 Hora\n");
                    ShowPlayerDialog(playerid,420, DIALOG_STYLE_MSGBOX, "{E4E943}Alarma", iString, "Ok", "");
                    if(IsPlayerInRangeOfPoint(playerid,1.3,5054.5391, 2799.7700, 13.4235))      { Zona[0] = 1return 1; }
                    else if(IsPlayerInRangeOfPoint(playerid,1.3,5044.3691, 2731.3176, 9.6651))  { Zona[1] = 1return 1; }
                }
            }
            Puedeentrar[playerid] = 1;
            SetTimerEx("TimerDejar", 100000, false, "i", playerid);
        }
        return 1;
}
Reply
#3

No me anduvo :c
Reply
#4

Si no especificas mas nadie te podrб ayudar.
Reply
#5

Mmmm nose bien como especificarme bбsicamente es que pongo el comando en una zona y luego cuando voy a la otra no me deja
Reply
#6

Si te fijas bien esta es la secciуn dudas no pedidos ....

En fin, prueba asн:

pawn Код:
new Zona[2];

forward Alarma(playerid);
public Alarma(playerid)
{
    if(!IsPlayerInRangeOfPoint(playerid, 1.3, 5054.5391, 2799.7700, 13.4235) && !IsPlayerInRangeOfPoint(playerid, 1.3, 5044.3691, 2731.3176, 9.6651)) return SendClientMessage(playerid, -1, "No te encuentras en una {F6FF00}Alarma");//terminado
    {
        new rand = random(15); // Puede ser 0 - armas, 1- vida o 2- armadura
        switch(rand)
        {
            if(!IsPlayerInRangeOfPoint(playerid, 3.0, 5054.5391, 2799.7700, 13.4235 && Zona[0] == 1) return  SendClientMessage(playerid, -1, "Esta alarma ya fue {F6FF00}activada");
            if(!IsPlayerInRangeOfPoint(playerid, 3.0, 5044.3691, 2731.3176, 9.6651 && Zona[1] == 1) return  SendClientMessage(playerid, -1, "Esta alarma ya fue {F6FF00}activada");
            case 0..100: //Alarma
            {
                ProxPlayAudioStreamForPlayer(30, playerid, "http://www.sonidosmp3gratis.com/sounds/alarma-de-incendios.mp3");
                ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 0, 0);
                new iString[1000];
                strcat(iString, "{F0F0F0}ЎAlarma Activada!\n");
                strcat(iString, "{F0F0F0}Enviaste una seсal a los Satйlites\n");
                strcat(iString, "{F0F0F0}____________________________________________________________________________\n");
                strcat(iString, "{F0F0F0}Para activar la alarma nuevamente tienes que esperar {23BFE0}1 Hora\n");
                ShowPlayerDialog(playerid,420, DIALOG_STYLE_MSGBOX, "{E4E943}Alarma", iString, "Ok", "");
                Puedeentrar[playerid] = 1;
                SetTimerEx("TimerDejar", 100000, false, "i", playerid);
                if(IsPlayerInRangeOfPoint(playerid,1.3,5054.5391, 2799.7700, 13.4235))      { Zona[0] = 1;  return 1; }
                else if(IsPlayerInRangeOfPoint(playerid,1.3,5044.3691, 2731.3176, 9.6651))  { Zona[1] = 1;  return 1; }
            }
        }
    }
    return 1;
}
Reply
#7

En otra pagina me respondieron esto... que creo que es asн pero ni idea como hacerlo

Bocha para eso define cada punto en el que puedes poner el comando con una variable.
Ejemplo

Quote:

new bool:PuntoActivado[5]; //5 es el maximo de puntos que tu tengas

Despues en la funcion o comando deberas aсadir que depende del punto en el que estйs ponga en true esa variable.

Despъes en el timer pones para que se ponga en false
Reply
#8

Quote:
Originally Posted by Bocha
Посмотреть сообщение
En otra pagina me respondieron esto... que creo que es asн pero ni idea como hacerlo

Bocha para eso define cada punto en el que puedes poner el comando con una variable.
Ejemplo




Despues en la funcion o comando deberas aсadir que depende del punto en el que estйs ponga en true esa variable.

Despъes en el timer pones para que se ponga en false
Lo que te dicen lo dicen muy claro xD tienes que crear una variable booleana y usarla cuando la necesites un ej:

pawn Код:
if(PuntoActivado[0] == true)
{
SendClientMessage(playerid,-1,"El punto 0 esta activado"); //si el punto 0 esta en true significa que el punto esta activado
} else SendClientMessage(playerid,-1,"El punto 0 esta desactivado"); //Si el punto 0 esta en false significa que no esta activado
Es solo un ejemplo...
Reply
#9

їEstбs usando el mismo timer para LS y LV? Debes hacer uno para cada uno, si no es eso especifica mas
Reply
#10

No entendн mucho pero lo puse asн y no anduvo todavнa :c... esta mal ubicado eso ya lo se creo yo pero no me anduvo


pawn Код:
forward Alarma(playerid);
public Alarma(playerid)
{
         if(PuntoActivado[0] == true) /// lo del true estб aquн-------------------------------------------------------------------------------
         if(!IsPlayerInRangeOfPoint(playerid, 1.3, 5054.5391, 2799.7700, 13.4235) && !IsPlayerInRangeOfPoint(playerid, 1.3, 5044.3691, 2731.3176, 9.6651)) return SendClientMessage(playerid, -1, "No te encuentras en una {F6FF00}Alarma");//terminado
         {
            new rand = random(15); // Puede ser 0 - armas, 1- vida o 2- armadura
            switch(rand)
            {
                case 0..100: //Alarma
                {
                        ProxPlayAudioStreamForPlayer(30, playerid, "http://www.sonidosmp3gratis.com/sounds/alarma-de-incendios.mp3");
                        ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 0, 0);
                        new iString[1000];
                        {
                        strcat(iString, "{F0F0F0}ЎAlarma Activada!\n");
                        strcat(iString, "{F0F0F0}Enviaste una seсal a los Satйlites\n");
                        strcat(iString, "{F0F0F0}____________________________________________________________________________\n");
                        strcat(iString, "{F0F0F0}Para activar la alarma nuevamente tienes que esperar {23BFE0}1 Hora\n");
                        ShowPlayerDialog(playerid,420, DIALOG_STYLE_MSGBOX, "{E4E943}Alarma", iString, "Ok", "");
                }
                }
            }
            if(PuntoActivado[0] == false)    /// lo del false estб aquн -------------------------------------------------------------------
            Puedeentrar[playerid] = 1;
            SetTimerEx("TimerDejar", 100000, false, "i", playerid);
         }
         return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)