AHK

  • Ich will das der Script nur 1x ausgeführt wird wenn meine beiden If anfragen übereinstimmen
    aber leider schickt er mir das durchgehen ab bis ich wieder aussteige. Gibt es da eine Möglichkeit
    das es nur 1x ausgeführt wird?



    Code
    SetTimer, TEST, 100
    
    
    TEST:
    if(IsPlayerDriver() == 1 || GetVehicleModelId() == 428)
    {
    SendChat("/startjob")
    }
    return
  • So in der Art, je nachdem wann du die Variable dann resetten willst.

  • So unnötig verschachtelt braucht man es nicht.

    Du hast 3 mal den gleichen Codeblock. Zudem braucht man IsPlayerInAnyVehicle nicht, da IsPlayerDriver das schon impliziert. Und If-Abfragen unterstützen nicht umsonst Expressions, in denen man den &&-Operator nutzen kann.

  • So in der Art, je nachdem wann du die Variable dann resetten willst.

    Sorry für die späte Antwort. Aber es funktioniert wunderbar jetzt verstehe ich das auch mit der Variable. Vielen Dank

  • Mir ist gerade noch aufgefallen, dass man bei der ersten Bedingung IsPlayerDriver auch nicht braucht, da GetVehicleModelId sowieso 0 zurückgibt, wenn man in keinem Fahrzeug sitzt.
    Bei der zweiten Bedingung könnte man noch !startjob mit einfügen, damit IsPlayerDriver nicht unnötig häufig aufgerufen wird. Zudem würde ich ebenfalls aus Performance Gründen den Timer eher auf 500 setzen oder ansonsten 300 wenn einem das zu lange dauert: