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

Project1

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

[原创发布] RMVA使用其他编辑器编辑脚本

[复制链接]

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21661
在线时间
9417 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

跳转到指定楼层
1
发表于 2018-4-11 14:02:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 喵呜喵5 于 2020-2-16 22:29 编辑

这个东西对于不会写脚本的人来说基本上完全没用






因为 RMVA 自带的脚本编辑器功能比较鸡肋,加上不方便进行代码的版本控制等、比对检查等,所以之前一直都是在用 sublime text 或者 vscode 写代码最后打包进游戏中
想了想这东西也没必要藏着掖着,就公开出来了,具体的范例见工程:

https://pan.miaowm5.com/index.php/s/Et3EopkeKKGc9qa

一些注意事项:
在脚本中使用
  1. m5_require '文件相对当前脚本的路径'
复制代码

加载其他脚本文件,加载时会在顶层作用域执行脚本文件
脚本文件的编码要求使用 utf-8

范例工程中的 RMVA 脚本编辑器中的脚本便是打包的完整代码,代码最下方就是要干的具体事情,根据实际需要改完这里之后就再也不用管脚本编辑器了

大概的格式是这样:

  1. builder = Builder.new("./Src/Main.rb")
  2. #读取脚本,脚本的入口文件为 ./Src/Main.rb,返回一个 Builder 实例

  3. builder.dev
  4. #直接读取脚本运行游戏,仅建议在游戏开发时使用

  5. builder.build_data('./Release/BuildScripts.rvdata2', './Release/Scripts.rvdata2')
  6. #将脚本打包到 Release/BuildScripts.rvdata2 中并自动生成 Release/Scripts.rvdata2 文件,游戏发布时,将这两个文件覆盖 Data 文件夹下的同名文件即可发布游戏
  7. #Release目录不会自动创建

  8. builder.build_rvdata2('./Release/Scripts.rvdata2')
  9. #将脚本打包到 Release/Scripts.rvdata2 中,游戏发布时,将这个文件覆盖 Data 文件夹下的同名文件即可发布游戏

  10. builder.build_single('./Release/Scripts.txt')
  11. #将脚本打包到 Release/Scripts.txt 中,游戏发布时,可以将这个文件中的内容插入到脚本编辑器里来使用
  12. #这个功能主要在制作插件脚本时会使用到,例如下面这种创建多个 builder 实例的使用方式
  13. #Builder.new("./Battle/turn.rb").build_single('./Plugin/turn.txt').dev
  14. #Builder.new("./Map/weather.rb").build_single('./Plugin/weather.txt').dev
  15. #Builder.new("./Map/enemy.rb").build_single('./Plugin/mapEnemy.txt').dev

  16. builder.build_single('./Release/Scripts.txt', true)
  17. #build_single 的第二个参数用来控制打包出来的脚本是否还具备可读性,默认 false 为无可读性版本

  18. builder.build_single('./Release/Scripts.rvdata2')
  19. #将脚本打包到 Release/Scripts.rvdata2 中,游戏发布时,将这个文件覆盖 Data 文件夹下的同名文件即可发布游戏
  20. #和 build_rvdata2 不同,打包时所有的脚本会被打包到同一个代码页中
  21. #同样可以使用第二个参数用来控制打包出来的脚本是否具备可读性
复制代码


PS.其实我还有支持在不同作用域执行代码的 include require inject 的加强版,但想了想好像没啥没必要所以就不公开了
PS2.vscode真好用





更新日志:

V1.4
修正工程漏掉的 Window_NameInput

V1.3
不再使用 Dir.pwd 定位根目录,现在工程路径可以包含中文了
注释了打包脚本时忽略空行和 # 号开头行的代码,打包出来的文件体积增加,但错误定位的行数更精确
打包单个脚本文件时,支持设置打包结果是否有可读性
删除了打包脚本执行结束后直接 exit,让本脚本的用途更加广泛

V1.2
修正 Dev 模式下无法定位报错的问题

V1.1
移除为了调试加上去的 rgss_stop

snipaste_20190605_110143.png (15.57 KB, 下载次数: 23)

snipaste_20190605_110143.png

评分

参与人数 4星屑 +300 +4 收起 理由
唯道集虚 + 300 + 1 VSC!之前因为感觉自带的编辑器实在不好用.
shitake + 1
⑨姐姐 + 1 VSCode好用!
2256538860 + 1 塞糖

查看全部评分

Lv3.寻梦者

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

开拓者

2
发表于 2018-4-11 14:39:33 | 只看该作者
本帖最后由 shitake 于 2018-4-11 14:42 编辑

早知道你在造轮子的话 我他妈就不写了 囧囧囧

顺便 你的build_rvdata2 我就偷走了 【逃

点评

史塔克总是把一些过时玩意当发现,http://seiran.mist.so/rgss/rgssrgstorage-1-00.html  发表于 2018-4-11 21:04
本身主要是一个自用的东西,发出来更多的是[s]引狼入室[/s]抛砖引玉,如果能在回复里见到更适合自己用的思路我也能改进自己写脚本的环境  发表于 2018-4-11 15:10
因为我挪到vscode里只是为了写着舒服同时方便版本控制,没涉及到更多功能(断点调试之类),所以也不打算把整个流程弄复杂  发表于 2018-4-11 15:08
类似 webpack 的东西也有写过,但实际上在 RM 上用的时候发现意义不算特别大,这个简单版本的 m5_require 能满足需求就没继续了  发表于 2018-4-11 15:05
另外 我是觉得都正儿八经挪到IDE里写代码了 应该也不差个ruby环境 没必要利用rmva的解释器  发表于 2018-4-11 15:03
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 0 反对 1

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
3
发表于 2018-4-11 16:03:46 | 只看该作者
好东西啊,想当初放弃VA的其中一个原因就是脚本编辑器字体看不顺眼......

无耻的收了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

开拓者

4
发表于 2018-4-11 16:41:45 | 只看该作者
本帖最后由 shitake 于 2018-4-11 16:47 编辑


付一个我自己的实现 不过我的需要由外部的ruby环境
脚本id 目前只能填index了 囧
这可能小黄鸡会知道如何生成 @fux2
这篇帖子里他讲到了如何用哪个id来生成 exit_code
https://rpg.blue/forum.php?mod=v ... ght=Scripts.rvdata2

点评

.end_with? 滑稽.jpg  发表于 2018-4-11 17:28
为啥不直接正向判断0 0  发表于 2018-4-11 17:16
str.reverse =~ /^br\./ 滑稽.jpg  发表于 2018-4-11 17:01
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42387
在线时间
7601 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

5
发表于 2018-4-11 17:16:27 | 只看该作者
很久很久以前……囧叔也糊过类似的东西,不过当时是考虑到加密脚本才拆开放的,原理也就是read+eval

点评

所以黄鸡快告诉我id咋算  发表于 2018-4-11 17:54
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2018-4-11 18:03:32 | 只看该作者
下一次改数据库吗···

点评

那个感觉和自己写个脚本装进文件正式发布删掉脚本没什么区别···  发表于 2018-4-11 18:16
数据库早有人改过了啊,导出到excel里填表  发表于 2018-4-11 18:11
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4881
在线时间
425 小时
注册时间
2019-10-22
帖子
666
7
发表于 2020-2-16 14:01:35 | 只看该作者
本帖最后由 坏数据 于 2020-2-16 16:43 编辑

饭粒里面的main.rb 漏了 Window_NameInput这个原生的window



用着习惯的sublime 漂亮的语法高亮 犹如搭乐高积木一般
感谢m5

点评

windows下 魔改了标题栏 theme是material color是glacier 字体是source code pro 语法高亮规则也改了些 强迫症很严重  发表于 2020-2-17 03:12
颜值党 早就看默认编辑器不顺眼了  发表于 2020-2-17 03:05
感谢提醒(哇你这界面真漂亮)  发表于 2020-2-16 21:19
















回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 19:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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