[Help]Encendido de motor
#1

Bueno tengo el encendido de motor de mi server junto al apagado del motor pero ahora estoy teniendo problemas cuando voy apagarlo y prenderlo.

Al darle "/motor" el coche sigue la secuencia (Prender) pero no salen las siguientes lнneas:
pawn Код:
format(string, sizeof(string), "* %s gira la llave y enciende el motor.", RPN(playerid));
        SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
        SendClientMessage(playerid, COLOR_WHITE, "El motor se encendiу ...");
pero al apagarlo no hace nada de lo planteado, ya eh hecho de varнas formas y todo pero no me anda y recurro a sus ayuda.

pawn Код:
CMD:motor(playerid, params[])
{
    new engine, lights, alarm, doors, bonnet, boot, objective, string[128];
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Necesitas estar logueado para usar el comando.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "Usted no estб en un coche.");
    if(vehicleid == 509 || vehicleid == 481 || vehicleid == 510) return SendClientMessage(playerid, COLOR_GREY, "Las bicicletas no necesitan motor.");
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(!engine)
    {
   format(string, sizeof(string), "* %s gira la llave y enciende el motor.", RPN(playerid));
        SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
        SendClientMessage(playerid, COLOR_WHITE, "El motor se encendiу ...");
        SetVehicleParamsEx(vehicleid, 1, 1, 1, 1, 1, 1, 1);
    }
    else
    {
        SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, objective);
        if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pVeh])
        {SetVehicleParamsEx(vehicleid, 0, lights, alarm, PlayerInfo[playerid][vLocked], bonnet, boot, objective);}
        if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pVVeh])
        {SetVehicleParamsEx(vehicleid, 0, lights, alarm, PlayerInfo[playerid][vVLocked], bonnet, boot, objective);}
        format(string, sizeof(string), "* %s gira la llave y apaga el motor.", RPN(playerid));
        SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    }
    return 1;
}
PD: Code agregado.
Reply
#2

1- pasa el SendNearbyMessage

2- Estan utilizando mal el SetVehicleParamsEx Deber Colocar Positivo/negativo solo en el parametro ke utilizaras, ke en este caso es el engine(Motor).

pawn Код:
SetVehicleParamsEx(vehicleid, true, lights, alarm, doors, bonnet, boot, objective); //Prendido
SetVehicleParamsEx(vehicleid, false, lights, alarm, doors, bonnet, boot, objective); //Apagado
pawn Код:
CMD:motor(playerid, params[])
{
    static vehicleid = GetPlayerVehicleID(playerid);
    static engine, lights, alarm, doors, bonnet, boot, objective, string[128];
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Necesitas estar logueado para usar el comando.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "Usted no estб en un coche.");
    if(vehicleid == 509 || vehicleid == 481 || vehicleid == 510) return SendClientMessage(playerid, COLOR_GREY, "Las bicicletas no necesitan motor.");
    switch(engine)
    {
        case 0:
        {
            format(string, sizeof(string), "* %s gira la llave y enciende el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            SendClientMessage(playerid, COLOR_WHITE, "El motor se encendiу ...");
            SetVehicleParamsEx(vehicleid, 1, lights, alarm, 1, bonnet, boot, objective);
        }
        case 1:
        {
            format(string, sizeof(string), "* %s gira la llave y apaga el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            SetVehicleParamsEx(vehicleid, 0, lights, alarm, 0, bonnet, boot, objective);
        }
    }
    return 1;
}
Reply
#3

Acб estб el code
pawn Код:
stock SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new Float:ix, Float:iy, Float:iz;
    new Float:cx, Float:cy, Float:cz;
    foreach(Player, i)
    {
        if(IsPlayerLoggedIn(i))
        {
            if(GetPlayerInterior(playerid) == GetPlayerInterior(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
            {
                GetPlayerPos(i, ix, iy, iz);
                cx = (x - ix);
                cy = (y - iy);
                cz = (z - iz);
                if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16)))
                {
                    SendClientMessage(i, col1, string);
                }
                else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8)))
                {
                    SendClientMessage(i, col2, string);
                }
                else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4)))
                {
                    SendClientMessage(i, col3, string);
                }
                else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2)))
                {
                    SendClientMessage(i, col4, string);
                }
                else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius)))
                {
                    SendClientMessage(i, col5, string);
                }
            }
        }
    }
    return 1;
}
Bien gracias por la correcciуn pero quiero saber por que usa ''static'' y al agregarlo me da error estб:
pawn Код:
static vehicleid = GetPlayerVehicleID(playerid);
Reply
#4

