查看: 1775|回复: 0

[已经过期] 鼠标指针能不能随地图变化

[复制链接]
梦石
0
星屑
1314
在线时间
904 小时
注册时间
2014-12-4
回帖
349
发表于 2015-9-16 12:37:38 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
https://rpg.blue/forum.php?mod=viewthread&tid=347535 原帖地址
sion 大大的鼠标脚本,其中的插件鼠标指针变化V2.2, 能不能实现在固定的地图变成指定的鼠标指针图标,或者 在固定的地图把鼠标指针i 固定住?
脚本原文
[pre lang="ruby"]# 鼠标指针变换功能 v2.2 (2014.1.24)
# ·需· 鼠标系统(SionMouseSystem)v2.1+
# 说明:
#    鼠标指针图片参考 Grpahics\System\VariableCursor.png
#    单个指针图片大小默认是64x64,图片的中心为鼠标坐标
#
#    事件中添加注释: 鼠标指针i
#        鼠标移动到此事件上时鼠标指针自动切换到对应图片
#    可以参考范例里的事件注释
#
#
class << Mouse
CursorSize = 64 #单个图标大小
  def create_cursor(vp)
    dispose_cursor if @sprite
    @sprite = Sprite.new(vp)
    @sprite.z = 9999
    if File.exist?('Graphics/System/VariableCursor.png')
      @sprite.bitmap = Cache.system('VariableCursor')
    else
      msgbox("Graphics/System/VariableCursor.png 缺失")
      exit
    end
    @sprite.src_rect.set(0, 0, CursorSize, CursorSize)
    @sprite.ox = CursorSize / 2
    @sprite.oy = CursorSize / 2
    update_cursor
  end
  def change_cursor(i)
    @sprite.src_rect.x = i * CursorSize
  end
end

class Scene_Map
  alias_method :change_cursor_update_mouse_action, :update_mouse_action
  def update_mouse_action
    Mouse.change_cursor(0)
    $game_map.events_xy($game_map.mouse_map_x, \
    $game_map.mouse_map_y).each {|event|
      if event.mouse_start?
        break Mouse.change_cursor(1)
      elsif event.cursor_index
        break Mouse.change_cursor(event.cursor_index)
      end
    }
    change_cursor_update_mouse_action
  end
  alias_method :change_cursor_sion_mouse_call_menu, :call_menu
  def call_menu
    Mouse.change_cursor(0)
    change_cursor_sion_mouse_call_menu
  end
end

class Game_Event
  attr_reader :locked, :cursor_index
  alias_method :change_cursor_lock, :lock
  def lock
    Mouse.change_cursor(0)
    change_cursor_lock
  end
  alias_method :change_cursor_sion_mouse_start, :sion_mouse_start
  def sion_mouse_start
    Mouse.change_cursor(0)
    change_cursor_sion_mouse_start
  end
  def sion_mouse_read_event_notes
    @mouse_start = false
    @cursor_index = nil
    @list.each {|cmd| break if sion_mouse_scan_list(cmd)} unless empty?
  end
  def sion_mouse_scan_list(cmd) # 覆盖
    return false unless cmd.code == 108 || cmd.code == 408
    text = cmd.parameters[0]
    if text.include?("鼠标启动")
      @mouse_start = true
      @cursor_index = 1 #设置鼠标启动对应的鼠标指针索引
    elsif /鼠标指针(\d+)/ =~ text
      @cursor_index = $1.to_i
    end
    return @cursor_index
  end
end

class Game_Player < Game_Character
  alias_method :change_cursor_make_encounter_count, :make_encounter_count
  def make_encounter_count
    Mouse.change_cursor(0)
    change_cursor_make_encounter_count
  end
end[/pre]
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部