Ich suche jetzt schon die ganze Zeit nach einer Lösung, aber ich finde es einfach nicht herraus.
Bei folgendem Code soll der Motor, wenn man C auf der Tastatur drückt, ein und ausgeschaltet werden.
Das ganze funktioniert aber nur, wenn ich die TogglePlayerControllable rausnehme. Wenn ich die drin lasse, kann ich den Motor einmal einschalten und dann wird nichts mehr erkannt.
public OnPlayerUpdate(playerid)
{
new newkeys,ud,lr;
GetPlayerKeys(playerid,newkeys,ud,lr);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new i3 = GetPlayerVehicleID(playerid);
new i2 = GetVehicleModel(i3);
new str1[64];
if(newkeys == KEY_CROUCH)
{
if(VI[i3][benzin] < tank[i2-400] && tank[i2-400] != 999)
{
if(!VI[i3][engine])
{
if(!VI[i3][starting])
{
VI[i3][starting] = 1;
format(str1, 64, "** %s startet den Motor.", GetPname(playerid));
ToPlayerInRange(playerid, CL_PURP, str1);
SetTimerEx("StartEngine",2800,0,"ii",playerid,i3);
}
} else {
format(str1, 64, "** %s hat den Motor gestoppt.", GetPname(playerid));
ToPlayerInRange(playerid, CL_PURP, str1);
VI[i3][engine] = 0;
TogglePlayerControllable(playerid, false);
}
}
} else if(newkeys == KEY_SECONDARY_ATTACK)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, true);
}
}
return 1;
}