查看: 5302|回复: 23

[有事请教] Rgss系列写3版本通用的脚本要注意什么?

[复制链接]
梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
回帖
1074
发表于 2018-4-6 11:55:42 | 显示全部楼层 |阅读模式

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

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

×
脚本新人虽然已经写过几个通用的脚本。
但并不能说是"通用",只能说修改一下语句才能到各版本里正常使用脚本。
毕竟Rgss系列的3版本的代码并不是一致的。
所以想请教一下各位前辈。
写这类型的通用的脚本要注意什么?
就是说一段脚本放入3个Rgss系列的脚本编辑器里都能使用,且不需要修改。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
梦石
28
星屑
10170
在线时间
4673 小时
注册时间
2011-8-22
回帖
1216

开拓者

发表于 2018-4-6 12:12:39 | 显示全部楼层
比如涉及到一些和版本没什么关联的,或者说比较基础的部分,比如全键盘操作啊,文件缺失处理啊,各版本通用的就会多一些。

涉及到游戏具体内容的,比如角色、地图、战斗这些,就很难通用了……

点评

是啊,所以……默认情况下还是假设成“无法通用”吧。  发表于 2018-4-6 14:28
是的。所以才不好用一段脚本实现...都要做后期的移植等处理才能通用。  发表于 2018-4-6 14:04
回复

使用道具 举报

梦石
0
星屑
3850
在线时间
925 小时
注册时间
2017-10-30
回帖
343
发表于 2018-4-6 12:42:10 | 显示全部楼层
  1. p "hello world"
复制代码
回复

使用道具 举报

梦石
5
星屑
3525
在线时间
403 小时
注册时间
2016-6-25
回帖
217
发表于 2018-4-6 12:43:38 | 显示全部楼层
基本上设计到Party类、Troop类、Map类含大量术语的都不能通用
横版类魂动作游戏《幻恋夜宴》好评发售中!https://store.steampowered.com/app/1684100
恋恋冒险CRPG《东方恋迷踪》~~火热开发中~~

回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2018-4-6 12:57:00 | 显示全部楼层
在xp上能用的,一般改改就能上vxva,反之就可能原地爆炸……

点评

那是升天级别了···  发表于 2018-4-6 13:27
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2018-4-6 13:29:03 | 显示全部楼层
想要偷懒全通用不太可能,真要这么干你还不如直接把默认脚本全部推翻重写···即使推掉重写,这三个的ruby版本有高低差别,低版本的相比高版本还少了点东西呢

点评

向下兼容原则:高版本包含低版本所有的功能,低版本正是因为东西没高版本多才可以直接适用在高版本环境  发表于 2018-4-6 14:26
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2018-4-6 13:59:10 | 显示全部楼层
最基本的,自动判断当前是哪个版本,判断好了一切都好办了。
其它的一些无非就是多写一点脚本而已。
if 版本 == A
  class AAA
  end
elsif 版本 == B
  class AAB
  end
end
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
回帖
1074
 楼主| 发表于 2018-4-6 14:03:36 | 显示全部楼层
芯☆淡茹水 发表于 2018-4-6 13:59
最基本的,自动判断当前是哪个版本,判断好了一切都好办了。
其它的一些无非就是多写一点脚本而已。
if 版 ...

版本判断?直接可以用"VA""VX""XP"这样来判断吗?
芯前辈的脚本好像也是这么做的...还用了挺多问号冒号表达式...
但是我不知道这个方法是不是真的能放到各编辑器里执行...
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复

使用道具 举报

梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2018-4-6 14:17:17 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2018-4-6 14:18 编辑
文雅夕露 发表于 2018-4-6 14:03
版本判断?直接可以用"VA""VX""XP"这样来判断吗?
芯前辈的脚本好像也是这么做的...还用了挺多问号冒号表 ...


你可以试试最简单的版本判断,放到每个版本 p 一下看是什么。
只要外挂脚本没有增加定义对应的模块,或者手欠把默认模块删掉的,就不会判断错的。
  1. module Edition
  2.   def self.type
  3.     return defined?(Sound) ? (defined?(SceneManager) ? "VA" : "VX") : "XP"
  4.   end
  5. end
  6. p Edition.type
复制代码

点评

因为你不知道哪个特性会不会polyfill进来或者被undef掉,根据行为来判断是否有某行为,不要根据版本标签来  发表于 2018-4-12 02:15
别直接判断版本,要啥特性直接判断啥特性 [使用msgbox if defined?(msgbox) ]  发表于 2018-4-12 02:14
谢谢芯前辈的指教。在这简单的版本判断看起来可以扩展很多的内容,谢谢。我会试试。  发表于 2018-4-6 14:28

评分

参与人数 1赞 +1 收起 理由
文雅夕露 + 1 谢谢芯前辈

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
4623
在线时间
1207 小时
注册时间
2016-4-7
回帖
944

开拓者

发表于 2018-4-6 14:29:25 | 显示全部楼层
说下三版的ruby版本差异

va 是1.9 xp和vx都是1.8
所以va是有fiber的 而vx和xp则没有
但是!ruby1.8依然有callcc 所以就有了基于callcc来实现的fiber http://www.khjk.org/log/2010/jun/fibr.html

更多api变动相关:
en: https://stackoverflow.com/questi ... by-1-8-and-ruby-1-9

zh-cn: http://stackoverflow.org.cn/front/ask/view?ask_id=22301

评分

参与人数 1赞 +1 收起 理由
文雅夕露 + 1 谢谢科普

查看全部评分

附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部