设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2014|回复: 1
打印 上一主题 下一主题

[已经解决] 怎么去掉这个鼠标脚本的右键菜单

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2012-9-23 11:47:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 黑舞嗜 于 2012-9-23 11:49 编辑

这个是论坛下载的豪华鼠标系统,有3个脚本,他点右键会先弹出一个子菜单,里面有进入菜单,游戏版权等等,我想去掉这个子菜单,注释了半天都没研究出来,求脚本达人指教


有3个脚本,应该是改第一个:
  1. #==============================================================================
  2. #新鼠标系统 V 1.1  by END66RPG && end55rpg && 灵魂の补给 2012.5
  3. #----------------------------使用必看------------------------------------------
  4. #脚本修改较多,要换素材最好不要改脚本,直接看素材Graphics/Mouse/...文件夹。
  5. #鼠标形状状态的说明:
  6. #1.行走时会变成 wait.png
  7. #2.指向事件会变成 npc.png
  8. #3.指向非事件的character会变成 红色光标
  9. #4.指向名字含有item字样的事件会变成 coach.png、
  10. #5.【注意!】不用鼠标触发の事件请名字带有“no point”
  11. #除上所述,鼠标变成 紫色光标
  12. #备注:要修改鼠标图像,最好别改脚本了,
  13. #      在Graphics\Mouse中:
  14. #      1.png为鼠标图标
  15. #      2.png-4.png是动态普通形状
  16. #      5-10是指向非事件的鼠标图
  17. #      其余自己看着改吧!
  18. #      复制本工程需要3个脚本 /Graphics/(+ Icons + Mouse)图像。
  19. #下面可修改([]中为通常的样子):
  20. 合成方式 = 0  
  21. #@blend_tepe【1  】:0~2
  22. 透明速度 = 10
  23. #@opacity   【10 】:0~255
  24. 下降速度 = 1  
  25. #@jy        【1  】:0~50
  26. X放大率  = 0.1
  27. #@zoom_x    【0.1 or -0.03】:-1~1
  28. Y放大率  = 0.1
  29. #@zoom_y    【0.1 or -0.03】:-1~1
  30. 残影     = false
  31. #shadow 【true / false】
  32. 残光     = false
  33. #show_light 【true / false】
  34. 旋转     = false
  35. #angle   【true、false】
  36. 动态     = false#true
  37. #anima   【true、false】
  38. #由于残光会建立94个图像,内存低就把show_light 给false掉吧~~
  39. #加入鼠标转向专利一个~~我是仿windows显示时间屏保的鼠标制作的~~
  40. #是关于Math的算法,不是只有8方向,而是360个= =!!~
  41. #把【85】行去掉“#”就会掉many FPS 不过很华丽~~(注:先开启旋转,残光功能!)
  42. #-----------------------------------分割线--------------------------------------
  43. #如果需要在游戏中调用修改鼠标各项设置:见204行处的方法调用,不需要改变的量用nil
  44. #表示!
  45. #==============================================================================
  46. module Mouse  
  47. def self.text
  48.     return [["1.进入菜单","$scene = Scene_Menu.new"],["2.游戏版权","$game_temp.common_event_id = 1"],["3.网络吐槽","p'接口无效!'"],["关闭游戏","$scene = Scene_Gameover.new"],["练习事件","$game_temp.common_event_id = 2"]]
  49.   end
  50.   def self.init2
  51.     #Directions
  52.     @dir = 0
  53.     @old_x, @old_y = 0, 0
  54.     #Animations
  55.     @light_id = 1
  56.     @mouse_sprite1 = Sprite.new;
  57.     @mouse_sprite1.z = 9999;
  58.   #  @mouse_sprite1.bitmap = Bitmap.new("Graphics/Icons/#{@light_id}");
  59.     @light_id = 1
  60.     @canyin = []
  61.   #  @rmenu = nil#右键菜单
  62.     @rightmenu = false
  63.     @mouse_touch = false
  64.   end
  65.   def self.setbb(a,b,c,d,e,f,g,h,i)
  66.     @blend_tepe = a if a != nil
  67.     @opacity    = b if b != nil   
  68.     @jy         = c if c != nil        
  69.     @zoom_x     = d if d != nil   
  70.     @zoom_y     = e if e != nil   
  71.     @light      = f if f != nil     
  72.     @shadow     = g if g != nil   
  73.     @angle      = h if h != nil     
  74.     @anima      = i if i != nil     
  75.   end

  76.   def self.show_light(mx, my)
  77.     @canyin.each{|s|s.opacity <= 0 ? (s.visible = false ; @canyin.delete(s)) : s.opacity -= 25}
  78.     if @light
  79.     @light_id < 94 ? @light_id += 1 : @light_id = 1
  80.     i = @light_id
  81.     eval("@mouse_sprite#{i} = Sprite.new")
  82.     eval("@mouse_sprite#{i}.x = #{mx}")
  83.     eval("@mouse_sprite#{i}").y = my
  84.     eval("@mouse_sprite#{i}").blend_type = @blend_tepe
  85.     eval("@mouse_sprite#{i}").z = 9999;
  86.    #eval("@mouse_sprite#{i}").angle = @mouse_sprite.angle
  87.     eval("@mouse_sprite#{i}").bitmap = Bitmap.new("Graphics/Icons/#{@light_id}")
  88.     for i in 1..94
  89.       begin
  90.       eval("@mouse_sprite#{i}").opacity -= @opacity #10
  91.       eval("@mouse_sprite#{i}").y += @jy#1
  92.       eval("@mouse_sprite#{i}").zoom_x += @zoom_x#0.105
  93.       eval("@mouse_sprite#{i}").zoom_y += @zoom_y#0.105
  94.       eval("@mouse_sprite#{i}").dispose if eval("@mouse_sprite#{i}").opacity <= 0
  95.       rescue
  96.       end
  97.     end
  98.     if @plight == true
  99.       self.update_light
  100.     end
  101.     end
  102.     return if !@angle
  103.     a = 0
  104.     #被废掉的朝向
  105.     hu = [(@old_x - mx), (@old_y - my)]
  106.    
  107.     return if hu[0] == 0 or hu[1] == 0
  108.     math = 135 - self.atoa(Math.atan(hu[1]/hu[0]))
  109.     if hu[0] > 0
  110.       @mouse_sprite.angle = math - 90
  111.     else
  112.       @mouse_sprite.angle = math + 90
  113.     end
  114.     #p math
  115.     @old_x, @old_y = mx, my
  116.    
  117.    
  118.   end
  119.   def self.plight
  120.     return unless @light
  121.     @l = Sprite.new
  122.     @l.z = 999999
  123.     @pcount = 30
  124.     @l.blend_type = 1
  125.     @l.bitmap = Bitmap.new("Graphics/Icons/#{@pcount}");
  126.     @l.ox = @l.bitmap.width / 2
  127.     @l.oy = @l.bitmap.height / 2
  128.     @l.x, @l.y = @mouse_sprite.x, @mouse_sprite.y
  129.     @plight = true
  130.    
  131.   end
  132.   def self.update_light
  133.     @pcount += 1
  134.     @l.bitmap = Bitmap.new("Graphics/Icons/#{@pcount}")
  135.     @l.zoom_x += 0.1
  136.     @l.zoom_y += 0.1
  137.     @l.opacity -= 10
  138.     if @pcount >= 70
  139.       @l.dispose
  140.       @pcount = 0
  141.       @plight = false
  142.     end
  143.   end
  144.   def self.atoa(hu)#弧度转角度
  145.     return (hu * 180) / Math::PI
  146.     #
  147.   end

  148. #==============================================================================
  149. #New Part!
  150. #==============================================================================
  151. def self.moving(x,y)
  152.     return if !@shadow == true
  153.     sprite = Sprite.new
  154.     sprite.z = 999
  155.     sprite.bitmap = @mouse_sprite.bitmap if !@mouse_sprite.disposed?#Bitmap.new("Graphics/Mouse/1.png")
  156.     sprite.x,sprite.y = x,y
  157.     sprite.opacity = 200
  158.     sprite.angle = @mouse_sprite.angle
  159.     @canyin.push sprite
  160.   end
  161.   def self.canyin
  162.     return @canyin.size
  163.   end
  164.   def self.right_menu(x,y)
  165.     n = text.size
  166.     @rmenu.dispose if @rmenu != nil
  167.     @rmenu = Sprite.new
  168.     @rmenu.z = 1000
  169.     @rmenu.bitmap = Bitmap.new(150,32*n)
  170.     @rmenu.bitmap.fill_rect(0, 0, 150, 32*n, Color.new(255,255,255))
  171.     @rmenu.bitmap.font.color = Color.new(68,34,255)
  172.     n.times{|i|
  173.     @rmenu.bitmap.fill_rect(0, i*32, 150, 1, Color.new(0,0,0))
  174.     @rmenu.bitmap.draw_text(0, i*32, 150, 32,text[i][0])
  175.    
  176.     }
  177.     @rmenu.x,@rmenu.y = x,y
  178.     @rmenu.opacity = 200
  179.     @rightmenu = true
  180.   end
  181.   def self.mouse_touch=(bar)
  182.     @mouse_touch = bar
  183.   end
  184.   def self.mouse_touch
  185.     return @mouse_touch
  186.   end
  187.   def self.check
  188.     if Mouse.trigger?(Mouse::LEFT)
  189.     if @rightmenu
  190.       mx,my = Mouse.get_mouse_pos
  191.       lx = @rmenu.x - @rmenu.ox
  192.       rx = lx + @rmenu.bitmap.width
  193.       ty = @rmenu.y - @rmenu.oy
  194.       by = ty + @rmenu.bitmap.height
  195.       if mx < lx or mx > rx or my < ty or my > by or
  196.         @rmenu.bitmap.get_pixel(mx-lx,my-ty).alpha == 0
  197.         
  198.       else
  199.         a = []
  200.         text.size.times{|t|a << [t*32 , ([email protected]).abs].min}
  201.         eval(text[(a.max/32).to_i][1])
  202.       end
  203.       @rightmenu = false
  204.       @rmenu.dispose
  205.         @rmenu = nil
  206.         return
  207.     end
  208.     end
  209.   end      
  210. end
  211. Mouse.init2
  212. Mouse.setbb(合成方式,
  213. 透明速度,
  214. 下降速度,
  215. X放大率,
  216. Y放大率,残光,残影,旋转,动态)
