Beiträge von Bookai

    Hallo BreadFisher,
    ich wollte mal wissen, ob man so eine Art "Wortmix" mit Autohotkey erstellen kann.


    Hm, das bedeutet soviel wie: Man drückt eine Taste, es erscheint ein Input-Feld, dort gibt man ein Wort ein, und die Buchstaben des Wortes werden untereinander gemixt (vertauscht). Danach startet ein Timer, der wartet, bis man das richtige Wort (welches man in das Input-Feld eingegeben hat) per SMS bekommen hat.



    #include API.ahk


    #Persistent
    #NoEnv


    #IfWinActive, GTA:SA:MP


    #UseHook


    ;----------------------------------------------------------------------
    PlayerInput(text){
    s := A_IsSuspended
    Suspend On
    KeyWait Enter
    SendInput t^a{backspace}%text%
    Input, var, v, {enter}
    SendInput ^a{backspace 100}{enter}
    Sleep, 20
    if(!s)
    Suspend Off
    return var
    }
    ;----------------------------------------------------------------------


    1::
    wort := PlayerInput("[Wort] Gib das Wort ein: ")
    SendChat("/r Das Wort lautet: " wort) ;Wobei beim ausgegebenen Wort die Buchstaben vertauscht sein sollen
    SetTimer, Auslosung, 500
    return


    Auslosung:
    GetChatLine(0, chat)
    If(Instr(chat, "SMS: "))
    {
    RegExMatch(chat, "SMS\: [Das eingegebene Wort] \| von\: (.*) \(Handy\: (.*) \|ID\:(.*)"), sms)
    {
    SendChat("/r STOP")
    Sleep 500
    SendChat("/r Der Gewinner ist " sms1 " mit dem Wort: " wort [Das eingegebene Wort])
    Sleep 1000
    SendChat("/r Wortsalat Ende")
    SetTimer, Auslosung, Off
    }
    }
    return

    Kommt leider immernoch die gleiche Meldung.


    [Edit 24.10.2014 14:52] Kennt jemand noch eine andere Variante, damit ich im Keybinder die Tasten "ä" "ö" und "ü" drücken kann bzw. ingame ausgeschrieben werden? :x
    ------------------------------------------------------------------------
    [Edit 26.10.2014 07:44] /PUSH


    Das mit dem senden von Ä,Ö,Ü hat geklappt.
    Das drücken der Tasten von Ä,Ö,Ü kann man nun auch.


    Allerdings, wenn ich eine Textdatei als Listbox laden lasse, und dort Umlaute verwende, werden diese nicht angezeigt. Nur in so komischen Codes. Was muss ich da ändern?
    Hier einige Bilder (Wurde mit Notepad++ geschrieben)

    Untereinander: Ü, Ä, Ö



    Vorhanden: Begrüßen, Kann ich noch etwas für Sie tun?, Verlassen Sie das Gelände

    Hat nicht wirklich viel gebracht :x
    Weiß jemand eine andere Möglichkeit?



    Noch eine Frage:
    Ich wollte einen Button erstellen, der dann, wenn man drauf klickt, automatisch auf einen SAMP Server conntectet. Aber es kommt zuerst immer folgende Meldung:


    Könnte man das irgendwie scripten, das der automatisch auf "Play" geht, bzw. einfach auf den Server connectet, auch wenn dieser nicht in den Favorits ist.


    Mein Scriptteil


    Serverstart:
    Run, samp://85.190.162.195:7777
    return


    MFG
    BooKai


    #IfWinActive, GTA:SA:MP ;Keybinder ist nun nur in SA:MP aktiv
    #UseHook


    ;Wenn du eine Taste drückst, während z.B. der Chat geöffnet ist, führt er diese Taste nicht aus.
    t::
    Suspend On
    SendInput t
    Hotkey, Enter, On
    Hotkey, Escape, On
    Hotkey, t, Off
    return


    NumpadEnter::
    Enter::
    Suspend Permit
    Suspend Off
    SendInput {Enter}
    Hotkey, t, On
    Hotkey, Enter, Off
    Hotkey, Escape, Off
    return


    :?:/lottor:: ;Fügt den Befehl /lottor hinzu
    Random, R, 1, 99 ;Random Command, welcher die Zahlen von 1-99 enthält
    SendInput t/lotto %R% ;Führt den Befehl /lotto aus und hängt eine Random-Zahl von 1-99 an
    return


    Hoffe konnte dir dabei helfen.

    Zitat von Slider

    Bei dem "wichtigem Teil" in Zeile 28. Was willst Du da bitte bezwecken? Du versuchst gerade eine Funktion zu definieren.


    Damit wollte ich eig. den Chat auslesen und diesen in die Variable "chat" laden, damit ich diese später aufrufen kann O.o


    Sollte ich die Zeile einfach weglassen?



    Code
    if(wort = 1)			{                                SendChat("/r >>> Das Wort lautet: wneenRang <<<")				SetTimer, Auslosung_Rennwagen, 50				Auslosung_Rennwagen:				GetChatLine(0, chat)				if(Instr(chat, "SMS: Rennwagen"))				{				SendChat("/r STOP!")				Sleep 1000				Needle = von:				Needle1 = (				StringGetPos, pos, chat, %Needle%				pos += 4				StringTrimLeft, chat, chat, %pos%				StringGetPos, pos, chat, %Needle1%				StringLeft, chat, chat, %pos%				SendInput t/r Der Gewinner ist:%chat%{enter}				SetTimer, Auslosung_Rennwagen, Off				}				return			}			else if(wort = 2)			{				SendChat("/r >>> Das Wort lautet: auKlsthl <<<")				SetTimer, Auslosung_Kuhstall, 1				Auslosung_Kuhstall:				GetChatLine(0, chat)				{					SendChat("/r STOP!")					Sleep 1000					Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt					{						If(InStr(chat, "SMS: Kuhstall"))						{						RegExMatch(chat, "SMS\: Kuhstall \| von\: (.*) \(Handy\: (.*)\|ID\:(.*)\)", sms)						}					}				SendChat("/r Der Gewinner ist: " sms1)				SetTimer, Auslosung_Kuhstall, Off				}				return



    Fehlermeldung: Line Text: GetChatLine(0, chat) Error: Duplicate function definition. The Program will exit


    (Wollte nur mal die zwei Varianten mit "TrimLeft|TrimRight|etc. und RegExMatch()" ausprobieren)

    Ahh, jetzt kappier ich das.
    Vielen Dank Gummibaer!



    Kennt denn jemand die Variante mit GetChatLine() und RegExMatch() ?


    Hier nochmal wie die SMS aussieht:
    SMS: Hallo Kaiko | von: Gabriel (Handy: 50|ID:24)


    Irgendwie muss das doch bei RegExMatch(A_LoopReadLine, SMS\: (.*) \| von\: (.*) \(Handy\: (.*)\|ID\:(.*)))
    heißen?

    Hallo Community,
    ich möchte bei einer Zeile den Namen, die Handynummer oder die ID eines Spielers auslesen können. Ich versuche das jetzt schon seit einigen Stunden, aber es will einfach nicht funktionieren.


    So ist der Aufbau der Zeile:
    SMS: [Hier steht die Nachricht] | von: [Hier steht der Name] (Handy: [Hier steht die Handynummer]|ID:[Hier steht die ID])


    Zum Beispiel:
    SMS: Hallo Kaiko | von: Gabriel (Handy: 50|ID:24)
    (Die SMS-Chat-Farbe ist gelb!)


    Mein Code:

    Code
    Nachricht:
    GetChatLine(0, Line)
    if(RegExMatch(Line, "SMS\: (.*) \| von\: (.*) \(Handy\: (.*)\|ID\:(.*))" ,player)) ; Chat auslesen
    {
    	SendChat("/c Ich habe soeben eine SMS von " player2 " (ID: player4) erhalten.")
    }
    return


    PS: Der Timer "Nachricht" ist so definiert: SetTimer Nachricht, 50



    Wisst ihr wo mein Fehler liegt?
    Ich bin dankbar für jede Antwort c:

    So zum Beispiel.


    Hm funktioniert nicht richtig.


    Wenn ich F5 erneut drücke kommt in den Chat:
    • Keybinder: === Verfuegbare Abteilungen ===
    • Keybinder: 1 = Medic | 2 = Oamt | 3 = Feuerwehr


    (Das sollte allerdings nicht kommen, sondern: • Keybinder: Standart-Keybinds geladen)


    Könnte das auch alles ohne der "abteilung = 0" funktionieren?

    Zum Beispiel 0 eingeben, bei F5.



    Gibt es auch eine Möglichkeit die folgendes erlaubt:


    Man drückt F5:
    • Keybinder: === Verfuegbare Abteilungen ===
    • Keybinder: 1 = Medic | 2 = Oamt | 3 = Feuerwehr
    Man gibt 1 ein:
    • Keybinder: Medic-Keybinds geladen.
    Man drückt erneut F5 und ist automatisch wieder im normalen Keybindermodus.
    • Keybinder: Standart-Keybinds wieder geladen.


    (qausi: Beim erneuten Drücken der Taste wird alles "aufgehoben")


    (Ohne das man es mit der "0" macht)

    => F5 => Auswählen => 1 eingeben => Taste 1 drücken => "/r Guten Tag, ich bin Arzt." sollte ausgegeben werden.


    Hat funktioniert c:



    Gibt es dafür auch eine andere Variante? (Frage an alle) Also, damit ich es direkt bei dem Code von F5:: drunterschreiben kann?


    Und wie kann ich aus dem 'Modus' wieder raus -> Sprich: F5 -> 1 -> Medic-Keybinds geladen. -> F5 -> Standart-Keybinds geladen.