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

Project1

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

[原创发布] 突破四选项限制,N选项再无限制!

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
跳转到指定楼层
1
发表于 2013-11-8 23:25:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 enghao_lim 于 2013-11-9 11:46 编辑


原本默认对话框的选项被限制在四个,此脚本就是用来突破此限制,从此N选项任你遨游……

截图:


工程范例(建议下载):
多选项范例.rar (237.34 KB, 下载次数: 292)
谷歌盘
百度盘

@Index 抱歉,为了避免脚本错误,先 @ 了你先……==

脚本(完整):
  1. #==============================================================================
  2. # ■ 多选项脚本
  3. #------------------------------------------------------------------------------
  4. #    v 1.0 by enghao_lim
  5. #    理论性无限突破四个选项的脚本
  6. #------------------------------------------------------------------------------
  7. #
  8. # 使用方法:
  9. #
  10. #  1. 在事件里使用【脚本】:多选项(选项数组,取消时执行的选项)
  11. #     
  12. #         选项数组例子:@c = ["选项一","选项二"..."选项100"]
  13. #         所有选项必须是文字,即被 "" 符包括。
  14. #         
  15. #         取消时执行的选项:代表 ESC (也就是B键) 按下时执行的选项
  16. #         不填写 或 为0 时,代表选项不可被取消。
  17. #         此值不可大过选项的数量,否者会出错。
  18. #         
  19. #  2. 使用条件分歧:选项场合(选项编号)来执行选中选项后执行的事件。
  20. #     具体请看范例。
  21. #
  22. #  3. for 脚本党:
  23. #     获取 被选中的选项 的 index :$game_temp.choice_result
  24. #         
  25. #  4. 范例里已经有各种 多选项 的利用方法,自个儿都觉得多选项也挺好用的。
  26. #  
  27. #  5. 如有神马 bug ,请通知我,谢谢,感谢阅读。
  28. #
  29. #==============================================================================

  30. #==============================================================================
  31. # ■ Game_Temp
  32. #------------------------------------------------------------------------------
  33. #  临时资料记录器。
  34. #==============================================================================
  35. class Game_Temp
  36.   #--------------------------------------------------------------------------
  37.   # ● 读写器
  38.   #--------------------------------------------------------------------------
  39.   attr_accessor :choice_result
  40.   attr_accessor :choice_last
  41.   #--------------------------------------------------------------------------
  42.   # ● 初始化
  43.   #--------------------------------------------------------------------------
  44.   alias initialize0 initialize
  45.   def initialize
  46.     initialize0
  47.     @choice_result = -1
  48.     @choice_last = -1
  49.   end
  50. end

  51. #==============================================================================
  52. # ■ Interpreter
  53. #------------------------------------------------------------------------------
  54. #  事件处理器。
  55. #==============================================================================
  56. class Interpreter
  57.   #--------------------------------------------------------------------------
  58.   # ● 多选项
  59.   #--------------------------------------------------------------------------
  60.   def 多选项(选项, 取消 = 0)
  61.     取消 = 取消 == "取消" ? 选项.size + 1 : 取消
  62.     MultiChoice(选项,取消)
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 获取选择的选项
  66.   #--------------------------------------------------------------------------
  67.   def 选项场合(n)
  68.     if n == "取消"
  69.       return ($game_temp.choice_last + 1) == $game_temp.choice_result
  70.     end
  71.     return $game_temp.choice_result == (n - 1)
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 多选项执行
  75.   #--------------------------------------------------------------------------
  76.   def MultiChoice(choice,cancel = 0)
  77.     # 设置信息结束后待机和返回调用标志
  78.     @message_waiting = true
  79.     $game_temp.message_proc = Proc.new { @message_waiting = false }
  80.     # 设置选项设置
  81.     $game_temp.choice_max = choice.size
  82.     $game_temp.choice_last = choice.size - 1
  83.     $game_temp.choice_cancel_type = cancel
  84.     $game_temp.choice_start = 0
  85.     $game_temp.message_text = ""
  86.     $game_temp.choice_proc = Proc.new { |n| $game_temp.choice_result = n }
  87.     # 设置选择选项
  88.     for c in choice
  89.       $game_temp.message_text += c + "\n"
  90.     end
  91.   end
  92.   
  93. end

  94. #==============================================================================
  95. # ■ Window_Message
  96. #------------------------------------------------------------------------------
  97. #  对话框。
  98. #==============================================================================
  99. class Window_Message
  100.   #--------------------------------------------------------------------------
  101.   # ● 重置窗口
  102.   #--------------------------------------------------------------------------
  103.   alias reset_window_0 reset_window
  104.   def reset_window
  105.     # 默认重置法
  106.     reset_window_0
  107.     # 还原 ox 和 oy
  108.     self.ox = self.oy = 0
  109.     # 重新生成 bitmap
  110.     if $game_temp.choice_max > 4
  111.       self.contents.dispose
  112.       self.contents = Bitmap.new(self.width-32,$game_temp.choice_max*32)
  113.     else
  114.       self.contents.dispose
  115.       self.contents = Bitmap.new(self.width-32,self.height-32)
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 刷新光标矩形
  120.   #--------------------------------------------------------------------------
  121.   def update_cursor_rect
  122.     if [url=home.php?mod=space&uid=370741]@Index[/url] >= 0
  123.       if $game_temp.choice_start == 0
  124.         super
  125.         rect = self.cursor_rect
  126.         self.cursor_rect.set(8,rect.y,@cursor_width,rect.height)
  127.       else
  128.         n = $game_temp.choice_start + @index
  129.         self.cursor_rect.set(8, n * 32, @cursor_width, 32)
  130.       end
  131.     else
  132.       self.cursor_rect.empty
  133.     end
  134.   end
  135. end
