[problema] al arrancar un vehнculo
#1

Buenas, hace tiempo hice con la ayuda de un amigo un sistema para arrancar los vehнculos y funcionaba a la perfecciуn. Hoy lo he probado con otro jugador conectado a la vez y tuve un problema; cuando uno entra en un vehнculo y pone /arrancar, le sale un GameText y se enciende el motor, pero si el otro jugador tambiйn pone /arrancar a otro vehнculo, a este sуlo le aparece el GameText pero no arranca. їA quй se debe? y їCуmo puedo hacer para que cada jugador pueda arrancar un vehнculo individual?

Aquн estб el cуdigo:

pawn Код:
CMD:arrancar(playerid,params[])
{
    new car = GetPlayerVehicleID(playerid);
    new Float:vida;
    GetVehicleHealth(car,vida);
    if(car < SellCoches[10])
    {
    SendClientMessage(playerid,red,"No puedes arrancar este vehнculo");
    }
    if(GetVehicleModel(car) == 437)
    {
    if(PlayerInfo[playerid][CarnetBus] !=1) return SendClientMessage(playerid,red,"No tienes carnet de bus. Para sacбrtelo pon {FFFFFF}/autoescuela");
    }
    else if(GetVehicleModel(car) != 437)
    {
    if(PlayerInfo[playerid][CarnetCoche] != 1) return SendClientMessage(playerid,red,"No tienes carnet de coche. Para sacбrtelo pon {FFFFFF}/autoescuela");
    }
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"Debes estar en un vehнculo como conductor");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,-1,"Debes ser el conductor del coche para {FF0000}encender{FFFFFF}el mismo");
    if(VehicleEngine[car] == false)
    {
    SetTimer("Arrancar",1000,false);
    GameTextForPlayer(playerid,"Arrancando ~r~motor...",1000,3);
    }
    if(vida <= 500) return SendClientMessage(playerid,red,"Debes reparar el motor");
    return 1;
}
pawn Код:
forward Arrancar(playerid);
public Arrancar(playerid)
{
    new car = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(VehicleEngine[car] == false)
    {
        VehicleEngine[car] = true;
        GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
        SetVehicleParamsEx(car,VehicleEngine[car],lights,alarm,doors,bonnet,boot,objective);
        SendClientMessage(playerid,-1,"ЎMotor del vehнculo encendido!");
    }
    return 1;
}
Espero que me puedan ayudar, gracias de antemano.
Reply
#2

Hace un timer para cada jugador y no uno global. Ademбs de que en el timer no estбs especificando parбmetros y en la funciуn del timer si.

pawn Код:
SetTimerEx("Arrancar",1000,false,"i",playerid);
Mбs informaciуn: Acб y acб
Reply
#3

pawn Код:
CMD:arrancar(playerid,params[])
{
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new Float:health, vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleHealth(vehicleid, health);
        if(health <= 500)
        {
            return SendClientMessage(playerid, red, "Debes reparar el motor");
        }
        if(vehicleid < SellCoches[10])
        {
            return SendClientMessage(playerid, red, "No puedes arrancar este vehнculo");
        }
        if((GetVehicleModel(vehicleid) == 437 && PlayerInfo[playerid][CarnetBus] != 1)
        || (GetVehicleModel(vehicleid) != 437 && PlayerInfo[playerid][CarnetCoche] != 1))
        {
            return SendClientMessage(playerid, red, "No tienes carnet. Para sacбrtelo pon {FFFFFF}/autoescuela");
        }
        if(!VehicleEngine[vehicleid])
        {
            SetTimerEx("Arrancar", 1000, false, "ii", playerid, vehicleid);
            GameTextForPlayer(playerid,"Arrancando ~r~motor...", 1000, 3);
        }

    } else SendClientMessage(playerid, -1, "Debes estar en un vehнculo como conductor");
    return 1;
}

forward Arrancar(playerid, vehicleid);
public  Arrancar(playerid, vehicleid)
{
    if(!VehicleEngine[vehicleid])
    {
        new engine, lights, alarm, doors, bonnet, boot, objective;
        VehicleEngine[vehicleid] = true;
        GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
        SetVehicleParamsEx(vehicleid, true, lights, alarm, doors, bonnet, boot, objective);
        SendClientMessage(playerid, -1, "ЎMotor del vehнculo encendido!");
    }
    return 1;
}
Reply
#4

Gracias a los dos, ahora funciona con otros jugadores.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)