| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 3 | 
 
| 积分 | 1 | 
 
| 经验 | 5930 | 
 
| 最后登录 | 2021-5-12 | 
 
| 在线时间 | 123 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 65 
 
        - 在线时间
 - 123 小时
 
        - 注册时间
 - 2013-5-12
 
        - 帖子
 - 24
 
 
 
 | 
	
 本帖最后由 名雪 于 2013-6-16 18:40 编辑  
 
插入第一个脚本(输出模块)- #==============================================================================
 
 - # ** 鼠标输出模块 (修复)
 
 - #------------------------------------------------------------------------------
 
 - #   by DerVVulfman
 
 - #   版本 1.2
 
 - #   08-18-2007
 
 - #------------------------------------------------------------------------------
 
 - #   建立在鼠标输出模块...
 
 - #
 
 - #   by Near Fantastica
 
 - #------------------------------------------------------------------------------
 
 - #   Set_Pos feature by
 
 - #   Freakboy
 
 - #------------------------------------------------------------------------------
 
 - #
 
 - #   CALLS: 
 
 - #
 
 - #   Mouse.click?
 
 - #   判断鼠标是否真的按下(Ture/False).
 
 - #   这个值控制您按下的是左/右键,还是中键
 
  
- #
 
 - #   Mouse.press?
 
 - #   判断鼠标是否真的按下/保持按下状态
 
 - #   这个值控制您按下的是左/右键,还是中键
 
 - #   Mouse.pixels
 
 - #   Mouse.pixels
 
 - #   这个值返回鼠标所在的坐标(640*480大小),如果鼠标超出游戏画面,这个值为空
 
 - #
 
 - #   Mouse.tiles
 
 - #   This returns  the mouse's screen  coordinates  in map tiles.   Based on the
 
 - #   system's 20x15 tile size,  this returns it in index values  (a 0-19 width & 
 
 - #   a 0-14 height).  This functions the same manner as Mouse.pixels.
 
 - #
 
 - #   Mouse.set_pos
 
 - #   This allows you  to forcefully position the mouse at an x/y position within
 
 - #   the game screen by pixel coordinates.  Given the game's normal screen width
 
 - #   of 640x480, adding:  Mouse.set_pos(320,240)  should position the mouse dead
 
 - #   center of the gaming window.
 
 - #
 
 - #   Mouse.update
 
 - #   Add this routine  into your update routines  to update  the mouse position.
 
 - #   It must be called otherwise you won't get valid mouse coordinates.
 
 - #
 
 - #==============================================================================
 
  