复制代码

评分

参与人数 3星屑 +326 收起 理由
我爱吴悦淇 + 30 乖~
怪蜀黍 + 230 和VX那篇类似
美丽晨露 + 66 塞糖

查看全部评分

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

2
发表于 2013-11-8 23:29:21 | 只看该作者
我这边也有一个多选择的脚本
可是需要用条件分歧判断
楼主的脚本感觉好方便呢
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2013-11-9 17:51:08 | 只看该作者
很实用的脚本,而且近乎达到RM的极限,不过那个脚本已备份的话···那么最多能有多少个选项?

点评

机子不同无法给出个标准,我的机子10秒内能描绘5000个选项左右,其他机子看效率了。 其实找个去10秒脚本,就完全没有问题的了。  发表于 2013-11-9 17:56
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

菜鸟飞呀飞 该用户已被删除
4
发表于 2013-11-14 14:14:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
5
发表于 2013-11-14 17:58:35 | 只看该作者
本帖最后由 eve592370698 于 2013-11-14 18:08 编辑

请问楼主您有没有接触过别人的类似对话框功能呢?发布之前建议您搜索一下类似的脚本避免重复发布。
等我上传我的工程,因为这个脚本有鼠标,所以不能轻易使用,您得先把鼠标删除了或者添加图片才行。

RMXP截图-1.jpg (121.82 KB, 下载次数: 25)

RMXP截图-1.jpg

Scripts.rxdata

323.9 KB, 下载次数: 75

点评

要是你觉得重复,请删了,我没意见。  发表于 2013-11-14 23:59
潜水,专心忙活三次元工作了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG我的

梦石
0
星屑
163
在线时间
491 小时
注册时间
2012-1-16
帖子
1993
6
发表于 2013-11-15 08:15:47 手机端发表。 | 只看该作者
这不就是游戏《笑谈学校》里面那个多选择项脚本吗?和FUKI对话框不是特别兼容。
来自: Android客户端
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 01:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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