Hallo. Es gibt ein kleines Problem mit meinem "Motor"-System.
Alle Motoren sind automatisch an.
Ich benutze bereits ManualVehicleEngineAndLights(); unter OnGameModeInit doch das bringt nichts.
Hier meine Funktionen wo ich Sachen mit SetVehicleParamsEx verwende:
//Global
new engine, light, alarm, doors, bonnet, boot, objective;
//OnGameModeInit
for(new i=0;i<MAX_VEHICLES;i++)
{
GetVehicleParamsEx(i, engine, light, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(i, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
}
CMD:motor(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vid = GetPlayerVehicleID(playerid);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x,y,z);
new string[128];
new mod = GetVehicleModel(GetPlayerVehicleID(playerid));
if(IsAFahrrad(mod))return SendClientMessage(playerid, COLOR_GREY, "Ein Fahrrad hat kein Motor.");
GetVehicleParamsEx(vid, engine, light, alarm, doors, bonnet, boot, objective);
if(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET)
{
if(gGas[vid] <= 0)return SendClientMessage(playerid, COLOR_GREY, "Kein Benzin mehr!");
format(string, sizeof(string), "* %s betätigt die Zündung. Der Motor springt an!", GetName(playerid));
SendRoundMessage(x,y,z, COLOR_PURPLE, string);
KillTimer(carmsgwait[playerid]);
SetVehicleParamsEx(vid, VEHICLE_PARAMS_ON, light, alarm, doors, bonnet, boot, objective);
TextDrawSetString(CarMessage[playerid], "~w~Motor ~g~an");
TextDrawShowForPlayer(playerid, CarMessage[playerid]);
}
else
{
KillTimer(carmsgwait[playerid]);
SetVehicleParamsEx(vid, VEHICLE_PARAMS_OFF, light, alarm, doors, bonnet ,boot, objective);
TextDrawSetString(CarMessage[playerid], "~w~Motor ~r~aus");
TextDrawShowForPlayer(playerid, CarMessage[playerid]);
}
carmsgwait[playerid] = SetTimerEx("HideCarMessage", 8000, 0, "i", playerid);
}
return 1;
}
CMD:licht(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vid = GetPlayerVehicleID(playerid);
new mod = GetVehicleModel(GetPlayerVehicleID(playerid));
if(IsAFahrrad(mod))return 1;
GetVehicleParamsEx(vid, engine, light, alarm, doors, bonnet, boot, objective);
if(light == VEHICLE_PARAMS_OFF || light == VEHICLE_PARAMS_UNSET)
{
KillTimer(carmsgwait[playerid]);
SetVehicleParamsEx(vid, engine, VEHICLE_PARAMS_ON, alarm, doors, bonnet, boot, objective);
TextDrawSetString(CarMessage[playerid], "~w~Licht ~g~an");
TextDrawShowForPlayer(playerid, CarMessage[playerid]);
}
else
{
KillTimer(carmsgwait[playerid]);
SetVehicleParamsEx(vid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
TextDrawSetString(CarMessage[playerid], "~w~Licht ~r~aus");
TextDrawShowForPlayer(playerid, CarMessage[playerid]);
}
carmsgwait[playerid] = SetTimerEx("HideCarMessage", 8000, 0, "i", playerid);
}
return 1;
}
public AutomaticBikeMotor()
{
for(new v=0;v<MAX_VEHICLES;v++)
{
new mod = GetVehicleModel(v);
if(IsAFahrrad(mod))
{
SetVehicleParamsEx(v, VEHICLE_PARAMS_ON, light, alarm, doors, bonnet, boot, objective);
}
}
return 1;
}
stock LockCar(carid)
{
GetVehicleParamsEx(carid, engine, light, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(carid, engine, light, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
}
stock UnLockCar(carid)
{
GetVehicleParamsEx(carid, engine, light, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(carid, engine, light, alarm, VEHICLE_PARAMS_OFF, bonnet, boot, objective);
}
forward CheckGas();
public CheckGas()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
{
new model = GetVehicleModel(GetPlayerVehicleID(i));
if(IsAFahrrad(model))return 1;
new vehicle = GetPlayerVehicleID(i);
if(gGas[vehicle] >= 1)
{
if(gGas[vehicle] <= 10)
{
PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
}
gGas[vehicle]--;
}
else
{
GetVehicleParamsEx(vehicle, engine, light, alarm, doors,bonnet, boot, objective);
SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_OFF, light, alarm, doors, bonnet, boot, objective);
}
}
}
}
return 1;
}
Mehr habe ich nicht.
Ich hoffe ihr könnt mir helfen. 