- 注册时间
- 2004-5-22
- 最后登录
- 2024-5-16
管理员
爱干啥干啥!
- 积分
- 6699
|
如果喜欢粘贴脚本,或者自定义的脚本项太多,调试的时候想把某个条目的脚本去掉,或者把某一块脚本都去掉,那么应该怎么办?
我烦恼了很久,于是写了下面这个脚本,用来控制。只需要改改脚本条目的标题,就可以决定这条脚本是否需要加载。这样方便了很多~至少我自己用起来蛮舒服。
可能脚本里面的说明有人不明白,我这里多说几句了。此脚本需要插入到最前面,或者你想控制的所有脚本之前。加入这个脚本之后,就可以在脚本条目标题上动手脚了。
比如原先有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
|[=]===========
[=]============
好像目录树一样:)
这功能对大部分可能用处不大,但是对于拥有大量脚本改动的游戏来说,这是很有用的辅助脚本。
- #==============================================================================
- # ☆★☆ 脚本标题控制加载 ☆★☆
- #------------------------------------------------------------------------------
- # - FantasyDR
- # - 2006.3.1
- #------------------------------------------------------------------------------
- # MSN: [email]FantasyDR_SJL@hotmail.com[/email]
- #==============================================================================
- # 块加载标志 [+]
- # 块不加载标志 [-]
- # 块结束标志 [=]
- # 单行加载标志 [o]
- # 单行不加载标志 [x]
- #
- # 块控制符优先级高于单行控制符
- # 空格和"|"不计入字符,注意控制符大小写
- #==============================================================================
- # 设置
- #==============================================================================
- # 不含标志的脚本段的默认处理方式
- FDR_DEFAULT_LOAD = true #加载(true),不加载(false)
- #
- # 在DEBUG状态下,打印屏蔽的脚本列表
- FDR_DISABLE_PRINT = false #打印(true),不打印(false)
- #==============================================================================
- # 默认加载脚本
- $FDR_RGSS_Enable = []
- $FDR_Disable_List = []
- $RGSS_SCRIPTS.each_index do |i|
-
- # 获取脚本名称
- name = $RGSS_SCRIPTS[i][1].clone
- name.slice!("|")
- name.slice!(" ")
-
- # 保证加载"Main"
- next if name == "Main"
-
- is_enable = FDR_DEFAULT_LOAD
-
- # 加载单行
- if name[0,3] == "[o]"
- is_enable = true
- # 不加载单行
- elsif name[0,3] == "[x]"
- is_enable = false
- # 加载块
- elsif name[0,3] == "[+]"
- $FDR_RGSS_Enable.push(true)
- # 不加载块
- elsif name[0,3] == "[-]"
- $FDR_RGSS_Enable.push(false)
- # 块结束
- elsif name[0,3] == "[=]"
- $FDR_RGSS_Enable.pop
- end
- $FDR_RGSS_Enable.each {|x| is_enable &= x}
- next if is_enable
- if !$RGSS_SCRIPTS[i][3].empty?
- $FDR_Disable_List.push($RGSS_SCRIPTS[i][1])
- end
- $RGSS_SCRIPTS[i][3] = ""
- end
- # 生成脚本加载状况报告
- if !$FDR_Disable_List.empty? and FDR_DISABLE_PRINT and $DEBUG
- list = "p \"===未加载如下脚本===\""
- $FDR_Disable_List.each { |i| list += ",\""+i+"\"" }
- eval(list)
- end
复制代码 |
|