WiiLi Wiki frontpage Include your post in the News Get links Hoteles Quito
WiiLi.org Forum Index WiiLi.org
a new revolution
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Best Zelda OOT Script ever! Guaranteed!
Goto page 1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    WiiLi.org Forum Index -> Wii Scripts
View previous topic :: View next topic  
Author Message
CarlKenner
Site Admin


Joined: 29 Nov 2006
Posts: 614

Digg It
PostPosted: Fri Jan 12, 2007 5:03 am    Post subject: Best Zelda OOT Script ever! Guaranteed!

I have finally finished the ultimate script for Zelda Ocarina Of Time, with almost perfect Twilight Princess controls.

You can even use the Classic Controller as a Nunchuk if you don't have a Nunchuk.

The only thing missing is rumble and sound, but they can wait until the next version.

Don't forget to set your emulator up as described in the script below, because I changed the keys I was using to the Project64 defaults (but with the analog joystick).

It is so good that you should read the Twilight Princess instruction manual here, and use the exact control system it describes:

http://media.nintendo.com/mediaFiles/mzs8X4E07ZfOrr5eYY2feDCbcUbUOGa3.pdf

You can aim your bow or look around with the Wiimote IR, you can swap items onto the B trigger, you can do four different sword moves by slashing with the Wiimote, you can access individual subscreens with buttons on the wiimote, you can do spin attacks with the nunchuk, you can throw things with the Nunchuk, you can toggle the on-screen map, you use your shield automatically when Z-Targetting, and you can even press Home to go to the Home menu, where you can control the cursor with the Wiimote and change the emulator settings.

Note: The first 3 LEDs on the Wiimote show which item is currently assigned to the B trigger.

There are also some new controls to allow you to do things that can't be done in Twilight Princess. See the comments in the script below for details. Basically you roll your Nunchuk left or right.

Note, you may need to change the frame rate, and the spin time near the top of the script to get Link to do the spin attack the quick way. This is very time sensitive and depends on your emulator's speed. Whenever Link fails to do the spin attack the quick way, don't worry, he will automatically do it the slow way.

There are also some really cool side effects. Because shaking the Nunchuk vertically presses the A button, you can do jumping gestures, rolling forward gestures, knocking on doors gestures, picking things up gestures, putting things away gestures, etc. That is in addition to the intended rock throwing gesture. The other cool side effect is shaking the Wiimote to cancel things, or to flip the subscreens over, or to skip really boring speeches by people you talk to.

Let me know if I got any of the controls wrong.

Code:

/* For instructions on using these controls, see:
http://media.nintendo.com/mediaFiles/mzs8X4E07ZfOrr5eYY2feDCbcUbUOGa3.pdf
*/
// Zelda: Ocarina of Time, with EXACT Twilight Princess controls!
// By Carl Kenner, special thanks to bomboy02
// You need to have installed PPJoy and added a Virtual Joystick 1
// Version 2.0:
//     Emulator keys changed to default Project64, but with
//       analog joystick instead of arrow keys.
//     Classic Controller can be used as a nunchuk (DPad does forces)
//     Everything now works EXACTLY like in Twilight Princess,
//       including: Items on B trigger, Wiimote aiming, Wiimote looking,
//       nunchuk throw, nunchuk spin attack, automatic shield,
//       subscreen buttons, onscreen map button, talk to Midna/Navi,
//       first person view, action button, and Home Menu (with cursor).
//     Additional Controls:
//       Ocarina Mode: You must tilt the Nunchuk left to get out or play
//        the Ocarina. Or to use the buttons OOT tells you without them
//        activating their Twilight Princess functions.
//       Crouch with Shield: Tilt the Nunchuk right to crouch and use
//        your shield without Z-Targetting. You can only stab while in
//        this mode.
//       Fix Invalid State: If first/third person is backwards, press
//        up on the D-Pad. But if the menu is in an invalid state,
//        go to the map subscreen and DOUBLE CLICK Home.
//       Home menu keys: Access the Home menu like in Twilight Princess,
//        then you can use these keys: point = mouse, A = LMB, B = RMB,
//        d-pad or nunchuk = arrow keys, - = Escape, Z/+ = Enter
//        C = Alt (or Alt-Tab if pressed multiple times)
//     Missing Controls:
//       Fishing, and other things later in the game are not implemented
//        because I haven't got that far in the game.
//       Shield Thrust (because it doesn't exist in this game)
// IMPORTANT!
// Please set Z-Targetting to HOLD, instead of TOGGLE in the options
// menu of Ocarina of Time! This script only sort-of works in TOGGLE
// mode.

