幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2945|回复: 2

[原创]RMXP脚本标题控制加载

[复制链接]

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2006-3-4 04:01:13 | 显示全部楼层 |阅读模式
如果喜欢粘贴脚本,或者自定义的脚本项太多,调试的时候想把某个条目的脚本去掉,或者把某一块脚本都去掉,那么应该怎么办?
我烦恼了很久,于是写了下面这个脚本,用来控制。只需要改改脚本条目的标题,就可以决定这条脚本是否需要加载。这样方便了很多~至少我自己用起来蛮舒服。

可能脚本里面的说明有人不明白,我这里多说几句了。此脚本需要插入到最前面,或者你想控制的所有脚本之前。加入这个脚本之后,就可以在脚本条目标题上动手脚了。

比如原先有Scene_Title这个脚本,不想加载它的话,就在最前面加一个[x]标记:
[x]Scene_Title
然后运行的时候这段脚本就不会被解释了。如果又需要加载这个脚本,那么只需要把[x]去掉或者改成[o],就可以了,不需要动其他地方。加上[o]、[x]同其他无效字符的区别在于,默认无标记的脚本段可以设置加载或者不加载。而写[x]或者[o]就表示一定不加载或者加载。比较拗口……-.-

真正有趣的是区块控制。比如我重定义了所有的Scene_Battle脚本。原先的我都不想加载,比如从Scene_Battle1到Scene_Battle4。那么只需要在Scene_Battle1之前加一个[-],然后记得在Scene_Battle4之前加一个[=]标记,这4段脚本就一起失效了,开启的话,只需要改[-]为[+]就可以。
区块控制符可以嵌套,最外层的效果优先于内层。

另外,控制脚本对于"|"符号还有空格都是忽略的,所以可以稍微给脚本安排一下版面
比如给那4个脚本加带有控制符号的分割线,变成这样:
[+]============
|Scene_Battle1
|[+]===========
||Scene_Battle2
||Scene_Battle3
||Scene_Battle4
|[=]===========
[=]============
好像目录树一样:)

这功能对大部分可能用处不大,但是对于拥有大量脚本改动的游戏来说,这是很有用的辅助脚本。
  1. #==============================================================================
  2. # ☆★☆ 脚本标题控制加载 ☆★☆
  3. #------------------------------------------------------------------------------
  4. # - FantasyDR
  5. # - 2006.3.1
  6. #------------------------------------------------------------------------------
  7. # MSN: [email]FantasyDR_SJL@hotmail.com[/email]
  8. #==============================================================================
  9. # 块加载标志       [+]
  10. # 块不加载标志     [-]
  11. # 块结束标志       [=]
  12. # 单行加载标志     [o]
  13. # 单行不加载标志   [x]
  14. #
  15. # 块控制符优先级高于单行控制符
  16. # 空格和"|"不计入字符,注意控制符大小写
  17. #==============================================================================
  18. # 设置
  19. #==============================================================================
  20. # 不含标志的脚本段的默认处理方式
  21. FDR_DEFAULT_LOAD = true  #加载(true),不加载(false)
  22. #
  23. # 在DEBUG状态下,打印屏蔽的脚本列表
  24. FDR_DISABLE_PRINT = false #打印(true),不打印(false)
  25. #==============================================================================
  26. # 默认加载脚本
  27. $FDR_RGSS_Enable = []
  28. $FDR_Disable_List = []
  29. $RGSS_SCRIPTS.each_index do |i|
  30.   
  31.   # 获取脚本名称
  32.   name = $RGSS_SCRIPTS[i][1].clone
  33.   name.slice!("|")
  34.   name.slice!(" ")
  35.   
  36.   # 保证加载"Main"
  37.   next if name == "Main"
  38.   
  39.   is_enable = FDR_DEFAULT_LOAD
  40.   
  41.   # 加载单行
  42.   if name[0,3] == "[o]"
  43.     is_enable = true
  44.   # 不加载单行
  45.   elsif name[0,3] == "[x]"
  46.     is_enable = false
  47.   # 加载块
  48.   elsif name[0,3] == "[+]"
  49.     $FDR_RGSS_Enable.push(true)
  50.   # 不加载块
  51.   elsif name[0,3] == "[-]"
  52.     $FDR_RGSS_Enable.push(false)
  53.   # 块结束
  54.   elsif name[0,3] == "[=]"
  55.     $FDR_RGSS_Enable.pop
  56.   end
  57.   $FDR_RGSS_Enable.each {|x| is_enable &= x}
  58.   next if is_enable
  59.   if !$RGSS_SCRIPTS[i][3].empty?
  60.     $FDR_Disable_List.push($RGSS_SCRIPTS[i][1])
  61.   end
  62.   $RGSS_SCRIPTS[i][3] = ""
  63. end
  64. # 生成脚本加载状况报告
  65. if !$FDR_Disable_List.empty? and FDR_DISABLE_PRINT and $DEBUG
  66.   list = "p \"===未加载如下脚本===\""
  67.   $FDR_Disable_List.each { |i| list += ",\""+i+"\"" }
  68.   eval(list)
  69. end
复制代码

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复

使用道具 举报

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
发表于 2006-3-5 21:47:40 | 显示全部楼层
是个好东西,省了麻烦。 [s:4]
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复 支持 反对

使用道具 举报

7

主题

52

帖子

1514

积分

⑥精研

积分
1514
发表于 2006-3-9 09:31:17 | 显示全部楼层
支持一下。 [s:1]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-23 21:32 , Processed in 0.021580 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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