Erstmal hallo!
Ich werde nun versuchen, eine FAQ(Edit: Naja, das artet langsam zu nem Tut aus XD) zu Inelukis KeyPatch zu machen.
Fragen bitte in meinem Fragethread stellen. Hier bitte nur
Anregungen, Anerkennung und Kritik zur FAQ.
Hier nun die FAQ:
Beginne ich mal mit der wohl am häufigsten Frage:
Kann man Tasten und Maus Gleichzeitg nutzen?
Erstmal vorweg, Ja!
Den Code habe ich bereits in meinem Fragethread zum KeyPatch gepostet,
werde es hier aber nochmal tun. Ich erspare mir hier auch großes Gerede,
denn der Code ist ziemlich selbsterklärend.
Code:
Common Event/Paralleler Prozess/(Tab nicht zwingend notwendig)
<->Var. ändern:[0001:Maus-TastenID]set MIDI-Pos. (Sekunde)
<->Bedingung: Varb[0001:Maus-TastenID]gleich -1
<->SE Spielen: GetMousePos.script
<->Var ändern:[0001:Maus-TastenID]set MIDI-Pos. (Sekunde)
<->
-:END-Fall
<>Bedingung: Varb[0001:Maus-TastenID]gleich -10
<>Var. ändern[0002:MausX]set MIDI-Pos. (Sekunde)
<>Var. ändern[0003:MausY]set MIDI-Pos. (Sekunde)
<>Var. ändern[0004:Maus Tasten]set MIDI-Pos. (Sekunde)
<>Bild bewegen: [Nr. des coursors], (V[0002],V[0003]), 0,1 oder 0,0
<>
:END-Fall
<->Bedingung: Varb[0001:Maus-TastenID]gleich [Tastencode einer belibigen Taste]
<->Dass was bei dieser Taste passieren soll
<->
-:Ansonsten
<->Bedingung: Varb[0001:Maus-TastenID]gleich [Tastencode einer anderen Taste]
<->Dass was bei dieser Taste passiern soll
<->
Ihr wisst ja wie es weiter geht.
Code by: Ineluki, the master himself
Das solte eigentlich schon reichen.
Nächste Frage!
Nachtrag: Wenn ihr nur Tastatur oder nur Maus nutzten wollt, geht wiefolgt vor:
Für nur Tastatur: Löscht alle Bereiche des Codes ohne einen Bindesctrich zwischen den <>. Die anderen sind dann überflüssig.
Für nur Maus: Löscht die Bereicht mit den Bindestrichen.
Was ist der KeyPatch?Nun, der KeyPatch von Ineluki ist eine Erweiterung zum Rm2k, mit der man ALLE
Tasten der Tastatur und die Maus nutzen kann. Dies funktioniert über ein Schnittstelle(korigiert mich, wenn das Falsch ist), die sich zwischen die harmony.dll
und den Maker schaltet. Man hat dann die Möglichkeit über script Dateien, die
der Maker für .wav files hält und die man folglich auch als Soundefekte abspielen muss, jeder Taste eine ID zuzuweisen, die man dann im Maker in einer Variable
Speichern kann. Ich werde jatzt nicht weiter auf diese Thema eingehen, denn
wenn ihr diese FAQ weiter lest, werdet ihr schon sehen.
Brauche ich den KeyPatch?Diese frage kann ich nur mit einer Gegenfrage beantworten:
Kommt ihr mit den Tasten, die der Maker euch bietet nicht aus?
Würdet ihr gerne ein Menü machen, dass man über die Maus bedient?
Wenn ihr wenigstens eine dieser Fragen mit Ja beabtworten könnt, lautet die Antwort auf diese Frage auch Ja. Mahr kann ich dazu nicht sagen.
Wie editiere ich die *.script.wav Dateien?Näheres hierzu erfahrt ihr auch in der Dokumentation, die mit dem KeyPatch gliefert wird. Ihr öffnet erstmal eine der Dateien, vornehmlich die Datei KeyList.script.wav mit einem Text-Editor, ja, einem Text-Editor.
Ich erkläre jetzt die wichtigsten Befehle anhand eines Beispiels:
Code:
[execute]
Action=RegisterKeyDownEvent
Key=(Runter)
Value=0
next=Taste2
[Taste2]
Action=RegisterKeyUpEvent
Key=a
Value=1
next=
Jetzt die Erklärung:
[execute] :
[execute] eröffnet eine *.script.wav Datei. Es muss immer an 1. Stelle stehen.
Action=RegisterKeyDownEvent :
Hiermit wird gesagt, dass der Patch reagieren soll, wenn die Taste gedrückt wird.
Key=(Runter) :
Hier wird gesagt, für welche Taste die vorher unter "Action=" festglegte Aktion gillt. Hier: Pfeiltaste runter(eine Liste aller Funktionstasten gibts auch noch)
Value=0 :
Hier wird festgelegt, welcher Wert für die angegebene Taste in die Variable ausgegeben wird.
next=Taste2 :
Es wird festgelegt, dass mit dem Abschnitt [Taste2] fortgefahren wird.
Auf keine Fall vergessen!!!!(Ich weiß, Außrufezeichen-Flut)
[Taste2] :
Der Name des Abschnittes, den du vorher mit next=Taste2 aufgerufen hast.
Action=RegisterKeyUpEvent :
Das gleiche wie RegisterKeyDownEvent, nur das der Patch erst reagiert, wenn die Taste losgelassen wird.
Key=a :
was passieren soll, wenn man die Taste A drückt
Value=1 :
siehe: Value=0
next= :
Ein leeres next=. Beendet das script sofort, also immer schön aufpassen, dass man nicht vergist, da was einzutragen.
Die Maus bewegt sich, ich kann aber nicht klicken!(Vorraussetztung hierfür ist ein Common Event das die Maus verfügbar macht, wie das aus dem 1. Punkt dieser FAQ.)
Das ist eigentlich nicht so schwer. Der größte Fehler der dabei immer gemacht wird, ist der, dass man die Postition des Helden und die des Mauszeigers direkt
vergleicht. Dabei gibt es aber das Poblem, dass man dann genau 1 Pixel des Bildschirms treffen müsste, was ziemlich schwer werden dürfte!
Ich werde jetzt versuchen, einen Code zu machen, und auch zu erklären,
der diese Probelm beseitigt!
Code:
Common Event/Paraleler Prozess
<>Var. ändern[0005:MausX-Max]set Var.[0002:MausX]
<>Var. ändern[0006:MausX-Min]set Var.[0002:MausX]
<>Var. ändern[0007:MausY-Max]set Var.[0003:MausY]
<>Var. ändern[0008:MausY-Min]set Var.[0003:MausY]
<>Bedingung:TAB [xxxx:Chara anklicken] - AN
<>Var. ändern:[0005:MausX-Max] plus 8
<>Var. ändern:[0006:MausX-Min] minus 8
<>Var. ändern:[0007:MausY-Max] plus 26
<>
:Ansonsten
<>Var. ändern:[0005:MausX-Max] plus 8
<>Var. ändern:[0006:MausX-Min] minus 8
<>Var. ändern:[0007:MausY-Max] plus 17
<>
:END-Fall
<>
MausY-Min kann bleiben wie es ist.
Ok! Was ist da passiert?
Die ersten 4 Dinge in diesem Code dürften wohl jedem klar sein!
Dann wird per TAB/Switch festgelegt, auf was man klicken will.
Denn: Wenn man auf eine Charakter klicken will, muss der bereich, in dem man
klicken kann, höher sein, als der einer Schatztruhe. Wenn man also will, dass man auf einen Charakter klicken kann, macht man den Tab "Chara anklicken" an.
Man kann ihn natürlich auch mit der anderen Einstellung anklicken, aber dann
reagiert der Kopf des Charas nicht auf einen Klick.
In der Bedingung wird der Bereich festgelegt, in dem man klicken kann.
Wenn man jetzt auf etwas klicken will, muss man folgendes tun:
1. Man macht ein normales Paralel Prozess-Event irgendwo auf der Map, auf der man klicken will.
2. Man änder eine Variable: <>Var. ändern[xxxx:xxxxxxx]set Hero Bild-X
3. Noch eine Variable ändern: <>Var. ändern[yyyy:yyyyyy]set Hero Bild-Y
4. Dann kommt eine Bedingung: <>Bedingung: Varb.[Maus Taste]gleich1
5. Darin eine Weitere Bedingung: <>Bedingung: Varb.[xxxx] <= Var.[0005]
6. Noch ne Bedingung in der Bedingung:
<>Bedingung: Varb.[xxxx] >= Var.[0006]
7. Und noch eine rein: <>Bedingung: Varb.[yyyy] <= Var.[0007]
8. Eine letzte noch: <>Bedingung: Varb.[yyyy] >= Var. [0008]
In diesen Vielen Bdingungen kann man jetzt das machen, was passiern soll, wenn man auf den Helden klickt. Wichtig: Nicht die Koordinaten des Helden auf der Map,
sonder auf dem Bildschirm!
In der Bedingung mit der Maus Taste kann man noch beliebig oft die 4 Bdingungen
mit den Koordinatenabfragen machen, dann halt nur für andere Ereginisse.
Wie schaffe ich es, den KeyPatch zu initialisieren?
oder:
In welcher Reihnfolge muss ich welche .script.wav Dateien "Abspielen"?
Dies ist wohl auch ein Problem, vor dem man am Anfang steht.
Ich selbst hatte das selbe Problem, denn: So wie es im mitgelieferten Tut steht, funktioniert das nicht(korregiert mich, wenn das falsch ist). Die korrekte Reiehnfolge zum Aktivieren lautet auf alle Fälle so:
1.MidiTickOutput.script.wav
2.KeyList.script.wav
3.KeySupportOn.script.wav
4.MouseSupportOn.script.wav
Zum Deaktivieren muss die Reiehnfolge so lauten:
1.MidiTickReset.script.wav
2.KeySupportOff.script.wav
3.MouseSupportOff.script.wav
_________________________
So, ich hoffe, ich konnte euch hiermit helfen.
Für weitere Erweiterungen kann ich nicht garantieren, sie sind aber auch nicht unmöglich.
BORNtobeNAMELESS