| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 1 | 
 
| 经验 | 151 | 
 
| 最后登录 | 2014-1-19 | 
 
| 在线时间 | 26 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 50 
 
        - 在线时间
 - 26 小时
 
        - 注册时间
 - 2012-7-27
 
        - 帖子
 - 20
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
我用了鼠标脚本。但是 我的菜单栏目 有所增加  但是 鼠标选择的区域却没有改变    ,也就是说 下面的栏目鼠标移动上去却不显示  我想问 鼠标 脚本怎么设置范围  标题画面的 和菜单栏的   求教    鼠标范围啊。。。。。。脚本如下 求大虾帮忙 
 
 
#============================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
#============================================================================== 
 
#=================以下两个用来调整战斗时的手感问题,可以自己试试。 
$敌人选框扩大 = 20 
$角色选框扩大 = 30 
 
 
#============================================================================== 
# API调用 
#============================================================================== 
$ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l') 
$GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i') 
$ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i') 
$GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l') 
$Window_HWND = $GetActiveWindow.call 
$GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i') 
#$FindWindow = Win32API.new("user32", "FindWindow", 'pp', 'i') 
#$HookStart = Win32API.new("mouse_hook.dll", "HookStart", 'i', nil) 
#$HookEnd = Win32API.new("mouse_hook.dll", "HookEnd", nil, nil) 
#$GetMouseStatus = Win32API.new("mouse_hook.dll", "GetMouseStatus", 'i', 'i') 
#$Window_HWND = $FindWindow.call(nil, 'mousetry') 
 
module Mouse  
LEFT = 0x01 
RIGHT = 0x02 
 
def self.init(sprite = nil) 
#   $HookStart.call($Window_HWND) 
    $ShowCursor.call(0) 
     
    @show_cursor = false 
     
    @mouse_sprite = Sprite.new 
    @mouse_sprite.z = 99999 
    @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/001-Weapon01.png') 
    #@mouse_sprite.bitmap.fill_rect(Rect.new(0, 0, 32, 32), Color.new(0, 0, 0)) 
 
    @left_press = false 
    @right_press = false 
    @left_trigger = false 
    @right_trigger = false 
    @left_repeat = false 
    @right_repeat = false 
    @click_lock = false 
     
    update 
end 
def self.exit 
    @mouse_sprite.bitmap.dispose 
    @mouse_sprite.dispose 
    @show_cursor = true 
#    $HookEnd.call 
    $ShowCursor.call(1) 
end 
def self.mouse_debug 
    return @mouse_debug.bitmap 
end 
def self.update 
    left_down = $GetKeyState.call(0x01) 
    right_down = $GetKeyState.call(0x02) 
     
    @click_lock = false 
    mouse_x, mouse_y = self.get_mouse_pos 
    if @mouse_sprite != nil 
      @mouse_sprite.x = mouse_x 
      @mouse_sprite.y = mouse_y 
    end 
    if left_down[7] == 1 
      @left_repeat = (not @left_repeat) 
      @left_trigger = (not @left_press) 
      @left_press = true 
    else 
      @left_press = false 
      @left_trigger = false 
      @left_repeat = false 
    end 
    if right_down[7] == 1 
      @right_repeat = (not @right_repeat) 
      @right_trigger = (not @right_press) 
      @right_press = true 
    else 
      @right_press = false 
      @right_trigger = false 
      @right_repeat = false 
    end 
end 
def self.get_mouse_pos 
    point_var = [0, 0].pack('ll') 
    if $GetCursorPos.call(point_var) != 0 
      if $ScreenToClient.call($Window_HWND, point_var) != 0 
        x, y = point_var.unpack('ll') 
        if (x < 0) or (x > 10000) then x = 0 end 
        if (y < 0) or (y > 10000) then y = 0 end 
        if x > 640 then x = 640 end 
        if y > 480 then y = 480 end 
        return x, y 
      else 
        return 0, 0 
      end 
    else 
      return 0, 0 
    end 
end 
def self.press?(mouse_code) 
    if mouse_code == LEFT 
      if @click_lock 
        return false 
      else 
        return @left_press 
      end 
    elsif mouse_code == RIGHT 
      return @right_press 
    else 
      return false 
    end 
end 
def self.trigger?(mouse_code) 
    if mouse_code == LEFT 
      if @click_lock 
        return false 
      else 
        return @left_trigger 
      end 
    elsif mouse_code == RIGHT 
      return @right_trigger 
    else 
      return false 
    end 
end 
def self.repeat?(mouse_code) 
    if mouse_code == LEFT 
      if @click_lock 
        return false 
      else 
        return @left_repeat 
      end 
    elsif mouse_code == RIGHT 
      return @right_repeat 
    else 
      return false 
    end 
end 
def self.click_lock? 
    return @click_lock 
end 
def self.click_lock 
    @click_lock = true 
end 
def self.click_unlock 
    @click_lock = false 
end 
end 
module Input 
if @self_update == nil 
    @self_update = method('update') 
    @self_press = method('press?') 
    @self_trigger = method('trigger?') 
    @self_repeat = method('repeat?') 
end 
def self.update 
    @self_update.call 
    Mouse.update 
end 
def self.press?(key_code) 
    if @self_press.call(key_code) 
      return true 
    end 
    if key_code == C 
      return Mouse.press?(Mouse::LEFT) 
    elsif key_code == B 
      return Mouse.press?(Mouse::RIGHT) 
    else 
      return @self_press.call(key_code) 
    end 
end 
def self.trigger?(key_code) 
    if @self_trigger.call(key_code) 
      return true 
    end 
    if key_code == C 
      return Mouse.trigger?(Mouse::LEFT) 
    elsif key_code == B 
      return Mouse.trigger?(Mouse::RIGHT) 
    else 
      return @self_trigger.call(key_code) 
    end 
end 
def self.repeat?(key_code) 
    if @self_repeat.call(key_code) 
      return true 
    end 
    if key_code == C 
      return Mouse.repeat?(Mouse::LEFT) 
    elsif key_code == B 
      return Mouse.repeat?(Mouse::RIGHT) 
    else 
      return @self_repeat.call(key_code) 
    end 
end 
end 
class Window_Selectable 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    #self.cursor_rect.empty 
    self_update 
    if self.active and @item_max > 0 
      index_var = @index 
      tp_index = @index 
      mouse_x, mouse_y = Mouse.get_mouse_pos 
      mouse_not_in_rect = true 
      for i in 0...@item_max 
        @index = i 
        update_cursor_rect 
        top_x = self.cursor_rect.x + self.x + 16 
        top_y = self.cursor_rect.y + self.y + 16 
        bottom_x = top_x + self.cursor_rect.width 
        bottom_y = top_y + self.cursor_rect.height 
        if (mouse_x > top_x) and (mouse_y > top_y) and 
           (mouse_x < bottom_x) and (mouse_y < bottom_y) 
          mouse_not_in_rect = false 
          if tp_index != @index 
            tp_index = @index 
            $game_system.se_play($data_system.cursor_se) 
          end 
          break 
        end 
      end 
      if mouse_not_in_rect 
        @index = index_var 
        update_cursor_rect 
        Mouse.click_lock 
      else 
        Mouse.click_unlock                 
      end 
    end 
end 
end 
class Window_NameInput 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    #self.cursor_rect.empty 
    self_update 
    if self.active 
      index_var = @index 
      mouse_x, mouse_y = Mouse.get_mouse_pos 
      mouse_not_in_rect = true 
      for i in (0...CHARACTER_TABLE.size).to_a.push(180) 
        @index = i 
        update_cursor_rect 
        top_x = self.cursor_rect.x + self.x + 16 
        top_y = self.cursor_rect.y + self.y + 16 
        bottom_x = top_x + self.cursor_rect.width 
        bottom_y = top_y + self.cursor_rect.height 
        # 
        if (mouse_x > top_x) and (mouse_y > top_y) and 
           (mouse_x < bottom_x) and (mouse_y < bottom_y) 
          mouse_not_in_rect = false 
          break 
        end 
      end 
      if mouse_not_in_rect 
        @index = index_var 
        update_cursor_rect 
        Mouse.click_lock 
      else 
        Mouse.click_unlock 
      end 
    end 
end  
end 
class Window_InputNumber 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    #self.cursor_rect.empty 
    self_update 
    mouse_x, mouse_y = Mouse.get_mouse_pos 
    if self.active and @digits_max > 0 
      index_var = @index 
      mouse_not_in_rect = true 
      for i in 0...@digits_max 
        @index = i 
        update_cursor_rect 
        top_x = self.cursor_rect.x + self.x + 16 
        bottom_x = top_x + self.cursor_rect.width 
        # 
        if (mouse_x > top_x) and (mouse_x < bottom_x) 
          mouse_not_in_rect = false 
          break 
        end 
      end 
      if mouse_not_in_rect 
        @index = index_var 
        update_cursor_rect 
        Mouse.click_lock 
      else 
        Mouse.click_unlock 
      end 
    end 
    if @last_mouse_y == nil 
      @last_mouse_y = mouse_y 
    end 
    check_pos = (@last_mouse_y - mouse_y).abs 
    if check_pos > 10 
      $game_system.se_play($data_system.cursor_se) 
      place = 10 ** (@digits_max - 1 - @index) 
      n = @number / place % 10 
      @number -= n * place 
      n = (n + 1) % 10 if mouse_y < @last_mouse_y 
      n = (n + 9) % 10 if mouse_y > @last_mouse_y 
      @number += n * place 
      refresh 
      @last_mouse_y = mouse_y 
    end 
end 
end 
class Scene_File 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    mouse_x, mouse_y = Mouse.get_mouse_pos 
    Mouse.click_lock 
    idx = 0 
    for i in @savefile_windows 
      top_x = i.x + 16 
      top_y = i.y + 16 
      bottom_x = top_x + i.width 
      bottom_y = top_y + i.height 
      if (mouse_x > top_x) and (mouse_y > top_y) and 
         (mouse_x < bottom_x) and (mouse_y < bottom_y) 
        i.selected = true 
        if @file_index != idx  
          @file_index = idx 
          $game_system.se_play($data_system.cursor_se) 
        end             
        Mouse.click_unlock 
      else 
        i.selected = false 
      end 
      idx += 1 
    end 
    self_update 
end 
end 
class Arrow_Enemy 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    mouse_x, mouse_y = Mouse.get_mouse_pos 
    idx = 0 
    for i in $game_troop.enemies do 
      if i.exist? 
        top_x = i.screen_x - self.ox 
        top_y = i.screen_y - self.oy 
        bottom_x = top_x + self.src_rect.width 
        bottom_y = top_y + self.src_rect.height 
        if (mouse_x > top_x - $敌人选框扩大) and (mouse_y > top_y - $敌人选框扩大) and 
           (mouse_x < bottom_x + $敌人选框扩大) and (mouse_y < bottom_y + $敌人选框扩大) 
          if @index != idx 
            $game_system.se_play($data_system.cursor_se) 
            @index = idx 
          end 
        end 
      end 
      idx += 1 
    end 
    self_update 
end 
end 
class Arrow_Actor 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    mouse_x, mouse_y = Mouse.get_mouse_pos 
    idx = 0 
    for i in $game_party.actors do 
      if i.exist? 
        top_x = i.screen_x - self.ox 
        top_y = i.screen_y - self.oy 
        bottom_x = top_x + self.src_rect.width 
        bottom_y = top_y + self.src_rect.height 
        if (mouse_x > top_x - $角色选框扩大) and (mouse_y > top_y - $角色选框扩大) and 
           (mouse_x < bottom_x + $角色选框扩大) and (mouse_y < bottom_y + $角色选框扩大) 
          if @index != idx 
            $game_system.se_play($data_system.cursor_se) 
            @index = idx 
          end 
        end 
      end 
      idx += 1 
    end 
    self_update 
end 
end 
class Game_Player 
if @self_alias == nil 
    alias self_update update 
    @self_alias = true 
end 
def update 
    mouse_x, mouse_y = Mouse.get_mouse_pos 
 
    if @last_move_x == nil 
      @last_move_x = false 
    end 
    if Mouse.press?(Mouse::LEFT) 
      last_moving = moving? 
      last_direction = @direction 
      unless moving? or $game_system.map_interpreter.running? or 
             @move_route_forcing or $game_temp.message_window_showing 
        last_x = @x 
        if @last_move_x 
          @last_move_x = false 
        elsif mouse_x > screen_x + 16 
          move_right 
        elsif mouse_x < screen_x - 16 
          move_left 
        end 
        last_y = @y 
        if last_x != @x 
          @last_move_x = true 
        elsif mouse_y > screen_y 
          move_down 
        elsif mouse_y < screen_y - 32 
          move_up 
        end 
        if last_y != @y 
          @last_move_x = false 
        elsif not @last_move_x 
          case last_direction 
          when 2 
            turn_down 
          when 4 
            turn_left 
          when 6 
            turn_right 
          when 8 
            turn_up 
          end 
        end 
      end 
    end 
    self_update 
end 
end 
Mouse.init 
END { Mouse.exit } 
 
 
 
 
#============================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
#============================================================================== 
  
 |   
 
 
 
 |