复制代码
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #=================以下两个用来调整战斗时的手感问题,可以自己试试。
  5. $敌人选框扩大 = 20
  6. $角色选框扩大 = 30


  7. #==============================================================================
  8. # API调用
  9. #==============================================================================
  10. $ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l')
  11. $GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i')
  12. $ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i')
  13. $GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l')
  14. $Window_HWND = $GetActiveWindow.call
  15. $GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i')
  16. #$FindWindow = Win32API.new("user32", "FindWindow", 'pp', 'i')
  17. #$HookStart  = Win32API.new("mouse_hook.dll", "HookStart", 'i', nil)
  18. #$HookEnd  = Win32API.new("mouse_hook.dll", "HookEnd", nil, nil)
  19. #$GetMouseStatus  = Win32API.new("mouse_hook.dll", "GetMouseStatus", 'i', 'i')
  20. #$Window_HWND = $FindWindow.call(nil, 'mousetry')

  21. module Mouse  
  22.   LEFT = 0x01
  23.   RIGHT = 0x02
  24. attr_accessor :count                     #变换动画计数
  25. attr_accessor :npc                       #指向NPC
  26. attr_accessor :wait                      #指针变成角色正在移动
  27. attr_accessor :enemy                     #指针指向敌人
  28. attr_accessor :coach                     #coach icons switch
  29.   def self.init(sprite = nil)
  30. #   $HookStart.call($Window_HWND)
  31.     $ShowCursor.call(0)
  32.    
  33.     @show_cursor = false
  34.    
  35.     @mouse_sprite = Sprite.new
  36.     @mouse_sprite.z = 99999
  37.     @mouse_sprite.bitmap = Bitmap.new('Graphics/Mouse/1.png')
  38.     #@mouse_sprite.ox = @mouse_sprite.bitmap.width
  39.     #@mouse_sprite.oy = @mouse_sprite.bitmap.height
  40.     @count = 0
  41.     @npc,@wait,@coach = false
  42.     #@mouse_sprite.bitmap.fill_rect(Rect.new(0, 0, 32, 32), Color.new(0, 0, 0))

  43.     @left_press = false
  44.     @right_press = false
  45.     @left_trigger = false
  46.     @right_trigger = false
  47.     @left_repeat = false
  48.     @right_repeat = false
  49.     @click_lock = false
  50.     @mouse_x, @mouse_y = self.get_mouse_pos
  51.     update
  52.   end
  53.   def self.exit
  54.     @mouse_sprite.bitmap.dispose
  55.     @mouse_sprite.dispose
  56.     @show_cursor = true
  57. #    $HookEnd.call
  58.     $ShowCursor.call(1)
  59.   end
  60.   def self.mouse_debug
  61.     return @mouse_debug.bitmap
  62.   end
  63. #======================================================
  64. #change icon!
  65. #======================================================
  66.   def self.npc
  67.     if @npc != true
  68.     @count = 10
  69.     @npc = true
  70.     end
  71.   end
  72.   def self.wait
  73.     if @wait != true
  74.     @count = 10
  75.     @wait = true
  76.     end
  77.   end
  78.   def self.enemy
  79.     if @enemy != true
  80.     @count = 10
  81.     @enemy = true
  82.     end
  83.   end
  84.   def self.coach
  85.     if @coach != true
  86.       @count = 10
  87.       @coach = true
  88.     end
  89.   end
  90. #======================================================
  91. #end
  92. #======================================================
  93.   def self.update
  94.     if @anima == true
  95.     if @npc == true
  96.       if @count == 80
  97.         @count = 0
  98.         @npc = false
  99.       else
  100.         @count += 2
  101.         end
  102.       if FileTest.exist?("Graphics/Mouse/npc_#{@count/10}.png")
  103.         @mouse_sprite.bitmap = Bitmap.new("Graphics/Mouse/npc_#{@count/10}.png")
  104.       end
  105.     elsif @coach == true
  106.       if @count == 60
  107.         @count = 0
  108.         @coach = false
  109.       else
  110.         @count += 2
  111.         end
  112.       if FileTest.exist?("Graphics/Mouse/coach_#{@count/10}.png")
  113.         @mouse_sprite.bitmap = Bitmap.new("Graphics/Mouse/coach_#{@count/10}.png")
  114.       end
  115.     elsif @enemy == true
  116.       if @count == 60
  117.         @count = 0
  118.         @enemy= false
  119.       else
  120.         @count += 2
  121.         end
  122.         if FileTest.exist?("Graphics/Mouse/#{@count/10 + 4}.png")
  123.         @mouse_sprite.bitmap = Bitmap.new("Graphics/Mouse/#{@count/10 + 4}.png")
  124.       end
  125.       elsif @wait == true
  126.       if @count == 60
  127.         @count = 0
  128.         @wait = false
  129.       else
  130.         @count += 2
  131.         end
  132.         if FileTest.exist?("Graphics/Mouse/wait_#{@count/10}.png")
  133.         @mouse_sprite.bitmap = Bitmap.new("Graphics/Mouse/wait_#{@count/10}.png")
  134.       end
  135.   
  136.       else
  137.       @count == 40 ? @count = 0 : @count += 2
  138.     if FileTest.exist?("Graphics/Mouse/#{@count/10}.png")
  139.        @mouse_sprite.bitmap = Bitmap.new("Graphics/Mouse/#{@count/10}.png")
  140.     end
  141.   end
  142.   end
  143.     left_down = $GetKeyState.call(0x01)
  144.     right_down = $GetKeyState.call(0x02)
  145.    
  146.     @click_lock = false
  147.     mouse_x,mouse_y = self.get_mouse_pos
  148.     if @mouse_x != mouse_x or @mouse_y != mouse_y
  149.       moving(@mouse_x, @mouse_y)
  150.       @mouse_x, @mouse_y = mouse_x,mouse_y
  151.     end
  152.     mouse_x, mouse_y = self.get_mouse_pos
  153.     self.show_light(@mouse_sprite.x, mouse_y)
  154.     self.check
  155.     if @mouse_sprite != nil
  156.       @mouse_sprite.x = mouse_x
  157.       @mouse_sprite.y = mouse_y
  158.     end
  159.     if left_down[7] == 1
  160.       @left_repeat = (not @left_repeat)
  161.       @left_trigger = (not @left_press)
  162.       @left_press = true
  163.     else
  164.       @left_press = false
  165.       @left_trigger = false
  166.       @left_repeat = false
  167.     end
  168.     if right_down[7] == 1
  169.       @right_repeat = (not @right_repeat)
  170.       @right_trigger = (not @right_press)
  171.       @right_press = true
  172.     else
  173.       @right_press = false
  174.       @right_trigger = false
  175.       @right_repeat = false
  176.     end
  177.   end
  178.   def self.get_mouse_pos
  179.     point_var = [0, 0].pack('ll')
  180.     if $GetCursorPos.call(point_var) != 0
  181.       if $ScreenToClient.call($Window_HWND, point_var) != 0
  182.         x, y = point_var.unpack('ll')
  183.         if (x < 0) or (x > 10000) then x = 0 end
  184.         if (y < 0) or (y > 10000) then y = 0 end
  185.         if x > 800 then x = 600 end
  186.         if y > 800 then y = 600 end
  187.         return x, y
  188.       else
  189.         return 0, 0
  190.       end
  191.     else
  192.       return 0, 0
  193.     end
  194.   end
  195.   def self.press?(mouse_code)
  196.     if mouse_code == LEFT
  197.       if @click_lock
  198.         return false
  199.       else
  200.         return @left_press
  201.       end
  202.     elsif mouse_code == RIGHT
  203.       return @right_press
  204.     else
  205.       return false
  206.     end
  207.   end
  208.   def self.trigger?(mouse_code)
  209.     if mouse_code == LEFT
  210.       if @click_lock
  211.         return false
  212.       else
  213.         return @left_trigger
  214.       end
  215.     elsif mouse_code == RIGHT
  216.       return @right_trigger
  217.     else
  218.       return false
  219.     end
  220.   end
  221.   def self.repeat?(mouse_code)
  222.     if mouse_code == LEFT
  223.       if @click_lock
  224.         return false
  225.       else
  226.         return @left_repeat
  227.       end
  228.     elsif mouse_code == RIGHT
  229.       return @right_repeat
  230.     else
  231.       return false
  232.     end
  233.   end
  234.   def self.click_lock?
  235.     return @click_lock
  236.   end
  237.   def self.click_lock
  238.     @click_lock = true
  239.   end
  240.   def self.click_unlock
  241.     @click_lock = false
  242.   end
  243. end
  244. module Input
  245.   if @self_update == nil
  246.     @self_update = method('update')
  247.     @self_press = method('press?')
  248.     @self_trigger = method('trigger?')
  249.     @self_repeat = method('repeat?')
  250.   end
  251.   def self.update
  252.     @self_update.call
  253.     Mouse.update
  254.   end
  255.   def self.press?(key_code)
  256.     if @self_press.call(key_code)
  257.       return true
  258.     end
  259.     if key_code == C
  260.       return Mouse.press?(Mouse::LEFT)
  261.     elsif key_code == B
  262.       return Mouse.press?(Mouse::RIGHT)
  263.     else
  264.       return @self_press.call(key_code)
  265.     end
  266.   end
  267.   def self.trigger?(key_code)
  268.     if @self_trigger.call(key_code)
  269.       return true
  270.     end
  271.     if key_code == C
  272.       return Mouse.trigger?(Mouse::LEFT)
  273.     elsif key_code == B
  274.       
  275.       return Mouse.trigger?(Mouse::RIGHT) if $scene.is_a?(Scene_Menu)
  276.     else
  277.       return @self_trigger.call(key_code)
  278.     end
  279.   end
  280.   def self.repeat?(key_code)
  281.     if @self_repeat.call(key_code)
  282.       return true
  283.     end
  284.     if key_code == C
  285.       return Mouse.repeat?(Mouse::LEFT)
  286.     elsif key_code == B
  287.       #return Mouse.repeat?(Mouse::RIGHT)#菜单
  288.     else
  289.       return @self_repeat.call(key_code)
  290.     end
  291.   end
  292. end
  293. class Window_Selectable
  294.   if @self_alias == nil
  295.     alias self_update update
  296.     @self_alias = true
  297.   end
  298.   def update
  299.     #self.cursor_rect.empty
  300.     self_update
  301.     if self.active and @item_max > 0
  302.       index_var = @index
  303.       tp_index = @index
  304.       mouse_x, mouse_y = Mouse.get_mouse_pos
  305.       mouse_not_in_rect = true
  306.       for i in 0...@item_max
  307.         @index = i
  308.         update_cursor_rect
  309.         top_x = self.cursor_rect.x + self.x + 16
  310.         top_y = self.cursor_rect.y + self.y + 16
  311.         bottom_x = top_x + self.cursor_rect.width
  312.         bottom_y = top_y + self.cursor_rect.height
  313.         if (mouse_x > top_x) and (mouse_y > top_y) and
  314.            (mouse_x < bottom_x) and (mouse_y < bottom_y)
  315.           mouse_not_in_rect = false
  316.           if tp_index != @index
  317.             tp_index = @index
  318.             $game_system.se_play($data_system.cursor_se)
  319.           end
  320.           break
  321.         end
  322.       end
  323.       if mouse_not_in_rect
  324.         @index = index_var
  325.         update_cursor_rect
  326.         Mouse.click_lock
  327.       else
  328.         Mouse.click_unlock               
  329.       end
  330.     end
  331.   end
  332. end
  333. class Window_NameInput
  334.   if @self_alias == nil
  335.     alias self_update update
  336.     @self_alias = true
  337.   end
  338.   def update
  339.     #self.cursor_rect.empty
  340.     self_update
  341.     if self.active
  342.       index_var = @index
  343.       mouse_x, mouse_y = Mouse.get_mouse_pos
  344.       mouse_not_in_rect = true
  345.       for i in (0...CHARACTER_TABLE.size).to_a.push(180)
  346.         @index = i
  347.         update_cursor_rect
  348.         top_x = self.cursor_rect.x + self.x + 16
  349.         top_y = self.cursor_rect.y + self.y + 16
  350.         bottom_x = top_x + self.cursor_rect.width
  351.         bottom_y = top_y + self.cursor_rect.height
  352.         #
  353.         if (mouse_x > top_x) and (mouse_y > top_y) and
  354.            (mouse_x < bottom_x) and (mouse_y < bottom_y)
  355.           mouse_not_in_rect = false
  356.           break
  357.         end
  358.       end
  359.       if mouse_not_in_rect
  360.         @index = index_var
  361.         update_cursor_rect
  362.         Mouse.click_lock
  363.       else
  364.         Mouse.click_unlock
  365.       end
  366.     end
  367.   end
  368. end
  369. class Window_InputNumber
  370.   if @self_alias == nil
  371.     alias self_update update
  372.     @self_alias = true
  373.   end
  374.   def update
  375.     #self.cursor_rect.empty
  376.     self_update
  377.     mouse_x, mouse_y = Mouse.get_mouse_pos
  378.     if self.active and @digits_max > 0
  379.       index_var = @index
  380.       mouse_not_in_rect = true
  381.       for i in 0...@digits_max
  382.         @index = i
  383.         update_cursor_rect
  384.         top_x = self.cursor_rect.x + self.x + 16
  385.         bottom_x = top_x + self.cursor_rect.width
  386.         #
  387.         if (mouse_x > top_x) and (mouse_x < bottom_x)
  388.           mouse_not_in_rect = false
  389.           break
  390.         end
  391.       end
  392.       if mouse_not_in_rect
  393.         @index = index_var
  394.         update_cursor_rect
  395.         Mouse.click_lock
  396.       else
  397.         Mouse.click_unlock
  398.       end
  399.     end
  400.     if @last_mouse_y == nil
  401.       @last_mouse_y = mouse_y
  402.     end
  403.     check_pos = (@last_mouse_y - mouse_y).abs
  404.     if check_pos > 10
  405.       $game_system.se_play($data_system.cursor_se)
  406.       place = 10 ** (@digits_max - 1 - @index)
  407.       n = @number / place % 10
  408.       @number -= n * place
  409.       n = (n + 1) % 10 if mouse_y < @last_mouse_y
  410.       n = (n + 9) % 10 if mouse_y > @last_mouse_y
  411.       @number += n * place
  412.       refresh
  413.       @last_mouse_y = mouse_y
  414.     end
  415.   end
  416. end
  417. class Scene_File
  418.   if @self_alias == nil
  419.     alias self_update update
  420.     @self_alias = true
  421.   end
  422.   def update
  423.     mouse_x, mouse_y = Mouse.get_mouse_pos
  424.     Mouse.click_lock
  425.     idx = 0
  426.     for i in @savefile_windows
  427.       top_x = i.x + 16
  428.       top_y = i.y + 16
  429.       bottom_x = top_x + i.width
  430.       bottom_y = top_y + i.height
  431.       if (mouse_x > top_x) and (mouse_y > top_y) and
  432.          (mouse_x < bottom_x) and (mouse_y < bottom_y)
  433.         i.selected = true
  434.         if @file_index != idx
  435.           @file_index = idx
  436.           $game_system.se_play($data_system.cursor_se)
  437.         end            
  438.         Mouse.click_unlock
  439.       else
  440.         i.selected = false
  441.       end
  442.       idx += 1
  443.     end
  444.     self_update
  445.   end
  446. end
  447. class Arrow_Enemy
  448.   if @self_alias == nil
  449.     alias self_update update
  450.     @self_alias = true
  451.   end
  452.   def update
  453.     mouse_x, mouse_y = Mouse.get_mouse_pos
  454.     idx = 0
  455.     for i in $game_troop.enemies do
  456.       if i.exist?
  457.         top_x = i.screen_x - self.ox
  458.         top_y = i.screen_y - self.oy
  459.         bottom_x = top_x + self.src_rect.width
  460.         bottom_y = top_y + self.src_rect.height
  461.         if (mouse_x > top_x - $敌人选框扩大) and (mouse_y > top_y - $敌人选框扩大) and
  462.            (mouse_x < bottom_x + $敌人选框扩大) and (mouse_y < bottom_y + $敌人选框扩大)
  463.           if @index != idx
  464.             $game_system.se_play($data_system.cursor_se)
  465.             @index = idx
  466.           end
  467.         end
  468.       end
  469.       idx += 1
  470.     end
  471.     self_update
  472.   end
  473. end
  474. class Arrow_Actor
  475.   if @self_alias == nil
  476.     alias self_update update
  477.     @self_alias = true
  478.   end
  479.   def update
  480.     mouse_x, mouse_y = Mouse.get_mouse_pos
  481.     idx = 0
  482.     for i in $game_party.actors do
  483.       if i.exist?
  484.         top_x = i.screen_x - self.ox
  485.         top_y = i.screen_y - self.oy
  486.         bottom_x = top_x + self.src_rect.width
  487.         bottom_y = top_y + self.src_rect.height
  488.         if (mouse_x > top_x - $角色选框扩大) and (mouse_y > top_y - $角色选框扩大) and
  489.            (mouse_x < bottom_x + $角色选框扩大) and (mouse_y < bottom_y + $角色选框扩大)
  490.           if @index != idx
  491.             $game_system.se_play($data_system.cursor_se)
  492.             @index = idx
  493.           end
  494.         end
  495.       end
  496.       idx += 1
  497.     end
  498.     self_update
  499.   end
  500. end


  501. class Game_Player
  502.   if @self_alias == nil
  503.     alias self_update update
  504.     @self_alias = true
  505.   end
  506.   def update
  507.     mouse_x, mouse_y = Mouse.get_mouse_pos

  508.     if @last_move_x == nil
  509.       @last_move_x = false
  510.     end
  511.     if Mouse.trigger?(Mouse::RIGHT)
  512.       Mouse.right_menu(mouse_x, mouse_y)
  513.       Graphics.update
  514.    
  515.     elsif Mouse.press?(Mouse::LEFT)
  516.       if Mouse.mouse_touch == true
  517.         Mouse.mouse_touch = false
  518.         return
  519.       end
  520.       Mouse.plight
  521.       Mouse.wait
  522.       last_moving = moving?
  523.       last_direction = @direction
  524.       unless moving? or $game_system.map_interpreter.running? or
  525.              @move_route_forcing or $game_temp.message_window_showing
  526.         last_x = @x
  527.         if @last_move_x
  528.           @last_move_x = false
  529.         elsif mouse_x > screen_x + 16
  530.           move_right
  531.         elsif mouse_x < screen_x - 16
  532.           move_left
  533.         end
  534.         last_y = @y
  535.         if last_x != @x
  536.           @last_move_x = true
  537.         elsif mouse_y > screen_y
  538.           move_down
  539.         elsif mouse_y < screen_y - 32
  540.           move_up
  541.         end
  542.         if last_y != @y
  543.           @last_move_x = false
  544.         end
  545.       end
  546.     end
  547.     self_update
  548.   end
  549. end
  550. Mouse.init
  551. END { Mouse.exit }




  552. #==============================================================================
  553. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  554. #==============================================================================
