/ 2 and mouse_x < event.screen_x + event_width / 2 and mouse_y + 32 > event.screen_y + 32 - event_height and mouse_y + 32 < event.screen_y + 32for i in 0...event.list.sizereturn 1, event if ["Item", "Npc"].include?(event.list.parameters[0]) #返回存在自定义事件以及事件体endendendreturn 0, event #返回不存在自定义事件,以及事件体endend#=================以下两个用来调整战斗时的手感问题,可以自己试试。$敌人选框扩大 = 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')module Mouse LEFT = 0x01RIGHT = 0x02def self.init(sprite = nil)$ShowCursor.call(0)
@show_cursor = false
@mouse_ani_viewport = Viewport.new(0,0,640,480)@mouse_ani_viewport.z = 1@mouse_ani = RPG::Sprite.new(@mouse_ani_viewport)@mouse_ani.z = 1
@mouse_bitmap = Bitmap.new('Menu/mouse/Mouse')#动态地址
@mouse_sprite = Sprite.new@mouse_sprite.z = 99999@mouse_sprite.bitmap = Bitmap.new('Menu/mou****ouse_sprite.bitmap.fill_rect(Rect.new(0, 0, 32, 32), Color.new(0, 0, 0))
$data_animations = load_data("Data/Animations.rxdata")@mouse_wait_count = $data_animations[204].frame_max * 2@mouse_wait = 0
@b = 1@left_press = false@right_press = false@left_trigger = false@right_trigger = false@left_repeat = false@right_repeat = false@click_lock = false
updateenddef self.exit@mouse_sprite.bitmap.dispose@mouse_sprite.dispose#..........................................................................@mouse_ani.dispose#..........................................................................@show_cursor = true$ShowCursor.call(1)enddef self.mouse_debugreturn @mouse_debug.bitmapend#.........................................................................def self.set_ani(x, y)@ani_x = x@ani_y = yx -= $game_map.display_x / 4y -= $game_map.display_y / 4@mouse_ani.x, @mouse_ani.y = x, y@mouse_ani.animation($data_animations[204],true)@mouse_wait = @mouse_wait_countenddef self.update_ani#if @mouse_wait > 0x = @ani_xy = @ani_yx -= $game_map.display_x / 4y -= $game_map.display_y / 4@mouse_ani.x, @mouse_ani.y = x, y@mouse_ani.update@mouse_wait -= 1endend#.........................................................................def self.update#.........................................................................update_ani#.........................................................................left_down = $GetKeyState.call(0x01)right_down = $GetKeyState.call(0x02)if Graphics.frame_count * 3 / Graphics.frame_rate != @total_sec@total_sec = Graphics.frame_count * 3 / Graphics.frame_rate
@a = !@aendif
@b >= 27
@b = 0else
@b += 1endif $scene.is_a?(Scene_Map) == false$mouse_icon_id = 0endif $mouse_icon_id != $mouse_icon_id_lastcase $mouse_icon_idwhen 1if @a@mouse_sprite.bitmap = Bitmap.new('Menu/Mouse/I')else@mouse_sprite.bitmap = Bitmap.new('Menu/Mouse/I2')endwhen 2if @a@mouse_sprite.bitmap = Bitmap.new('Menu/Mouse/N')else@mouse_sprite.bitmap = Bitmap.new('Menu/Mouse/N2')endwhen 11@mouse_sprite.