Zitat Zitat
Ich glaub das versteht jetzt kein Mensch (außer Ineluki und der betet mir dann vor, was ich alles falsch erklärt habe ).

Ob jetzt verstanden oder nicht: Ich bitte um Antwort, sonst sitz ich hier ganz allein auf meiner Doktorarbeit...
Ach was .. war doch eigentlich ne schoene Idee .. und ich habs sogar wirklich verstanden ^^ .. doch es geht imho noch einfacher ...

Der Tastenpatch unterstuetzt ja sowohl Tastendruck- als auch -loslassereignisse. Deshalb koenntest du beispielsweise beim Druecken von W 4 zurueckgeben lassen, und beim loslassen von W 5 zurueckgeben. Dann machst du im PP, wo mit GetMidiPosTick der Wert Abgefragt wird eine Fork rein, wo jeder wert abgeprueft wird, und setzt bei 4 einen Switch auf ON und bei 5 auf Off. Entsprechendes machst du auch mit den anderen Richtungen. Dann hast du einen weiteren PP, der diese Switches ueberprueft und dementsprechend dann das Move Hero macht. So laesst sich auch problemlos siagonallaufen einbauen.

Fuer das folgende Codebeispiel nehme ich mal an, dass die KeyList.script.wav entsprechend geaendert wurde, das das Druecken bzw loslassen der Entsprechenden Tasten den vor // angegeben Werten entspricht. Zudem kann der Tastenpatch gefahrlos mit einem ChangeSwitch [001] an bzw abgeschaltet werden. Selbst Diagonallaufen wird unterstuetzt ^__^

Code:
PP 1 aktiviert durch Switch [001]

PlaySoundEffect(MidiTickClear.script.wav)
cycle
fork switch[001]=OFF
 breakcycle
endfork
ChangeVariable [001:TastenID] GetMidiPlayPosTick
fork TastenID = 1 // W gedrueckt
 ChangeSwitch UpWalk ON
else
 fork TastenID = 2 // W losgelassen
  ChangeSwitch UpWalk OFF
 else
  fork TastenID = 3 // A gedrueckt
   ChangeSwitch LeftWalk ON
  else 
   fork TastenID = 4 // A losgelassen
    ChangeSwitch LeftWalk OFF
   else 
    fork TastenID = 5 // S gedrueckt
     ChangeSwitch DownWalk ON
    else 
     fork TastenID = 6 // S losgelassen
      ChangeSwitch DownWalk OFF
     else 
      fork TastenID = 7 // D gedrueckt
       ChangeSwitch RightWalk ON
      else 
       fork TastenID = 8 // D losgelassen
        ChangeSwitch RightWalk OFF
      endfork
     endfork
    endfork
   endfork
  endfork
 endfork
endfork
wait 0.0
endcycle
Code:
PP 2

fork UpWalk=On 
 fork RightWalk=On
  moveHero DiagRightUp
 else
  fork LeftWalk=On
   moveHero DiagLeftUp
  else
   moveHero Up
  endfork
 endfork
else
 fork DownWalk=On 
  fork RightWalk=On
   moveHero DiagRightDown
  else
   fork LeftWalk=On
    moveHero DiagLeftDown
   else
    moveHero Up
   endfork
  endfork
 else
  fork RightWalk=On 
   moveHero Right
  else
   fork LeftWalk=On
    moveHero Left
   endfork
  endfork
 endfork
endfork
Durch das Anlegen einer autorun.script datei (NICHT *.script.wav) bei den Maps des Spiels mit nachfolgendem Inhalt, kann man sich jedes weitere rumgewurstel am tastenpatch im Maker selber ersparen.

Code:
autorun.script

.\sound\KeySupportOn.sctipt.wav
.\sound\KeyList.script.wav
.\sound\MidiTickOutput.script.wav
Im Maker brauch man dann nur noch den Switch [001] an bzw aus schalten, um das PP1 zu aktivieren.

Zum Thema, was muss ich mitgeben, damit mein Spiel bei jemandem ohne Tastenpatch funktioniert ...

Die Harmony.DLL wird NICHT jedes mal neu geschrieben, sondern die harmony.LOG Mitgeliefert werden muessen im allgemeinen 3 Dateien.

1) Harmony.DLL
2) OldHarmony.DLL
3) RPG_RT.exe

Wobei 3) nur dafuer da ist, damit nicht einer zufaellig die Exe von Gnarfs PicPatch dazu kopiert, denn die ruft meinen Patch nicht auf, was die originale RPG_RT.exe jedoch macht.

Wird wohl wirklich zeit, dass ich mal eine ausfuehrliche Anleitung zum Keypatch schreibe *seuftz*

Gruss Ineluki