Project1

标题: [汉化+增强]在关闭游戏显示提示 [打印本页]

作者: x387804363    时间: 2008-11-29 04:59
标题: [汉化+增强]在关闭游戏显示提示
在关闭游戏显示提示的脚本 V1.2

脚本获得处:http://www.rpgmakervx.net/index.php?showtopic=6806

脚本效果预览:

想看自己点吧
[img] 和 [img] 都出错

http://www.xlongs.cn/disk/UpLoadFiles/2008/11/28/20/200811282057517RSi.jpg


说明:

本脚本的作用是在菜单以及标题关闭游戏时显示一个询问对话框以及一个警告框.

注意:

本脚本的衔接部分是通过替换脚本的效果来实现,如果发生冲突,请手动修改脚本或者将脚本中设置的部分修改为false



脚本:






  1. #========================================================================#
  2. # 关闭游戏显示提示 1.2                                                   #
  3. # 来自 GuiRPG - 巴西人的RPG Maker社群                                    #
  4. # www.rpgmakerbrasil.com/forum                                           #
  5. #========================================================================#
  6. # 让关闭游戏显示带有提示的脚本                                           #
  7. #========================================================================#
  8. #
  9. #
  10. # 脚本制作: Omegas7.
  11. # 在菜单以及标题关闭游戏时显示一个询问对话框以及一个警告框.
  12. # 请尽情享用.



  13. module GuiRPG
  14. #=========================================================#
  15. #                       显示文字                          #
  16. #=========================================================#


  17. QUESTION = "您希望退出游戏吗?"


  18. WARNING_TEXT = "这将会关闭游戏进程和窗口."


  19. SIM = "是"   # 确认选项的显示文字

  20. NAO = "否"   # 取消选项的显示文字

  21. USE_IN_TITLE = true #是否应用在开头画面上(true/false)

  22. USE_IN_MENU  = true #是否应用在菜单选项上(true/false)

  23. USE_IN_CLOSE = true #是否应用在关闭窗口动作上(true/false)


  24. end
  25. #=========================================================#
  26. #                        脚本部分                         #
  27. #=========================================================#


  28. module Kernel

  29. alias origin_exit exit unless method_defined? :exit

  30. def exit(*args)
  31.       if GuiRPG::USE_IN_CLOSE
  32.       $scene = GuiRPG_Confirmar.new
  33.     else
  34.       $scene =  nil
  35.     end
  36.        origin_exit(*args)
  37.    end

  38. end
  39. class Scene_Title < Scene_Base

  40.   def command_shutdown
  41.     if GuiRPG::USE_IN_TITLE
  42.     $scene = GuiRPG_Confirmar.new
  43.     else
  44.     $scene =  nil
  45.     end

  46.   end
  47. end

  48. class Scene_End < Scene_Base
  49.   def command_shutdown
  50.         Sound.play_decision
  51.     RPG::BGM.fade(800)
  52.     RPG::BGS.fade(800)
  53.     RPG::ME.fade(800)
  54.         if GuiRPG::USE_IN_MENU
  55.       $scene = GuiRPG_Confirmar.new
  56.       else
  57.        $scene =  nil
  58.      end
  59.    end
  60. end
  61.   
  62. def command_shutdown
  63. $scene = GuiRPG_Confirmar.new
  64. end
  65.   
  66. class GuiRPG_Confirmar < Scene_Base
  67.   include GuiRPG
  68.    def start
  69.     super
  70.     create_menu_background
  71.     @Omegas7_Confirm_Window = Confirm_Window.new
  72.     @Omegas7_Warning_Window = Warning_Window.new
  73.     @gui_scripts = Window_Command.new(172, [GuiRPG::SIM, GuiRPG::NAO])
  74.     @gui_scripts.x = (544 - @gui_scripts.width) / 2
  75.     @gui_scripts.y = 288
  76.     end
  77.   
  78.    
  79.   def terminate
  80.     dispose_menu_background
  81.     @gui_scripts.dispose
  82.   end
  83.   
  84.   def update
  85.     super
  86.     @gui_scripts.update
  87.     if @gui_scripts.active
  88.       iniciar_confirmacao
  89.     end
  90.   end
  91.   
  92.   def iniciar_confirmacao
  93.     if Input.trigger?(Input::C)
  94.       case @gui_scripts.index
  95.       when 0
  96.         sair_mesmo
  97.         when 1
  98.         nao_sair
  99.       end
  100.     end
  101.   end
  102.   
  103.   def sair_mesmo
  104.     Sound.play_decision
  105.     RPG::BGM.fade(800)
  106.     RPG::BGS.fade(800)
  107.     RPG::ME.fade(800)
  108.     $scene = nil
  109.   end
  110.   
  111.   def nao_sair
  112.     Sound.play_decision
  113.     $scene = Scene_Title.new
  114.   end
  115. end

  116. class Confirm_Window < Window_Base
  117.   def initialize
  118.     super(168,150,200,60)
  119.     refresh
  120.   end
  121.   
  122.   def refresh
  123.     self.contents.clear
  124.     draw_icon(112, 150, -3, enabled = true)
  125.     self.contents.font.size = 16
  126.     self.contents.draw_text(0,0,150,25,[GuiRPG::QUESTION], 1)
  127.   end
  128. end

  129. class Warning_Window < Window_Base
  130.   def initialize
  131.     super(120,210,300,60)
  132.     refresh
  133.   end
  134.   
  135.   def refresh
  136.     self.contents.clear
  137.     draw_icon(112, 230, 0, enabled = true)
  138.     self.contents.font.size = 16
  139.     self.contents.draw_text(0,0,280,30,[GuiRPG::WARNING_TEXT],0)
  140.   end
  141. end
复制代码



顺便问一下....


alias origin_exit exit unless method_defined? :exit

def exit(*args)
      if GuiRPG::USE_IN_CLOSE
      $scene = GuiRPG_Confirmar.new
    else
      $scene =  nil
    end
       origin_exit(*args)
   end



这个为什么使用不了啊?唉...


作者: 疯鸡瘫圣老贱    时间: 2008-11-29 05:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-11-29 05:43
排版有點亂
作者: kissye    时间: 2008-11-29 09:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-11-29 18:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯泡没我亮    时间: 2008-11-30 00:11


帮你处理一下
作者: IamI    时间: 2008-11-30 00:27
其实……雷子和夏娜的蛊梦之章已经有这个效果了,而且是Msgbox实现的效果,
对于exit,只要加以引申,任何的效果都不难做出来,
这个脚本当中仅仅是一个不重要的Scene GuiRPG_Confirmar 占去了最多的部分= =
作者: 涂鸦boy    时间: 2008-11-30 01:17
赞一个{/cy}
是原创就要顶{/qiang}
作者: zh99998    时间: 2008-11-30 01:21
为什么大家都不喜欢用捕捉SystemExit




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1