- module Mouse
 
 -   @mouse_menu = 0
 
 -   #--------------------------------------------------------------------------
 
 -   # * 鼠标点击
 
 -   #     button      : button
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.click?(button)
 
 -     return true if @keys.include?(button)
 
 -     return false
 
 -   end  
 
 -   #--------------------------------------------------------------------------
 
 -   # * 鼠标击键
 
 -   #     button      : button
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.press?(button)
 
 -     return true if @press.include?(button)
 
 -     return false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 鼠标按下
 
 -   #     button      : button
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.area?(x, y, width=32, height=32)
 
 -     return false if @pos == nil
 
 -     return true if @pos[0] >= x and @pos[0] <= (x+width) and @pos[1] >= y and @pos[1] <= (y+height)
 
 -     return false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 坐标
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.pixels
 
 -     return @pos == nil ? [0, 0] : @pos
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 鼠标初始坐标
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.tiles
 
 -     return nil if @pos == nil
 
 -     x = @pos[0] / 32
 
 -     y = @pos[1] / 32
 
 -     return [x, y]
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 设置鼠标初始坐标
 
 -   #-------------------------------------------------------------------------- 
 
 -   def Mouse.set_pos(x_pos=0, y_pos=0)
 
 -     width, height = Mouse.client_size
 
 -     if (x_pos.between?(0, width) && y_pos.between?(0, height))
 
 -       x = Mouse.client_pos[0] + x_pos; y = Mouse.client_pos[1] + y_pos
 
 -       Win32API.new('user32', 'SetCursorPos', 'NN', 'N').call(x, y)
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * Mouse Update
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.update
 
 -     @pos            = Mouse.pos
 
 -     @keys, @press   = [], []
 
 -     @keys.push(1)   if Win32API.new("user32","GetAsyncKeyState",['i'],'i').call(1) & 0X01 == 1
 
 -     @keys.push(2)   if Win32API.new("user32","GetAsyncKeyState",['i'],'i').call(2) & 0X01 == 1
 
 -     @keys.push(3)   if Win32API.new("user32","GetAsyncKeyState",['i'],'i').call(4) & 0X01 == 1
 
 -     @press.push(1)  if Win32API.new("user32","GetKeyState",['i'],'i').call(1) & 0X01 == 1
 
 -     @press.push(2)  if Win32API.new("user32","GetKeyState",['i'],'i').call(2) & 0X01 == 1
 
 -     @press.push(3)  if Win32API.new("user32","GetKeyState",['i'],'i').call(4) & 0X01 == 1
 
 -   end  
 
 -   #--------------------------------------------------------------------------
 
 -   # * Automatic functions below 
 
 -   #--------------------------------------------------------------------------
 
 -   #
 
 -   #--------------------------------------------------------------------------
 
 -   # * Obtain Mouse position in screen
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.global_pos
 
 -     pos = [0, 0].pack('ll')
 
 -     if Win32API.new('user32', 'GetCursorPos', 'p', 'i').call(pos) != 0
 
 -       return pos.unpack('ll')
 
 -     else
 
 -       return nil
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 返回鼠标坐标
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.pos
 
 -     x, y = Mouse.screen_to_client(*Mouse.global_pos)
 
 -     width, height = Mouse.client_size
 
 -     begin
 
 -       if (x >= 0 and y >= 0 and x < width and y < height)
 
 -         return x, y
 
 -       else
 
 -         return nil
 
 -       end
 
 -     rescue
 
 -       return nil
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   #  * Pass Screen to Game System
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.screen_to_client(x, y)
 
 -     return nil unless x and y
 
 -     pos = [x, y].pack('ll')
 
 -     if Win32API.new('user32', 'ScreenToClient', %w(l p), 'i').call(Mouse.hwnd, pos) != 0
 
 -       return pos.unpack('ll')
 
 -     else
 
 -       return nil
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 得到游戏屏幕高度
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.hwnd
 
 -     game_name = "\0" * 256
 
 -     Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l').call('Game','Title','',game_name,255,".\\Game.ini")
 
 -     game_name.delete!("\0")
 
 -     return Win32API.new('user32', 'FindWindowA', %w(p p), 'l').call('RGSS Player',game_name)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 得到游戏屏幕宽度
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.client_size
 
 -     rect = [0, 0, 0, 0].pack('l4')
 
 -     Win32API.new('user32', 'GetClientRect', %w(l p), 'i').call(Mouse.hwnd, rect)
 
 -     right, bottom = rect.unpack('l4')[2..3]
 
 -     return right, bottom
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # * 得到窗口坐标 
 
 -   #--------------------------------------------------------------------------
 
 -   def Mouse.client_pos
 
 -     rect = [0, 0, 0, 0].pack('l4')
 
 -     Win32API.new('user32', 'GetWindowRect', %w(l p), 'i').call(Mouse.hwnd, rect)
 
 -     left, upper = rect.unpack('l4')[0..1]
 
 -     return left+4, upper+30
 
 -   end
 
 - end
 
  复制代码 插入第二个脚本(路径寻址)- #==============================================================================
 
 - #  ■ 路径寻址
 
 - #==============================================================================
 
 - # Near Fantastica
 
 - # 版本 1
 
 - # 29.11.05
 
 - #==============================================================================
 
 - # Lets the Player or Event draw a path from an desonation to the source. This
 
 - # method is very fast and because the pathfinding is imbedded into the Game
 
 - # Character the pathfinding can be interrupted or redrawn at any time. 
 
 - #==============================================================================
 
 - # Player :: $game_player.find_path(x,y)
 
 - # Event Script Call :: self.event.find_path(x,y)
 
 - # Event Movement Script Call :: self.find_path(x,y)
 
 - #==============================================================================
 
 - # [VX] Simple Mouse System Note: I edited the method
 
 - # character.passable?(x, y, direction) to character.passable?(x, y)
 
 - # according to change of this method in VX.
 
 - #------------------------------------------------------------------------------
 
  