//Set your emulator to these values:
//  Analog Stick = PPJoy Virtual Joystick
//  A-Button = X, B-Button = C, Start = Enter
//  L-Button = A, R-Button = S, Z-Button = Z
//  C-Left = Delete, C-Up = Home
//  C-Right = PageDown, C-Down = End

// adjust these to make spin attacks work on first swing
pie.FrameRate = 60Hz
var.SpinTime = 30ms

// Find pointer coordinates 1024x768
var.IRCount = 1
if var.IRCount = 1 then
  if wiimote.dot1vis then
    Var.IRx = (1023-wiimote.dot1x)
    Var.IRy = Wiimote.dot1y
    Var.IRvis = true
  else
    Var.IRvis = false
  end if
else
  if wiimote.dot1vis and wiimote.dot2vis then
    Var.IRx = 1023-(wiimote.dot1x+wiimote.dot2x)/2
    Var.IRy = (Wiimote.dot1y+Wiimote.dot2y)/2
    Var.IRvis = true
  else
    Var.IRvis = false
  end if
end if

// Change in pointer position is mapped to "IR Joystick"
var.IRJoyX = MapRange(Smooth(Delta(Var.IRx),2), -20,20, -1,1)
var.IRJoyY = -MapRange(Smooth(Delta(Var.IRy),2), -20,20, -1,1)

// Keep holding "IR Joystick" when aiming with pointer off the screen
if var.IRvis then
  Var.Above = Var.IRy < 60
  Var.Below = Var.IRy > 710
  Var.ToLeft = Var.IRx < 60
  Var.ToRight = Var.IRx > 960
else
  if var.Above then
    var.IRJoyY = 1
  else if var.Below then
    var.IRJoyY = -1
  end if
  if var.ToLeft then
    var.IRJoyX = -1
  else if var.ToRight then
    var.IRJoyX = 1
  end if
end if

if Pressed(Wiimote.Nunchuk.CButton or Wiimote.Classic.ZL) and (not Var.Menu) and (not Var.MenuWaiting) and (not var.FirstPerson) then
  Say("First Person")
  Var.FirstPerson = true
elseif (var.FirstPerson) and Pressed(Wiimote.Nunchuk.CButton or Wiimote.Classic.ZL or X or C or S or Home or End or PageUp or PageDown) and (not Var.Menu) and (not Var.MenuWaiting) then
  Say("Third Person")
  Var.FirstPerson = false
end if

// Roll nunchuk left to use ocarina
var.Ocarina = -135 < Wiimote.Nunchuk.Roll < -60 degrees or Wiimote.Classic.Left

// Z-Button = Z Targetting
var.ZTargetting = (Wiimote.Nunchuk.ZButton or (Wiimote.Classic.L > 50%)) and (var.Ocarina or ((not var.Menu) and (not var.MenuWaiting)))

// Roll nunchuk right to use your shield
// Z-Targetting also uses shield when not in Ocarina Mode
var.Shield = ((135 > Wiimote.Nunchuk.Roll > 60 degrees) or (Wiimote.Classic.Right) or (var.ZTargetting and (not var.Ocarina))) and (not var.Menu) and (not var.MenuWaiting)
S = var.Shield and (not var.HomeMenu)

// Aim when shooting, in first person, or crouching and blocking
var.Aiming = ((Wiimote.B and not var.Ocarina) or var.FirstPerson or (var.Shield and (not var.ZTargetting))) and (not var.HomeMenu)

