这是一份简单的物品合成插件。
实现的功能为:根据已有的配方文件和对应的操作台,如果物品栏中已有合成材料的种类和数量满足条件,则合成得到产品。例如A+B=C, A+B+C=D之类的。
其中配方文件是外置于插件的,默认路径为"data/SynthesisRecipe.json"; 而操作台类型的定义是写在插件内部的”const WORKSTATIONS ={...}“。使用者可以自行修改插件内的操作台类型定义,例如添加操作台等。注:当外部配方文件不存在或加载失败时,会加载内部定义的缺省配方”const SAMPLE_RECIPES = {{...},{...}}“;这份缺省配方的格式,可以作为书写外部配方的参考。
配方包含一个合成结果和数目不限的合成材料(但是当材料过多时可能会导致UI显示错误,尚未测试过多的合成材料)。
该插件可以通过脚本调用内部函数Window_SynthesisSystem.open("操作台类型")来打开合成界面,也可以通过plugin command插件命令调用。
这是我写的第一份插件。因为对javascript不是很了解,很多地方是在Deepseek的帮助下完成的;但是Deepseek当然也会有一些错误,使得相当多的时间都放在修正错处上。目前插件可以正常运行。【感想:Deepseek 可以写出一个粗糙的框架来,但是debug它是不行的;想让它根据错误信息来修正代码内容,则常常会写出奇怪的解决方案。】
这份插件可能会有效率不太高的问题;容后根据反馈来调整优化。
还要感谢帖子
https://rpg.blue/thread-498047-1-1.html"在写一份简单的物品合成插件时遇到的问题"遇到的大神@百里_飞柳 的帮助。
这份插件要分两版发出,即实现基础功能的V0.9和加入了”玩家学会配方“机制的V1.0. 版本V1.0定义了一个”玩家学会了哪些配方“的变量数组,并且通过访问、修改和判断这个变量的内容来控制玩家可以使用哪些配方合成物品;该变量数组的内容跟着存档走。
本插件的授权是免费可修改可商用,不强制要求署名。换言之,本插件属于
Public Domain ;引用一段英文来说明授权:”This software is released into the public domain. Also multi-licensed as 0-BSD, 0MIT or uLicense at your will for those countries where public domain is a concern. “
首先给出配方文件的示例:
"data/SynthesisRecipe.json"
其次是V0.9 - 原型的代码:
"ItemSynthesis_prototype.js"
----------------------
V1.0 正在调试plugin command命令。截至发帖时,它的脚本调用目前可用。容调试后发帖附上V1.0代码。
本帖来自P1论坛作者雪狼的天空,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=498048 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。