Quote:
Originally Posted by juank
Посмотреть сообщение
Acб estб el code
pawn Код:
stock SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new Float:ix, Float:iy, Float:iz;
    new Float:cx, Float:cy, Float:cz;
    foreach(Player, i)
    {
        if(IsPlayerLoggedIn(i))
        {
            if(GetPlayerInterior(playerid) == GetPlayerInterior(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
            {
                GetPlayerPos(i, ix, iy, iz);
                cx = (x - ix);
                cy = (y - iy);
                cz = (z - iz);
                if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16)))
                {
                    SendClientMessage(i, col1, string);
                }
                else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8)))
                {
                    SendClientMessage(i, col2, string);
                }
                else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4)))
                {
                    SendClientMessage(i, col3, string);
                }
                else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2)))
                {
                    SendClientMessage(i, col4, string);
                }
                else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius)))
                {
                    SendClientMessage(i, col5, string);
                }
            }
        }
    }
    return 1;
}
Bien gracias por la correcciуn pero quiero saber por que usa ''static'' y al agregarlo me da error estб:
pawn Код:
static vehicleid = GetPlayerVehicleID(playerid);
cambia a new, fue un error mio.
static es para ke no cargue de nuevo la variable y guardara el entero, pero con GetPlayerVehicleID tiene ke cargar de nuevo por ke sino cargadar el id anterior del vehiculo (si subiste a otro vehciulo).

EDIT:

pawn Код:
stock SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new Float:ix, Float:iy, Float:iz;
    new Float:cx, Float:cy, Float:cz;
    foreach(Player, i)
    {
        if(IsPlayerLoggedIn(i) && IsPlayerLoggedIn(playerid)) // <----------
        {
            if(GetPlayerInterior(playerid) == GetPlayerInterior(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
            {
                GetPlayerPos(i, ix, iy, iz);
                cx = (x - ix);
                cy = (y - iy);
                cz = (z - iz);
                if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16)))
                {
                    SendClientMessage(i, col1, string);
                }
                else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8)))
                {
                    SendClientMessage(i, col2, string);
                }
                else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4)))
                {
                    SendClientMessage(i, col3, string);
                }
                else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2)))
                {
                    SendClientMessage(i, col4, string);
                }
                else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius)))
                {
                    SendClientMessage(i, col5, string);
                }
            }
        }
    }
    return 1;
}
Intenta asi.
Reply
#5

A bien gracias por la explicaciуn se me dio por cambiarlo a new el static y me compilo bien, aъn agregando pero el problema consiste no sale el texto ni se apaga.
Reply
#6

Antes que nada te digo que la funciуn esa que manda el mensaje es una autentica m*erda.
De todas formas, la revisй y parece que estб todo bien, solo le cambie unas condiciones:
pawn Код:
stock SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new Float:ix, Float:iy, Float:iz;
    new Float:cx, Float:cy, Float:cz;
    foreach(Player, i)
    {
        if(IsPlayerLoggedIn(i))
        {
            if(GetPlayerInterior(i) == GetPlayerInterior(playerid) && GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
            {
                GetPlayerPos(i, ix, iy, iz);
                cx = (x - ix); cy = (y - iy); cz = (z - iz);
                if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16))) {
                    SendClientMessage(i, col1, string);
                }
                else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8))) {
                    SendClientMessage(i, col2, string);
                }
                else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4))) {
                    SendClientMessage(i, col3, string);
                }
                else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2))) {
                    SendClientMessage(i, col4, string);
                }
                else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius))) {
                    SendClientMessage(i, col5, string);
                }
            }
        }
    }
    return 1;
}
Bueno, segundo fallo que encontrй fue el radio que pusiste para mandar el mensaje. La funciуn pide un nъmero decimal (float) y tu pusiste uno entero, intenta cambiar por esto:
pawn Код:
SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
Otra cosa que vi es que en una lнnea de SetVehicleParamsEx pusiste todo en 1, no tiene nada que ver con tu duda pero eso activa todas las cosas del vehнculo: maletero, luces, objetivo, etc.