// analog = movement
if not var.Swinging then
  // When aiming, add IR Joystick to real joystick
  // If trying to set it to more than 1, keep track of the leftovers
  // and add them on next time.
  if var.Aiming then
    var.jx = Wiimote.Nunchuk.JoyX + Wiimote.Classic.Joy1X + var.IRJoyX + var.LeftOverX
    var.LeftOverX = 0
    if var.jx > 1 then var.LeftOverX = Var.jx - 1
    if var.jx < -1 then var.LeftOverX = Var.jx + 1
    var.jy = Wiimote.Nunchuk.JoyY + Wiimote.Classic.Joy1Y + var.IRJoyY + var.LeftOverY
    var.LeftOverY = 0
    if var.jy > 1 then var.LeftOverY = Var.jy - 1
    if var.jy < -1 then var.LeftOverY = Var.jy + 1
    debug = var.LeftOverX+', '+var.LeftOverY
    ppjoy.analog0 = EnsureRange(var.jx, -1, 1)
    ppjoy.analog1 = EnsureRange(var.jy, -1, 1)
  else
    // When not aiming, just use joystick
    ppjoy.analog0 = EnsureRange(Wiimote.Nunchuk.JoyX+Wiimote.Classic.Joy1X, -1, 1)
    ppjoy.analog1 = EnsureRange(Wiimote.Nunchuk.JoyY+Wiimote.Classic.Joy1Y, -1, 1)
    // and remember direction Link is facing
    if abs(Wiimote.Nunchuk.JoyX)>0.1 or abs(Wiimote.Nunchuk.JoyY)>0.1 then
      var.JoyDirX = Wiimote.Nunchuk.JoyX
      var.JoyDirY = Wiimote.Nunchuk.JoyY
    end if
  end if
end if

// A = Talk / open doors / interact
X = Wiimote.A and (not var.HomeMenu)

C = (var.Ocarina or var.Menu) and Wiimote.B and (not Var.HomeMenu)

// B = trigger
// swing wiimote = sword
//C = Wiimote.B

// left, right, down = items

if pressed(Wiimote.Left) and (not var.Ocarina) and (not var.HomeMenu) then
  release(S)
  var.item = 1
  var.leds = 1
  wait 20ms
  press(Delete)
  wait 50ms
  release(Delete)
  wait 1000ms
  press(X)
  wait 50ms
  release(X)
  if var.Shield then press(S)
end if
if pressed(Wiimote.Down) and (not var.Ocarina) and (not var.HomeMenu) then
  release(S)
  var.item = 2
  var.leds = 2
  wait 20ms
  press(End)
  wait 50ms
  release(End)
  wait 1000ms
  press(X)
  wait 50ms
  release(X)
  if var.Shield then press(S)
end if
if pressed(Wiimote.Right) and (not var.Ocarina) and (not var.HomeMenu) then
  release(S)
  var.item = 3
  var.leds = 4
  wait 20ms
  press(PageDown)
  wait 50ms
  release(PageDown)
  wait 1000ms
  press(X)
  wait 50ms
  release(X)
  if var.Shield then press(S)
end if
Wiimote.Leds = var.Leds

if pressed(Wiimote.B) and var.Shield and (not var.Ocarina) and (not var.Menu) and (not var.MenuWaiting) then
  var.MenuWaiting=True
  release(S)
  wait 40ms
  var.MenuWaiting=False
end if

if var.Ocarina or var.Menu then
  var.LeftItem = Wiimote.Left
  var.DownItem = Wiimote.Down
  var.RightItem = Wiimote.Right
else if var.item = 1 then
  var.LeftItem = Wiimote.B
  var.DownItem = False
  var.RightItem = False
else if var.item = 2 then
  var.LeftItem = False
  var.DownItem = Wiimote.B
  var.RightItem = False
else if var.item = 3 then
  var.LeftItem = False
  var.DownItem = False
  var.RightItem = Wiimote.B
end if

Delete = var.LeftItem and not var.MenuWaiting
End = var.DownItem and not var.MenuWaiting
PageDown = var.RightItem and not var.MenuWaiting

if released(Wiimote.B) and var.Shield and (not var.Ocarina) and (not var.Menu) then
  var.MenuWaiting=True
  press(S)
  wait 40ms
  var.MenuWaiting=False
end if

var.SwingDiagonal = abs(Wiimote.RelAccX) >= 11 and abs(Wiimote.RelAccY) >= 11 and Sign(Wiimote.RelAccX) <> Sign(Wiimote.RelAccY) and (not var.Menu) and (not var.MenuWaiting)
var.SwingSideways = abs(Wiimote.RelAccX) >= 15 and abs(Wiimote.RelAccY) < abs(Wiimote.RelAccX)*0.6
var.SwingVertical = abs(Wiimote.RelAccY) >= 15 and abs(Wiimote.RelAccX) < abs(Wiimote.RelAccY)*0.6 and (not var.Menu) and (not var.MenuWaiting)
var.SwingForwards = abs(Wiimote.RelAccZ) >= 15 and abs(Wiimote.RelAccX) < abs(Wiimote.RelAccZ)*0.6 and abs(Wiimote.RelAccY) < abs(Wiimote.RelAccZ)*0.6 and (not var.Menu) and (not var.MenuWaiting)

