[Ayuda] Problema de lуgica en cуdigo
#1

Hola gente , bueno yo lo que quiero hacer es 1 botуn para que la puerta se abra, es decir al apretar una tecla se abra 1 porton, pero que se quede abierto, y al apretarla de nuevo cuando yo quiera que se cierre dicha puerta... Intentй hacerlo pero solo se abre y no se cierra xD

PD: Las cordenadas estбn bien, me parece qe la lуgica usada mia estб muy mal, espero que me ayuden, ademбs cabe destacar que NO uso timmers en esta funciуn.


Код:
if(buttonid == BotonPuertaMecanicos == true)
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0); //Abriendo Puerta (Mecanicos) << Entrada
    }
    	else if (buttonid == BotonPuertaMecanicos == false)
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0); //Cerrando Puerta (Mecanicos) << Entrada
    }

Espero que me puedan ayudar, digamos que para el mismo boton que se abra cuando apriete la tecla, (Eso ya lo tengo echo) y que si vuelve a apretar el mismo boton qe capte qe este abierto y lo cierre! Y biseversa.

PD: doy +rep a la ayuda ya lo saben
Reply
#2

Prueba asi
if(buttonid == BotonPuertaMecanicos == true)
{
if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0); //Abriendo Puerta (Mecanicos) << Entrada
}
else
{
if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0); //Cerrando Puerta (Mecanicos) << Entrada
}

Y recuerda que en esta coordenada MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0) debe ir exactamente la misma que llevas donde estas definiendo PuertaMecanicos
Reply
#3

Se ve que no leнste mi post Nada que ver a la ayuda que pedн xD
Reply
#4

pawn Код:
if(buttonid == BotonPuertaMecanicos == true)
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0); //Abriendo Puerta (Mecanicos) << Entrada
    }
        else
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0); //Cerrando Puerta (Mecanicos) << Entrada
    }
Arriba colocas que si es true que se abra, pero abajo no hace falta colocar eso. Colocбndole el "else" estбs diciendo que si la variable es contraria (false) se ejecute esa funciуn.
Reply
#5

Quote:
Originally Posted by Juance
Посмотреть сообщение
pawn Код:
if(buttonid == BotonPuertaMecanicos == true)
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0); //Abriendo Puerta (Mecanicos) << Entrada
    }
        else
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0); //Cerrando Puerta (Mecanicos) << Entrada
    }
Arriba colocas que si es true que se abra, pero abajo no hace falta colocar eso. Colocбndole el "else" estбs diciendo que si la variable es contraria (false) se ejecute esa funciуn.
--------------------------

Gracias ahora lo pruebo! Para mi esta mal lo que hize en el sentido de que en una linea no se si se puede utilizar esto:

Код:
if(buttonid == BotonPuertaMecanicos == true)
osea dos veces el "==" entendes?
Reply
#6

No me sirviу tampoco
Reply
#7

pawn Код:
if(buttonid)
{
switch(BotonPuertaMecanicos)
{
case true:
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0); //Abriendo Puerta (Mecanicos) << Entrada
    }
        default:
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0); //Cerrando Puerta (Mecanicos) << Entrada
    }
}
}
Reply
#8

Buenas, eso es sencillo y solo es en un callback que es este: OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
y te dejare aquн un codigo de como seria eso:

Код:
new PuertaMecanicosLA = 0; // En los news 0: Cerrada 1: Abierta

if(OnPlayerKeyStateChange(playerid, newkeys, oldkeys))
{
   if(newkeys == KEY_YES)
   {
      if(IsPlayerInRangeOfPoint(playerid, 30.0, 2260.96704, -1342.05200, 24.55900)) // Remueve esto si la quieres abrir/cerrar donde quieras
      {
         if(!Team_Mecanicos(playerid)) return SendClientMessage(playerid, COLOR_GREY, "* Acceso Denegado.");
         if(PuertaMecanicosLA == 0)
         {
            MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0);
         }
         else if(PuertaMecanicosLA == 1)
         {
            MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0);
         }
      }
   }
   return 1;
}
Responde si tienes algъn problema, saludos.
NOTA: Se abre con la tecla 'Y'
Reply
#9

Cristian yo los tengo creados de otra forma, recuerda que uso el if(buttonid == BotonPuertaMecanicos para que despuйs se vean como objetos y aga la animaciуn
Reply
#10

Quote:
Originally Posted by Juance
Посмотреть сообщение
pawn Код:
if(buttonid)
{
switch(BotonPuertaMecanicos)
{
case true:
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 17.35023, 5.0); //Abriendo Puerta (Mecanicos) << Entrada
    }
        default:
    {
        if(!Team_Mecanicos(playerid)) return SendClientMessageEx(playerid,COLOR_GREY,"* Acceso Denegado.");
        MoveDynamicObject(PuertaMecanicos,2260.96704, -1342.05200, 24.55900, 5.0); //Cerrando Puerta (Mecanicos) << Entrada
    }
}
}
Ahн te deje un cуdigo. їTe sirvio?.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)