Gouvernator
2012-06-22, 12:59:39
Ich hab grade Wiimote+Nunchuck für Diablo umfunktioniert. Bis jetzt bestes PC Game das man mit Wiimote zocken kann. Es ist wie geschaffen zueinander. ;D
GlovePIE und diverse zusammen kopierte Scripts machen es möglich.
Seitens Blizzard könnte man Diablo locker Gamepad tauglich machen. Was sie aktuell aber gar nicht wollen.
Blizzard hat Experimente mit einer Gamepad-Steuerung durchgeführt. In einem Interview verrät Game Director Jay Wilson, dass man mit verschiedenen Kontroll-Schemata experimentiert habe. "Einer der Gründe warum wir über eine Konsolen-Version von Diablo 3 nachdenken, ist das Kontrollschema einer Konsole. Als wir Experimente mit einem Xbox 360-ähnlichen Analog-Controller durchgeführt haben, habe ich gemerkt, dass sich direkte Kontrolle für Diablo 3 sogar noch besser anfühlen kann."
Dennoch wird Diablo 3 zumindest vorerst lediglich die klassische PC-Steuerung bieten. "Ich kann garantieren, dass wir Gamepads auf dem PC unterstützen, falls wir eine Konsolen-Version erstellen sollten. Aber ich glaube nicht, dass wir schon beim Release so weit sein werden"
Ich habe zwar D3Gamepad aus dem Blizzard-Forum geladen und mit Xbox360 Controller ausprobiert aber die Wiimote toppt es noch mal. Es ist einfach mit perfekt zu beschreiben. Aktuell spiele ich den Zauber deswegen gilt es auch nur für seine Moves. :biggrin:
Aber generell kann man die Knöpfe für jede Skill-Richtung belegen. Blizzard mag zwar keine Makros aber da sie D3Gamepad tolerieren sehe ich es nicht als Cheat... Der Vorteil der Wiimote gegenüber dem Xbox-Controller liegt in der Geschwindigkeit des Cursors. Mit Wiimotion Plus ist der fast so genau wie eine Maus, es gibt nur bisschen mehr Lag. Man läuft quer durch die Karte quasi aus dem Handgelenk. Es ist viel einfacher in dieser Perspektive mit dem Handgelenk zu orientieren statt mit der Maus. Diverse Strahlen-Zauber machen so um einiges mehr Spaß. Und der Nunchuck in anderer Hand ist mit 6 Knöpfchen für zwei Finger viel zugänglicher als Tastatur-Tasten oder seitliche Maustasten. Man haut Kombos viel schneller raus weil es ist wirklich nur die eine Bewegung auf dem Stick um 1 2 3 4 zu erreichen. Dann kommt ein simpler Script zum Einsatz wo beim stehen bleiben die Standard Attack automatisch ausgeführt wird. Solange also die Linke Maustaste automatisch angreift muss man nur auf die andere Angriffe konzentrieren. Ich freue mich diesbezüglich schon auf Teleport Skill... ;D
So macht Diablo3 richtig Fun! Habe die ersten 10 Level mit Wiimote gespielt, dann die nächsten 7 Level mit Maus und ab dann bis jetzt mit Stufe 22 wieder mit Wiimote. Es ist nicht mehr ödes herum klicken sondern spaßiges rennen und hauen. Meine Motivation Diablo zu spielen wird ziemlich gesteigert wenn dieses dröges Mausgefühl weg ist.
Hier ist ein Video (http://youtu.be/UAGAm8_e0BE) von jemand anderem. Dieser Code ist komplett auf Wiimotion Plus optimiert so das man keine Sensor Bar braucht und der Cursor ist völlig frei von der Richtung in welche man ihn halten muss. Es ist quasi die behindertengerechte Version, die mir auch so gut gefällt... Man liegt praktisch im Bett und kann die Hand irgendwo baumeln lassen. Und alles ist auf Knöpfe gelegt man muss also nicht mit Wiimote oder Nunchuck in der Luft fuchteln. Ich optimiere zur Zeit noch den Script für Knöpfe das man quasi D3 nur mit einem Knopf spielen kann.^^ Ich mag es zum Beispiel durch die Map einfach zu laufen ohne was gedrückt zu halten , nur mit dem Handgelenk die Richtung vorzugeben. Überall solche Trigger einzubauen das man jeweils durch ganz wenige Klicks Monster klopft und Loot einsammelt.
Erst in Spiel "b" Taste für Bewegen festlegen.
/*
WiiMotion Plus Mouse v 2010.01.08
by lednerg
Emulates the basic functionality of a Gyration Air Mouse.
Requires GlovePIE version .40 or higher.
Leave the Wiimote on your desk when starting so it can calibrate.
Minus re-calibrates, just in case you need it.
Nunchuck is for Skills 1-2-3-4; show Items on the floor; and Mouse Right Button (Z-Button).
You ran automatically in any direction from Wiimotion Plus. Select in Diablo "B" Button to run. You will stop if Wiimote B or Z-Button was once pressed. Hold Wiimote A to stand attack with Left Mouse.
Wiimote Minus is calibrating Button. Be careful its very sensitive. Wiimote Plus is for deactivated cursor.
*/
var.Speed = 86 // 0 to 100
PIE.FrameRate = 120hz
if wiimote.HasMotionPlus = false then debug = "WiiMotion Plus NOT DETECTED!"
if var.init = false and wiimote.HasMotionPlus = true {
debug = "Please place the Wiimote down. CALIBRATING -
" + int(EnsureMapRange(RemoveUnits(abs(Delta(Smooth(wiimote.MotionPlus.YawSpeed, 60)))), 1, .005, 0, 100)) + "%"
if abs(Delta(Smooth(wiimote.MotionPlus.YawSpeed, 60))) < .005 then var.CalibYaw = smooth(wiimote.MotionPlus.YawSpeed, 60)
if abs(Delta(Smooth(wiimote.MotionPlus.PitchSpeed, 60))) < .005 then var.CalibPitch = smooth(wiimote.MotionPlus.PitchSpeed, 60)
if abs(var.CalibYaw) > 0 and abs(var.CalibPitch) > 0 then var.init = true
}
if var.init = true and var.MoveButton = false {
var.YawSpeed = wiimote.MotionPlus.YawSpeed - var.CalibYaw
Deadzone =wiimote.MotionPlus.YawSpeed = 1
Deadzone =wiimote.MotionPlus.PitchSpeed = 3.3
var.PitchSpeed = wiimote.MotionPlus.PitchSpeed - var.CalibPitch
if SameValue( Smooth(wiimote.SmoothRoll, 10), wiimote.SmoothRoll, 10) then var.Roll = Smooth(wiimote.SmoothRoll, 10) else var.Roll = wiimote.SmoothRoll
if var.Roll < 0 and var.Roll >= -90 {
var.XYswap = 1 - EnsureMapRange(var.Roll, -90, 0, 0, 1)
var.RightDown = -1
var.TopUp = 1
}
if var.Roll <= 90 and var.Roll >= 0 {
var.XYswap = 1 - EnsureMapRange(var.Roll, 90, 0, 0, 1)
var.RightDown = 1
var.TopUp = 1
}
if var.Roll > 90 and var.Roll <= 180 {
var.XYswap = 1 - EnsureMapRange(var.Roll, 90, 180, 0, 1)
var.RightDown = 1
var.TopUp = -1
}
if var.Roll < -90 and var.Roll >= -180 {
var.XYswap = 1 - EnsureMapRange(var.Roll, -90, -180, 0, 1)
var.RightDown = -1
var.TopUp = -1
}
var.SpeedX = var.TopUp * var.YawSpeed - ( var.TopUp * var.YawSpeed * var.XYswap ) + ( var.RightDown * var.PitchSpeed * var.XYswap )
var.SpeedY = var.TopUp * var.PitchSpeed - ( var.TopUp * var.PitchSpeed * var.XYswap) + ( -var.RightDown * var.YawSpeed * var.XYswap )
mouse.DirectInputX = int(var.MouseX)
mouse.DirectInputY = int(var.MouseY)
var.MouseX = var.MouseX +( var.SpeedX / (10000000 - EnsureMapRange(var.Speed, 0, 100, 0, 10000000) ) )
var.MouseY = var.MouseY - ( var.SpeedY / (10000000 - EnsureMapRange(var.Speed, 0, 100, 0, 10000000) ) )
/* // for mouse.x and mouse.y instead
mouse.x = var.MouseX
mouse.y = var.MouseY
var.MouseX = var.MouseX + ( var.SpeedX / (20500 - EnsureMapRange(var.Speed, 0, 100, 0, 20000) ) )
var.MouseY = var.MouseY - ( var.SpeedY / (20500 - EnsureMapRange(var.Speed, 0, 100, 0, 20000) ) )
*/
}
if var.MoveButton = true {
var.MouseX = mouse.DirectInputX
var.MouseY = mouse.DirectInputY
/* // for mouse.x and mouse.y instead
var.MouseX = mouse.x
var.MouseY = mouse.y
*/
}
if var.init = true and var.CalibrateButton = false {
debug = "CALIBRATED"
}
if var.init != false and var.CalibrateButton = true {
var.init = "waiting"
debug = "Please place the Wiimote down."
var.CalibYawdeadzone = 1500
var.CalibPitchdeadzone = 1500
var.CalibYaw = 0
var.CalibPitch = 0
var.YawSpeedDeadzone = 8
var.PitchSpeedDeadzone = 8
wait 3 seconds
var.init = false
}
var.Mouse_Speed_X = int(abs(delta(var.Mouse_X))*1000)
var.Mouse_Speed_Y = int(abs(delta(var.Mouse_Y))*1000)
var.Mouse_Speed_XY = int(sqrt(var.Mouse_Speed_X + var.Mouse_Speed_Y) * var.Mouse_Precision)
IF var.Mouse_Speed_XY >= 30 THEN var.Mouse_SmoothHold = 0 ELSE var.Mouse_SmoothHold = 30 - var.Mouse_Speed_XY
var.Mouse_SmoothLimit = 30 - EnsureRange(var.Mouse_Precision*2, 0, 30)
IF var.Mouse_SmoothHold < var.Mouse_Smooth THEN var.Mouse_Smooth = var.Mouse_Smooth - (1 + int(EnsureMapRange(var.Mouse_SmoothHold, 0, 30, 30, 0)))
IF var.Mouse_SmoothHold > var.Mouse_Smooth OR (var.Mouse_SmoothHold = 30 AND var.Mouse_Smooth <= 29) {
wait EnsureMapRange(var.Mouse_Smooth, 0, 29, 0, 100)ms
IF var.Mouse_Smooth < var.Mouse_SmoothLimit THEN var.Mouse_Smooth++
}
IF var.Mouse_Smooth <= 0 THEN var.Mouse_Smooth = 0
IF var.Mouse_Smooth <= 0 THEN var.CursorX = var.Mouse_X
IF var.Mouse_Smooth <= 0 THEN var.CursorY = var.Mouse_Y
IF var.Mouse_Smooth = 1 THEN var.CursorX = Smooth(var.Mouse_X, 1)
IF var.Mouse_Smooth = 1 THEN var.CursorY = Smooth(var.Mouse_Y, 1)
IF var.Mouse_Smooth = 2 THEN var.CursorX = Smooth(var.Mouse_X, 2)
IF var.Mouse_Smooth = 2 THEN var.CursorY = Smooth(var.Mouse_Y, 2)
IF var.Mouse_Smooth = 3 THEN var.CursorX = Smooth(var.Mouse_X, 3)
IF var.Mouse_Smooth = 3 THEN var.CursorY = Smooth(var.Mouse_Y, 3)
IF var.Mouse_Smooth = 4 THEN var.CursorX = Smooth(var.Mouse_X, 4)
IF var.Mouse_Smooth = 4 THEN var.CursorY = Smooth(var.Mouse_Y, 4)
IF var.Mouse_Smooth = 5 THEN var.CursorX = Smooth(var.Mouse_X, 5)
IF var.Mouse_Smooth = 5 THEN var.CursorY = Smooth(var.Mouse_Y, 5)
IF var.Mouse_Smooth = 6 THEN var.CursorX = Smooth(var.Mouse_X, 6)
IF var.Mouse_Smooth = 6 THEN var.CursorY = Smooth(var.Mouse_Y, 6)
IF var.Mouse_Smooth = 7 THEN var.CursorX = Smooth(var.Mouse_X, 7)
IF var.Mouse_Smooth = 7 THEN var.CursorY = Smooth(var.Mouse_Y, 7)
IF var.Mouse_Smooth = 8 THEN var.CursorX = Smooth(var.Mouse_X, 8)
IF var.Mouse_Smooth = 8 THEN var.CursorY = Smooth(var.Mouse_Y, 8)
IF var.Mouse_Smooth = 9 THEN var.CursorX = Smooth(var.Mouse_X, 9)
IF var.Mouse_Smooth = 9 THEN var.CursorY = Smooth(var.Mouse_Y, 9)
IF var.Mouse_Smooth = 10 THEN var.CursorX = Smooth(var.Mouse_X, 10)
IF var.Mouse_Smooth = 10 THEN var.CursorY = Smooth(var.Mouse_Y, 10)
IF var.Mouse_Smooth = 11 THEN var.CursorX = Smooth(var.Mouse_X, 11)
IF var.Mouse_Smooth = 11 THEN var.CursorY = Smooth(var.Mouse_Y, 11)
IF var.Mouse_Smooth = 12 THEN var.CursorX = Smooth(var.Mouse_X, 12)
IF var.Mouse_Smooth = 12 THEN var.CursorY = Smooth(var.Mouse_Y, 12)
IF var.Mouse_Smooth = 13 THEN var.CursorX = Smooth(var.Mouse_X, 13)
IF var.Mouse_Smooth = 13 THEN var.CursorY = Smooth(var.Mouse_Y, 13)
IF var.Mouse_Smooth = 14 THEN var.CursorX = Smooth(var.Mouse_X, 14)
IF var.Mouse_Smooth = 14 THEN var.CursorY = Smooth(var.Mouse_Y, 14)
IF var.Mouse_Smooth = 15 THEN var.CursorX = Smooth(var.Mouse_X, 15)
IF var.Mouse_Smooth = 15 THEN var.CursorY = Smooth(var.Mouse_Y, 15)
IF var.Mouse_Smooth = 16 THEN var.CursorX = Smooth(var.Mouse_X, 16)
IF var.Mouse_Smooth = 16 THEN var.CursorY = Smooth(var.Mouse_Y, 16)
IF var.Mouse_Smooth = 17 THEN var.CursorX = Smooth(var.Mouse_X, 17)
IF var.Mouse_Smooth = 17 THEN var.CursorY = Smooth(var.Mouse_Y, 17)
IF var.Mouse_Smooth = 18 THEN var.CursorX = Smooth(var.Mouse_X, 18)
IF var.Mouse_Smooth = 18 THEN var.CursorY = Smooth(var.Mouse_Y, 18)
IF var.Mouse_Smooth = 19 THEN var.CursorX = Smooth(var.Mouse_X, 19)
IF var.Mouse_Smooth = 19 THEN var.CursorY = Smooth(var.Mouse_Y, 19)
IF var.Mouse_Smooth = 20 THEN var.CursorX = Smooth(var.Mouse_X, 20)
IF var.Mouse_Smooth = 20 THEN var.CursorY = Smooth(var.Mouse_Y, 20)
IF var.Mouse_Smooth = 21 THEN var.CursorX = Smooth(var.Mouse_X, 21)
IF var.Mouse_Smooth = 21 THEN var.CursorY = Smooth(var.Mouse_Y, 21)
IF var.Mouse_Smooth = 22 THEN var.CursorX = Smooth(var.Mouse_X, 22)
IF var.Mouse_Smooth = 22 THEN var.CursorY = Smooth(var.Mouse_Y, 22)
IF var.Mouse_Smooth = 23 THEN var.CursorX = Smooth(var.Mouse_X, 23)
IF var.Mouse_Smooth = 23 THEN var.CursorY = Smooth(var.Mouse_Y, 23)
IF var.Mouse_Smooth = 24 THEN var.CursorX = Smooth(var.Mouse_X, 24)
IF var.Mouse_Smooth = 24 THEN var.CursorY = Smooth(var.Mouse_Y, 24)
IF var.Mouse_Smooth = 25 THEN var.CursorX = Smooth(var.Mouse_X, 25)
IF var.Mouse_Smooth = 25 THEN var.CursorY = Smooth(var.Mouse_Y, 25)
IF var.Mouse_Smooth = 26 THEN var.CursorX = Smooth(var.Mouse_X, 26)
IF var.Mouse_Smooth = 26 THEN var.CursorY = Smooth(var.Mouse_Y, 26)
IF var.Mouse_Smooth = 27 THEN var.CursorX = Smooth(var.Mouse_X, 27)
IF var.Mouse_Smooth = 27 THEN var.CursorY = Smooth(var.Mouse_Y, 27)
IF var.Mouse_Smooth = 28 THEN var.CursorX = Smooth(var.Mouse_X, 28)
IF var.Mouse_Smooth = 28 THEN var.CursorY = Smooth(var.Mouse_Y, 28)
IF var.Mouse_Smooth = 29 THEN var.CursorX = Smooth(var.Mouse_X, 29)
IF var.Mouse_Smooth = 29 THEN var.CursorY = Smooth(var.Mouse_Y, 29)
IF var.Mouse_Smooth >= 30 THEN var.CursorX = Smooth(var.Mouse_X, 30)
IF var.Mouse_Smooth >= 30 THEN var.CursorY = Smooth(var.Mouse_Y, 30)
// Belegung
var.MoveButton = Wiimote.Plus // cursor deaktivieren
var.CalibrateButton = wiimote.Minus // Kalibrierung
// Maus rechte und linke Taste
Mouse.LeftButton = wiimote.A
mouse.RightButton = Nunchuk.ZButton
Mouse.LeftButton = wiimote.B
Key.I = Wiimote1.Down // Inventar
Key.S = Wiimote.Up // Skill menu
Key.Tab = Wiimote.Left // Map
Key.F = Wiimote.Right // Begleiter Menu
Key.q = Wiimote.Home // Life
// Nunchuck Analog Stick
Key.One = Nunchuk.Up // 1
Key.Two = Nunchuk.Down // 2
Key.Three = Nunchuk.CButton // 3
Key.Four = Nunchuk.Right // 4
Key.LeftAlt = Nunchuk.Left // Gegenstände auf dem Feld anzeigen
Key.T = Wiimote.One // Teleport
Key.L = Wiimote.Two // Quest Menu
// Stehend angreifen
Key.LeftShift = wiimote.a // attack left button
// Stehen bleiben
if Wiimote.B then var.MoveButton = 1 // cursor on hold
Key.B = wiimote.a =0
if wiimote.a then Key.b = 0 and Mouse.LeftButton = 1
If Clicked (Wiimote.B) or (Nunchuk.ZButton) then Key.B = 0 // B kurz drücken um das Rennen zu beenden
GlovePIE und diverse zusammen kopierte Scripts machen es möglich.
Seitens Blizzard könnte man Diablo locker Gamepad tauglich machen. Was sie aktuell aber gar nicht wollen.
Blizzard hat Experimente mit einer Gamepad-Steuerung durchgeführt. In einem Interview verrät Game Director Jay Wilson, dass man mit verschiedenen Kontroll-Schemata experimentiert habe. "Einer der Gründe warum wir über eine Konsolen-Version von Diablo 3 nachdenken, ist das Kontrollschema einer Konsole. Als wir Experimente mit einem Xbox 360-ähnlichen Analog-Controller durchgeführt haben, habe ich gemerkt, dass sich direkte Kontrolle für Diablo 3 sogar noch besser anfühlen kann."
Dennoch wird Diablo 3 zumindest vorerst lediglich die klassische PC-Steuerung bieten. "Ich kann garantieren, dass wir Gamepads auf dem PC unterstützen, falls wir eine Konsolen-Version erstellen sollten. Aber ich glaube nicht, dass wir schon beim Release so weit sein werden"
Ich habe zwar D3Gamepad aus dem Blizzard-Forum geladen und mit Xbox360 Controller ausprobiert aber die Wiimote toppt es noch mal. Es ist einfach mit perfekt zu beschreiben. Aktuell spiele ich den Zauber deswegen gilt es auch nur für seine Moves. :biggrin:
Aber generell kann man die Knöpfe für jede Skill-Richtung belegen. Blizzard mag zwar keine Makros aber da sie D3Gamepad tolerieren sehe ich es nicht als Cheat... Der Vorteil der Wiimote gegenüber dem Xbox-Controller liegt in der Geschwindigkeit des Cursors. Mit Wiimotion Plus ist der fast so genau wie eine Maus, es gibt nur bisschen mehr Lag. Man läuft quer durch die Karte quasi aus dem Handgelenk. Es ist viel einfacher in dieser Perspektive mit dem Handgelenk zu orientieren statt mit der Maus. Diverse Strahlen-Zauber machen so um einiges mehr Spaß. Und der Nunchuck in anderer Hand ist mit 6 Knöpfchen für zwei Finger viel zugänglicher als Tastatur-Tasten oder seitliche Maustasten. Man haut Kombos viel schneller raus weil es ist wirklich nur die eine Bewegung auf dem Stick um 1 2 3 4 zu erreichen. Dann kommt ein simpler Script zum Einsatz wo beim stehen bleiben die Standard Attack automatisch ausgeführt wird. Solange also die Linke Maustaste automatisch angreift muss man nur auf die andere Angriffe konzentrieren. Ich freue mich diesbezüglich schon auf Teleport Skill... ;D
So macht Diablo3 richtig Fun! Habe die ersten 10 Level mit Wiimote gespielt, dann die nächsten 7 Level mit Maus und ab dann bis jetzt mit Stufe 22 wieder mit Wiimote. Es ist nicht mehr ödes herum klicken sondern spaßiges rennen und hauen. Meine Motivation Diablo zu spielen wird ziemlich gesteigert wenn dieses dröges Mausgefühl weg ist.
Hier ist ein Video (http://youtu.be/UAGAm8_e0BE) von jemand anderem. Dieser Code ist komplett auf Wiimotion Plus optimiert so das man keine Sensor Bar braucht und der Cursor ist völlig frei von der Richtung in welche man ihn halten muss. Es ist quasi die behindertengerechte Version, die mir auch so gut gefällt... Man liegt praktisch im Bett und kann die Hand irgendwo baumeln lassen. Und alles ist auf Knöpfe gelegt man muss also nicht mit Wiimote oder Nunchuck in der Luft fuchteln. Ich optimiere zur Zeit noch den Script für Knöpfe das man quasi D3 nur mit einem Knopf spielen kann.^^ Ich mag es zum Beispiel durch die Map einfach zu laufen ohne was gedrückt zu halten , nur mit dem Handgelenk die Richtung vorzugeben. Überall solche Trigger einzubauen das man jeweils durch ganz wenige Klicks Monster klopft und Loot einsammelt.
Erst in Spiel "b" Taste für Bewegen festlegen.
/*
WiiMotion Plus Mouse v 2010.01.08
by lednerg
Emulates the basic functionality of a Gyration Air Mouse.
Requires GlovePIE version .40 or higher.
Leave the Wiimote on your desk when starting so it can calibrate.
Minus re-calibrates, just in case you need it.
Nunchuck is for Skills 1-2-3-4; show Items on the floor; and Mouse Right Button (Z-Button).
You ran automatically in any direction from Wiimotion Plus. Select in Diablo "B" Button to run. You will stop if Wiimote B or Z-Button was once pressed. Hold Wiimote A to stand attack with Left Mouse.
Wiimote Minus is calibrating Button. Be careful its very sensitive. Wiimote Plus is for deactivated cursor.
*/
var.Speed = 86 // 0 to 100
PIE.FrameRate = 120hz
if wiimote.HasMotionPlus = false then debug = "WiiMotion Plus NOT DETECTED!"
if var.init = false and wiimote.HasMotionPlus = true {
debug = "Please place the Wiimote down. CALIBRATING -
" + int(EnsureMapRange(RemoveUnits(abs(Delta(Smooth(wiimote.MotionPlus.YawSpeed, 60)))), 1, .005, 0, 100)) + "%"
if abs(Delta(Smooth(wiimote.MotionPlus.YawSpeed, 60))) < .005 then var.CalibYaw = smooth(wiimote.MotionPlus.YawSpeed, 60)
if abs(Delta(Smooth(wiimote.MotionPlus.PitchSpeed, 60))) < .005 then var.CalibPitch = smooth(wiimote.MotionPlus.PitchSpeed, 60)
if abs(var.CalibYaw) > 0 and abs(var.CalibPitch) > 0 then var.init = true
}
if var.init = true and var.MoveButton = false {
var.YawSpeed = wiimote.MotionPlus.YawSpeed - var.CalibYaw
Deadzone =wiimote.MotionPlus.YawSpeed = 1
Deadzone =wiimote.MotionPlus.PitchSpeed = 3.3
var.PitchSpeed = wiimote.MotionPlus.PitchSpeed - var.CalibPitch
if SameValue( Smooth(wiimote.SmoothRoll, 10), wiimote.SmoothRoll, 10) then var.Roll = Smooth(wiimote.SmoothRoll, 10) else var.Roll = wiimote.SmoothRoll
if var.Roll < 0 and var.Roll >= -90 {
var.XYswap = 1 - EnsureMapRange(var.Roll, -90, 0, 0, 1)
var.RightDown = -1
var.TopUp = 1
}
if var.Roll <= 90 and var.Roll >= 0 {
var.XYswap = 1 - EnsureMapRange(var.Roll, 90, 0, 0, 1)
var.RightDown = 1
var.TopUp = 1
}
if var.Roll > 90 and var.Roll <= 180 {
var.XYswap = 1 - EnsureMapRange(var.Roll, 90, 180, 0, 1)
var.RightDown = 1
var.TopUp = -1
}
if var.Roll < -90 and var.Roll >= -180 {
var.XYswap = 1 - EnsureMapRange(var.Roll, -90, -180, 0, 1)
var.RightDown = -1
var.TopUp = -1
}
var.SpeedX = var.TopUp * var.YawSpeed - ( var.TopUp * var.YawSpeed * var.XYswap ) + ( var.RightDown * var.PitchSpeed * var.XYswap )
var.SpeedY = var.TopUp * var.PitchSpeed - ( var.TopUp * var.PitchSpeed * var.XYswap) + ( -var.RightDown * var.YawSpeed * var.XYswap )
mouse.DirectInputX = int(var.MouseX)
mouse.DirectInputY = int(var.MouseY)
var.MouseX = var.MouseX +( var.SpeedX / (10000000 - EnsureMapRange(var.Speed, 0, 100, 0, 10000000) ) )
var.MouseY = var.MouseY - ( var.SpeedY / (10000000 - EnsureMapRange(var.Speed, 0, 100, 0, 10000000) ) )
/* // for mouse.x and mouse.y instead
mouse.x = var.MouseX
mouse.y = var.MouseY
var.MouseX = var.MouseX + ( var.SpeedX / (20500 - EnsureMapRange(var.Speed, 0, 100, 0, 20000) ) )
var.MouseY = var.MouseY - ( var.SpeedY / (20500 - EnsureMapRange(var.Speed, 0, 100, 0, 20000) ) )
*/
}
if var.MoveButton = true {
var.MouseX = mouse.DirectInputX
var.MouseY = mouse.DirectInputY
/* // for mouse.x and mouse.y instead
var.MouseX = mouse.x
var.MouseY = mouse.y
*/
}
if var.init = true and var.CalibrateButton = false {
debug = "CALIBRATED"
}
if var.init != false and var.CalibrateButton = true {
var.init = "waiting"
debug = "Please place the Wiimote down."
var.CalibYawdeadzone = 1500
var.CalibPitchdeadzone = 1500
var.CalibYaw = 0
var.CalibPitch = 0
var.YawSpeedDeadzone = 8
var.PitchSpeedDeadzone = 8
wait 3 seconds
var.init = false
}
var.Mouse_Speed_X = int(abs(delta(var.Mouse_X))*1000)
var.Mouse_Speed_Y = int(abs(delta(var.Mouse_Y))*1000)
var.Mouse_Speed_XY = int(sqrt(var.Mouse_Speed_X + var.Mouse_Speed_Y) * var.Mouse_Precision)
IF var.Mouse_Speed_XY >= 30 THEN var.Mouse_SmoothHold = 0 ELSE var.Mouse_SmoothHold = 30 - var.Mouse_Speed_XY
var.Mouse_SmoothLimit = 30 - EnsureRange(var.Mouse_Precision*2, 0, 30)
IF var.Mouse_SmoothHold < var.Mouse_Smooth THEN var.Mouse_Smooth = var.Mouse_Smooth - (1 + int(EnsureMapRange(var.Mouse_SmoothHold, 0, 30, 30, 0)))
IF var.Mouse_SmoothHold > var.Mouse_Smooth OR (var.Mouse_SmoothHold = 30 AND var.Mouse_Smooth <= 29) {
wait EnsureMapRange(var.Mouse_Smooth, 0, 29, 0, 100)ms
IF var.Mouse_Smooth < var.Mouse_SmoothLimit THEN var.Mouse_Smooth++
}
IF var.Mouse_Smooth <= 0 THEN var.Mouse_Smooth = 0
IF var.Mouse_Smooth <= 0 THEN var.CursorX = var.Mouse_X
IF var.Mouse_Smooth <= 0 THEN var.CursorY = var.Mouse_Y
IF var.Mouse_Smooth = 1 THEN var.CursorX = Smooth(var.Mouse_X, 1)
IF var.Mouse_Smooth = 1 THEN var.CursorY = Smooth(var.Mouse_Y, 1)
IF var.Mouse_Smooth = 2 THEN var.CursorX = Smooth(var.Mouse_X, 2)
IF var.Mouse_Smooth = 2 THEN var.CursorY = Smooth(var.Mouse_Y, 2)
IF var.Mouse_Smooth = 3 THEN var.CursorX = Smooth(var.Mouse_X, 3)
IF var.Mouse_Smooth = 3 THEN var.CursorY = Smooth(var.Mouse_Y, 3)
IF var.Mouse_Smooth = 4 THEN var.CursorX = Smooth(var.Mouse_X, 4)
IF var.Mouse_Smooth = 4 THEN var.CursorY = Smooth(var.Mouse_Y, 4)
IF var.Mouse_Smooth = 5 THEN var.CursorX = Smooth(var.Mouse_X, 5)
IF var.Mouse_Smooth = 5 THEN var.CursorY = Smooth(var.Mouse_Y, 5)
IF var.Mouse_Smooth = 6 THEN var.CursorX = Smooth(var.Mouse_X, 6)
IF var.Mouse_Smooth = 6 THEN var.CursorY = Smooth(var.Mouse_Y, 6)
IF var.Mouse_Smooth = 7 THEN var.CursorX = Smooth(var.Mouse_X, 7)
IF var.Mouse_Smooth = 7 THEN var.CursorY = Smooth(var.Mouse_Y, 7)
IF var.Mouse_Smooth = 8 THEN var.CursorX = Smooth(var.Mouse_X, 8)
IF var.Mouse_Smooth = 8 THEN var.CursorY = Smooth(var.Mouse_Y, 8)
IF var.Mouse_Smooth = 9 THEN var.CursorX = Smooth(var.Mouse_X, 9)
IF var.Mouse_Smooth = 9 THEN var.CursorY = Smooth(var.Mouse_Y, 9)
IF var.Mouse_Smooth = 10 THEN var.CursorX = Smooth(var.Mouse_X, 10)
IF var.Mouse_Smooth = 10 THEN var.CursorY = Smooth(var.Mouse_Y, 10)
IF var.Mouse_Smooth = 11 THEN var.CursorX = Smooth(var.Mouse_X, 11)
IF var.Mouse_Smooth = 11 THEN var.CursorY = Smooth(var.Mouse_Y, 11)
IF var.Mouse_Smooth = 12 THEN var.CursorX = Smooth(var.Mouse_X, 12)
IF var.Mouse_Smooth = 12 THEN var.CursorY = Smooth(var.Mouse_Y, 12)
IF var.Mouse_Smooth = 13 THEN var.CursorX = Smooth(var.Mouse_X, 13)
IF var.Mouse_Smooth = 13 THEN var.CursorY = Smooth(var.Mouse_Y, 13)
IF var.Mouse_Smooth = 14 THEN var.CursorX = Smooth(var.Mouse_X, 14)
IF var.Mouse_Smooth = 14 THEN var.CursorY = Smooth(var.Mouse_Y, 14)
IF var.Mouse_Smooth = 15 THEN var.CursorX = Smooth(var.Mouse_X, 15)
IF var.Mouse_Smooth = 15 THEN var.CursorY = Smooth(var.Mouse_Y, 15)
IF var.Mouse_Smooth = 16 THEN var.CursorX = Smooth(var.Mouse_X, 16)
IF var.Mouse_Smooth = 16 THEN var.CursorY = Smooth(var.Mouse_Y, 16)
IF var.Mouse_Smooth = 17 THEN var.CursorX = Smooth(var.Mouse_X, 17)
IF var.Mouse_Smooth = 17 THEN var.CursorY = Smooth(var.Mouse_Y, 17)
IF var.Mouse_Smooth = 18 THEN var.CursorX = Smooth(var.Mouse_X, 18)
IF var.Mouse_Smooth = 18 THEN var.CursorY = Smooth(var.Mouse_Y, 18)
IF var.Mouse_Smooth = 19 THEN var.CursorX = Smooth(var.Mouse_X, 19)
IF var.Mouse_Smooth = 19 THEN var.CursorY = Smooth(var.Mouse_Y, 19)
IF var.Mouse_Smooth = 20 THEN var.CursorX = Smooth(var.Mouse_X, 20)
IF var.Mouse_Smooth = 20 THEN var.CursorY = Smooth(var.Mouse_Y, 20)
IF var.Mouse_Smooth = 21 THEN var.CursorX = Smooth(var.Mouse_X, 21)
IF var.Mouse_Smooth = 21 THEN var.CursorY = Smooth(var.Mouse_Y, 21)
IF var.Mouse_Smooth = 22 THEN var.CursorX = Smooth(var.Mouse_X, 22)
IF var.Mouse_Smooth = 22 THEN var.CursorY = Smooth(var.Mouse_Y, 22)
IF var.Mouse_Smooth = 23 THEN var.CursorX = Smooth(var.Mouse_X, 23)
IF var.Mouse_Smooth = 23 THEN var.CursorY = Smooth(var.Mouse_Y, 23)
IF var.Mouse_Smooth = 24 THEN var.CursorX = Smooth(var.Mouse_X, 24)
IF var.Mouse_Smooth = 24 THEN var.CursorY = Smooth(var.Mouse_Y, 24)
IF var.Mouse_Smooth = 25 THEN var.CursorX = Smooth(var.Mouse_X, 25)
IF var.Mouse_Smooth = 25 THEN var.CursorY = Smooth(var.Mouse_Y, 25)
IF var.Mouse_Smooth = 26 THEN var.CursorX = Smooth(var.Mouse_X, 26)
IF var.Mouse_Smooth = 26 THEN var.CursorY = Smooth(var.Mouse_Y, 26)
IF var.Mouse_Smooth = 27 THEN var.CursorX = Smooth(var.Mouse_X, 27)
IF var.Mouse_Smooth = 27 THEN var.CursorY = Smooth(var.Mouse_Y, 27)
IF var.Mouse_Smooth = 28 THEN var.CursorX = Smooth(var.Mouse_X, 28)
IF var.Mouse_Smooth = 28 THEN var.CursorY = Smooth(var.Mouse_Y, 28)
IF var.Mouse_Smooth = 29 THEN var.CursorX = Smooth(var.Mouse_X, 29)
IF var.Mouse_Smooth = 29 THEN var.CursorY = Smooth(var.Mouse_Y, 29)
IF var.Mouse_Smooth >= 30 THEN var.CursorX = Smooth(var.Mouse_X, 30)
IF var.Mouse_Smooth >= 30 THEN var.CursorY = Smooth(var.Mouse_Y, 30)
// Belegung
var.MoveButton = Wiimote.Plus // cursor deaktivieren
var.CalibrateButton = wiimote.Minus // Kalibrierung
// Maus rechte und linke Taste
Mouse.LeftButton = wiimote.A
mouse.RightButton = Nunchuk.ZButton
Mouse.LeftButton = wiimote.B
Key.I = Wiimote1.Down // Inventar
Key.S = Wiimote.Up // Skill menu
Key.Tab = Wiimote.Left // Map
Key.F = Wiimote.Right // Begleiter Menu
Key.q = Wiimote.Home // Life
// Nunchuck Analog Stick
Key.One = Nunchuk.Up // 1
Key.Two = Nunchuk.Down // 2
Key.Three = Nunchuk.CButton // 3
Key.Four = Nunchuk.Right // 4
Key.LeftAlt = Nunchuk.Left // Gegenstände auf dem Feld anzeigen
Key.T = Wiimote.One // Teleport
Key.L = Wiimote.Two // Quest Menu
// Stehend angreifen
Key.LeftShift = wiimote.a // attack left button
// Stehen bleiben
if Wiimote.B then var.MoveButton = 1 // cursor on hold
Key.B = wiimote.a =0
if wiimote.a then Key.b = 0 and Mouse.LeftButton = 1
If Clicked (Wiimote.B) or (Nunchuk.ZButton) then Key.B = 0 // B kurz drücken um das Rennen zu beenden