Kann mir das jemand genauer erklären? :x
Also wie ich das am besten in meinen Code einfügen könnte.
[PUSH] 31.10.2014
Kann mir das jemand genauer erklären? :x
Also wie ich das am besten in meinen Code einfügen könnte.
[PUSH] 31.10.2014
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
Normalerweise schon.
#include API.ahk
Poste mal deinen kompletten Code.
(mit #include API.ahk etc)
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.
Hallo Breadfish-Community,
ich wollte mal fragen, ob es möglich ist die Umlaute "Ä", "Ö", "Ü" senden zu lassen. (Da ansonsten, wenn man es schreibt, so komische Zeichen kommen)
Bzw. das man die Tasten "Ä", "Ö", "Ü" verwenden kann (Ä::, Ö::, Ü::)
Mit freundlichen Grüßen
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.
So hats allerdings nicht funktioniert :x
Da hat sich "Gabriel" ausgelesen (beim Namen)
Zitat von SliderBei 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?
~2::
if(IsInChat())
{
}
else
{
if(eventnummer = 1)
{
AddChatMessage("{FFFF00}Eventbinder:{FFFFFF} === Woerter ===")
AddChatMessage("{FFFF00}Eventbinder:{FFFFFF} 1 = Rennwagen | 2 = Kuhstall")
if((wort := PlayerInput("[Wort] Gib den Buchstaben des Wortes ein: ")) == "")
return
if wort is not number
{
AddChatMessage("{FFFF00}Eventbinder:{FFFFFF} Ungueltige Eingabe!")
return
}
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(1, kuhstall)
{
SendChat("/r STOP!")
Sleep 1000
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
If(InStr(kuhstall, "SMS: Kuhstall"))
{
RegExMatch(kuhstall, "SMS\: Kuhstall \| von\: (.*) \(Handy\: (.*)\|ID\:(.*)\)", sms)
}
}
SendChat("/r Der Gewinner ist: " sms1)
SetTimer, Auslosung_Kuhstall, Off
}
return
}
else
{
AddChatMessage("{FFFF00}Eventbinder:{FFFFFF} Ungueltige Eingabe!")
}
}
else if(eventnummer = 2)
{
SendChat("/r Taste 2 - Quiz")
}
else
{
SendChat("/bl")
}
}
return
Alles anzeigen
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?
Und wenn ich die Handynummer auslesen will?
Kann man sowas auch mit: RegExMatch machen?
also dass er die chatlog.txt ausliest?
(müsste in der Variante doch eig. schneller gehen, oder?)
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:
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:
Wenn du keine API verwendest, kann auch SendChat() und AddChatMessage() nicht ausgeführt werden.
• Welche API verwendest du denn?
• Zeigt er "Hi" und "Du bist nun im Admindienst" nicht an?
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.