Ayuda con OnPlayerEnterVehicle y Operadores...
#1

Buenas a Todos, Ayuda con esto...

Asi funciona Perfectamente:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(!ispassenger)
    {
        if(vehicleid == variablevehiculo)
        {
            if(!Variable[playerid])  //<------------
            {
                //SendClientMessage ...
            }
            return 0;
        }
    }
    return 1;
}
y aca cuando kiero agregar otra variable para ke compruebe si tiene una variable y otra, con los opeadores && hay ya me causa problema y no chekea nada y deja subir al vehiculos siempre:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(!ispassenger)
    {
        if(vehicleid == variablevehiculo)
        {
            if(!Variable[playerid] && !VariableNueva[playerid]) //<------------
            {
                //SendClientMessage ...
            }
            return 0;
        }
    }
    return 1;
}
Me pueden decir ke sucede?.

Desde ya muchas Gracias.
Reply
#2

Ambas variables deben ser igual a 0 (! es lo mismo que == 0)
Reply
#3

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
Ambas variables deben ser igual a 0 (! es lo mismo que == 0)
ya lo se, y tambien comprobe y pasa lo mismo :S.
las variables son bool.
Reply
#4

no hay ningъn error en cуdigo, si lo que querйs es que el jugador evite entrar al vehiculo con retornar 0 o 1 no haces nada, tal vez cambiandolo de posiciуn funcione.

probб poniendo un printf arriba del if
printf("(%d && %d) == %d",!Variable[playerid],!VariableNueva[playerid],!Variable[playerid] && !VariableNueva[playerid]);
Reply
#5

aver...
estoy medio confuso XD.

tengo 2 tipos de vehiculos vefinidos con variabla, ahora creare 2 comandos, uno sera para usar un tipo de vehiculo y el otro para usar el otro.

la primer variable seria para poder usar los comando en general, y la segunda para no permitir usar el otro itpo de vehiculo si ya esta usando el otro.

Com podria hacer eso?.

PD: osea no permitirlo entrar con OnPlayerEnterVehicle .
Reply
#6

OnPlayerEnterVehicle se llama cuando apretas el botуn para entrar al vehнculo, puede que hayas entrado o no, la callback se llamarб igual. Lo que tenйs que usar es OnPlayerStateChange y comprar newstate con PLAYER_STATE_DRIVER.
pawn Код:
if(!Variable[playerid] && !VariableNueva[playerid])
Traducido serнa:
pawn Код:
si Variable[playerid] esta en false y VariableNueva[playerid] esta en false entonces
Tambiйn podйs hacer la inversa, con la condiciуn contraria y poniendo un return para terminar la ejecuciуn de la callback.
Reply
#7

Quote:
Originally Posted by CaptainMactavish
Посмотреть сообщение
OnPlayerEnterVehicle se llama cuando apretas el botуn para entrar al vehнculo, puede que hayas entrado o no, la callback se llamarб igual. Lo que tenйs que usar es OnPlayerStateChange y comprar newstate con PLAYER_STATE_DRIVER.
pawn Код:
if(!Variable[playerid] && !VariableNueva[playerid])
Traducido serнa:
pawn Код:
si Variable[playerid] esta en false y VariableNueva[playerid] esta en false entonces
Tambiйn podйs hacer la inversa, con la condiciуn contraria y poniendo un return para terminar la ejecuciуn de la callback.
es ke lo coloco en OnPlayerEnterVehicle por ke le pongo dento un GetPlayerPos y un SetPlayerPos con z+2.0 asi cuando intenta entrar con entero con g salta el player pero afuera del vehiculo, y en OnPlayerStateChange el player entrar al vehiculo y sale y se kedaria arriba del techo :S.

Pero no tengo problema con eso, es con las variables y operadores.
y lo estoy poniendo bien , y los ejemplo ke me dan explicando es como lo estoy colocando ¬¬.
Reply
#8

alguien me da un ejemplo de como harian esto ?
http://forum.sa-mp.com/showpost.php?...50&postcount=5
Reply
#9

Quote:
Originally Posted by bytytus
Посмотреть сообщение
tengo 2 tipos de vehiculos vefinidos con variabla, ahora creare 2 comandos, uno sera para usar un tipo de vehiculo y el otro para usar el otro.
Ahi crearias una variable que almacene el tipo de vehiculo permitido
Permitido[playerid] = 1; //en el primer comando
Permitido[playerid] = 2; //en el segundos

Quote:
Originally Posted by bytytus
Посмотреть сообщение
la primer variable seria para poder usar los comando en general, y la segunda para no permitir usar el otro itpo de vehiculo si ya esta usando el otro.
mmm como que para usar comandos en general?

al crear una sola variable no tendrias problemas de poder usar los dos tipos de vehiculos, ya que si usas el primero la variable seria 1 y si usas el segundo la variable seria 2,
Reply
#10

Prueba asi

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(!ispassenger)
    {
        if(vehicleid == variablevehiculo)
        {
            if(Variable[playerid] == 1 && VariableNueva[playerid] == 0) //<------------
            {
                //SendClientMessage ...
            }
            return 0;
        }
    }
    return 1;
}
yo que sepa ! va antes de una funcion, no variable, es para que una funcion ejecute esa funcion de forma inversa o si algo es lo contrario

si quieres que una variable se evalue como falso o verdadero es como lo puse

esto es un claro ejemplo para lo que se usa el !

pawn Код:
if(!IsPlayerConnected(playerid)) //no esta conectado

if(IsPlayerConnected(playerid)) // esta conectado
OperadorAccion
= Para darle un nuevo valor a una variable
- Restar
+ Sumar
/ Divide
* Multiplica
++ Aumenta el valor de la variable en 1
-- Disminuye el valor de la variable en 1
-= Disminuye el valor especificado a una variable
+= Aumenta el valor especificado a una variable
== Usado para comparar si 2 variables son iguales
!= Usado para comprobar si 2 variables son distintas
< Usado para comprobar si una variable es menor que otra
> Usado para comprobar si una variable es mayor que otra
<= Comprueba para comprobar si una variable es menor o igual que otra
>= Comprueba si una variable es mayor o igual que otra
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)