ja. siehe auch in der Demo (1. Post). Beachte "if" und "while". Ich denke, das ist es, was du meinst Code: -- Diese Datei wird wiederholt ausgeführt, solange der Patch aktiv ist. -- Hier werden die Anweisungen, die mit dem Maker interagieren, hineingeschrieben. Busy() -- Dem Maker mitteilen, dass der Patch beschäftigt ist (dort sollte mit einer -- Schleife auf das Ready-Signal gewartet werden) msg = GetMsg() -- "Nachricht" vom Maker holen (Standardmäßig in Variable 10) if msg == 1 then -- Nachrichten verarbeiten ExitGame() -- Spiel beenden elseif msg == 2 then MsgBox("Hello World!", "Test") -- Messagebox elseif msg == 3 then UpdateTime() -- Hiermit wird die aktuelle Zeit in die CurrentXXXX-Variablen geschrieben SetVar(21, CurrentHour) -- Stunden in Variable 21 und Minuten in Variablen 22 schreiben, SetVar(22, CurrentMinute) -- damit sie im Maker angezeigt werden können elseif msg == 4 then sx, sy = ScreenResolution() -- Bildschirmauflösung abfragen if sx <= 640 then -- Wenn die Auflösung kleiner/gleich ist als 640x?, dann SwitchFullscreen() -- Fenster-/Vollbildmodus wechseln end elseif msg == 5 then sx, sy = ScreenResolution() if sx > 640 then -- Dasselbe wie oben, nur dass jetzt abgefragt wird ob Sie größer als SwitchFullscreen() -- 640x? ist end elseif msg == 6 then SwitchFullscreen() elseif msg == 7 then -- Hier werden wir Tastatureingaben simulieren - nur zur Demonstration, -- das so einzusetzen wäre natürlich nicht so sinnvoll ^^ action = GetVar(15) -- Wert aus Variable 15 holen Ready() -- Den Patch auf "bereit" setzen - damit kann der Maker Tastatureingaben empfangen Wait(800) -- 0,8 Sekunden warten if action == 1 then -- Spieler hat beim Huhn "Item" gewählt SimulateKeyStroke(VK_RETURN) -- Hier werden Tastatureingaben simuliert elseif action == 2 then -- Spieler hat beim Huhn "Skill" gewählt SimulateKeyStroke(VK_DOWN) Wait(100) SimulateKeyStroke(VK_RETURN) Wait(50) SimulateKeyStroke(VK_RETURN) elseif action == 3 then -- Spieler hat beim Huhn "Ausrüstung" gewählt SimulateKeyStroke(VK_DOWN) Wait(100) SimulateKeyStroke(VK_DOWN) Wait(100) SimulateKeyStroke(VK_RETURN) Wait(50) SimulateKeyStroke(VK_RETURN) end while KeyPressed(VK_ESCAPE) == false do -- Darauf warten, dass der Spieler ESC drückt Wait(25) end Wait(250) SimulateKeyStroke(VK_ESCAPE) -- Dann nochmal ESC simulieren Busy() -- Patch wieder auf "beschäftigt" stellen elseif msg == 8 then ResizeGameWindow(640, 480) -- Fenstergröße auf 640x480 ändern elseif msg == 9 then ResizeGameWindow(500, 400) -- Fenstergröße auf 500x400 ändern elseif msg == 10 then SaveVars("test.sav", 30, 35) -- Variablen 30 bis 35 in Datei "test.sav" ändern elseif msg == 11 then if FileExisting("test.sav") == false then -- Wenn die Datei "test.sav" nicht vorhanden, dann SetVar(36, 0) -- in Variable 36 Null schreiben, else SetVar(36, 1) -- sonst eins, sowie FileDateTime("test.sav") -- Datum/Zeit von "Test.sav" abfragen (wird in FileXXXX gespeichert) SetVar(39, FileHour) -- Stunden in Variable 39 und SetVar(40, FileMinute) -- Minuten in Variable 40 speichern, LoadVars("test.sav", 37, 38) -- sowie die ersten beiden gespeicherten Variablen, also -- ursprünglich 30 bis 31, in 37 bis 38 speichern, damit -- sie bei der Vorschau angezeigt werden können end elseif msg == 12 then LoadVars("test.sav", 30, 35) -- Variablen 30 bis 35 aus "Test.sav" an Originalposition laden. elseif msg == 13 then if FileExisting("test.sav") == false then -- Dasselbe wie oben SetVar(36, 0) else SetVar(36, 1) EraseFile("test.sav") -- Datei löschen end elseif msg == 14 then MP_Paint() elseif msg == 15 then BlockKey(VK_F12) BlockKey(VK_H) BlockKey(VK_J) BlockKey(VK_K) BlockKey(VK_L) elseif msg == 16 then ReleaseKey(VK_F12) ReleaseKey(VK_H) ReleaseKey(VK_J) ReleaseKey(VK_K) ReleaseKey(VK_L) end -- Tasten verarbeiten if KeyPressed(VK_F3) then MsgBox("Du hast F3 gedrückt!", "F3-Freak") end if KeyPressed(VK_A) then SetVar(18, 1) else SetVar(18, 0) end if KeyPressed(VK_D) then SetVar(19, 1) MP_ShowPic(100, "Test1.bmp", 100, 100, 100, 100, 0) else SetVar(19, 0) end if KeyPressed(VK_LBUTTON) then -- Linke Maustaste SetVar(20, 1) MP_ShowPic(101, "Test2.bmp", 200, 200, 100, 100, 0) else SetVar(20, 0) end -- Mausposition in Variablen 24 und 25 speichern mx, my = GetMouse() SetVar(24, mx) SetVar(25, my) Ready() -- Dem Maker mitteilen, dass der Patch fertig ist mfG Cherry Edit: Die mit "MP_" beginnenden Befehle sowie "BlockKey" und "ReleaseKey" nicht beachten. Die sind in der Demo nicht dabei.
-- Diese Datei wird wiederholt ausgeführt, solange der Patch aktiv ist. -- Hier werden die Anweisungen, die mit dem Maker interagieren, hineingeschrieben. Busy() -- Dem Maker mitteilen, dass der Patch beschäftigt ist (dort sollte mit einer -- Schleife auf das Ready-Signal gewartet werden) msg = GetMsg() -- "Nachricht" vom Maker holen (Standardmäßig in Variable 10) if msg == 1 then -- Nachrichten verarbeiten ExitGame() -- Spiel beenden elseif msg == 2 then MsgBox("Hello World!", "Test") -- Messagebox elseif msg == 3 then UpdateTime() -- Hiermit wird die aktuelle Zeit in die CurrentXXXX-Variablen geschrieben SetVar(21, CurrentHour) -- Stunden in Variable 21 und Minuten in Variablen 22 schreiben, SetVar(22, CurrentMinute) -- damit sie im Maker angezeigt werden können elseif msg == 4 then sx, sy = ScreenResolution() -- Bildschirmauflösung abfragen if sx <= 640 then -- Wenn die Auflösung kleiner/gleich ist als 640x?, dann SwitchFullscreen() -- Fenster-/Vollbildmodus wechseln end elseif msg == 5 then sx, sy = ScreenResolution() if sx > 640 then -- Dasselbe wie oben, nur dass jetzt abgefragt wird ob Sie größer als SwitchFullscreen() -- 640x? ist end elseif msg == 6 then SwitchFullscreen() elseif msg == 7 then -- Hier werden wir Tastatureingaben simulieren - nur zur Demonstration, -- das so einzusetzen wäre natürlich nicht so sinnvoll ^^ action = GetVar(15) -- Wert aus Variable 15 holen Ready() -- Den Patch auf "bereit" setzen - damit kann der Maker Tastatureingaben empfangen Wait(800) -- 0,8 Sekunden warten if action == 1 then -- Spieler hat beim Huhn "Item" gewählt SimulateKeyStroke(VK_RETURN) -- Hier werden Tastatureingaben simuliert elseif action == 2 then -- Spieler hat beim Huhn "Skill" gewählt SimulateKeyStroke(VK_DOWN) Wait(100) SimulateKeyStroke(VK_RETURN) Wait(50) SimulateKeyStroke(VK_RETURN) elseif action == 3 then -- Spieler hat beim Huhn "Ausrüstung" gewählt SimulateKeyStroke(VK_DOWN) Wait(100) SimulateKeyStroke(VK_DOWN) Wait(100) SimulateKeyStroke(VK_RETURN) Wait(50) SimulateKeyStroke(VK_RETURN) end while KeyPressed(VK_ESCAPE) == false do -- Darauf warten, dass der Spieler ESC drückt Wait(25) end Wait(250) SimulateKeyStroke(VK_ESCAPE) -- Dann nochmal ESC simulieren Busy() -- Patch wieder auf "beschäftigt" stellen elseif msg == 8 then ResizeGameWindow(640, 480) -- Fenstergröße auf 640x480 ändern elseif msg == 9 then ResizeGameWindow(500, 400) -- Fenstergröße auf 500x400 ändern elseif msg == 10 then SaveVars("test.sav", 30, 35) -- Variablen 30 bis 35 in Datei "test.sav" ändern elseif msg == 11 then if FileExisting("test.sav") == false then -- Wenn die Datei "test.sav" nicht vorhanden, dann SetVar(36, 0) -- in Variable 36 Null schreiben, else SetVar(36, 1) -- sonst eins, sowie FileDateTime("test.sav") -- Datum/Zeit von "Test.sav" abfragen (wird in FileXXXX gespeichert) SetVar(39, FileHour) -- Stunden in Variable 39 und SetVar(40, FileMinute) -- Minuten in Variable 40 speichern, LoadVars("test.sav", 37, 38) -- sowie die ersten beiden gespeicherten Variablen, also -- ursprünglich 30 bis 31, in 37 bis 38 speichern, damit -- sie bei der Vorschau angezeigt werden können end elseif msg == 12 then LoadVars("test.sav", 30, 35) -- Variablen 30 bis 35 aus "Test.sav" an Originalposition laden. elseif msg == 13 then if FileExisting("test.sav") == false then -- Dasselbe wie oben SetVar(36, 0) else SetVar(36, 1) EraseFile("test.sav") -- Datei löschen end elseif msg == 14 then MP_Paint() elseif msg == 15 then BlockKey(VK_F12) BlockKey(VK_H) BlockKey(VK_J) BlockKey(VK_K) BlockKey(VK_L) elseif msg == 16 then ReleaseKey(VK_F12) ReleaseKey(VK_H) ReleaseKey(VK_J) ReleaseKey(VK_K) ReleaseKey(VK_L) end -- Tasten verarbeiten if KeyPressed(VK_F3) then MsgBox("Du hast F3 gedrückt!", "F3-Freak") end if KeyPressed(VK_A) then SetVar(18, 1) else SetVar(18, 0) end if KeyPressed(VK_D) then SetVar(19, 1) MP_ShowPic(100, "Test1.bmp", 100, 100, 100, 100, 0) else SetVar(19, 0) end if KeyPressed(VK_LBUTTON) then -- Linke Maustaste SetVar(20, 1) MP_ShowPic(101, "Test2.bmp", 200, 200, 100, 100, 0) else SetVar(20, 0) end -- Mausposition in Variablen 24 und 25 speichern mx, my = GetMouse() SetVar(24, mx) SetVar(25, my) Ready() -- Dem Maker mitteilen, dass der Patch fertig ist
-- Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny: CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT
Geändert von Cherry (04.02.2008 um 14:47 Uhr)
Foren-Regeln