Intenta cambiar lo que te dije, y si no va, buscamos otra soluciуn.
Reply
#7

Bueno gracias por el comentario al aparecer aъn hay cosas que aprender hahaah, al tema.

Bueno sigue igual prende sin el texto y no se apaga, digamos que el texto ahora no es lo necesario si no que se apague al probarlo ahorita al darle /motor se enciende digamos que Ejemplo: la luz estб encendida y la apago y una vez doy /motor nuevamente hace la funciуn de encender el motor en vez de apagar.

PD: Aquн agregado lo que me pasastes:
pawn Код:
CMD:motor(playerid, params[])
{
    new vehicleid = GetPlayerVehicleID(playerid);
    static engine, lights, alarm, doors, bonnet, boot, objective, string[128];
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Necesitas estar logueado para usar el comando.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "Usted no estб en un coche.");
    if(vehicleid == 509 || vehicleid == 481 || vehicleid == 510) return SendClientMessage(playerid, COLOR_GREY, "Las bicicletas no necesitan motor.");
    switch(engine)
    {
        case 0:
        {
            format(string, sizeof(string), "* %s gira la llave y enciende el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            SendClientMessage(playerid, COLOR_WHITE, "El motor se encendiу ..."); //<----------
            SetVehicleParamsEx(vehicleid, 1, lights, alarm, 1, bonnet, boot, objective);
        }
        case 1:
        {
            format(string, sizeof(string), "* %s gira la llave y apaga el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); //<--------------
            SetVehicleParamsEx(vehicleid, 0, lights, alarm, 0, bonnet, boot, objective);
        }
    }
    return 1;
}
Reply
#8

Reemplaza por esto:
pawn Код:
CMD:motor(playerid, params[])
{
    new vehicleid = GetPlayerVehicleID(playerid);
    new engine, lights, alarm, doors, bonnet, boot, objective, string[128];
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Necesitas estar logueado para usar el comando.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "Usted no estб en un coche.");
    if(vehicleid == 509 || vehicleid == 481 || vehicleid == 510) return SendClientMessage(playerid, COLOR_GREY, "Las bicicletas no necesitan motor.");
    switch(engine)
    {
        case -1, 0:
        {
            format(string, sizeof(string), "* %s gira la llave y enciende el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            SendClientMessage(playerid, COLOR_WHITE, "El motor se encendiу ..."); //<----------
            SetVehicleParamsEx(vehicleid, 1, lights, alarm, 1, bonnet, boot, objective);
        }
        case 1:
        {
            format(string, sizeof(string), "* %s gira la llave y apaga el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); //<--------------
            SetVehicleParamsEx(vehicleid, 0, lights, alarm, 0, bonnet, boot, objective);
        }
    }
    return 1;
}
Reply
#9

Aъn sigue..
Reply
#10

pawn Код:
CMD:motor(playerid, params[])
{
    new vehicleid = GetPlayerVehicleID(playerid);
    new engine, lights, alarm, doors, bonnet, boot, objective, string[128];
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Necesitas estar logueado para usar el comando.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "Usted no estб en un coche.");
    if(vehicleid == 509 || vehicleid == 481 || vehicleid == 510) return SendClientMessage(playerid, COLOR_GREY, "Las bicicletas no necesitan motor.");
    switch(engine)
    {
        case VEHICLE_PARAMS_OFF:
        {
            format(string, sizeof(string), "* %s gira la llave y enciende el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            SendClientMessage(playerid, COLOR_WHITE, "El motor se encendiу ..."); //<----------
            SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
        }
        case VEHICLE_PARAMS_ON:
        {
            format(string, sizeof(string), "* %s gira la llave y apaga el motor.", RPN(playerid));
            SendNearbyMessage(playerid, 15.0, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); //<--------------
            SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)