if var.SwingDiagonal and (not var.Swinging) and (not var.Shield) and (not var.ZTargetting) then
  var.Swinging = true
  press(Z)
  ppjoy.analog0 = 1 // right + z = swing diagonal
  ppjoy.analog1 = 1
  wait 50 ms
  var.Swinging = true
  press(C)
  wait 100 ms
  release(C)
  release(Z)
  wait 100 ms
  var.swinging = false
end if
if var.SwingDiagonal and var.ZTargetting and (not var.Swinging) and (not var.Shield) then
  var.Swinging = true
  ppjoy.analog0 = 1 // Right + Z = diagonal
  ppjoy.analog1 = 1
  wait 100 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if
if var.SwingDiagonal and var.ZTargetting and var.Shield and (not var.Swinging) then
  var.Swinging = true
  release(S)
  ppjoy.analog0 = 1 // Right + Z = diagonal
  ppjoy.analog1 = 1
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
  press(S)
end if

if var.SwingSideways and (not var.Swinging) and (not var.Shield) and (not var.ZTargetting) then
  var.Swinging = true
  ppjoy.analog0 = 0
  ppjoy.analog1 = 0 // centred = sideways swing
  wait 50 ms
  var.Swinging = true
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if
if var.SwingSideways and var.ZTargetting and (not var.Swinging) and (not var.Shield) then
  var.Swinging = true
  ppjoy.analog0 = 0
  ppjoy.analog1 = 1 // Backwards + Z = sideways swing
  wait 200 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if
if var.SwingSideways and var.ZTargetting and var.Shield and (not var.Swinging) then
  var.Swinging = true
  release(S)
  ppjoy.analog0 = 0
  ppjoy.analog1 = 1 // Backwards + Z = sideways swing
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
  press(S)
end if

if var.SwingVertical and (not var.Swinging) and (not var.Shield) and (not var.ZTargetting) then
  var.Swinging = true
  ppjoy.analog0 = var.JoyDirX/hypot(var.JoyDirX, var.JoyDirY)
  ppjoy.analog1 = var.JoyDirY/hypot(var.JoyDirX, var.JoyDirY)
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if
if var.SwingVertical and var.ZTargetting and (not var.Swinging) and (not var.Shield) then
  var.Swinging = true
  ppjoy.analog0 = 0
  ppjoy.analog1 = 0 // Centred + Z = sideways swing
  wait 200 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if
if var.SwingVertical and var.ZTargetting and var.Shield and (not var.Swinging) then
  var.Swinging = true
  release(S)
  ppjoy.analog0 = 0
  ppjoy.analog1 = 0 // Centred + Z = sideways swing
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
  press(S)
end if

if var.SwingForwards and (not var.Swinging) and (not var.Shield) and (not var.ZTargetting) then
  var.Swinging = true
  press(Z)
  ppjoy.analog0 = 0
  ppjoy.analog1 = -1
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  release(Z)
  wait 100 ms
  var.swinging = false
end if
if var.SwingForwards and var.ZTargetting and (not var.Swinging) and (not var.Shield) then
  var.Swinging = true
  ppjoy.analog0 = 0
  ppjoy.analog1 = -1
  wait 200 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if
if var.SwingForwards and var.ZTargetting and var.Shield and (not var.Swinging) then
  var.Swinging = true
  release(S)
  ppjoy.analog0 = 0
  ppjoy.analog1 = -1
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
  press(S)
end if
if var.SwingForwards and (not var.ZTargetting) and var.Shield and (not var.Swinging) then
  var.Swinging = true
  ppjoy.analog0 = 0
  ppjoy.analog1 = -1
  wait 50 ms
  press(C)
  wait 100 ms
  release(C)
  wait 100 ms
  var.swinging = false
end if

// Nunchuk throw = Throw
if ((Wiimote.Classic.Up) or (abs(wiimote.Nunchuk.RelAccY) >= 15 and abs(Wiimote.Nunchuk.RelAccX) < abs(Wiimote.Nunchuk.RelAccY)*0.6)) and (not var.swinging) and (not var.Menu) and (not var.MenuWaiting) then
  var.swinging = true
  press(X)
  wait 100 ms
  release(X)
  wait 100 ms
  var.swinging = false
