Gut, dass du fragst, wie "mann" das macht, ich weiß nämlich leider nicht, wie "Frau" das macht.
B2T:
Es gibt in SAMP die Funktion
http://wiki.sa-mp.com/wiki/SetVehicleParamsEx_DE
Auch, wenn sich bei deutschen Variablen und Funktionsnamen die Fußnägel kräuseln, werde ich es hier des Verständnisses halber mal auf Deutsch machen.
Beispiel:
Außerhalb des Befehls folgende Variable:
new warnblinkertimer[MAX_VEHICLES];
Diese enthält später die ID des Timers, der den Warnblinker steuert.
Du erstellst den Befehl /warnblinker und schreibst da folgendes rein:
new vehicleid = GetPlayerVehicleID(playerid); //Die ID des Fahrzeugs, in dem der Spieler sitzt steht nun in der Variable vehicleid
warnblinkertimer[vehicleid] = SetTimerEx("warnblinker", 600, true, "i", vehicleid); // Startet den Timer und speichert dessen ID in der eben genannten Variable.
dann erstellst du außerhalb des Befehls eine Funktion:
forward warnblinker(vehicleid);
public warnblinker(vehicleid){ //Diese Funktion wird durch den Timer alle 600 Millisekunden aufgerufen und steuert den Warnblinker.
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); //Fragt die einzelnen Zustände des Fahrzeugs ab, wie bspw. den Status des Lichts und speichert diesen in der entsprechenden, eine Zeile darüber definierten Variable.
if(lights == VEHICLE_PARAMS_OFF){ //Wenn das Licht aus ist
SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_ON, alarm, doors, bonnet, boot, objective); //Licht einschalten
}else if(lights == VEHICLE_PARAMS_ON){ //Wenn das Licht an ist
SetVehicleParamsEx(vehicleid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective); //Licht ausschalten
}
}
Zum Ausschalten des Warnblinkers einfach den Timer "killen". Dafür die Funktion KillTimer() verwenden und als parameter warnblinkertimer[vehicleid] angeben.
//E: Code etwas optimiert