无标题无名氏No.65994041 只看PO
2025-05-04(日)12:21:00 ID:qx5Q9yb 回应
记录一下给破碎像素地牢加宏系统的过程
无标题无名氏No.65994050
2025-05-04(日)12:21:59 ID: qx5Q9yb (PO主)
起初是想直接让游戏支持读取文件自行添加内容的,奈何不会java,提了issue也被否决,就退而求其次用javascript实现宏替换了
无标题无名氏No.65994069
2025-05-04(日)12:25:55 ID: qx5Q9yb (PO主)
基本思路就是在代码里插入特殊格式的注释块,比如
```
原游戏的代码
//#+ 标签
一些被插进来的代码
//#-
原游戏的代码
```
为什么这么做呢,主要是这样分段比较好区分哪些内容是原版的,哪些内容是插进去的
至于要在哪些标签块里插入什么内容,就是其他的事
无标题无名氏No.65994096
2025-05-04(日)12:29:20 ID: qx5Q9yb (PO主)
然后有一个场景,我们需要替换掉一些代码,怎么在替换之后反悔 把它们重置回来呢
可以在标签后面加个'default'字段,表明这个块本身不插入内容,而是存储某个标签块原来的内容
这样重置的时候不会把那个标签块清空,而是把default块的内容复制粘贴进去
为了不影响游戏运行,default块强制要求里面都是注释过的代码,或者空行
复制粘贴的时候去掉注释就行
无标题无名氏No.65994109
2025-05-04(日)12:32:11 ID: qx5Q9yb (PO主)
接下来是在标签块里插入什么内容
这部分用task来管理
task就是标记过的内容
通过在task标记的位置插入task存的内容,就实现了指定内容的替换
多task就都替换就是
如果有复数个task修改同一处,就把添加的内容拼接起来,再插入
无标题无名氏No.65994123
2025-05-04(日)12:35:08 ID: qx5Q9yb (PO主)
但是一些修改牵扯到很多地方!
比如添加一个角色职业,你就不能只添加角色职业,你有添加它的初始化函数,它的台词,它在什么地方什么机制里会怎么怎么样...
后面的句式我记不清了,反正就会有一些task相互紧密关联,而且在一些地方重复
那么就提出了job
job是task的模板,接受几个参数来生成新的几个task,这样就好多了
无标题无名氏No.65994132
2025-05-04(日)12:36:16 ID: qx5Q9yb (PO主)
以上只是纯代码文件部分的宏替换,游戏资源方面的宏替换我还暂时没有思路,可能会在每个文件夹存一个replaced.md来监视
无标题无名氏No.66004081
2025-05-05(一)20:02:16 ID: qx5Q9yb (PO主)
>>No.65994123
去学习了一点CI/CD的技术,发现叫job并不好
但是我哪知道该怎么命名.jpg
跳过
今天实现了通过一个manifest文件,一键实现一堆修改
非常好