end if

// Nunchuk shake = Spin attack
if (Wiimote.Classic.Down or (abs(Wiimote.Nunchuk.RelAccX) >= 15 and abs(Wiimote.Nunchuk.RelAccY) < abs(Wiimote.Nunchuk.RelAccX)*0.6)) and (not var.swinging) and (not var.Shield) and (not var.Menu) and (not var.MenuWaiting) then
  var.swinging = true
  ppjoy.Analog0 = 0
  ppjoy.analog1 = -1
  wait var.SpinTime
  ppjoy.Analog0 = 1
  ppjoy.analog1 = -1
  wait var.SpinTime
  ppjoy.Analog0 = 1
  ppjoy.analog1 = 0
  wait var.SpinTime
  Press (key.C)
  ppjoy.Analog0 = 1
  ppjoy.analog1 = 1
  wait var.SpinTime
  ppjoy.Analog0 = 0
  ppjoy.analog1 = 1
  Wait var.SpinTime
  ppjoy.Analog0 = -1
  ppjoy.analog1 = 1
  Wait var.SpinTime
  ppjoy.Analog0 = -1
  ppjoy.analog1 = 0
  Wait var.SpinTime
  ppjoy.Analog0 = -1
  ppjoy.analog1 = -1
  Wait var.SpinTime
  ppjoy.Analog0 = 0
  ppjoy.analog1 = -1
  Var.swinging = false
  wait 900ms - 8*var.SpinTime
  Release (key.C)
endif

// 2 = toggle on screen map
A = Wiimote.Two and (not var.HomeMenu)

// up = talk with midna, er. I mean Navi
// C = first person
Home = (Wiimote.Up or Wiimote.Nunchuk.CButton or Wiimote.Classic.ZL) and (not var.HomeMenu)


// Z = Z-Target
z = Wiimote.Nunchuk.ZButton and (not var.Menu) and (not var.MenuWaiting)

if Pressed(Wiimote.One) and (not var.MenuWaiting) and (not var.Ocarina) then
  var.DesiredPage = 0
  if (var.Page=Var.DesiredPage) and (var.Menu) then
    var.DesiredMenu = false
//    Say("Leaving Map")
  else
    var.DesiredMenu = true
    Say("Map")
  end if
else if SingleClicked(Wiimote.Plus) and (not var.MenuWaiting) and (not var.Ocarina) then
  var.DesiredPage = 1
  if (var.Page=Var.DesiredPage) and (var.Menu) then
    var.DesiredMenu = false
//    Say("Leaving Quest Status")
  else
    var.DesiredMenu = true
    Say("Quest Status")
  end if
else if DoubleClicked(Wiimote.Plus) and (not var.MenuWaiting) and (not var.Ocarina) then
  var.DesiredPage = 2
  if (var.Page=Var.DesiredPage) and (var.Menu) then
    var.DesiredMenu = false
//    Say("Leaving Equipment")
  else
    var.DesiredMenu = true
    Say("Equipment")
  end if
else if Pressed(Wiimote.Minus) and (not var.MenuWaiting) and (not var.Ocarina) then
  var.DesiredPage = 3
  if (var.Page=Var.DesiredPage) and (var.Menu) then
    var.DesiredMenu = false
//    Say("Leaving Select Item")
  else
    var.DesiredMenu = true
    Say("Select Item")
  end if
end if

if pressed(Var.DesiredMenu) or released(var.DesiredMenu) then
//  DebugPrint("Changed Desired Menu")
  var.MenuWaiting = true
  press Enter
  wait 100 ms
  release Enter
  wait 2 seconds
  var.MenuWaiting = false
//  DebugPrint("Finished changing desired menu")
  var.Menu = Var.DesiredMenu
end if

if var.Menu but not Var.MenuWaiting then
  if pressed(Z) then
    Var.Page--
    if var.Page<0 then var.Page = var.Page + 4
    Var.DesiredPage = var.Page
  end if
  if pressed(S) then
    Var.Page++
    if var.Page>3 then var.Page = var.Page - 4
    Var.DesiredPage = var.Page
  end if
