加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 orochi2k 于 2019-12-3 01:58 编辑
事先准备:
1, RMXP
2, RMVA的RGSS301.DLL
3, RGD
如果需要加密
则还需要整个RMVA(加密的正确姿势: RMVA新建一个工程,开着这个RMVA工程的同时跑到这个工程文件夹里删光所有东西,把RMXP的工程全部拷贝过来,在RMVA里选择打包和加密 对,就是这么奇葩,是不是很好玩(大雾))
如果需要商业发布,则RMXP和RMVA都必须是正版.(或者依法等到RMXP和RMVA首次发布后50年 )
流程如下:
首先打开RMXP
1, 用RMXP打开你的RMXP工程
2, 打开F1帮助文件
3,打开脚本编辑器
4,在F1帮助文件中找到RGSS参考 游戏库 RPGXP数据结构
5, 将此条目下所有的脚本插入到脚本编辑器里的最上端.
6, 找一个实现RMXP的TILEMAP的脚本,放入工程内.
7, 在main里加入一行Graphics.SAresize_screen(640,480)
8,现在你差不多可以关掉RMXP了
在RMXP工程文件夹内建立Fonts和Windowskins 文件夹 然后从RMVA那里找到喜欢的字体并修改原来RMXP的窗口皮肤为RMVA对应的样子. (这步并不重要)
找到RMVA的RGSS301.DLL丢到RMXP的工程文件夹里
找到小黄鸡和⑨写的RGD的EXE覆盖掉RMXP的GAME.EXE
找到GAME.INI把里面的RGSS103J.DLL改成RGSS301.DLL
一般的同学到这步就差不多了.
对于脚本使用较多的同学可能遇到一些常见问题如下:
如果发生字符串ASCII和UTF8打架
参考这段东西来重载字符串吧. (打架原因是RMXP用的RUBY1.8字符串比较奔放随意,RMVA和RGD用RUBY1.9的字符串自带编码属性,可以考虑自己逐个检查,但是像我这样懒得去检查RMXP工程里几万行代码的同学用下面这段基本都能搞定.)
class String alias old_plus + def +(other) if self.is_a?(String) and other.is_a?(String) if self.encoding.name != "UTF-8" #p self.encoding.name end if self.encoding.name == "UTF-8" and other.encoding.name == "ASCII-8BIT" news = old_plus(other.force_encoding("UTF-8")) #p news return news end if self.encoding.name == "ASCII-8BIT" and other.encoding.name == "UTF-8" news = self.force_encoding("UTF-8").old_plus(other) return news end end return old_plus(other) end end
class String
alias old_plus +
def +(other)
if self.is_a?(String) and other.is_a?(String)
if self.encoding.name != "UTF-8"
#p self.encoding.name
end
if self.encoding.name == "UTF-8" and other.encoding.name == "ASCII-8BIT"
news = old_plus(other.force_encoding("UTF-8"))
#p news
return news
end
if self.encoding.name == "ASCII-8BIT" and other.encoding.name == "UTF-8"
news = self.force_encoding("UTF-8").old_plus(other)
return news
end
end
return old_plus(other)
end
end
如果脚本中有用到DIR/REQUIRE之类的函数发生ASCII-8BIT暴毙问题,请寻找转码脚本解决.
目前石器的测试版本经过3天测试未发生严重异常.
已知现存的所有RMXP工程复杂程度都不可能超过石器,毕竟你们的项目都没开发超过15年 (大雾),所以大家应该不会出什么问题.(大雾)
按照这个方法来玩的话@fux2 就不用额外写RGDXP了 {:4_117:} |