Я строю или пытаюсь создать мод под названием More Drops (DS). Я перенес его на «Не голодать вместе» из «Не голодать вместе», так что мои знания языка очень ограничены, но я работал над этим несколько дней и не могу понять, поэтому мне нужно попросить помощь.
Я понял, как расширить работу авторов оригинального мода, добавив новые деревья и ресурсы, но когда дело доходит до "взломанных" ресурсов, я в тупике.
Итак, это то, что я пытался, и множество вариантов этого. Это не работает, и я не понимаю почему, и я покажу вам, что работает в следующих двух.
--bamboo
if inst.name == "Bamboo Patch" and utils.LootRandom(bambooChance) then
utils.DoTimes(GetModConfigData("bambooAmount", KnownModIndex:GetModActualName("(JEM) More Drops DS")), inst.components.lootdropper.SpawnLootPrefab, inst.components.lootdropper, "bamboo")
end
Это работает
--Spawn extra logs for tall trees
if inst.components.growable.stage == 3 and utils.LootRandom(logChance) then
utils.DoTimes(GetModConfigData("extralogstall", KnownModIndex:GetModActualName("(JEM) More Drops DS")), inst.components.lootdropper.SpawnLootPrefab, inst.components.lootdropper, "log")
end
И это тоже работает
if inst.name == "Evergreen" and inst.components.growable.stage ~= 1 then
if utils.DropLootRandom(inst, "pinecone", seed_chance) then print("Dropped seed") end
end
Теперь я не уверен, сколько файлов мне нужно вставить сюда, но вот начало дерева trees.lua, просто чтобы добавить немного контекста
local utils = require("utils")
local logChance = GetModConfigData("logChance", KnownModIndex:GetModActualName("(JEM) More Drops DS"))
local function ImproveTree(inst)
--Do these when the tree is fully chopped
local seed_chance = GetModConfigData("treeseedchance", KnownModIndex:GetModActualName("(JEM) More Drops DS"))
local egg_chance = GetModConfigData("eggChance", KnownModIndex:GetModActualName("(JEM) More Drops DS"))
local coconut_seed_chance = GetModConfigData("coconutChance", KnownModIndex:GetModActualName("(JEM) More Drops DS"))
local bambooChance = GetModConfigData("bambooChance", KnownModIndex:GetModActualName("(JEM) More Drops DS"))
local oldonfinish = inst.components.workable.onfinish
inst.components.workable:SetOnFinishCallback(function(inst, chopper)
Вся информация правильно вызывается в modmain.lua, насколько я могу судить, я позаботился о том, чтобы добавлять вещи так же, как и рабочий код.
Я ожидал, что это добавит немного бамбука! Я пробовал так много разных способов, даже сделал свой собственный файл choppable.lua и добавил его так же, как оригинальный автор добавил pickable.lua, но я решил, что он должен быть немного больше похож на деревья, чем на обычные ресурсы, так как вы используете инструмент, и он бросает предмет на землю, а не добавляет к инвентарю.
Если вы хотите посмотреть весь мод, я загрузил его здесь: https://www.dropbox.com/s/ahss2d0s861j2an/%28JEM%29%20More%20Drops%20DS.7z?dl=0