end if
if var.Menu and (not var.MenuWaiting) and ((var.Page < var.DesiredPage < var.Page+3) or (var.DesiredPage=0 and var.Page=3)) then
  var.MenuWaiting = true
  //DebugPrint("Page Right")
  press Key.S
  wait 100 ms
  release Key.S
  wait 1 second
  var.Page++
  if var.Page>3 then var.Page = var.Page - 4
  var.MenuWaiting = false
  //DebugPrint("Done Page Right")
end if
if var.Menu and (not var.MenuWaiting) and ((var.Page-3 < var.DesiredPage < var.Page) or (var.DesiredPage=3 and var.Page=0)) then
  //DebugPrint("Page Left")
  var.MenuWaiting = true
  press Key.Z
  wait 100 ms
  release Key.Z
  wait 1 second
  var.Page--
  if var.Page<0 then var.Page = var.Page + 4
  var.MenuWaiting = false
  //DebugPrint("Done Page Left")
end if

// Double-click the Home button to reset the game state
if DoubleClicked(Wiimote.Home) then
  Say("Reset to valid state.")
  Var.Page = 0     // Map
  Var.Menu = True  // Menu On
  Var.DesiredMenu = True // We are happy with menu on
  // Can't be in Home Menu mode if we are accessing the map screen
  Var.MenuWaiting = False
  Var.HomeMenu = False
  Var.Swinging = False
end if

// Press Home to activate the Home menu, with mouse cursor.
// In this case we go to the emulator's options menu.
if (SingleClicked(Wiimote.Home) or Pressed(Wiimote.Classic.Home)) and (not var.HomeMenu) then
  Say("Home Menu")
  var.MenuWaiting = True
  var.Swinging = True
  // Pause, or possibly Resume
  Press(F2)
  wait 50 ms
  Release(F2)
  // Guaranteed return to window mode
  Press(Alt)
  Press(O)
  wait 50 ms
  Release(O)
  Release(Alt)
  wait 50 ms
  Press(F)
  wait 50 ms
  Release(F)
  wait 3 seconds
  Press(Escape)
  wait 100ms
  Release(Escape)
  wait 3 seconds
  // Resume, or possibly Pause
  Press(F2)
  wait 50 ms
  Release(F2)
  wait 50 ms
  // Guaranteed Pause, never does resume
  Press(Alt)
  Press(S)
  wait 50 ms
  Release(S)
  Release(Alt)
  wait 50 ms
  Press(P)
  wait 50 ms
  Release(P)
  // Options Menu
  Press(Alt)
  Press(O)
  wait 50 ms
  Release(O)
  Release(Alt)
  var.HomeMenu = True
end if

// Display the cursor if in the Home Menu
if Var.IRvis and Var.HomeMenu then
  Mouse.x = Smooth((Var.IRx/1023)*1.1-0.05,10)
  Mouse.y = Smooth((Var.IRy/768)*1.1-0.05,10)
  var.LeftButton = Wiimote.A
  var.RightButton = Wiimote.B
else
  var.LeftButton = False
  var.RightButton = False
end if
Mouse.LeftButton = var.LeftButton
Mouse.RightButton = var.RightButton
Up = Var.HomeMenu and (Wiimote.Up or Wiimote.Nunchuk.JoyY < -50% or Wiimote.Classic.Joy1Y < -50%)
Down = Var.HomeMenu and (Wiimote.Down or Wiimote.Nunchuk.JoyY > 50% or Wiimote.Classic.Joy1Y > 50%)
Left = Var.HomeMenu and (Wiimote.Left or Wiimote.Nunchuk.JoyX < -50% or Wiimote.Classic.Joy1X < -50%)
Right = Var.HomeMenu and (Wiimote.Right or Wiimote.Nunchuk.JoyX > 50% or Wiimote.Classic.Joy1X > 50%)
Alt = Var.HomeMenu and (KeepDown(Wiimote.Nunchuk.CButton, 1 second) or KeepDown(Released(Wiimote.Nunchuk.CButton), 500ms))
Tab = Var.HomeMenu and Wiimote.Nunchuk.CButton and KeepDown(Released(Wiimote.Nunchuk.CButton), 1 second)
Escape = Var.HomeMenu and (Wiimote.Minus or Wiimote.Classic.Minus)
// 1 and 2 buttons are currently unused in the Home Menu
// Start button in ocarina mode, or Enter in Home Menu
Enter = ((Wiimote.One or Wiimote.Plus or Wiimote.Minus) and var.Ocarina) or (var.HomeMenu and (Wiimote.Nunchuk.ZButton or Wiimote.Classic.LFull or Wiimote.Plus or Wiimote.Classic.Plus))