- class Game_Character
 
 -   #--------------------------------------------------------------------------
 
 -   alias nf_pf_game_character_initialize initialize
 
 -   alias nf_pf_game_character_update update
 
 -   #--------------------------------------------------------------------------
 
 -   attr_accessor :map
 
 -   attr_accessor :runpath
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize
 
 -     nf_pf_game_character_initialize
 
 -     @map = nil
 
 -     @runpath = false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   def update
 
 -     run_path if @runpath == true
 
 -     nf_pf_game_character_update
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   def run_path
 
 -     return if moving?
 
 -     step = @map[@x,@y]
 
 -     if step == 1
 
 -       @map = nil
 
 -       @runpath = false
 
 -       return
 
 -     end
 
 -     dir = rand(2)
 
 -     case dir
 
 -     when 0
 
 -       move_right if @map[@x+1,@y] == step - 1 and step != 0
 
 -       move_down if @map[@x,@y+1] == step - 1 and step != 0
 
 -       move_left if @map[@x-1,@y] == step -1 and step != 0
 
 -       move_up if @map[@x,@y-1] == step - 1 and step != 0
 
 -     when 1
 
 -       move_up if @map[@x,@y-1] == step - 1 and step != 0
 
 -       move_left if @map[@x-1,@y] == step -1 and step != 0
 
 -       move_down if @map[@x,@y+1] == step - 1 and step != 0
 
 -       move_right if @map[@x+1,@y] == step - 1 and step != 0
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   def find_path(x,y)
 
 -     sx, sy = @x, @y
 
 -     result = setup_map(sx,sy,x,y)
 
 -     @runpath = result[0]
 
 -     @map = result[1]
 
 -     @map[sx,sy] = result[2] if result[2] != nil
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   def clear_path
 
 -     @map = nil
 
 -     @runpath = false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   def setup_map(sx,sy,ex,ey)
 
 -     map = Table.new($game_map.width, $game_map.height)
 
 -     map[ex,ey] = 1
 
 -     old_positions = []
 
 -     new_positions = []
 
 -     old_positions.push([ex, ey])
 
 -     depth = 2
 
 -     depth.upto(100){|step|
 
 -       loop do
 
 -         break if old_positions[0] == nil
 
 -         x,y = old_positions.shift
 
 -         return [true, map, step] if x == sx and y+1 == sy
 
 -         if $game_player.passable?(x, y) and map[x,y + 1] == 0
 
 -           map[x,y + 1] = step
 
 -           new_positions.push([x,y + 1])
 
 -         end
 
 -         return [true, map, step] if x-1 == sx and y == sy
 
 -         if $game_player.passable?(x, y) and map[x - 1,y] == 0
 
 -           map[x - 1,y] = step
 
 -           new_positions.push([x - 1,y])
 
 -         end
 
 -         return [true, map, step] if x+1 == sx and y == sy
 
 -         if $game_player.passable?(x, y) and map[x + 1,y] == 0
 
 -           map[x + 1,y] = step
 
 -           new_positions.push([x + 1,y])
 
 -         end
 
 -         return [true, map, step] if x == sx and y-1 == sy
 
 -         if $game_player.passable?(x, y) and map[x,y - 1] == 0
 
 -           map[x,y - 1] = step
 
 -           new_positions.push([x,y - 1])
 
 -         end
 
 -       end
 
 -       old_positions = new_positions
 
 -       new_positions = []
 
 -     }
 
 -     return [false, nil, nil]
 
 -   end
 
 - end
 
 -   
 
 - class Game_Map
 
 -   #--------------------------------------------------------------------------
 
 -   alias pf_game_map_setup setup
 
 -   #--------------------------------------------------------------------------
 
 -   def setup(map_id)
 
 -     pf_game_map_setup(map_id)
 
 -     $game_player.clear_path
 
 -   end
 
 - end
 
 -   
 
 - class Game_Player
 
 -   #--------------------------------------------------------------------------
 
 -   alias pf_game_player_update update
 
 -   #--------------------------------------------------------------------------
 
 -   def update
 
 -     $game_player.clear_path if Input.dir4 != 0
 
 -     pf_game_player_update
 
 -   end
 
 - end
 
 -   
 
 - class Interpreter
 
 -   #--------------------------------------------------------------------------
 
 -   def event
 
 -     return $game_map.events[@event_id]
 
 -   end
 
 - end
 
  复制代码 插入第三个脚本(鼠标系统)- #==============================================================================
 
 - # [VX] SMS - Simple Mouse System
 
 - #------------------------------------------------------------------------------
 
 - # ◦ by Woratana [[email][email protected][/email]]
 
 - # ◦ Released on: 14/04/2008 (D-M-Y)
 
 - # ◦ Version: 1.5
 
 - #
 
 - # ◦ Credit: DerVVulfman, Near Fantastica, and Freak Boy [Mouse Input Module]
 
 - # lambchop, shun, Cybersam, Astro_mech, and Mr.Mo [Super Simple Mouse System]
 
 - # - Modern Algebra, Zeriab, Patrick Lester [Path Finding] 
 
 - # - Near Fantastica, Fuso [Path Finding]
 
 - #
 
 - # - I will not be able to script this without those people and scripts above
 
 - #-----------------------------------------------------------------------------
 
 - #====[REQUIRE]=====
 
 - # - DerVVulfman's Mouse Input Module
 
 - # ([url]http://rmxp.org/forums/index.php?topic=26993[/url])
 
 - # It's XP script, but also works in VX!
 
 - #
 
 - # - Near Fantastica's Path Finding [version 1.0]
 
 - # ([url]http://www.rmxp.org/forums/index.php?topic=26661.0[/url])
 
 - # with a little fix to make it works in VX.
 
 - # (get fixed version from Simple Mouse System demo)
 
 - #
 
 - #====[FEATURE]=====
 
 - # - Support to use mouse in many scenes / windows
 
 - # - Click on map to move player with Path Finding
 
 - # - Mouse Pointer
 
 - #
 
 - #====[PLAN in next version]=====
 
 - # - Cursor change when put on other event
 
 - # - Better event trigger check by click mouse
 
 - #
 
 - #------------------------------------------------------------------------------
 
  
