-
-
Wenn direkt beim ersten mal "/motor" klappt. Kannst du einfach eine variable nutzen um zu prüfen ob du "/motor" schon ausgeführt hast. In dem falle "motor_started".
Solltest du dann nicht mehr in einem Auto sitzen und der timer tickt, setzt er "motor_started" zurück. Sollte also nach dem ein & aussteigen funktionieren.
Hab außerdem die if abfragen umgedreht um sich die vernestungen zu sparen.
Code
Alles anzeigenSetTimer, Motor, On motor_started = false Motor: if(IsInChat()) return if(AutoMotorAus == 0) return Sleep, 250 if(!IsPlayerInAnyVehicle()) return if(!IsPlayerDriver()) motor_started = false return if(getVehicleEngineState() == 1) return if(motor_started == true) return SendChat("/motor") SendChat("/licht") motor_started = true return
Jetzt macht er garnichts mehr, startet weder den Motor noch macht er Ihn aus
Hab es jetzt mal so gemacht. Funktioniert jetzt:
Code
Alles anzeigenMotor: if(IsInChat()) return if(AutoMotorAus == 1) { Sleep, 250 if(IsPlayerInAnyVehicle()) { if(IsPlayerDriver()) { if(getVehicleEngineState() == 0) { SendChat("/motor") Sendchat("/licht") SetTimer, Motor, Off } } } } return ~F:: if(IsInChat()) return if(AutoMotorAus == 1) { Sleep, 250 if(IsPlayerInAnyVehicle()) { if(IsPlayerDriver()) { if(getVehicleEngineState()) { SendChat("/motor") Send {Enter} Loop If(!IsPlayerInAnyVehicle()) Settimer, Motor,on } } } } return
Zoll:
GetChatLine(0, Chatline0)
if(InStr(Chatline0, "Sie stehen an einer Zollstation, der Zollübergang kostet $5.000! Befehl: /Zoll"))
{
Sendchat("/zoll")
}
return
Wieso liest er das nicht aus? Normalerweise müsste der doch dann /zoll eingeben?
-
Jetzt macht er garnichts mehr, startet weder den Motor noch macht er Ihn aus
Hab es jetzt mal so gemacht. Funktioniert jetzt:
Code
Alles anzeigenMotor: if(IsInChat()) return if(AutoMotorAus == 1) { Sleep, 250 if(IsPlayerInAnyVehicle()) { if(IsPlayerDriver()) { if(getVehicleEngineState() == 0) { SendChat("/motor") Sendchat("/licht") SetTimer, Motor, Off } } } } return ~F:: if(IsInChat()) return if(AutoMotorAus == 1) { Sleep, 250 if(IsPlayerInAnyVehicle()) { if(IsPlayerDriver()) { if(getVehicleEngineState()) { SendChat("/motor") Send {Enter} Loop If(!IsPlayerInAnyVehicle()) Settimer, Motor,on } } } } return
Zoll:
GetChatLine(0, Chatline0)
if(InStr(Chatline0, "Sie stehen an einer Zollstation, der Zollübergang kostet $5.000! Befehl: /Zoll"))
{
Sendchat("/zoll")
}
return
Wieso liest er das nicht aus? Normalerweise müsste der doch dann /zoll eingeben?
Möglicherweise irgendwelche Farbcodes die im Skript sind wodurch die Nachricht farbig ausgegeben wird.
Sollte eventuell so ebenfalls funktionieren if(InStr(Chatline0, "Zollübergang kostet")), wenn ich mich nicht täusche bewirkt InStr ja, dass man ein Bruchteil eines Strings abfragen kann ob es zutrifft.
-
-
Hab es jetzt mal so gemacht. Funktioniert jetzt:
Code
Alles anzeigenMotor: if(IsInChat()) return if(AutoMotorAus == 1) { Sleep, 250 if(IsPlayerInAnyVehicle()) { if(IsPlayerDriver()) { if(getVehicleEngineState() == 0) { SendChat("/motor") Sendchat("/licht") SetTimer, Motor, Off } } } } return ~F:: if(IsInChat()) return if(AutoMotorAus == 1) { Sleep, 250 if(IsPlayerInAnyVehicle()) { if(IsPlayerDriver()) { if(getVehicleEngineState()) { SendChat("/motor") Send {Enter} Loop If(!IsPlayerInAnyVehicle()) Settimer, Motor,on } } } } return
Dasselbe Prinzip, wie du es dort bewerkstelligt hast, nur das du es dementsprechend anpassen müsstest.
-
Dasselbe Prinzip, wie du es dort bewerkstelligt hast, nur das du es dementsprechend anpassen müsstest.
Ich hab bemerkt, dass es so wie ich es oben gemacht habe doch nicht funktioniert hat und hab es einfach simpler gemacht:
CodeMotor: if(AutoMotoraus == 1) GetChatLine(0, Chatline0) if(InStr(Chatline0, "* Den Motor startest du")) if(IsPlayerDriver()) { if(getVehicleEngineState() == 0) SendChat("/motor") SendChat("/licht") }
Jedoch funktioniert, dass mit dem Driveby nicht wie oben
gibt es denn eine möglichkeit einen SetTimer zu reseten, heißt:
Wenn ich einmal Settimer nutze, er es nicht ständig wiederholt, sondern den Befehl erst wieder eingibt, wenn ich das Fahrzeug verlasse und wieder neu einsteige.