复制代码
  1. #==============================================================================
  2. # ■ Sprite_Character
  3. #------------------------------------------------------------------------------
  4. #check the mouse 's event and start.                       by End66rpg
  5. #==============================================================================
  6. class Sprite_Character < RPG::Sprite
  7.   def inside?
  8.     mx,my = Mouse.get_mouse_pos
  9.     lx = self.x - self.ox
  10.     rx = lx + self.bitmap.width / 4
  11.     ty = self.y - self.oy
  12.     by = ty + self.bitmap.height / 4
  13.     if mx < lx or mx > rx or my < ty or my > by or
  14.       self.bitmap.get_pixel(mx-lx,my-ty).alpha == 0
  15.       return false
  16.     end
  17.     return true
  18.    end
  19.   alias update_old update
  20.   def update
  21.    update_old
  22.    self.tone = Tone.new(0,0,0)
  23.    self.zoom_y = 1
  24.    return if @character.is_a?(Game_Event) and @character.name.index('no point')
  25.    return if !inside?
  26.    Mouse.mouse_touch=true
  27.    if Mouse.trigger?(Mouse::LEFT)
  28.      Mouse.plight
  29.      return if $game_system.map_interpreter.running?
  30.      return if @character == $game_player or @character.trigger == 4
  31.      @character.start
  32.    end
  33.    if @character != $game_player
  34.      if @character.is_a?(Game_Event)
  35.        if @character.name.index('item')
  36.          Mouse.coach
  37.          return
  38.        elsif @character.name.index('heigh')
  39.          Mouse.coach
  40.          self.zoom_y = 1.5
  41.          return
  42.        end
  43.       
  44.      end
  45.     Mouse.npc
  46.   end
  47.    Mouse.enemy if @character != $game_map.events
  48.    self.tone = Tone.new(122,122,122)
  49.   end
  50. end
  51. class Game_Event < Game_Character
  52. #——————————————————————————————————————
  53. # 用来返回名称
  54. #——————————————————————————————————————
  55. def name
  56.    return @event.name
  57. end  
  58. def name=(newname)
  59.    @event.name = newname
  60. end
  61. end
复制代码
roguelike求生RPG研发中....

Lv3.寻梦者

梦石
0
星屑
3889
在线时间
2260 小时
注册时间
2008-1-28
帖子
3193

开拓者

2
发表于 2012-9-24 18:45:15 | 只看该作者
第三个脚本不用改。
第一个删掉47-49行
再删掉166-182行
第二个脚本520、521行删掉,改成$scene = Scene_Menu.new
(效果是右键切到菜单。然后按esc回到地图= =)

评分

参与人数 2星屑 +90 梦石 +2 收起 理由
hys111111 + 2 认可答案
黑舞嗜 + 90 太感谢了!

查看全部评分

[pmshow=23,31925]阿柏蛇[/pmshow]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-1 14:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表