[AHK] Auto LSD Use

  • Hallo Jungs & Mädels...
    Ich habe eine Frage.. Undzwar wie kriege ich es hin, dass /use lsd, sobald ich < 70 HP habe nicht gespamt wird & ich das System per eine Taste an & abschalten kann..
    Mein erster Ansatz war folgender:

    Numpad4::
    {
    SetTimer, LSD, Off
    AddChatMessage(0xFFFFFF, "Keybinder wurde {FF0000}deaktiviert{FFFFFF}.")
    }
    return
    Numpad6::
    {
    SetTimer, LSD, 200
    AddChatMessage(0xFFFFFF, "Keybinder wurde {00ff00}aktiviert{FFFFFF}.")
    }
    return
    LSD:
    if(!WinActive("GTA:SA:MP"))
    return
    health := GetPlayerHealth()
    {
    if(health < 70 AND oldhealth)
    {
    SendChat("/use lsd")
    }
    }
    oldhealth := health


    return



    Pastebin: http://pastebin.com/RwnPrRZc



    Dieses System funktioniert zwar, jedoch spamt es immer, wenn ich < 70 HP habe /use lsd in mein Chat.. Obwohl der Befehl nur alle 2 Minuten funktioniert...
    Hier ist mein zweiter Code, bei dem ich es versucht habe, so umzusetzen .... Jedoch funktioniert uach dieser nicht:





    activated := false ; Variable wird auf false gesetzt (LSD wird nicht benutzt)
    Kling := true ; bei true darf abgefragt werden


    Numpad3::
    {
    if(activated == true)
    {
    activated = false
    SetTimer, LSD, Off
    }
    else if(activated == false)
    {
    activated = true
    SetTimer, LSD, 200
    }
    }
    return


    LSD:
    if(!WinActive("GTA:SA:MP"))
    return
    health := GetPlayerHealth()
    {
    if(Kling == true)
    {
    if(health < 70 AND oldhealth)
    {
    if(activated == true)
    {
    SendChat("/use lsd")
    Kling = false
    SetTimer, Abkling, 120000
    }
    }
    }


    }

    Das System funktioniert erst garnicht.. Ich weiß echt nicht wieso... Bitte um Hilfe...


    Was ich genau will:
    • Das System per Taste ein-/ausschalten
    • /use lsd nur alle 2 Minuten möglich
    • Bei unter 70 HP soll /use lsd eingetippt werden



    Mit freundlichen Grüßen,
    IsoStar123

  • Beitrag von Anti. ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fail, nicht so viel Ahnung bei Variablen in AHK ().
  • Zitat

    Bei unter 70 HP soll /use lsd eingetippt werden

    Dafür kannst du die API von SAMP nutzen also diese UDF.


    Da benutzt du einfach die Funktionen GetPlayerHealth etc, und frägst ab ob die HP unter 70 ist.
    Dann die if-Abfragen, und wenn < 70 -> /use lsd.


    Das mit den alle 2 Minuten kannst du mit einem Timer ermöglichen bzw. sleep.

  • Dafür kannst du die API von SAMP nutzen also diese UDF.
    Da benutzt du einfach die Funktionen GetPlayerHealth etc, und frägst ab ob die HP unter 70 ist.
    Dann die if-Abfragen, und wenn < 70 -> /use lsd.


    Das mit den alle 2 Minuten kannst du mit einem Timer ermöglichen bzw. sleep.

    das habe ich so in etwa im 2. code gemacht, jedoch geht dieser garnicht.. :/

  • bin mir nicht sicher aber ahk läuft über milli sekunden.
    Also 1000 sleeps sind quasi 1 sekunden oder so.

    Wäre aber etwas fatal den Keybinder für 2 Minuten einzufrieren (das macht sleep).




    Edit:
    ______________________________________


    So würde ich das machen:


    IniWrite, 0, %A_ScriptDir%\Einstellungen\Settings.ini, Sonstiges, uselsdcd ; Oben im Script bzw. irgendwo, wo das aktiviert wird bei Keybinderstart.


    dann:


    1erTimer:


    hp := getPlayerHealth()
    if (hp < 70)
    {
    IniRead, oncd, %A_ScriptDir%\Einstellungen\Settings.ini, Sonstiges, uselscd, 0
    if (oncd = 0)
    {
    /use lsd
    SetTimer, cooldown, 120000
    IniWrite, 1, %A_ScriptDir%\Einstellungen\Settings.ini, Sonstiges, uselsdcd
    }
    }


    cooldown:
    IniWrite, 0, %A_ScriptDir%\Einstellungen\Settings.ini, Sonstiges, uselsdcd
    return

    SA:MP in 2020?