Beiträge von Madd92

    PHP
    global timerWait := false
    SetTimer, Timer1, 50
    SetTimer, Timer2, 2000

    Das hier oben unter die Deklarationen (Include etc.) damit wird es automatisch gestartet.
    Am besten noch an den Anfang der Timer

    Code
    if (!WinActive("GTA:SA:MP"))
       return

    einfügen.

    Am besten mit einem bzw. zwei Timern. Sagen wir mal, der Befehl soll alle 2 Sekunden ausgeführt werden:


    Du könntest Timer1 in der Zeit, wo gewartet wird auch stoppen, wenn du keine anderen Chatnachrichten auslesen willst.

    Also ich habe jetzt mal deine Settings.ini genommen und nachdem ich Strafpunkte verteilt habe, sieht die so aus:


    PHP
    [Optionen]
    Kontrollen=
    [Kontrollen]
    Kontrollen=1
    Strafpunkte=3
    [Kontrollen]
    Strafpunkte=

    Die zweite Kontrollen-Sektion wird also gar nicht benutzt. Der Key Strafpunkte wurde unter der ersten Kontrollen-Sektion eingetragen.
    Was genau funktioniert denn nicht? Die Punkte werden nicht eingetragen oder nicht ausgelesen oder beides?


    Edit: Dein Script funktioniert bei mir so auch überhaupt nicht. Hast du einfach mal meinen Code ausprobiert?

    Ich weiß nicht, ob das jetzt nur durch das Kopieren passiert ist, aber du musst auf die Leerzeilen achten:

    Ich hab das früher mal mithilfe einer kleinen aber nützlichen Funktion von Paul.Phoenix und der PlayerInput Funktion gelöst:

    Dann würde ich es so machen:

    Naja z.B. eine globale Variable setzen und bei GetChatline einbauen, dass die Variable erst wenn die Chatline nicht mehr "Guten Tag Sir etc." ist wieder auf true gesetzt wird. Aber wenn du für den Satz sowieso nen Hotkey hast, würde ich es so z.B. machen:

    Versuch mal, auf Leerzeichen zu achten:


    Das Problem daran ist allerdings, dass GetChatline ständig ausgeführt wird und solange die letzte Nachricht die gleiche bleibt, wird der Kontrollenzähler erhöht. Das heißt entweder baust du eine Prüfung ein, dass die Chatline nicht die gleiche sein darf, oder du schreibst per AddChatMessage danach selber was in den Chat, oder du machst es nicht per GetChatline, sondern per Hotkey wo du den Zähler erhöhst, ich denke du wirst ja nicht jedes mal händisch diesen Satz abtippen.

    Wenn man den Chat nicht offen hat, meinte ich. Man kann also kein i mehr in den Chat schreiben.


    Das Problem bei meinem Code war, dass die #If Direktiven sich gegenseitig überschreiben. Heißt, die oben im Script stehende #IfWinActive, GTA:SA:MP Direktive wurde außer Kraft gesetzt durch die
    #If !isInChat() Direktive. Also einfach beides zusammenfügen und fertig: #If WinActive("GTA:SA:MP") && !isInChat() :)

    Ok ja ich habe meinen Fehler erkannt, mit

    PHP
    #If WinActive("GTA:SA:MP) && !isInChat()
    
    
    i::
    	SendChat("/inventar")
    return

    funktioniert es nun aber wirklich so wie es soll.
    Nur


    PHP
    i::
    	if(IsInChat())
    	return
    	SendChat("/inventar")
    return

    funktioniert erst recht nicht, da i dann nur noch gesendet wird, wenn man den Chat offen hat.

    Am besten statt #IfWinActive, GTA:SA:MP einfach die Zeile #If !isInChat() in #If WinActive("GTA:SA:MP") && !isInChat()
    Und bitte nicht #IfWinActive, GTA:SA:MP; das funktioniert nicht.


    Ihr könnt doch nicht einfach immer meinen Code ändern und mir dann sagen, dass er nicht mehr geht xD
    Bei mir funktioniert der Code, der Code ist also nicht das Problem. Wenn ihr euch nicht genau an den Code haltet, kann ich da auch nichts für.
    Also wenn ihr noch nicht genau meinen Code isoliert in einem Script ausprobiert habt, dann macht das bitte. Ich kann euch sonst nicht weiterhelfen.


    Wenn es trotzdem nicht funktioniert, dann alle Einstellungen checken und nohc

    Ich würde es so machen: