设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4378|回复: 23
打印 上一主题 下一主题

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
跳转到指定楼层
1
发表于 2018-4-6 11:55:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

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

Lv3.寻梦者

梦石
0
星屑
1357
在线时间
677 小时
注册时间
2009-11-11
帖子
2790
16
发表于 2018-4-12 13:12:41 | 只看该作者
晴兰 发表于 2018-4-12 02:19
不要用版本标签来判断可用方法!!!
直接用可用方法判断可用方法
不要用版本标签来判断可用方法!!!

真大神也,说不定ruby各版本可以串用,使人豁然开朗

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33682
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

15
发表于 2018-4-12 08:16:05 | 只看该作者
晴兰 发表于 2018-4-12 02:19
不要用版本标签来判断可用方法!!!
直接用可用方法判断可用方法
不要用版本标签来判断可用方法!!!

主要是为了追加定义,其它的还好。
  1. if defined? Game_Interpreter
  2.   class Game_Interpreter
  3.     def abc
  4.     end
  5.   end
  6. elsif defined? Interpreter
  7.   class Interpreter
  8.     def abc
  9.     end
  10.   end
  11. end
复制代码


很多时候只是想偷个懒而已。
  1. interpreter_class = defined? Game_Interpreter ? Game_Interpreter : Interpreter
  2. interpreter_class.class_eval do
  3.   def abc
  4.   end
  5. end
复制代码


像这样一些,还是你说的比较保险一些:

  1. if defined? Cache
  2.   return Cache.picture(image_name)
  3. elsif defined? RPG::Cache
  4.   return RPG::Cache.picture(image_name)
  5. end
复制代码

点评

三目运算符这个没问题呀,我指的是那个先判断是XP/VX/VA的(  发表于 2018-4-14 09:50
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

14
发表于 2018-4-12 02:19:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2145
在线时间
235 小时
注册时间
2018-3-23
帖子
100
13
发表于 2018-4-7 01:48:55 | 只看该作者
三版通大佬,太可怕了!给大佬递冰阔落
我觉得xp就挺好了
RMXP天下第一!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

12
发表于 2018-4-6 23:28:02 | 只看该作者
要注意的事情:
不要写。
专心做游戏。
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33682
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

11
发表于 2018-4-6 15:11:59 | 只看该作者
其实我那样判断还可以更保险些,判断独有的数据结构
比如 XP 独有的 RPG::Cache  ; VX 独有的 RPG::Area
  1. module Edition
  2.   def self.type
  3.     return defined?(RPG::Cache) ? "XP" : (defined?(RPG::Area) ? "VX" : "VA")
  4.   end
  5. end
  6. p Edition.type
复制代码

评分

参与人数 1+1 收起 理由
文雅夕露 + 1 学到了

查看全部评分

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4598
在线时间
1206 小时
注册时间
2016-4-7
帖子
982

开拓者

10
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33682
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

9
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 18:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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