[DUDA]Sistema de motor gm zenon city
#1

Buenas, saque el comando /v motor de zenon city y le puse /motor, funciona joya, pero ahora quiero que encienda con 'ALT', hice todo perfecto y al presionar ALT en el coche, no pasa nada, no enciende ni nada por el estilo, йste es el cуdigo:
Код:
    if(newkeys == KEY_WALK)
{
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
		{
new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
		vehicleid = GetPlayerVehicleID(playerid);
		if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessageEx(playerid,COLOR_WHITE,"[ERROR]: No puedes usar este comando si estбs en este tipo de vehiculos.");
		GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
		if(engine == VEHICLE_PARAMS_ON)
		{
			SetVehicleEngine(vehicleid, playerid);
		}
		else if((engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET))
		{
			SendClientMessageEx(playerid, COLOR_WHITE, "Motor del vehнculo se estб prendiendo, por favor espera ...");
			SetTimerEx("SetVehicleEngine", 1000, 0, "i", playerid);
		}
				}
		return 1;
}
Reply
#2

Si lees esta tabla al parecer en vehiculos esta letra no es detectada por lo que puedes cambiar a cualquier otra que tenga un valor en "Default invehicle"
Reply
#3

Mal, estas cometiendo 2 errores muy graves:

1є) if (newkeys == x)

Esto estб mal.

їPor quй?:

Si te pones a probar, puede que te funcione, pero sуlo funcionarб si la tecla presionada es solamente esa tecla, lo cual es un problema, ya que al apretar 2 o mбs teclas, el cуdigo no se ejecutarб.

Lo correcto serнa:

pawn Код:
if (newkeys & x)
2є) KEY_WALK en un vehнculo

Tambiйn estб mal.

їPor quй?:

Porque esta tecla solamente funciona cuando el jugador estб fuera de un vehнculo, como dijo xSDx, si te pones a revisar la tabla, podrбs observar que hay un "-" para KEY_WALK en Gametext Key invehicle y en Default invehicle, lo que significa que para un vehнculo, este valor no es llamado.

Sin embargo puedes utilizar KEY_FIRE combinado con IsPlayerInAnyVehicle para lograr lo que quieres exactamente.

El resultado final serнa asн:

pawn Код:
if(newkeys & KEY_FIRE && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new engine, lights, alarm, doors, bonnet, boot, objective, vehicleid;
        vehicleid = GetPlayerVehicleID(playerid);
        if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessageEx(playerid,COLOR_WHITE,"[ERROR]: No puedes usar este comando si estбs en este tipo de vehiculos.");
        GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
        if(engine == VEHICLE_PARAMS_ON)
        {
            SetVehicleEngine(vehicleid, playerid);
        }
        else if((engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET))
        {
            SendClientMessageEx(playerid, COLOR_WHITE, "Motor del vehнculo se estб prendiendo, por favor espera ...");
            SetTimerEx("SetVehicleEngine", 1000, 0, "i", playerid);
        }
    }
    return 1;
Espero haber ayudado.
Reply
#4

Quote:
Originally Posted by Edugta.
Посмотреть сообщение
Mal, estas cometiendo 2 errores muy graves:

1є) if (newkeys == x)

Esto estб mal.

їPor quй?:

Si te pones a probar, puede que te funcione, pero sуlo funcionarб si la tecla presionada es solamente esa tecla, lo cual es un problema, ya que al apretar 2 o mбs teclas, el cуdigo no se ejecutarб.

Lo correcto serнa:

pawn Код:
if (newkeys & x)
2є) KEY_WALK en un vehнculo

Tambiйn estб mal.

їPor quй?:

Porque esta tecla solamente funciona cuando el jugador estб fuera de un vehнculo, como dijo xSDx, si te pones a revisar la tabla, podrбs observar que hay un "-" para KEY_WALK en Gametext Key invehicle y en Default invehicle, lo que significa que para un vehнculo, este valor no es llamado.

Sin embargo puedes utilizar KEY_FIRE combinado con IsPlayerInAnyVehicle para lograr lo que quieres exactamente.

El resultado final serнa asн:

pawn Код:
if(newkeys & KEY_FIRE && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new engine, lights, alarm, doors, bonnet, boot, objective, vehicleid;
        vehicleid = GetPlayerVehicleID(playerid);
        if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessageEx(playerid,COLOR_WHITE,"[ERROR]: No puedes usar este comando si estбs en este tipo de vehiculos.");
        GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
        if(engine == VEHICLE_PARAMS_ON)
        {
            SetVehicleEngine(vehicleid, playerid);
        }
        else if((engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET))
        {
            SendClientMessageEx(playerid, COLOR_WHITE, "Motor del vehнculo se estб prendiendo, por favor espera ...");
            SetTimerEx("SetVehicleEngine", 1000, 0, "i", playerid);
        }
    }
    return 1;
Espero haber ayudado.
En lo primero no estaria mal, ya que un sistema real solo puedes encender un vehiculo con la llave (seria presionar solo una tecla) ya que si mueves las velocidades o cosas asi (presionar mas de una tecla) podria haber fallas.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)