// They need to press Home again to return to the game.
if (SingleClicked(Wiimote.Home) or Pressed(Wiimote.Classic.Home)) and (var.HomeMenu) then
  Say("Returning to Game")
  var.HomeMenu = False
  var.MenuWaiting = False
  var.Swinging = False
  // Guaranteed Pause, never does resume
  Press(Alt)
  Press(S)
  wait 50 ms
  Release(S)
  Release(Alt)
  wait 50 ms
  Press(P)
  wait 50 ms
  Release(P)
  wait 100 ms
  // Guaranteed return to fullscreen mode
  Press(Alt)
  Press(O)
  wait 50 ms
  Release(O)
  Release(Alt)
  wait 50 ms
  Press(F)
  wait 50 ms
  Release(F)
  Wait 3 seconds
  // Which means this is Resume
  Press(F2)
  wait 100 ms
  Release(F2)
  wait 100 ms
end if


Last edited by CarlKenner on Sat Jan 13, 2007 6:09 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Melchior



Joined: 16 Dec 2006
Posts: 9

Digg It
PostPosted: Fri Jan 12, 2007 6:26 am    Post subject:

wow. Shocked that a huge script! bet it is good.
Back to top
View user's profile Send private message
Zac-uk



Joined: 09 Jan 2007
Posts: 26

Digg It
PostPosted: Fri Jan 12, 2007 4:26 pm    Post subject:

Wow! Im just going to try this now, but im going to have to start a game on OOT again.... get back to you soon
...
This script sucks, why the hell would you have it SAY"HOME MENU" every time you press the home button? Why would you do that>? Are you completely insane? Not only have i followed your instructions and edited your script and removed the say function it stil doesnt work, pressing the home button causes the emulator to want to go full screen and vice versa, nunchuk DOESNT work and i cant even select anything? I know how to set up a emulator and THIS script is poor, a load of crap i may say, leave the scripting to the experts,

Edit
Ooops


Last edited by Zac-uk on Fri Jan 12, 2007 7:15 pm; edited 1 time in total
Back to top
View user's profile Send private message
TylerK



Joined: 18 Dec 2006
Posts: 384
Location: Springfield, IL

Digg It
PostPosted: Fri Jan 12, 2007 5:50 pm    Post subject:

Zac-uk wrote:
Wow! Im just going to try this now, but im going to have to start a game on OOT again.... get back to you soon
...
This script sucks, (yadda yadda yadda)...
Wow, you're kind of a fussy customer (*moderated*), aren't you?
Back to top
View user's profile Send private message
TweaK



Joined: 24 Dec 2006
Posts: 57

Digg It
PostPosted: Fri Jan 12, 2007 5:54 pm    Post subject:

Carl, any chance I could catch you over MSN? You're never on anymore :/
Back to top
View user's profile Send private message
deceased
Site Admin


Joined: 11 Dec 2006
Posts: 287
Location: Aurora, ON

Digg It
PostPosted: Fri Jan 12, 2007 6:00 pm    Post subject:

Zac-uk wrote:
THIS script is poor, a load of crap i may say, leave the scripting to the experts,


Made me chuckle...seeing as Carl wrote GlovePIE, I think he knows a thing or two about writing scripts in his own software.
_________________
-deceased-

Wiili - a gnu revolution


Last edited by deceased on Mon Jan 15, 2007 1:39 pm; edited 1 time in total
Back to top
View user's profile Send private message
kunalkunal2



Joined: 13 Dec 2006
Posts: 279

Digg It
PostPosted: Fri Jan 12, 2007 6:50 pm    Post subject:

wow great scirpt man, but How did you get IR working in the emulator?
I was trying to get it work by programming the arrow key to use it with the wiimote aiming
Can you help me with this
thx again
-Kunal
_________________
Check out my collection of my wii script's
freewebs.com/kunalkunal2
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    WiiLi.org Forum Index -> Wii Scripts All times are GMT
Goto page 1, 2, 3, 4, 5, 6, 7  Next
Page 1 of 7

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group