- #==============================================================================
 
 - # **鼠标输出模块
 
 - #==============================================================================
 
 - class << Mouse
 
 -   show_cursor = Win32API.new('user32', 'ShowCursor', 'l', 'l')
 
 -   show_cursor.call(0)
 
  
-   $mousec = Sprite.new
 
 -   $mousec.z = 10001
 
 -   $mousec.x = $mousec.y = 1000
 
 -   $mouse_icon = 'fox_cursor'
 
 -   $mousec.bitmap = Cache.system($mouse_icon)
 
 -   
 
 -   alias wor_mouse_upd_mouse update unless $@
 
 -   def Mouse.update
 
 -     wor_mouse_upd_mouse
 
 -     if $mouse_old_icon.nil? or $mouse_old_icon != $mouse_icon
 
 -       $mouse_old_icon = $mouse_icon
 
 -       $mousec.bitmap = Cache.system($mouse_old_icon)
 
 -     end
 
 -     if @pos.nil?
 
 -       $mousec.x = 1000 if $mousec.x != 1000
 
 -       $mousec.y = 1000 if $mousec.y != 1000
 
 -     else
 
 -       $mousec.x = @pos[0] if $mousec.x != @pos[0]
 
 -       $mousec.y = @pos[1] if $mousec.y != @pos[1]
 
 -     end
 
 -   end
 
 -   
 
 -   def Mouse.map_pos
 
 -     return nil if @pos == nil 
 
 -     x = ($game_map.display_x / 256) + (@pos[0] / 32)
 
 -     y = ($game_map.display_y / 256) + (@pos[1] / 32)
 
 -     return [x, y]
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ** 输出
 
 - #==============================================================================
 
 - class << Input
 
 -   alias wor_input_upd_mouse update unless $@
 
 -   alias wor_input_trig_mouse trigger? unless $@
 
 -   alias wor_input_rep_mouse repeat? unless $@
 
 -   def Input.update
 
 -     wor_input_upd_mouse
 
 -     Mouse.update
 
 -   end
 
 -   
 
 -   def Input.trigger?(input)
 
 -     return wor_input_trig_mouse(input) if Mouse.pos.nil?
 
 -     case input
 
 -     when Input::B
 
 -       return (wor_input_trig_mouse(input) or Mouse.click?(2))
 
 -     when Input::C
 
 -       if $scene.is_a?(Scene_Map) and !$game_message.visible
 
 -         return wor_input_trig_mouse(input)
 
 -       else
 
 -         return (wor_input_trig_mouse(input) or Mouse.click?(1))
 
 -       end
 
 -     else
 
 -       return wor_input_trig_mouse(input)
 
 -     end
 
 -   end
 
 -   
 
 -   def Input.repeat?(input)
 
 -     if input == Input::B
 
 -       return (wor_input_rep_mouse(input) or Mouse.click?(2))
 
 -     else
 
 -       return wor_input_rep_mouse(input)
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** 图形
 
 - #==============================================================================
 
 - class << Graphics
 
 -   alias wor_graph_fadeout_mouse fadeout unless $@
 
 -   def Graphics.fadeout(frames = 1)
 
 -     $mousec.visible = false if !$mousec.nil?
 
 -     wor_graph_fadeout_mouse(frames)
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Window_Selectable
 
 - #==============================================================================
 
 - class Window_Selectable < Window_Base
 
 -   alias wor_winsel_ini_mouse initialize
 
 -   alias wor_winsel_upd_mouse update
 
 -   def initialize(*args)
 
 -     wor_winsel_ini_mouse(*args)
 
 -     @scroll_wait = 0
 
 -     @cursor_wait = 0
 
 -   end
 
  
