PC + WiiMote: Ein Traumpaar?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • PC + WiiMote: Ein Traumpaar?

      So...
      Und wieder ein Thread zum Thema "Wii" mehr :]
      nachdem Ich jetzt die letzten Nächte vergraben in Unmengen von Scriptzeilen verbracht habe, kann Ich so langsam erste Erfolge verbuchen...

      Erstmal: was treibt der Nerd da eigentlich wieder?
      Ganz einfach, er versucht Nintendos Wii Remote mit seinem Windows PC zu verbinden und schließlich zum Steuern von PC-Spielen, der Maus, Mediaplayer etc. zu verwenden.

      Das wiill ich auch! Wie geht das?
      Eigentlich recht simpel, die WiiMote lässt sich per Bluetooth mit dem PC verbinden, man braucht also einen USB-Bluetooth-Dongle (wenn man nicht schon so etwas hat, viele Laptops haben Bluetooth direkt "onboard)
      Eine Liste mit funktionierenden Bluetooth-Adaptern gibt's auf wiili.org: Liste: Kompatible Bluetooth-Adapter

      Wie genau man da vorgehen muss damit die WiiMote schließlich einsatzfähig ist, ist in diesem Tutorial sehr gut erklärt: WiiMote am PC

      Toll! Jetzt ist die WiiMote verbunden, aber wie verwendet man die?
      Das ist weniger leicht zu erklären, grundsätzlich braucht man dazu das Programm GlovePIE (Programmable Input Emulator)
      Mit diesem Programm ist es möglich, die "Signale" die von der WiiMote gesendet werden (also zum Beispiel: ist der "A"-Knopf gedrückt, wird das Steuerkreuz benutzt, ist ein Nunchuk angeschlossen, in welche Richtung ist die WiiMote geneigt, etc.) "abgefangen" und über eine einfache Scriptsprache "weiterverarbeitet" werden
      Beim Download von GlovePIE sind schon eine Reihe mehr oder weniger fertiger WiiMote-Scripts dabei, die einem einen guten Eindruck vermitteln wie man vorgehen muss, wenn man eigene Scripts entwickeln will

      Wem das alles zu viel Theorie ist:
      so sieht GlovePIE aus:
      [IMG:http://www.picpaste.de/extpics/glovePIE.jpg]

      und so sieht ein einfaches Script aus:
      [IMG:http://picpaste.de/extpics/glovePIE_1.jpg]
      (solange der "A"-Knopf auf der WiiMote gedrückt wird vibriert die WiiMote, wird er losgelassen hört die Vibration wieder auf)

      jeder der also schon die kleinsten Erfahrungen mit Programmiersprachen gemacht hat wird keine Probleme haben sich in GlovePIE zurecht zu finden
      um den Code auszuführen wird einfach auf "Run" geklickt
      natürlich lassen sich die Scripts auch speichern und später wieder laden :wink:

      Aber damit kann ich doch kein Spiel steuern?!
      Röchtöch, so natürlich noch nicht, aber:
      GlovePIE bietet die Möglichkeit Mausbewegungen, Clicks und Tastendrucke zu "emulieren" sprich dem PC vorzutäuschen
      Beispiel: drücke ich bei meiner WiiMote auf "B", führt mein PC einen Mausklick aus
      drücke ich bei der WiiMote auf "A" denkt mein PC ich würde "W" auf der Tastatur drücken, befinde ich mich in meinem typischen Ego-Shooter fängt meine Spielfigur also an nach vorne zu laufen, etc.
      um eine vernünftige und spielbare Steuerung zu basteln braucht es natürlich mehr, aber das demonstriert das Prinzip ganz gut mit dem hier gearbeitet wird

      Zusammenfassend kann man wohl sagen: da steckt viel Potenzial drin!
      die Scripts werden immer ausgeklügelter und GlovePIE kommuniziert immer besser mit der WiiMote
      Jeder der eine Wii(Mote) hat sollte sich damit mal befassen, so bekommen PC-Spiele einen ganz neuen Touch 8)

      Im Moment (-> die letzten drei Nächte :rofl: ) arbeite Ich an einer vernünftigen Steuerung für den Klassiker Battlefield 1942, die sowohl WiiMote als auch Nunchuk unterstützt
      Gezielt wird durch Bewegen des Nunchuks, geschossen / gezoomt und nachgeladen über die beiden Knöpfe am Nunchuk und gelaufen mit dem Analogstick auf dem Nunchuk (leichte Bewegung in eine Richtung -> Spieler "geht" in die entsprechende Richtung, starke Bewegung in eine Richtung -> Spieler "rennt" in die entsprechende Richtung)
      springen / ducken / hinlegen geht über die Knöpfe an der WiiMote
      da fehlen natürlich noch einige Funktionen (zum Beispiel sowas wie "Waffen wechseln", "Karte aufrufen" und vor allem die F-Tasten-"Funksprüche") aber es fühlt sich schon gar nicht schlecht an
      sobald das Wichtigste fertig ist setz Ich mich dann an ein Script zum Steuern von Flugzeugen :]

      Gut zu wissen?!
      Naja^^ Ich dachte mir, Ich stell die Möglichkeiten die der neue Nintendo-Controller auch abseits der Wii bietet einfach mal der "Allgemeinheit" vor, bin ja auch nicht der einzige Freidenker der im Besitz einer knuffig-schnuckeligen Wii ist :grin:

      Also Kommentare, Fragen, Lobeshymnen oder sonstiges... einfach posten 8)
      Hier könnte meine Signatur stehen!
    • ach hier noch was um mal zu demonstrieren was man noch so mit WiiMote + PC treiben kann:
      zum Beispiel Gitarre (oder besser: Wiitarre!) spielen:
      youtube.com/watch?v=67BOpSA8J_c

      dazu "passend" gibt es auch scripts für "WiiDrums" und auch an einer "Wiioline" wird gerade gefeilt

      also jede Menge Spaß für WiiMote-Besitzer 8)
      Hier könnte meine Signatur stehen!
    • Das hört sich ja mal klasse an^^
      Kannst du dann mal das Script hier hochladen, wenn es final ist?
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • na das hatte Ich sowieso vor :wink:
      für Flugzeuge hab Ich mir gestern (öh... heute morgen^^) schon ein komplettes "Mapping" überlegt, muss "nur" noch umgesetzt werden...
      was die Steuerung "zu Fuß" angeht steh Ich im Moment vor dem Problem dass man sehr, sehr viele Funktionen braucht um wirklich spielen zu können und WiiMote / Nunchuk natürlich nur begrenzt viele Knöpfe etc. zur Verfügung stellen
      unter Umständen werde Ich also wohl ein paar der Funktionen (ähnlich wie bei Red Steel) auf Bewegungen der WiiMote verlagern müssen... (zum Beispiel WiiMote nach unten/oben "schwingen" um die nächste / vorherige Waffe auszuwählen oder ähnliches)

      naja, bin ja auch noch relativ neu was die GlovePIE-Scripterei angeht, Ich bin schon stolz dass Ich mich durch Bewegen des Nunchuks umsehen / zielen kann (und das sogar recht gut^^) :rofl:

      aber die Arbeit geht natürlich weiter und sobald sich echte Erfolge verzeichnen lassen melde Ich mich wieder, zusammen mit komplettem Script 8)
      Hier könnte meine Signatur stehen!
    • moah, ich kann die "Paarweisen Verbindungen" nicht überspringen -.-
      d.h. die wiimote kann ich nicht mit dem pc verbinden
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • mehr Infos^^
      Betriebssystem?
      BT-Adapter?
      Treiber für BT-Adapter?

      wird die WiiMote erkannt? (davon geh Ich mal aus^^)
      benutzt du auch den Setup-Assistenten?
      und vor allem daran denken: entweder den Sync-Button gedrückt halten oder die "1"+"2"-Knöpfe, bis der Setup-Assistent komplett abgeschlossen ist
      und die Wii muss dazu natürlich ausgeschaltet sein
      Hier könnte meine Signatur stehen!
    • Habs jetzt geschafft.
      Musste den Erkennungs-Dienst nur ber die Taskleiste starten :spinner:

      ich hab mal das Script benutzt:
      Spoiler anzeigen

      Quellcode

      1. // My best IR Mouse Script, with 5DOF Tracking
      2. // By Carl Kenner
      3. // Change these values:
      4. var.SensorBarSeparation = 7.5 inches // distance between middles of two sensor bar dots
      5. var.NoYawAllowed = true // Calculates X if no yaw is allowed, otherwise calculates Yaw but not X
      6. var.IRMulX = 1.2
      7. var.IRMulY = 1.2
      8. var.IROffsetX = 0 // add to mouse.x
      9. var.IROffsetY = 0 // add to mouse.y
      10. var.IRLeftButton = Wiimote.A
      11. var.IRRightButton = Wiimote.B
      12. // Compensate for roll
      13. var.c = cos(Smooth(wiimote.roll, 10))
      14. var.s = sin(Smooth(wiimote.roll, 10))
      15. if wiimote.dot1vis then
      16. var.dot1x = var.c*(511.5-wiimote.dot1x)/511.5 - var.s*(wiimote.dot1y-383.5)/511.5
      17. var.dot1y = var.s*(511.5-wiimote.dot1x)/511.5 + var.c*(wiimote.dot1y-383.5)/511.5
      18. end if
      19. if wiimote.dot2vis then
      20. var.dot2x = var.c*(511.5-wiimote.dot2x)/511.5 - var.s*(wiimote.dot2y-383.5)/511.5
      21. var.dot2y = var.s*(511.5-wiimote.dot2x)/511.5 + var.c*(wiimote.dot2y-383.5)/511.5
      22. end if
      23. // if both dots are visible check which is which and how far apart
      24. if wiimote.dot1vis and wiimote.dot2vis then
      25. if var.dot1x <= var.dot2x then
      26. var.leftdot = 1
      27. var.dotdeltay = var.dot2y - var.dot1y
      28. else
      29. var.leftdot = 2
      30. var.dotdeltay = var.dot1y - var.dot2y
      31. end if
      32. var.dotdeltax = abs(var.dot1x-var.dot2x)
      33. var.DotSep = hypot(var.dotdeltax, var.dotdeltay) * 511.5
      34. var.IRDistance = var.SensorBarSeparation * 1320 / var.DotSep
      35. end if
      36. // sort out the position of the left and right dots
      37. if var.leftdot = 1 then
      38. if wiimote.dot1vis and wiimote.dot2vis then
      39. var.LeftDotX = var.dot1x
      40. var.LeftDotY = var.dot1y
      41. var.LeftDotVis = true
      42. var.RightDotX = var.dot2x
      43. var.RightDotY = var.dot2y
      44. var.RightDotVis = true
      45. else if wiimote.dot1vis then
      46. if hypot(var.leftdotx-var.dot1x,var.leftdoty-var.dot1y) <= hypot(var.rightdotx-var.dot1x,var.rightdoty-var.dot1y) then
      47. // is the real dot 1
      48. var.LeftDotX = var.dot1x
      49. var.LeftDotY = var.dot1y
      50. var.RightDotX = var.dot1x + var.dotdeltax
      51. var.RightDotY = var.dot1y + var.dotdeltay
      52. var.LeftDotVis = true
      53. var.RightDotVis = false
      54. else
      55. // was originally dot 2, but now called dot 1.
      56. var.leftdot = 2 // this dot (1) is actually the right dot
      57. var.LeftDotX = var.dot1x - var.dotdeltax
      58. var.LeftDotY = var.dot1y - var.dotdeltay
      59. var.RightDotX = var.dot1x
      60. var.RightDotY = var.dot1y
      61. var.RightDotVis = true
      62. var.LeftDotVis = false
      63. end if
      64. else if wiimote.dot2vis then
      65. var.LeftDotX = var.dot2x - var.dotdeltax
      66. var.LeftDotY = var.dot2y - var.dotdeltay
      67. var.RightDotX = var.dot2x
      68. var.RightDotY = var.dot2y
      69. var.RightDotVis = true
      70. var.LeftDotVis = false
      71. end if
      72. else if var.leftdot = 2 then
      73. if wiimote.dot1vis and wiimote.dot2vis then
      74. var.LeftDotX = var.dot2x
      75. var.LeftDotY = var.dot2y
      76. var.LeftDotVis = true
      77. var.RightDotX = var.dot1x
      78. var.RightDotY = var.dot1y
      79. var.RightDotVis = true
      80. else if wiimote.dot1vis then
      81. if hypot(var.leftdotx-var.dot1x,var.leftdoty-var.dot1y) <= hypot(var.rightdotx-var.dot1x,var.rightdoty-var.dot1y) then
      82. var.leftdot = 1 // dot 1 is now the left dot
      83. var.LeftDotX = var.dot1x
      84. var.LeftDotY = var.dot1y
      85. var.RightDotX = var.dot1x + var.dotdeltax
      86. var.RightDotY = var.dot1y + var.dotdeltay
      87. var.LeftDotVis = true
      88. var.RightDotVis = false
      89. else
      90. // the real dot 1 (on the right)
      91. var.LeftDotX = var.dot1x - var.dotdeltax
      92. var.LeftDotY = var.dot1y - var.dotdeltay
      93. var.RightDotX = var.dot1x
      94. var.RightDotY = var.dot1y
      95. var.RightDotVis = true
      96. var.LeftDotVis = false
      97. end if
      98. else if wiimote.dot2vis then
      99. var.RightDotX = var.dot2x + var.dotdeltax
      100. var.RightDotY = var.dot2y + var.dotdeltay
      101. var.LeftDotX = var.dot2x
      102. var.LeftDotY = var.dot2y
      103. var.LeftDotVis = true
      104. var.RightDotVis = false
      105. end if
      106. else
      107. var.LeftDotX = var.dot1x
      108. var.LeftDotY = var.dot1y
      109. var.RightDotX = var.LeftDotX
      110. var.RightDotY = var.LeftDotY
      111. var.LeftDotVis = true
      112. var.RightDotVis = true
      113. end if
      114. // Find the imaginary middle dot
      115. var.MiddleDotX = (var.leftdotx + var.rightdotx)/2
      116. var.MiddleDotY = (var.leftdoty + var.rightdoty)/2
      117. var.MiddleDotVis = wiimote.dot1vis or wiimote.dot2vis
      118. if var.MiddleDotVis then
      119. var.TotalPitch = atan2(511.5*var.MiddleDotY,1320) + Wiimote.Pitch
      120. var.DotYaw = atan2(-511.5*var.MiddleDotX,1320) // assume yaw is 0
      121. var.WiimoteYawNoX = atan2(511.5*var.MiddleDotX,1320)
      122. var.WiimoteXNoYaw = -sin(var.dotyaw)*var.IRDistance
      123. var.WiimoteY = -sin(var.totalpitch)*var.IRDistance
      124. var.WiimoteZ = (-sqrt(sqr(var.IRDistance) - sqr(var.WiimoteY)))*var.IRDistance/RemoveUnits(var.IRDistance)
      125. end if
      126. // scale it to the screen range 0 to 1
      127. var.IRx = var.IRMulX*var.middledotx/2 + 0.5
      128. var.IRy = var.IRMulY*var.middledoty*1023/767/2 + 0.5
      129. var.IRvis = wiimote.dot1vis or wiimote.dot2vis
      130. var.IROnScreen = 0 <= var.IRx <= 1 and 0 <= var.IRy <= 1
      131. // is it off the screen?
      132. var.IRTooFarLeft = var.IRx < 0 or (var.IRx < 0.1 and (not var.IRvis))
      133. var.IRTooFarRight = var.IRx > 1 or (var.IRx > 1-0.1 and (not var.IRvis))
      134. var.IRTooFarUp = var.IRy < 0 or (var.IRy < 0.1 and (not var.IRvis))
      135. var.IRTooFarDown = var.IRy > 1 or (var.IRy > 1-0.1 and (not var.IRvis))
      136. // Heavily smooth small movements, but do zero lag for quick movements
      137. var.MoveAmount = 1024*hypot(delta(var.IRx), delta(var.IRy))
      138. if smooth(var.MoveAmount) > 12 then
      139. var.SmoothX = var.IRx
      140. var.SmoothY = var.IRy
      141. var.LastSureFrame = PIE.Frame
      142. else if (PIE.frame-var.LastSureFrame) > 18 then
      143. var.SmoothX = Smooth(var.IRx, 18, 4/1024)
      144. var.SmoothY = Smooth(var.IRy, 18, 4/1024)
      145. else if (PIE.frame-var.LastSureFrame) > 14 then
      146. var.SmoothX = Smooth(var.IRx, 14, 4/1024)
      147. var.SmoothY = Smooth(var.IRy, 14, 4/1024)
      148. else if (PIE.frame-var.LastSureFrame) > 10 then
      149. var.SmoothX = Smooth(var.IRx, 10, 4/1024)
      150. var.SmoothY = Smooth(var.IRy, 10, 4/1024)
      151. else if (PIE.frame-var.LastSureFrame) > 6 then
      152. var.SmoothX = Smooth(var.IRx, 6, 4/1024)
      153. var.SmoothY = Smooth(var.IRy, 6, 4/1024)
      154. else if (PIE.frame-var.LastSureFrame) > 2 then
      155. var.SmoothX = Smooth(var.IRx, 2, 4/1024)
      156. var.SmoothY = Smooth(var.IRy, 2, 4/1024)
      157. end if
      158. // Freeze the mouse cursor while they start pressing the button
      159. // otherwise it will make the cursor jump
      160. var.Freeze = (var.IRLeftButton or var.IRRightButton) and KeepDown(pressed(var.IRLeftButton) or pressed(var.IRRightButton), 600ms)
      161. // Only change the mouse position if pointing at the screen
      162. // otherwise they can still use a real mouse
      163. if var.IRvis and (not var.Freeze) then
      164. mouse.x = var.SmoothX
      165. mouse.y = var.SmoothY
      166. end if
      167. // delay the buttons slightly so we have time to freeze the cursor (is that needed?)
      168. mouse.LeftButton = var.IRLeftButton and (not KeepDown(pressed(var.IRLeftButton), 40ms))
      169. mouse.RightButton = var.IRRightButton and (not KeepDown(pressed(var.IRRightButton), 40ms))
      170. // display 6DOF data
      171. if var.NoYawAllowed then
      172. debug = 'X: '+var.WiimoteXNoYaw+', Y: '+var.WiimoteY+', Z: '+var.WiimoteZ+', Yaw: 0, Pitch: '+Wiimote.Pitch+', Roll: '+Wiimote.Roll
      173. else
      174. debug = 'X: 0, Y: '+var.WiimoteY+', Z: '+var.WiimoteZ+', Yaw: '+var.WiimoteYawNoX+', Pitch: '+Wiimote.Pitch+', Roll: '+Wiimote.Roll
      175. endif
      Alles anzeigen


      Das ist aus dem Inet.
      Ichmuss mal iwie probieren das noch ein bisschen zu verfeinern, mit der Erkennung
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • gah, sowas bitte das nächste mal spoilern :wink:
      sonst streckt sich der Browser immer so^^

      ja, das kenn Ich, das ist von WiiLi.org oder?
      also von den Bewegungen per Sensorbar lasse Ich im Moment noch die Finger, für den Desktop ist es natürlich passend aber für einen Ego-Shooter natürlich weniger (weil da das Fadenkreuz ja immer in der Mitte bleibt^^)
      deshalb benutze Ich nur die Neigungen um damit das Fadenkreuz zu bewegen
      (also .SmoothRoll und .SmoothPitch bei der WiiMote, .SmoothPitch und .RawForceX beim Nunchuk)

      naja, arbeite gerade an meinem Flugzeug-Script, leider muss Ich im Moment noch auf die Möglichkeit eines emulierten Joysticks verzichten :cry: also alles über Tasten anstatt über Achsen machen (also im Spiel^^)...
      trotzdem sieht es soweit nicht schlecht aus...
      - Nase hoch / runter und
      - Rolle links / rechts

      sind schon "fertig", jetzt noch Schubregler und Seitenruder und der Testflug kann kommen :]

      €:
      yay, Seitenruder und Schubregler sind auch fertig und es fliegt sich für den Anfang gar nicht schlecht :]
      mit emuliertem Joystick wär's mir zwar lieber, aber das funktioniert bei mir leider aus unerfindlichen Gründen nicht :[
      naja, jetzt noch ein paar Funktionen dazubasteln und Ich kann mich schon fast damit online trauen :grin:
      Hier könnte meine Signatur stehen!
    • moah LEDs sind ja sau teuer.
      4 stück 7,30

      LEDs, Kontakte, Schalter, Bluetooth Adapter, Classic controller zusammen 50 € (inklusive versand)^^
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • hum ein Classic Controller muss mir auch noch ins Haus (und wenn es nur ist um ihn als Gamepad am PC zu verwenden :rofl: )
      aber das hat erstmal Zeit

      hab gerade meinen ersten BF42-Flugzeug-Online-Versuch mit WiiMote-Steuerung hinter mir...
      einen Kill hab Ich zustande gebracht, aber der war wohl eher Glück und abgestürzt bin Ich dabei auch noch :rofl:
      aber es funktioniert!
      man muss sich natürlich erstmal eingewöhnen und alle Funktionen sind noch nicht verfügbar (Karte aufrufen zum Beispiel fehlt noch, oder sich im Cockpit umsehen, oder die F-Tasten-Funksprüche)
      und manche sind nicht so gut umgesetzt wie es mit einem emulierten Joystick möglich wäre, aber man kann fliegen!
      funktioniert natürlich nicht nur für Battlefield 1942 sondern für jedes Spiel bei dem man fliegen kann^^

      und hier ist das gute Stück, kannst es ja mal testen :wink:
      Spoiler anzeigen

      Quellcode

      1. // Nerd's Battlefield-Flugzeug-Script 0.1
      2. // Schub: Pfeil hoch / runter
      3. // Ruder: Pfeil links / rechts
      4. // Nase: W / S
      5. // Rolle: A / D
      6. // Feuer / Alt. Feuer: Leertaste / Strg
      7. // Kameraperspektive ändern: C
      8. var.NSPdead = 15 // Deadzone für Pitch
      9. var.NSP = (sin(WiiMote.SmoothPitch) * 100) + 23 // Offset, var.NSP sollte ca. 0 ergeben
      10. var.NSRdead = 20 // Deadzone für Roll
      11. var.NSR = (sin(WiiMote.SmoothRoll) * 100) - 31 // Offset, var.NSR sollte ca. 0 ergeben
      12. if WiiMote.Home
      13. if var.HomePressed = 0
      14. if var.Active = 0
      15. var.Active = 1
      16. else
      17. var.Active = 0
      18. //Tasten auflösen:
      19. Keyboard.A = 0
      20. Keyboard.D = 0
      21. Keyboard.W = 0
      22. Keyboard.S = 0
      23. Keyboard.Up = 0
      24. Keyboard.Left = 0
      25. Keyboard.Down = 0
      26. Keyboard.Right = 0
      27. Keyboard.Space = 0
      28. Keyboard.Ctrl = 0
      29. Keyboard.C = 0
      30. var.Schub = 0
      31. endif
      32. var.HomePressed = 1
      33. endif
      34. else
      35. if var.HomePressed = 1 then var.HomePressed = 0
      36. endif
      37. if var.Active = 1
      38. //1: Code-ANFANG
      39. //1: Rollen durch Neigen der WiiMote
      40. if (var.NSP < var.NSPdead) and (var.NSP > (-1 * var.NSPdead))
      41. var.NSP = 0
      42. Keyboard.A = 0
      43. Keyboard.D = 0
      44. else
      45. if var.NSP < 0 //Neigung nach links
      46. Keyboard.A = 1
      47. Keyboard.D = 0
      48. else //Neigung nach rechts
      49. Keyboard.D = 1
      50. Keyboard.A = 0
      51. endif
      52. endif
      53. //1: Nase hoch durch Neigen der WiiMote
      54. if (var.NSR < var.NSRdead) and (var.NSR > (-1 * var.NSRdead))
      55. var.NSR = 0
      56. Keyboard.W = 0
      57. Keyboard.S = 0
      58. else
      59. if var.NSR < 0 //Neigung nach vorne
      60. Keyboard.S = 1
      61. Keyboard.W = 0
      62. else //Neigung nach hinten
      63. Keyboard.W = 1
      64. Keyboard.S = 0
      65. endif
      66. endif
      67. //1: Seitenruder auf D-Pad < und >
      68. //1: Beschleunigen auf D-Pad ^ und v
      69. Keyboard.Right = WiiMote.Down
      70. Keyboard.Left = WiiMote.Up
      71. if WiiMote.Right
      72. if var.PressedR = 0
      73. var.PressedR = 1
      74. if var.Schub < 1 then var.Schub ++
      75. endif
      76. else
      77. if var.PressedR = 1 then var.PressedR = 0
      78. endif
      79. if WiiMote.Left
      80. if var.PressedL = 0
      81. var.PressedL = 1
      82. if var.Schub > -1 then var.Schub --
      83. endif
      84. else
      85. if var.PressedL = 1 then var.PressedL = 0
      86. endif
      87. if var.Schub > 0
      88. WiiMote.LEDs = 8
      89. Keyboard.Up = 1
      90. Keyboard.Down = 0
      91. elseif var.Schub < 0
      92. WiiMote.LEDs = 1
      93. Keyboard.Down = 1
      94. Keyboard.Up = 0
      95. elseif var.Schub = 0
      96. WiiMote.LEDs = 0
      97. Keyboard.Down = 0
      98. Keyboard.Up = 0
      99. endif
      100. //1: Feuer auf "A" und Alt.Feuer auf "1"
      101. Keyboard.Space = WiiMote.A
      102. Keyboard.Ctrl = WiiMote.One
      103. //1: Kameraperspektive wechseln per "2"
      104. Keyboard.C = WiiMote.Two
      105. //1: Code-ENDE
      106. endif
      107. debug = var.NSP + ":var.NSP | var.NSR:" + var.NSR
      Alles anzeigen


      oben im Script steht wie die jeweiligen Funktionen in den Spieloptionen eingestellt sein müssen
      dann wie groß die jeweilige Deadzone für die Neigungssensoren sein soll
      und schließlich noch die "Kalibrierung", wenn das Script läuft (und die WiiMote flach auf dem Tisch liegt) sollten die beiden Werte im Debug-Fenster ungefähr 0 sein
      wenn nicht müssen die Werte bei "//Offset" geändert werden
      also wenn im Debugfenster zum Beispiel "10 :var.NSP | var.NSR: -4" steht,
      müsstest du diese Zeilen hier:

      Quellcode

      1. var.NSP = (sin(WiiMote.SmoothPitch) * 100) + 23 // Offset, var.NSP sollte ca. 0 ergeben

      Quellcode

      1. var.NSR = (sin(WiiMote.SmoothRoll) * 100) - 31 // Offset, var.NSR sollte ca. 0 ergeben

      so ändern:

      Quellcode

      1. var.NSP = (sin(WiiMote.SmoothPitch) * 100) + 13 // Offset, var.NSP sollte ca. 0 ergeben

      Quellcode

      1. var.NSR = (sin(WiiMote.SmoothRoll) * 100) - 27 // Offset, var.NSR sollte ca. 0 ergeben

      also vom ersten Wert nochmal 10 abziehen und beim zweiten Wert 4 addieren
      ist eigentlich ganz simpel einzustellen wenn man mal durchgeblickt hat^^

      dann "Run" klicken, ins Spiel gehen und sobald du in einem Flugzeug sitzt den "Home"-Knopf auf der WiiMote drücken zum aktivieren (nochmal drücken ums wieder zu deaktiveren und so weiter^^)
      zum Fliegen muss die Wii dann seitwärts gehalten werden, also Steuerkreuz links und "2"-Knopf rechts
      Beschleunigen: Steuerkreuz nach oben (muss man nur kurz drücken, das hält dann den Schub von alleine, wird auch durch die LEDs angezeigt^^)
      Bremsen: Steuerkreuz nach unten
      Seitenruder: Steuerkreuz nach links beziehungsweise rechts
      Nase hoch: WiiMote nach vorne neigen
      Nase runter: WiiMote nach hinten neigen
      Rolle links: WiiMote nach links neigen
      Rolle rechts: WiiMote nach rechts neigen
      Feuer: "A"-Knopf
      Alt. Feuer: "1"-Knopf
      Kameraperspektive ändern: "2"-Knopf

      sollte alles sein...
      Ich finde es funktioniert ganz annehmbar 8)
      Hier könnte meine Signatur stehen!
    • Jo, teste ich morgen mal.

      Ich hab grad bei wiili.org ein script zu Fable gefunden.
      Spoiler anzeigen

      Brainfuck-Quellcode

      1. /*
      2. ---------------------------------------------------------
      3. Instructions:
      4. -Open Fable
      5. -Start Game
      6. -Open Menu - Go to Options
      7. -Configure Keys
      8. -WASD KEYS
      9. -SET Block/Flourish TO F
      10. -Save controls and return to game
      11. -Hold alt and press Tab untill you reach Glovepie
      12. -Hit Run
      13. -Press Home on WiiMote IMMEDIATELY
      14. -Hold Alt and press tab again untill you get back to fable
      15. HOLD Z AND PRESS HOME TO ACCESS MENU
      16. Modes:
      17. -Menu Mode
      18. To enter Menu Mode, press Home
      19. -Use Menu Mode for situations such as: trading, menu, quest cards, experience
      20. WASD becomes D Pad on Wiimote
      21. Mouse is controlled by Nunchuk analog stick
      22. Use A on Wiimote to Select and B to Cancel
      23. -Melee Mode
      24. To enter Melee Mode, press One
      25. This also brings out your sword
      26. Camera is controlled by Wiimote
      27. Movement: Nunchuk Analog
      28. Attack: Shake wiimote
      29. Defend: C on Nunchuk
      30. Run/Flourish: Z on Nunchuk
      31. Lock On/Fix Camera: B
      32. -Ranged Weapon Mode
      33. This also brings out your Bow
      34. HIGHLY RECOMENDED FOR MAGIC USE
      35. To enter Range mode, press Two
      36. Same for Melee Mode except
      37. Attack: C
      38. Toggle First person: C + Z
      39. -First Person Mode:
      40. To enter first person move, look up
      41. Nunchuk controls aim
      42. Holding A on Wiimote allows Wiimote Aim
      43. Attack: C
      44. Exit: Z
      45. universial (except menu):
      46. DPAD:
      47. Left: F1 item
      48. Up: F2 item
      49. Right: F3 item
      50. Down: 1 item
      51. WHILE HOLDING Z:::
      52. DPAD:
      53. Left: 2 item
      54. Up: 3 item
      55. Right: 4 item
      56. Down: 5 item
      57. MINUS: MAP
      58. PLUS: HERO VIEW
      59. ---------------------------------------------------------
      60. READ
      61. ---------------------------------------------------------
      62. IF FOR SOME REASON, YOU ARE NOT IN THE RIGHT MODE, JUST
      63. PRESS THE CORRECT BUTTON AND CHANGE INTO THAT MODE
      64. IT IS NOT WISE TO BE IN MELEE MODE WITH A BOW
      65. IT IS NOT WISE TO USE MAGIC IN MELEE MODE
      66. IF YOU REALLY WANT TO USE MAGIC IN MELEE MODE, APPLY MAGIC
      67. TO THE 2, 3, 4, AND 5 BUTTONS RATHER THAN USING THE SHIFT/
      68. MOUSE SHORTCUT, ONLY USE THAT IN RANGE MODE
      69. ---------------------------------------------------------
      70. */
      71. //Move Mouse with wiimote
      72. if (not var.F)and(not var.H)and(Wiimote1.Pitch) < -5 degrees
      73. Mouse.DirectInputY = Mouse.DirectInputY - 3
      74. endif
      75. if (not var.F)and(not var.H)and(Wiimote1.Pitch) > 15 degrees
      76. Mouse.DirectInputY = Mouse.DirectInputY + 3
      77. endif
      78. if (not var.F)and(not var.H)and(Wiimote1.Roll) < -15 degrees
      79. Mouse.DirectInputX = Mouse.DirectInputX - 10
      80. endif
      81. if (not var.F)and(not var.H)and(Wiimote1.Roll) > 15 degrees
      82. Mouse.DirectInputX = Mouse.DirectInputX + 10
      83. endif
      84. if (not var.F)and(not var.H)and(Wiimote1.Pitch) < -15 degrees
      85. Mouse.DirectInputY = Mouse.DirectInputY - 5
      86. endif
      87. if (not var.F)and(not var.H)and(Wiimote1.Pitch) > 25 degrees
      88. Mouse.DirectInputY = Mouse.DirectInputY + 5
      89. endif
      90. if (not var.F)and(not var.H)and(Wiimote1.Roll) < -25 degrees
      91. Mouse.DirectInputX = Mouse.DirectInputX - 20
      92. endif
      93. if (not var.F)and(not var.H)and(Wiimote1.Roll) > 25 degrees
      94. Mouse.DirectInputX = Mouse.DirectInputX + 20
      95. endif
      96. if not Wiimote1.Nunchuk.ZButton
      97. Key.F1 = Wiimote1.Left
      98. Key.F2 = Wiimote1.Up
      99. Key.F3 = Wiimote1.Right
      100. Key.One = Wiimote1.Down
      101. endif
      102. // Take out Sword with One
      103. var.Sword = Wiimote1.One
      104. Key.Q = var.Sword
      105. if var.sword then
      106. var.S = true
      107. var.B = false
      108. var.H = false
      109. Say("Melee Weapon Mode")
      110. Wiimote1.Leds = 1
      111. endif
      112. // Take out Bow with Two
      113. var.Bow = Wiimote1.Two
      114. Key.E = var.Bow
      115. if var.Bow then
      116. var.S = false
      117. var.B = true
      118. var.H = false
      119. Say("Ranged Weapon Mode")
      120. endif
      121. // Home for menu mode
      122. var.Menu = Wiimote1.Home
      123. if var.Menu then
      124. var.H = true
      125. var.S = false
      126. var.B = false
      127. Say("Menu Mode")
      128. Wiimote1.Leds = 8
      129. endif
      130. // Hold Z and Press Home for Menu
      131. if Wiimote1.Nunchuk.ZButton
      132. Key.Escape = Wiimote1.Home
      133. Key.Two = Wiimote1.Left
      134. Key.Three = Wiimote1.Up
      135. Key.Four = Wiimote1.Right
      136. Key.Five = Wiimote1.Down
      137. Key.H = Wiimote.Plus
      138. Key.M = Wiimote.Minus
      139. endif
      140. // Zoom with Plus and Minus
      141. Key.Minus = Wiimote1.Minus
      142. Key.Equals = Wiimote1.Plus
      143. //If You Take Out Your Sword, The Controls Become
      144. if var.S == true then
      145. var.B = false
      146. var.H = false
      147. var.F = false
      148. // Attack By Swinging Wiimote
      149. Mouse.LeftButton = Wiimote.RelAccX >= 15
      150. // Run, Parry With Z
      151. Mouse.RightButton = Wiimote1.Nunchuk.Zbutton
      152. // Use Items Roll, Block with C
      153. var.Item = Wiimote1.Nunchuk.CButton
      154. Key.F = var.Item
      155. // Examine with A
      156. Key.Tab = Wiimote1.A
      157. // Lock on with B
      158. Key.Space = Wiimote1.B
      159. // Nunchuk analog = movement
      160. W = Wiimote.Nunchuk.JoyY < -0.2
      161. S = Wiimote.Nunchuk.JoyY > 0.2
      162. A = Wiimote.Nunchuk.JoyX < -0.2
      163. D = Wiimote.Nunchuk.JoyX > 0.2
      164. // Roll The Nunchuk to attract experience orbs and use spells
      165. Key.LeftShift = Wiimote1.Nunchuk.Roll > 60 degrees
      166. // Mouse control camera with D Pad
      167. //to look forward press b
      168. Key.R = Wiimote1.B
      169. // First four Items are used on D - Pad, 1 = left 2 = up 3 = right 4 = down
      170. // when holding C
      171. endif
      172. if var.B == true then
      173. var.S = false
      174. var.H = false
      175. var.F = false
      176. Wiimote1.Leds = 2
      177. // Fire Arrows by Pressing C
      178. var.Fire = Wiimote1.Nunchuk.CButton
      179. Mouse.LeftButton = var.Fire
      180. if var.Fire
      181. var.First = true
      182. endif
      183. // Run With Z
      184. var.Run = Wiimote1.Nunchuk.Zbutton
      185. Mouse.RightButton = var.Run
      186. if var.Run
      187. var.R = true
      188. endif
      189. // go to first person by c + z
      190. // Lock On With B
      191. Key.Space = Wiimote1.B
      192. // Examine with A
      193. Key.Tab = Wiimote1.A
      194. // Nunchuk analog = movement
      195. W = Wiimote.Nunchuk.JoyY < -0.2
      196. S = Wiimote.Nunchuk.JoyY > 0.2
      197. A = Wiimote.Nunchuk.JoyX < -0.2
      198. D = Wiimote.Nunchuk.JoyX > 0.2
      199. // Roll The Nunchuk to attract experience orbs and use spells
      200. Key.LeftShift = Wiimote1.Nunchuk.Roll > 60 degrees
      201. //tilting wiimote does not effect aim
      202. //If You put away the Bow, The Sword Settings are enabled
      203. endif
      204. if var.Fire and released(Mouse.RightButton) then
      205. var.F = true
      206. Say("First Person Mode")
      207. Wiimote1.Leds = 4
      208. endif
      209. // First person mode
      210. if var.F == true then
      211. var.B = false
      212. var.H = false
      213. var.S = false
      214. // aim with nunchuk
      215. if (-1.2 < wiimote.Nunchuk.JoyY < -0.5)
      216. Mouse.DirectInputY = Mouse.DirectInputY + 10;
      217. endif
      218. if (0.5 < wiimote.Nunchuk.JoyY < 1.2)
      219. Mouse.DirectInputY = Mouse.DirectInputY - 10;
      220. endif
      221. if (-1.2 < wiimote.Nunchuk.JoyX < -0.5)
      222. Mouse.DirectInputX = Mouse.DirectInputX - 10;
      223. endif
      224. if (0.5 < wiimote.Nunchuk.JoyX < 1.2)
      225. Mouse.DirectInputX = Mouse.DirectInputX + 10;
      226. endif
      227. //----------------------------------------------
      228. //activate wiimote aiming by holding A
      229. if (Wiimote1.A)and(Wiimote1.Pitch) < -5 degrees
      230. Mouse.DirectInputY = Mouse.DirectInputY + 3
      231. endif
      232. if (Wiimote1.A)and(Wiimote1.Pitch) > 15 degrees
      233. Mouse.DirectInputY = Mouse.DirectInputY - 3
      234. endif
      235. if (Wiimote1.A)and(Wiimote1.Roll) < -15 degrees
      236. Mouse.DirectInputX = Mouse.DirectInputX - 10
      237. endif
      238. if (Wiimote1.A)and(Wiimote1.Roll) > 15 degrees
      239. Mouse.DirectInputX = Mouse.DirectInputX + 10
      240. endif
      241. if (Wiimote1.A)and(Wiimote1.Pitch) < -15 degrees
      242. Mouse.DirectInputY = Mouse.DirectInputY + 5
      243. endif
      244. if (Wiimote1.A)and(Wiimote1.Pitch) > 25 degrees
      245. Mouse.DirectInputY = Mouse.DirectInputY - 5
      246. endif
      247. if (Wiimote1.A)and(Wiimote1.Roll) < -25 degrees
      248. Mouse.DirectInputX = Mouse.DirectInputX - 20
      249. endif
      250. if (Wiimote1.A)and(Wiimote1.Roll) > 25 degrees
      251. Mouse.DirectInputX = Mouse.DirectInputX + 20
      252. endif
      253. // shoot with C
      254. var.Fire = Wiimote1.Nunchuk.CButton
      255. Mouse.LeftButton = var.Fire
      256. Mouse.RightButton = Wiimote1.Nunchuk.ZButton
      257. // exit with Z
      258. if pressed(Mouse.RightButton) then
      259. Say("Ranged Weapon Mode")
      260. var.F = false
      261. var.B = true
      262. endif
      263. endif
      264. //If You Access the Menu The Controls become
      265. if var.H == true then
      266. var.S = false
      267. var.B = false
      268. var.F = false
      269. //WASD becomes D pad
      270. Key.W = Wiimote1.Up
      271. Key.A = Wiimote.Left
      272. Key.S = Wiimote.Down
      273. Key.D = Wiimote.Right
      274. // Move the curser with the Nunchuk analog
      275. if (-1.2 < wiimote.Nunchuk.JoyY < -0.5)
      276. Mouse.DirectInputY = Mouse.DirectInputY - 10;
      277. endif
      278. if (0.5 < wiimote.Nunchuk.JoyY < 1.2)
      279. Mouse.DirectInputY = Mouse.DirectInputY + 10;
      280. endif
      281. if (-1.2 < wiimote.Nunchuk.JoyX < -0.5)
      282. Mouse.DirectInputX = Mouse.DirectInputX - 10;
      283. endif
      284. if (0.5 < wiimote.Nunchuk.JoyX < 1.2)
      285. Mouse.DirectInputX = Mouse.DirectInputX + 10;
      286. endif
      287. // Press A for left mouse button
      288. Mouse.LeftButton = Wiimote1.A
      289. // Press B for Right mouse button
      290. Mouse.RightButton = Wiimote1.B
      291. endif
      Alles anzeigen


      Wird morgen auch mal getestet. (Muss ich aber alles auf dem Laptop machen, Bluetoth Stick ist noch nicht da -.-)
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • So, grad mal ne Runde Jedi Knight gezoggt.
      Das macht ne Menge Spaß damit!

      Das Script ist sogar mit Rumble und Sound-Funktion geschrieben 8)
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • So...
      Ich hab endlich ein fertiges Script fertig... (also eines wo Ich mir beim Spielen nicht immer denke "hm wäre jetzt nett mal die Kameraperspektive zu wechseln... ach... hab Ich ja noch keinen Button für" etc.^^)
      muss allerdings nochmal schön ins Reine geschrieben werden, aber dann ist es wohl das beste und kompletteste das Ich bis jetzt selbst geschrieben hab
      Hier könnte meine Signatur stehen!
    • soho...
      und da ist das gute Stück:
      Spoiler anzeigen

      Quellcode

      1. //Nerd's BF42 WiiMote Luft I
      2. // Version 1.0
      3. // Steuerung nur mit WiiMote
      4. //Einstellungen in BF42
      5. //_Optionen -> Steuerung -> In Der Luft
      6. // Schub / Schubumkehr: Pfeiltaste Auf / Pfeiltaste Ab
      7. // Ruder links / Ruder rechts: Pfeiltaste Links / Pfeiltaste Rechts
      8. // Nase hoch / Nase runter: Mausachse 1
      9. // Rollen links / Rollen rechts: Mausachse 0
      10. // Feuer / Alt. Feuer: Leertaste / Strg
      11. // Maussicht umschalten: V
      12. // [x] Maus umkehren
      13. //_Optionen -> Steuerung -> Allgemein
      14. // Ein- und aussteigen (Fahrzeug): E
      15. // Falschirmabsprung: T
      16. // Karte zeigen: M
      17. // Karte vergrößern: N
      18. // Kamera umschalten: C
      19. //Steuerung per WiiMote
      20. // WiiMote aktivieren / deaktivieren: "Home"
      21. //_Flugzeug
      22. // Schub / Schubumkehr: "+" / "-"
      23. // Ruder links / Ruder rechts: Steuerkreuz links / Steuerkreuz rechts
      24. // Nase hoch / Nase runter: WiiMote nach vorne / hinten neigen
      25. // Rollen links / Rollen rechts: WiiMote nach links / rechts neigen
      26. // Feuer / Alt. Feuer: "1" / "2"
      27. //_Funksprüche
      28. // F1: "B" + Steuerkreuz links
      29. // F2: "B" + Steuerkreuz links hoch
      30. // F3: "B" + Steuerkreuz hoch
      31. // etc.
      32. //_Im Cockpit umsehen
      33. // Maussicht umschalten: "1" + "2" (zuerst "1" drücken! dann "2" dazu)
      34. // "1" + "2" gedrückt halten und umsehen mit dem Steuerkreuz
      35. //_Rest
      36. // Karte zeigen: Steuerkreuz runter
      37. // Karte vergrößern: Steuerkreuz hoch
      38. // Ein- und Aussteigen (Fahrzeug): "B" + "A" + "1"
      39. // Fallschirmabsprung: "B" + "A" + "2"
      40. // Kamera umschalten: "A"
      41. //Kalibrieren:
      42. // WiiMote flach auf den Tisch legen, Buttons nach oben
      43. // "Run" klicken und die Werte aus dem Debugfenster im Script eintragen:
      44. var.trimP = 0 //<- hier ersten Wert aus dem Debugfenster eintragen
      45. var.trimR = 0 //<- hier zweiten Wert aus dem Debufenster eintragen
      46. //_Ruhezonen festlegen:
      47. var.NSPdead = 15 // Ruhezone für Neigung nach links / rechts (Pitch)
      48. var.NSRdead = 20 // Ruhezone für Neigung nach vorne / hinten (Roll)
      49. var.NSP = (sin(WiiMote.SmoothPitch) * 100) + ((-1) * var.trimP) // Offset, var.NSP sollte ca. 0 ergeben
      50. var.NSR = (sin(WiiMote.SmoothRoll) * 100) + ((-1) * var.trimR) // Offset, var.NSR sollte ca. 0 ergeben
      51. debug = var.NSP + " :var.trimP | var.trimR: " + var.NSR
      52. if WiiMote.Home
      53. if var.HomePressed = 0
      54. if var.Active = 0
      55. var.Active = 1
      56. WiiMote.Rumble = 1
      57. wait 100 ms
      58. WiiMote.Rumble = 0
      59. WiiMote.LEDs = 6
      60. else
      61. var.Active = 0
      62. Keyboard.Up = 0
      63. Keyboard.Left = 0
      64. Keyboard.Down = 0
      65. Keyboard.Right = 0
      66. Keyboard.Space = 0
      67. Keyboard.Ctrl = 0
      68. Keyboard.C = 0
      69. Keyboard.M = 0
      70. Keyboard.N = 0
      71. Keyboard.T = 0
      72. Keyboard.E = 0
      73. Keyboard.V = 0
      74. var.Mouselook = 0
      75. var.Schub = 0
      76. WiiMote.LEDs = 0
      77. WiiMote.Rumble = 1
      78. wait 100 ms
      79. WiiMote.Rumble = 0
      80. endif
      81. var.HomePressed = 1
      82. endif
      83. else
      84. if var.HomePressed = 1 then var.HomePressed = 0
      85. endif
      86. if var.Active = 1
      87. //1: Code-ANFANG
      88. //1: Rollen durch Neigen der WiiMote
      89. if var.Mouselook = 0 //nur falls keine Maussicht aktiviert
      90. if (var.NSP < var.NSPdead) and (var.NSP > (-1 * var.NSPdead))
      91. var.NSP = 0
      92. else
      93. if var.NSP < 0 //Neigung nach links
      94. //Keyboard.A = 1
      95. //Keyboard.D = 0
      96. var.NSP = var.NSP + var.NSPdead
      97. if var.NSP > -10
      98. var.NSP = (-1 * (var.NSP / 5))
      99. elseif (var.NSP <= -10) and (var.NSP > -25)
      100. var.NSP = (-1 * (var.NSP / 2))
      101. elseif (var.NSP <= -25) and (var.NSP > -40)
      102. var.NSP = (-1 * (var.NSP))
      103. else
      104. var.NSP = (-1 * (var.NSP * 2))
      105. endif
      106. mouse.directinputx = mouse.directinputx - var.NSP
      107. else //Neigung nach rechts
      108. var.NSP = var.NSP * (-1)
      109. var.NSP = var.NSP + var.NSPdead
      110. if var.NSP > -10
      111. var.NSP = (-1 * (var.NSP / 5))
      112. elseif (var.NSP <= -10) and (var.NSP > -25)
      113. var.NSP = (-1 * (var.NSP / 2))
      114. elseif (var.NSP <= -25) and (var.NSP > -40)
      115. var.NSP = (-1 * (var.NSP))
      116. else
      117. var.NSP = (-1 * (var.NSP * 2))
      118. endif
      119. mouse.directinputx = mouse.directinputx + var.NSP
      120. //Keyboard.D = 1
      121. //Keyboard.A = 0
      122. endif
      123. endif
      124. //1: Nase hoch durch Neigen der WiiMote
      125. if (var.NSR < var.NSRdead) and (var.NSR > (-1 * var.NSRdead))
      126. var.NSR = 0
      127. else
      128. if var.NSR < 0 //Neigung nach vorne
      129. var.NSR = var.NSR + var.NSRdead
      130. if var.NSR > -10
      131. var.NSR = (-1 * (var.NSR / 5))
      132. elseif (var.NSR <= -10) and (var.NSR > -25)
      133. var.NSR = (-1 * (var.NSR / 2))
      134. elseif (var.NSR <= -25) and (var.NSR > -40)
      135. var.NSR = (-1 * (var.NSR))
      136. else
      137. var.NSR = (-1 * (var.NSR * 2))
      138. endif
      139. mouse.directinputy = mouse.directinputy + var.NSR
      140. else //Neigung nach hinten
      141. var.NSR = var.NSR * (-1)
      142. var.NSR = var.NSR + var.NSRdead
      143. if var.NSR > -10
      144. var.NSR = (-1 * (var.NSR / 5))
      145. elseif (var.NSR <= -10) and (var.NSR > -25)
      146. var.NSR = (-1 * (var.NSR / 2))
      147. elseif (var.NSR <= -25) and (var.NSR > -40)
      148. var.NSR = (-1 * (var.NSR))
      149. else
      150. var.NSR = (-1 * (var.NSR * 2))
      151. endif
      152. mouse.directinputy = mouse.directinputy - var.NSR
      153. endif
      154. endif
      155. endif
      156. //1: Seitenruder auf D-Pad < und >
      157. if WiiMote.B = 0 //nicht mit F-Tasten verwechseln :S sonst geht beim Funken der Motor aus^^
      158. //Seitenruder ANFANG
      159. if var.Mouselook = 0 //falls nicht gerade auf Maussicht umgeschaltet
      160. Keyboard.Right = WiiMote.Down
      161. Keyboard.Left = WiiMote.Up
      162. endif
      163. //Seitenruder ENDE
      164. //Schub ANFANG
      165. if WiiMote.Plus
      166. if var.PressedPlus = 0
      167. var.PressedPlus = 1
      168. if var.Schub < 1 then var.Schub ++
      169. endif
      170. else
      171. if var.PressedPlus = 1 then var.PressedPlus = 0
      172. endif
      173. if WiiMote.Minus
      174. if var.PressedMinus = 0
      175. var.PressedMinus = 1
      176. if var.Schub > -1 then var.Schub --
      177. endif
      178. else
      179. if var.PressedMinus = 1 then var.PressedMinus = 0
      180. endif
      181. endif
      182. if var.Schub > 0
      183. WiiMote.LEDs = 14
      184. Keyboard.Up = 1
      185. Keyboard.Down = 0
      186. elseif var.Schub < 0
      187. WiiMote.LEDs = 7
      188. Keyboard.Down = 1
      189. Keyboard.Up = 0
      190. elseif var.Schub = 0
      191. WiiMote.LEDs = 6
      192. Keyboard.Down = 0
      193. Keyboard.Up = 0
      194. endif
      195. //Schub ENDE
      196. //1: Feuer auf "1" und Alt.Feuer auf "2"
      197. if var.Mouselook = 0
      198. if (WiiMote.One = 0) or (WiiMote.Two = false)
      199. Keyboard.Space = WiiMote.One
      200. Keyboard.Ctrl = WiiMote.Two
      201. else
      202. Keyboard.Space = 0
      203. Keyboard.Ctrl = 0
      204. endif
      205. endif
      206. //1: Kameraperspektive wechseln per "A"
      207. if WiiMote.B = 0
      208. Keyboard.C = WiiMote.A
      209. endif
      210. //1: Code-ENDE
      211. //2: Code-ANFANG
      212. var.DIndex = 0
      213. if WiiMote.B
      214. if WiiMote.Up and not WiiMote.Left and not WiiMote.Right
      215. var.DU ++
      216. if var.DU >= 10
      217. //D-Pad nach oben
      218. var.DLU = 0
      219. var.DDL = 0
      220. var.DRD = 0
      221. var.DUR = 0
      222. var.DL = 0
      223. var.DD = 0
      224. var.DR = 0
      225. var.DU = 0
      226. var.DIndex = 1
      227. endif
      228. endif
      229. if WiiMote.Right and not WiiMote.Up and not wiiMote.Down
      230. var.DR ++
      231. if var.DR >= 10
      232. //D-Pad nach rechts
      233. var.DLU = 0
      234. var.DDL = 0
      235. var.DRD = 0
      236. var.DUR = 0
      237. var.DL = 0
      238. var.DD = 0
      239. var.DR = 0
      240. var.DU = 0
      241. var.DIndex = 3
      242. endif
      243. endif
      244. if WiiMote.Down and not WiiMote.Right and not WiiMote.Left
      245. var.DD ++
      246. if var.DD >= 10
      247. //D-Pad nach unten
      248. var.DLU = 0
      249. var.DDL = 0
      250. var.DRD = 0
      251. var.DUR = 0
      252. var.DL = 0
      253. var.DD = 0
      254. var.DR = 0
      255. var.DU = 0
      256. var.DIndex = 5
      257. endif
      258. endif
      259. if WiiMote.Left and not WiiMote.Up and not WiiMote.Down
      260. var.DL ++
      261. if var.DL >= 10
      262. //D-pad nach links
      263. var.DLU = 0
      264. var.DDL = 0
      265. var.DRD = 0
      266. var.DUR = 0
      267. var.DL = 0
      268. var.DD = 0
      269. var.DR = 0
      270. var.DU = 0
      271. var.DIndex = 7
      272. endif
      273. endif
      274. if WiiMote.Up and not WiiMote.Left and WiiMote.Right
      275. var.DUR ++
      276. if var.DUR >= 10
      277. //D-Pad nach oben rechts
      278. var.DLU = 0
      279. var.DDL = 0
      280. var.DRD = 0
      281. var.DUR = 0
      282. var.DL = 0
      283. var.DD = 0
      284. var.DR = 0
      285. var.DU = 0
      286. var.DIndex = 2
      287. endif
      288. endif
      289. if WiiMote.Right and not WiiMote.Up and WiiMote.Down
      290. var.DRD ++
      291. if var.DRD >= 10
      292. //D-Pad nach unten rechts
      293. var.DLU = 0
      294. var.DDL = 0
      295. var.DRD = 0
      296. var.DUR = 0
      297. var.DL = 0
      298. var.DD = 0
      299. var.DR = 0
      300. var.DU = 0
      301. var.DIndex = 4
      302. endif
      303. endif
      304. if WiiMote.Down and not WiiMote.Right and WiiMote.Left
      305. var.DDL ++
      306. if var.DDL >= 10
      307. //D-Pad nach unten links
      308. var.DLU = 0
      309. var.DDL = 0
      310. var.DRD = 0
      311. var.DUR = 0
      312. var.DL = 0
      313. var.DD = 0
      314. var.DR = 0
      315. var.DU = 0
      316. var.DIndex = 6
      317. endif
      318. endif
      319. if WiiMote.Left and not WiiMote.Down and WiiMote.Up
      320. var.DLU ++
      321. if var.DLU >= 10
      322. //D-Pad nach oben links
      323. var.DLU = 0
      324. var.DDL = 0
      325. var.DRD = 0
      326. var.DUR = 0
      327. var.DL = 0
      328. var.DD = 0
      329. var.DR = 0
      330. var.DU = 0
      331. var.DIndex = 8
      332. endif
      333. endif
      334. else
      335. var.DLU = 0
      336. var.DDL = 0
      337. var.DRD = 0
      338. var.DUR = 0
      339. var.DL = 0
      340. var.DD = 0
      341. var.DR = 0
      342. var.DU = 0
      343. endif
      344. if var.DIndex = 1 then Keyboard.F1 = 1
      345. if var.DIndex = 2 then Keyboard.F2 = 1
      346. if var.DIndex = 3 then Keyboard.F3 = 1
      347. if var.DIndex = 4 then Keyboard.F4 = 1
      348. if var.DIndex = 5 then Keyboard.F5 = 1
      349. if var.DIndex = 6 then Keyboard.F6 = 1
      350. if var.DIndex = 7 then Keyboard.F7 = 1
      351. if var.DIndex = 8 then Keyboard.F8 = 1
      352. if var.DIndex = 0
      353. Keyboard.F1 = 0
      354. Keyboard.F2 = 0
      355. Keyboard.F3 = 0
      356. Keyboard.F4 = 0
      357. Keyboard.F5 = 0
      358. Keyboard.F6 = 0
      359. Keyboard.F7 = 0
      360. Keyboard.F8 = 0
      361. endif
      362. //2: Code-ENDE
      363. //3: Code-ANFANG
      364. //3: Karte aufrufen und Karte zoomen
      365. if WiiMote.B = 0
      366. if var.Mouselook = 0
      367. Keyboard.M = WiiMote.Left
      368. Keyboard.N = WiiMote.Right
      369. endif
      370. endif
      371. //3: Aussteigen und Fallschirm ziehen
      372. if WiiMote.B and WiiMote.A
      373. Keyboard.T = WiiMote.Two
      374. Keyboard.E = WiiMote.One
      375. endif
      376. //3: Code-ENDE
      377. //4: Code-ANFANG
      378. if WiiMote.One and WiiMote.Two and not Wiimote.B
      379. //auf Maussicht umschalten
      380. var.Mouselook = 1
      381. Keyboard.V = 1
      382. if WiiMote.Right then Mouse.directinputy = Mouse.directinputy - 25
      383. if WiiMote.Down then Mouse.directinputx = Mouse.directinputx + 25
      384. if WiiMote.Left then Mouse.directinputy = Mouse.directinputy + 25
      385. if WiiMote.Up then Mouse.directinputx = Mouse.directinputx - 25
      386. else
      387. if var.Mouselook = 1
      388. wait 250 ms
      389. var.Mouselook = 0
      390. Keyboard.V = 0
      391. endif
      392. endif
      393. //4: Code-ENDE
      394. endif
      Alles anzeigen


      und Übersicht über die Steuerung:
      //Steuerung per WiiMote
      // WiiMote aktivieren / deaktivieren: "Home"
      //_Flugzeug
      // Schub / Schubumkehr: "+" / "-"
      // Ruder links / Ruder rechts: Steuerkreuz links / Steuerkreuz rechts
      // Nase hoch / Nase runter: WiiMote nach vorne / hinten neigen
      // Rollen links / Rollen rechts: WiiMote nach links / rechts neigen
      // Feuer / Alt. Feuer: "1" / "2"
      //_Funksprüche
      // F1: "B" + Steuerkreuz links
      // F2: "B" + Steuerkreuz links hoch
      // F3: "B" + Steuerkreuz hoch
      // etc.
      //_Im Cockpit umsehen
      // Maussicht umschalten: "1" + "2" (zuerst "1" drücken! dann "2" dazu)
      // "1" + "2" gedrückt halten und umsehen mit dem Steuerkreuz
      //_Rest
      // Karte zeigen: Steuerkreuz runter
      // Karte vergrößern: Steuerkreuz hoch
      // Ein- und Aussteigen (Fahrzeug): "B" + "A" + "1"
      // Fallschirmabsprung: "B" + "A" + "2"
      // Kamera umschalten: "A"


      man kann also jetzt die Funksprüche über die F-Tasten verwenden, kann aussteigen (und sogar den Fallschirm ziehen per WiiMote :rofl: ) hat eine Möglichkeit sich im Cockpit umzusehen (das hat nicht mal mein Joystick :[ leider) und hat eine vernünftige Steuerung durch Neigung der WiiMote (hab's jetzt mal auf die Mausachsen gelegt anstatt auf Tasten, da hat man mehr Spielraum)
      funktioniert schon wesentlich besser als die Version mit den Tasten...
      das einzige was mir noch immer nicht hundertprozentig gefällt ist das Beschleunigen / Bremsen, aber ohne emulierten Joystick gibt's auch keinen emulierten Schubregler und deshalb muss es wohl bei einem einfachen "vorwärts","kein Schub","rückwärts" bleiben, ohne bessere Unterteilungen :[

      trotzdem spielt es sich damit schon ganz annehmbar und man hat alle wichtigen Funktionen direkt über die WiiMote verfügbar (Karte, ein-/aussteigen, Fallschirm, F-Tasten, Maussicht, etc...)

      mir gefällts :]
      Hier könnte meine Signatur stehen!
    • Sehr schön! :thumbsup:
      Werd ich gleich testen wenn mein BLuetoothstick da ist.

      Ich arbeite ja auch grade an einer Steuereung, für Dark Messiah.
      Aber das Schwertschwingen in Verbindung mit IR ist schon ziemlich kompliziert :rolleyes:^^
      Blinder Aktionismus, tauber Pazifismus, stummer Protest, ich hänge ab wie Jesus Christus über dem Fernseher in bayrischen Wohnzimmern, während IKEA-Schreiner dem
      Kapital sein Thron zimmern, während Endemol dein Gehirn weichspült, sich noch der armseligste Zuschauer reich fühlt, wenn er wen sieht, der noch ärmer ist, ich glaub dass niemand dümmer als Johannes B. Kerner ist
    • Ja, mit IR ist irgendwie alles ein bisschen kompliziert^^
      drum lass Ich davon auch die Finger, das können andere besser als Ich

      so...
      als nächstes wird dann eine Flugzeugsteuerung mit WiiMote + Nunchuk gebastelt 8) (natürlich wieder für BF42, sonst hab Ich ja keine Spiele :rofl: )

      mmmh... Hitman per WiiMote? hrhr... Klaviersaite via WiiMote und Nunchuk ist sicher spitze :rofl:
      Hier könnte meine Signatur stehen!