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

Project1

 找回密码
 注册会员
搜索
楼主: 玻璃柿子
打印 上一主题 下一主题

[原创发布] RMXP魔改计划及发布贴

[复制链接]

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

1
发表于 2023-4-1 23:05:08 | 显示全部楼层
一人血书新增显示远景图的功能

点评

↓运行时可以让远景图不动,这不是一个麻烦问题。这样相当于多一个图层  发表于 2023-4-4 20:02
再加一个,三人血书了;但要如何模拟游戏内远景是个问题。  发表于 2023-4-3 22:26
加上我,两人血书了  发表于 2023-4-3 22:15
改32*32这个有点。。。。太底层了。。。  发表于 2023-4-3 16:39
建议再加一个地图单元格(32*32)的大小修改  发表于 2023-4-2 14:31
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

2
发表于 2023-4-5 17:18:22 | 显示全部楼层
本帖最后由 guoxiaomi 于 2023-4-5 18:59 编辑

提点想法。我先用画图说明我对“插件”的理解。

“插件”特指在程序特定的入口添加新的对话框,然后在新的对话框里进行操作,保存后能修改Data文件夹里的部分数据。

目前至少有3种不同类型的入口,图上标注的1和2是进入对话框的顺序:
1. 在插件菜单里,添加一个按钮跳转到新的对话框。


2. 事件选项里添加一个按钮,增加新的条目,点击对应条目打开对话框。
这里的条目,在编辑结束后要能显示对应的新指令。


3. 数据库编辑的部分多一些入口。如果尽可能兼容旧版本,可以在“系统”的右边多一栏,点击后打开新的对话框。
这里的条目,对应于Data文件夹里额外的.rxdata文件。在编辑结束后要修改那个.rxdata文件。


而对话框,指的是可以修改数值的那种东西,比如,下面这个是变量处理的事件:


对话框里包含了各种小组件(widget),组件按照特定的规律排布。

如果能适当做好封装,提供一个友好的dsl,那么插件的作者,完全不需要懂win32的知识,只需要会写一点脚本,完成插件对应的逻辑即可。

举个例子,以下代码描述了在插件菜单里添加一个选项,以打开变量处理的事件,我使用ruby的格式来写。当然用标记语言写layout也很合适。

大体思路就是
1. 继承自 Plugin_Menu 说明入口是上面的第一种情况,在插件列表里。
2. layout里定义widget的位置和内容,以及如何操作data变量。这部分可以对照上图来看。
3. on_xxx函数表示此插件在打开、关闭、应用、取消四个时机时该如何处理data与外部数据(一般是Data文件夹里的数据)。

RUBY 代码复制
  1. class MyPlugin < Plugin_Menu
  2.   def initialize
  3.     super('变量处理')
  4.   end
  5.  
  6.   # 处理 data 和外部数据
  7.   def on_open; end
  8.  
  9.   def on_close; end
  10.  
  11.   def on_save; end
  12.  
  13.   def on_cancel; end
  14.  
  15.   def layout
  16.     title '操作变量'
  17.     align :vertical
  18.  
  19.     form '变量' do
  20.       data[0] << 0
  21.       radio do
  22.         align :vertical
  23.         option do
  24.           label '单独'
  25.           data[1] << select_variables
  26.         end
  27.         option do
  28.           align :horizontal
  29.           label '统一'
  30.           data[1] << integer(0, $game_variables.size)
  31.           label '~'
  32.           data[2] << integer(0, $game_variables.size)
  33.         end
  34.       end
  35.     end
  36.  
  37.     form '操作' do
  38.       radio do
  39.         align :horizontal
  40.         option do
  41.           label '代入'
  42.           data[3] << 0
  43.         end
  44.         option do
  45.           label '加法'
  46.           data[3] << 1
  47.         end
  48.         option do
  49.           label '减法'
  50.           data[3] << 2
  51.         end
  52.         option do
  53.           label '乘法'
  54.           data[3] << 3
  55.         end
  56.         option do
  57.           label '除法'
  58.           data[3] << 4
  59.         end
  60.         option do
  61.           label '取余'
  62.           data[3] << 5
  63.         end
  64.       end
  65.     end
  66.  
  67.     form '操作数' do
  68.       radio do
  69.         align :horizontal
  70.         option do
  71.           label '常量'
  72.           data[4] << interger(-99_999, 99_999)
  73.         end
  74.         # ... 中间省略 ...
  75.         option '其它' do
  76.           listbox do
  77.             option do
  78.               label '地图ID'
  79.               data[4] << 0
  80.             end
  81.             # ... 中间省略 ...
  82.             option do
  83.               label '存档次数'
  84.               data[4] << 6
  85.             end
  86.           end
  87.         end
  88.       end
  89.     end
  90.   end
  91. end

这样做应该会方便插件作者许多,但是维护插件生态比开发一个DSL要难多了,我们还有很长的路要走。

个人看法,如果我来做这个,就会直接全部重写,当DSL设计好,widget整理好之后,剩下的对话框全部都是写上面这种DSL写就行。地图的处理可能会稍微麻烦一点,但是也不算特别难。当然我现在的重点维护RGM这个runtime,编辑器的事情,我泉水指挥总是轻松的……

点评

其实我们都在runtime群里  发表于 2023-4-11 00:14
两位RMXP的大天使会面了,见证历史,膜拜TAT  发表于 2023-4-10 22:47
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

3
发表于 2023-4-5 18:11:22 | 显示全部楼层
从回复楼层中也能看出来,大家特别关心的是能否解除原版编辑器的一些限制,或者优化使用体验。插件生态倒是其次了。。。
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 16:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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