Project1

标题: [原创]RM游戏In-Game动态脚本管理器ScriptManager[rev.3] [打印本页]

作者: viktor    时间: 2012-2-11 21:02
标题: [原创]RM游戏In-Game动态脚本管理器ScriptManager[rev.3]
本帖最后由 viktor 于 2012-4-10 10:17 编辑

【小bug: XP版本可能会出现找不到msgbox……解决:SM_Scene.rb 的105行开始改为:
RUBY 代码复制
  1. if f!=nil
  2.              f.write(sc.text)
  3.              f.close
  4.              ::ScriptManager.msgbox sc.name + " saved to " + new_name
  5.          else
  6.              ::ScriptManager.msgbox "save failed."
  7.          end



March 19, rev. 3——
修复了不能识别嵌套module的问题。这样就可以和Yanfly大大的YEA脚本兼容了。
脚本解析错误的时候的p改成了msgbox,现在可以正确显示信息了。
管理器界面现在不列出方法名了,因为单个脚本的方法太多时会很慢(其实还是很慢)


Beta计划:
Beta版本估计会发到地球村。毕竟这个算作一个工具。不过我也希望能够提高它的效率,可以让别人在这个基础之上做一些比如游戏配置、动态开关功能之类的特性。
@晴兰 会尝试使用rIPPer来解析每一个脚本。这样分析的粒度可以大大提高,分析的脚本依赖性可以精确到方法。即使方法之外还有一些变量、语句什么的,如果把所有的方法都替换掉,这个脚本的功能也就基本上被屏蔽了吧。
*尝试使用Ripper解析。【先做一个VA版,然后再想办法兼容】
*精确到方法的分析。
*脚本信息、配置的存储和载入

*************有合适的办法来解析动态特性么?


测试与bug:
通过@rpgvxaces的脚本合集http://rpg.blue/thread-225130-1-1.html测试,这个版本可以解析所有的脚本。不过因为要parse两次,所以很慢(10多秒才能跑起来)
脚本管理界面也很卡,因为每一个脚本都很长很长……
取消脚本功能时,计算依赖性直接卡死……
所以还是得用ruby自己的parser为好。或者至少得来一个bootstrap加速



March 9:和YEA【Yanfly Engine Ace - Extra Param Formulas 】兼容性问题。因为scriptmanager没有正确处理嵌套module的情况,导致解析错误。fixed【@杂兵】
临时解决方法:把YEA脚本里的module YEA 。。。end那一部分代码放到最后面
另外bug:VA里不能正确显示【解析错误,请查看日志】提示。修改中。

Feb.23 Rev. 2:
增加了大量兼容性脚本。现在脚本可以在XP/VX/VA中直接使用。
可以自动适应游戏窗口大小。
每次启动游戏时,会将原来的日志清空。
因为编码问题难以解决,把提示信息改成了英文。
note: ScriptManager::msgbox有部分乱码。求解决方法……

本作品测试版的许可协议暂定为CC BY-NC-SAv2.5

ScriptManager_Alpha_rev3.rar (400.65 KB, 下载次数: 3985)
通用版rev.3 这次打包的项目是RPGVX Ace的项目。因为999KB的限制,没有打包system/RGSS300.dll,请自备,或者把Scripts拷入已有项目中





In-Game脚本管理器 ScriptManager
作者: viktor
Alpha version, Feb 10, 2012


* 功能:
在游戏中显示正在运行的所有脚本信息:名称,符号(模块/类/方法)
实时激活/取消脚本功能。
支持载入外置rb/rxdata脚本
智能揪错:脚本出现“缺少符号”错误时,可以尝试自动解决

例如可以动态切换横、纵版战斗模式,普通/伪3D地图,或者对话框形状~
想使用新的脚本?可以不马上写进游戏工程,而用scriptmanager载入测试一下兼容性。在日志文件中会给出脚本兼容性的粗略分析。而且可以智能纠错

安装和注意事项见压缩包内说明




* 游戏中操作:
在大地图中,按F7呼出脚本管理器。
脚本列表中列出的各个脚本
黄色(CrysisColor)——已经激活。按回车键可以卸除脚本
灰色(DisabledColor)——未激活。按回车键可以激活脚本
白色(NormalColor)——已经取消。按回车键可以激活脚本。

脚本管理界面中 按F5可以导出选中的脚本。会以rb文件的形式保存在与选定脚本(rb/rxdata)相同的目录下。注意会覆盖原有的rb脚本。

效果图:



* 兼容性:
没有使用FSL协议,不过对其没有影响。
作者: DeathKing    时间: 2012-2-11 21:25
很帅哦,对脚本制作者有很大的帮助!
作者: 流星的瞬间    时间: 2012-2-11 21:41
很好很强大啊啊啊~!可以做个多个战斗方式切换的游戏~~!
作者: 凌童鞋    时间: 2012-2-12 07:37
神级触手啊~这个对游戏的帮助很大哦~可以实现一些更复杂的功能了~另外新评分机制导致我的评分额度在区外是负数就不评分了QAQ……
作者: 杂兵天下    时间: 2012-2-12 11:01
顶起来!
ScriptManager真是很有用
另外:我不买酱油瓶,@版主请注意。
作者: orzfly    时间: 2012-2-12 14:20
这个东西相当好。
不过这样分析的话……不能做到精确分析的吧。
ruby元编程能力那么强大。没有考虑到 class << self 这样的 metaclass 吧。
作者: 1101    时间: 2012-2-12 16:26
这样就可以实现各种战斗模式的切换了!顶!
作者: 杂兵天下    时间: 2012-3-7 15:19
其实我很早很早很早就关注这个系统
竟然兼容了VA,太好了
作者: rainfly    时间: 2012-3-31 00:04
居然有这么厉害的脚本
作者: libinsf    时间: 2012-4-4 14:02
神级作品,赞一个。
作者: 小路比仔    时间: 2012-4-4 14:31
都说很厉害,但是我却什么都不懂……
果然我真的是太差了吗?
求安慰@viktor
作者: viktor    时间: 2012-4-5 09:35
小路比仔 发表于 2012-4-4 14:31
都说很厉害,但是我却什么都不懂……
果然我真的是太差了吗?
求安慰@viktor ...

其实是个实验性质的代码啊,主要是探索ruby的特性。除了开关功能以外没有任何实际作用。
主要的原理嘛……其实就是Monkey patching。wiki有详细解释的
作者: star007    时间: 2012-4-5 10:48
这个…XP的版本还没放出来咯?
1L下载的只是VA的版本吗?
作者: darkdeath7121    时间: 2012-5-31 22:43
謝謝LZ的分享!!
作者: 明特·布兰马修    时间: 2012-6-1 22:03
精品工具
这样以后就方便排除脚本的错误了
作者: chd120    时间: 2012-6-3 13:54
是游戏的时候直接就可以改脚本吗?
作者: 南梦玲    时间: 2012-6-12 14:49
这个太有用了,感谢楼主
作者: Yang2012    时间: 2012-6-13 13:55
新生福利啊!感谢!
作者: 奉命在先    时间: 2012-8-15 16:47
本帖最后由 奉命在先 于 2012-8-15 16:48 编辑

怎么我这老是出错,VX和VA都是,看下我的步骤错在哪了

步骤:
1.把Scripts目录连同里面所有文件拷贝到游戏目录下
2.在Scripts目录里的scriptmanager.rb文件用记事本打开,并把最后一行【# $scr.load_rxdata("TEST.rvdata")】改成【#
# $scr.load_rxdata("data/Scripts.rxdata")】,VA则改成【# $scr.load_rxdata2("data/Scripts.rxdata2")】或者【# $scr.load_rxdata("data/Scripts.rxdata2")】,其他没有动
3.用VX或VA打开工程,将游戏的Main脚本换成 对应rpgmaker版本的 main_xx.rb里的内容。
4.运行游戏,报错

VA






VX



作者: viktor    时间: 2012-8-25 14:21
@奉命在先
好久没上6R了。这个可能是编码问题。在【记事本打开】那一步修改了脚本以后
需要把脚本以utf-8编码格式保存。
作者: wuchi1042    时间: 2012-10-11 15:57
感谢分享!
作者: asd24ok    时间: 2012-11-24 09:54
逆天级的好东西啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: c248611    时间: 2012-11-25 18:03
怎么用啊?按F7没有什么
作者: tallboy8    时间: 2012-11-25 19:28
好帅的脚本
作者: 夜仴    时间: 2012-12-24 02:03
这样就可以实现各种战斗模式的切换了!顶!
作者: 6rp    时间: 2012-12-24 11:51
完全看不懂,中间 +menu 之类的语法是什么意思?
作者: p9638521    时间: 2013-8-23 03:51




安安 出現這  要怎解決
作者: 鑫晴    时间: 2013-8-25 23:48
太厉害了!一定好好学,不然就对不起这作品了!
作者: 渝川    时间: 2013-10-20 07:51
报错啊肿么办 @viktor




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