-   def update
 
 -     wor_winsel_upd_mouse
 
 -     update_mouse if self.active and self.visible
 
 -   end
 
 -   
 
 -   def update_mouse
 
 -     @cursor_wait -= 1 if @cursor_wait > 0
 
 -     (0..@item_max - 1).each do |i|
 
 -       irect = item_rect(i)
 
 -       irx = self.x + 16 + irect.x - self.ox
 
 -       iry = self.y + 16 + irect.y - self.oy
 
 -       move_cursor(i) if Mouse.area?(irx, iry, irect.width, irect.height)
 
 -     end
 
 -   end
 
  
-   def move_cursor(index)
 
 -     return if @index == index
 
 -     @scroll_wait -= 1 if @scroll_wait > 0
 
 -     row1 = @index / @column_max
 
 -     row2 = index / @column_max
 
 -     bottom = self.top_row + (self.page_row_max - 1)
 
 -     if row1 == self.top_row and row2 < self.top_row
 
 -       return if @scroll_wait > 0
 
 -       @index = [@index - @column_max, 0].max
 
 -       @scroll_wait = 4
 
 -     elsif row1 == bottom and row2 > bottom
 
 -       return if @scroll_wait > 0
 
 -       @index = [@index + @column_max, @item_max - 1].min
 
 -       @scroll_wait = 4
 
 -     else
 
 -       @index = index
 
 -     end
 
 -     return if @cursor_wait > 0
 
 -     Sound.play_cursor
 
 -     @cursor_wait += 2
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Window_MenuStatus
 
 - #==============================================================================
 
 - class Window_MenuStatus < Window_Selectable
 
 -   def item_rect(index)
 
 -     return Rect.new(0, index * 96, contents.width, 96)
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Window_NameInput
 
 - #==============================================================================
 
 - class Window_NameInput < Window_Base
 
 -   alias wor_winnam_upd_mouse update
 
 -   def update
 
 -     wor_winnam_upd_mouse
 
 -     if self.active and self.visible
 
 -       (0..TABLE[@mode].size - 1).each do |i|
 
 -       irect = item_rect(i)
 
 -       irx = self.x + 16 + irect.x - self.ox
 
 -       iry = self.y + 16 + irect.y - self.oy
 
 -       @index = i if Mouse.area?(irx, iry, irect.width, irect.height)
 
 -       end
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Window_PartyCommand
 
 - #==============================================================================
 
 - class Window_PartyCommand < Window_Command
 
 -   def update_mouse
 
 -     (0..@item_max - 1).each do |i|
 
 -     irect = item_rect(i)
 
 -     irx = self.viewport.ox + 16 + irect.x - self.ox
 
 -     iry = 288 + 16 + irect.y - self.oy
 
 -     self.index = i if Mouse.area?(irx, iry, irect.width, irect.height)
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Window_ActorCommand
 
 - #==============================================================================
 
 - class Window_ActorCommand < Window_Command
 
 -   def update_mouse
 
 -     (0..@item_max - 1).each do |i|
 
 -     irect = item_rect(i)
 
 -     irx = self.viewport.ox + 288 + 16 + irect.x
 
 -     iry = 288 + 16 + irect.y
 
 -     self.index = i if Mouse.area?(irx, iry, irect.width, irect.height)
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Window_Message
 
 - #==============================================================================
 
 - class Window_Message < Window_Selectable
 
 -   def update_mouse
 
 -     (0..@item_max - 1).each do |i|
 
 -       irect = item_rect(i)
 
 -       irx = self.x + 16 + irect.x - self.ox
 
 -       iry = self.y + 16 + irect.y - self.oy + ($game_message.choice_start * WLH)
 
 -       self.index = i if Mouse.area?(irx, iry, irect.width, irect.height)
 
 -     end
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ** Scene_Base
 
 - #==============================================================================
 
 - class Scene_Base
 
 -   alias wor_scebase_posstr_mouse post_start
 
 -   alias wor_scebase_preter_mouse pre_terminate
 
 -   def post_start
 
 -     $mousec.visible = true if !$mousec.nil?
 
 -     wor_scebase_posstr_mouse
 
 -   end
 
 -   
 
 -   def pre_terminate
 
 -     $mousec.visible = false if !$mousec.nil?
 
 -     wor_scebase_preter_mouse
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Scene_File
 
 - #==============================================================================
 
 - class Scene_File < Scene_Base
 
 -   alias wor_scefil_upd_mouse update
 
 -   def update
 
 -     (0..@item_max - 1).each do |i|
 
 -       ix = @savefile_windows[i].x
 
 -       iy = @savefile_windows[i].y
 
 -       iw = @savefile_windows[i].width
 
 -       ih = @savefile_windows[i].height
 
 -       if Mouse.area?(ix, iy, iw, ih)
 
 -         @savefile_windows[@index].selected = false
 
 -         @savefile_windows[i].selected = true
 
 -         @index = i
 
 -       end
 
 -     end
 
 -     wor_scefil_upd_mouse
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Scene_Map
 
 - #==============================================================================
 
 - class Scene_Map < Scene_Base
 
 -   alias wor_scemap_ini_mouse initialize
 
 -   alias wor_scemap_upd_mouse update
 
 -   def initialize
 
 -     @last_click = [nil, nil]
 
 -     wor_scemap_ini_mouse
 
 -   end
 
 -   
 
 -   def update
 
 -     wor_scemap_upd_mouse
 
 -     mouse_xy = Mouse.map_pos
 
 -     if Mouse.click?(1) and !mouse_xy.nil? and !$game_message.visible and
 
 -       !$game_map.interpreter.running?
 
 -       $game_player.turn_toward_pos(mouse_xy[0], mouse_xy[1])
 
 -       if $game_player.close?(mouse_xy[0],mouse_xy[1]) and
 
 -         $game_player.check_action_event
 
 -         $game_player.clear_path
 
 -         return
 
 -       end
 
 -       if $game_map.passable?(mouse_xy[0], mouse_xy[1])
 
 -         $game_player.find_path(mouse_xy[0], mouse_xy[1])
 
 -       end
 
 -       @last_click = mouse_xy
 
 -     end
 
 -     if Mouse.click?(3) and !mouse_xy.nil? and !$game_message.visible and
 
 -       !$game_map.interpreter.running?
 
 -       $game_player.clear_path
 
 -       $game_player.turn_toward_pos(mouse_xy[0], mouse_xy[1])
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ** Game_Character
 
 - #==============================================================================
 
 - class Game_Character
 
 -   def turn_toward_pos(x,y)
 
 -     sx = distance_x_from_pos(x)
 
 -     sy = distance_y_from_pos(y)
 
 -     if sx.abs > sy.abs
 
 -       sx > 0 ? turn_left : turn_right
 
 -     elsif sx.abs < sy.abs
 
 -       sy > 0 ? turn_up : turn_down
 
 -     end
 
 -   end
 
 -   
 
 -   def distance_x_from_pos(x)
 
 -     sx = @x - x
 
 -     if $game_map.loop_horizontal?
 
 -       if sx.abs > $game_map.width / 2
 
 -         sx -= $game_map.width
 
 -       end
 
 -     end
 
 -     return sx
 
 -   end
 
 -   
 
 -   def distance_y_from_pos(y)
 
 -     sy = @y - y
 
 -     if $game_map.loop_vertical?
 
 -       if sy.abs > $game_map.height / 2
 
 -         sy -= $game_map.height
 
 -       end
 
 -     end
 
 -     return sy
 
 -   end
 
 -   
 
 -   def close?(x,y)
 
 -     sx = (@x - x).abs
 
 -     sy = (@y - y).abs
 
 -     if sx + sy == 1
 
 -       return true
 
 -     end
 
 -     return false
 
 -   end
 
 - end
 
  复制代码 插入以上脚本后,请自己找一个鼠标,命名为fox_cursor 
不知道你要找的是不是这个 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |