一键打卡 每日打卡 龙鳞魔堡 金豆锻造 荣誉胸章 海底寻宝 非诚勿扰 虚拟刮奖 杂货道具 好友印象 心情随笔 中华银行 家族部落 积分兑换 图片上传 图片压缩 在线翻译 在线查毒
发表新帖 回帖
No.45639
👦 5721427123
  

解决DNF单机鼠标无法下翻的问题

中华游戏网 cnyouw写于:中华游戏网-CNYOUW 👦会员:5721427123 🕘时间:2010-10-09 16:47 👀围观:12021人 💬回复:6
🔔 管理提醒: 本帖被 冇柒、 执行锁定操作(2013-06-25)
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

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
        #  row = @index / @column_max
          # 当前行被显示开头行前面的情况下
          if self.top_row < row_max-page_row_max and Mouse.press?(Mouse::LEFT) and mouse_y>self.y+self.height/2
            self.top_row +=1
          end
          # 当前行被显示末尾行之后的情况下
          if self.top_row > 0 and Mouse.press?(Mouse::LEFT) and mouse_y<=self.y+self.height/2#self.top_row + (self.page_row_max - 1)
            # 从当前行向末尾滚动
            self.top_row -=1
          end
        @index = index_var
        if self.is_a?(Window_Target)
          @index=-3
        end
        update_cursor_rect
        Mouse.click_lock
      else
        Mouse.click_unlock              
      end
    end
  end
  def update_cursor_rect
    # 光标位置不满 0 的情况下
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # 获取当前的行
    row = @index / @column_max
    # 当前行被显示开头行前面的情况下
    if row < self.top_row
      # 从当前行向开头行滚动
      self.cursor_rect.empty
      return
    end
    # 当前行被显示末尾行之后的情况下
    if row > self.top_row + (self.page_row_max - 1)
      # 从当前行向末尾滚动
      self.cursor_rect.empty
      return
    end
    # 计算光标的宽
    cursor_width = self.width / @column_max - 32
    # 计算光标坐标
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 32 - self.oy
    # 更新光标矩形
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
end



#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
中华游戏网 cnyouw.cn中华游戏网 cnyouw
SIGNATURE
纯爹爹!哈!
No.45639
👦 5721427123
  
是滴.......要有RM才行的
SIGNATURE
纯爹爹!哈!
No.223421
👹 smilepi
  
怎么用呀  是不是要替换某个文件?
SIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
No.108404
👦 823079859
  
我顶啊~~
No.45639
👦 5721427123
  
怎么没人顶啊~~~
SIGNATURE
纯爹爹!哈!
No.45639
👦 5721427123
  
PR可以参考一下,看能不能把DNF单机的鼠标翻新一下。
SIGNATURE
纯爹爹!哈!
No.45639
👦 5721427123
  
这个东西的用途就是在选择项超过一页的时候,点击窗口外面自动往下滚动。看懂的也可以把点击范围限制在窗口的下/上方某个区域……甚至自制选项条……
SIGNATURE
纯爹爹!哈!