
本指南将展示如何以最少的脚本编写一个简单的炼金/物品合成系统。对于那些希望采用更“手动操作”而非通常菜单驱动的制作方式的人来说,这会很有用。 简介 上次我教大家制作了一个简单的植物收集系统。现在我将展示如何处理这些植物。这将是一个脚本最少的简单炼金系统。 准备工作 该系统将非常简单,但具有可扩展性。它会将两个物品组合,并根据你使用的物品给予你相应的药水。第一个物品决定效果,第二个物品决定效果强度。例如植物和烧瓶。 创建一个房间和四个事件。其中一个是可选的,但我会用它来获取新的材料(箱子)。以下是示例:

材料 现在是时候准备我们的材料了。药剂需要两种成分:决定药剂效果的植物,以及决定药剂强度的烧瓶。我们还需要一个用于测试的无用物品和药剂本身。我将只使用两种植物和三个烧瓶,因此我的数据库会是这样的。

“岩石”其实并不重要。你可以用它来测试,也可以完全不加,这取决于你。 前往数据库中的【系统】选项卡,添加一个【材料】元素。你之后会需要它。另外,不要忘记为每个材料分配【空公共事件】。植物和烧瓶都需要。我将我的命名为【炼金术】。 现在我们需要编写一些脚本。这将帮助我们确定使用了哪个物品ID。打开脚本编辑器,找到【Scene_Item】,然后找到图片中显示的位置,将高亮代码插入到这里。

以下是可直接复制的代码: # 若物品具有“材料”元素,将变量更改为已使用物品ID if @item.element_set.include?(1) $game_variables[2] = @item.id end 将“@item.element_set.include?(1)”更改为你的“材料”元素ID,“$game_variables[2]”将是你使用的材料物品ID。你可以使用其他变量。 这个小脚本会检查已分配公共事件的物品。如果该物品具有“材料”元素,它会将其ID存储在变量“2”中,以便我们后续使用。 材料槽位 现在开始处理材料槽位。打开第一个、最左侧的事件。 此事件将用于存储“效果材料”,在我的示例中是植物。首先,我们需要告知事件哪些物品才是植物。检查你的数据库,找到效果物品的ID。以我为例,治疗植物(1)和耐力植物(2)。 创建一个名为【@effect_array】的数组,并将你的ID放入其中。以下是我的示例:

现在我们应该用存储的物品ID重置变量。就是我们在脚本编辑器中使用的那个变量。在我的例子里是变量2。这么做的原因很简单:玩家可能会不小心在其他地方使用了该物品。这仍然会将物品ID存储在变量中,可能会搞乱一些东西,所以在实际使用这个变量之前最好重置它。

然后我们需要打开物品栏界面。使用此脚本代码。

以下是代码本身: $scene = Scene_Item.new 玩家将选择想要放入槽位的物品。之后物品栏会自动关闭。这是因为我们给每种材料都添加了空的公共事件。 现在我们需要添加一个条件分支。 该分支将检查“@effect_array”,查看其中是否有任何数字与变量2相同。如果有,变量2将被存储到另一个变量(3)中,并且玩家会失去该物品。如果没有,玩家会收到一条消息,提示其使用了错误类型的物品。

不要忘记在该事件的最后将变量【2】重置。此外,请按照下图设置该事件的第2页。

现在打开它旁边的事件。这个事件基本上是一样的。唯一的区别是开头的数组和用于存储正确物品ID的变量。 创建新的【@catalyst_array】,并将你的第二批材料放入其中。在我的例子中是小型、中型和大型烧瓶(4、5、6)。相应地更改条件分支,不要忘记将物品ID分配给不同的变量(我的例子中是4)。也要更改第二个事件页。


获取药水 现在开启最后一个事件。该事件将给予我们最终的药水。这就是整个过程的样子。

前两个条件分支会检查两个插槽中是否都放入了物品。如果没有,游戏会向玩家显示消息,提示需要在两个插槽中都放入物品。如果两个插槽都有物品,游戏就会开始检查组合。条件如下: 【$game_variables[3] == 1 and $game_variables[4] == 4】 【$game_variables[SLOT_A] == SLOT_A_ITEM.ID and $game_variables[SLOT_B] == SLOT_B_ITEM.ID】 你需要手动完成所有组合,所以最好将可能的组合数量控制在可管理的范围内。 获得药水后,不要忘记将两个物品插槽变量都设置为【0】。 结论 就是这样。这个系统非常简单直接。它可以轻松改造成完全不同的东西,比如将模具和金属结合来制作武器,或者用魔法石和纸张制作卷轴。有很多专注于制作的脚本,但如果你想制作比简单菜单更有趣的东西,这是一个不错的替代方案。希望本指南对你有所帮助。如果你遇到问题或有疑问,随时可以在这里问我。这是结果:










2026-02-16 04:00:26 发布在
RPG Maker XP
说点好听的...
收藏
0
0
