FAQ zh_CN - MemeMayhem/ModExamples GitHub Wiki
如果你是新手,请先阅读新手教程。完成新手教程之后就可以开始制作自己的模组了。这里收集了一些大家经常问到的问题。如果你还有其他问题,可以在github issues里提问。
我的模组没有被加载进游戏
如果你的模组没有被加载到游戏里,可以先试试下载一个示例模组,看看示例模组是否能被正常加载。如果示例模组也不能正常加载,那么可能是模组放置的目录结构不正确。参考教程里的目录结构仔细对照模组的位置是否正常。如果示例模组位置正确但是还是无法加载,可以发issues报告问题。
如果示例模组能被加载,但是你自己的模组不可以,确定模组位置正常后在游戏里按"Ctrl + F8"打开模组管理界面,看看是否有错误信息。如果有显示错误信息,按错误信息进行修改后再重启游戏看看。
如果模组管理界面显示正常,但是模组角色还是没有显示,可以看看游戏的日志文件Player.log
。这个文件在%USERPROFILE%\AppData\LocalLow\Cr3 Studio\Meme Mayhem
。看看里面是否有错误信息记录,然后根据里面的错误信息进行修改。
游戏卡在了加载界面、自定义角色是锁住的或者有其他显示异常
如果脚本里有错误,自定义角色可能会显示被锁住:
脚本错误也可能导致其他异常,比如卡在加载界面,卡在战斗过程中,或者出现明显掉帧等。
这些脚本错误信息会被输出到日志文件Player.log
里。在%USERPROFILE%\AppData\LocalLow\Cr3 Studio\Meme Mayhem
找到这个文件,然后查看里面的错误记录。
脚本文件的错误信息一般像下面这个样子:
LuaExceptionWithStackTrace: [string "UGC-Mods-Custom Relic/Trigger.lua.txt"]:31: This mod has failed to load.
stack traceback:
[C]: in function 'error'
[string "UGC-Mods-Custom Relic/Trigger.lua.txt"]:31: in main chunk
上面的错误信息显示一个名叫"Custom Relic"的模组没有正常加载,错误发生在这个模组脚本文件Trigger.lua.txt
的第31行。
如果还是没法解决,可以在github issues上传你的Player.log
文件还有模组压缩包让我们帮忙看看。
能否在不重启游戏的情况下重新加载模组?
修改完模组脚本后,你可以在游戏里按Ctrl + F5
来重新加载。已经加载进游戏的模组会被重新加载,但是如果你添加了新的模组,仍然需要重启游戏来加载新添加的模组。
怎么修改角色的初始属性和初始能力
教程里介绍了怎么设置初始子弹和神器,初始属性和能力也可以用同样的方式直接在角色数据里设置:
attributes = {
start_gold = 1234,
},
perks = {
"energy_on_ultimate",
"heal_on_ultimate",
"energy_on_start",
},
上面的代码会把角色的初始金币设成1234,然后还有3个初始能力。
更多的角色示例可以参考游戏里的角色数据:https://github.com/MemeMayhem/ModExamples/tree/main/References/CharacterData
能力和神器怎么修改角色属性?
能力和神器可以用modifiy_attributes
来修改角色属性:
modify_attributes = {
attack = 100,
},
加上以上代码的能力或者神器会在获得能力或神器时给角色增加100力量。
更多能力和神器的示例可以参考: PerkData和RelicData.
在战斗中如何修改角色属性?
在战斗中可以临时修改角色属性或者永久修改,两者的写法不同。
combat_unit:RegisterOnCombatStartCallback(name, function (level, target)
-- Modify the max health for the current battle.
combat_unit:ModifyAttribute("health_maximum", 1000, false)
end)
combat_unit:RegisterOnCombatEndCallback(name, function (level, target)
-- Modify the max health that persists.
combat_unit.run_instance:ModifySavedPerkDataAttributes("health_maximum", 100)
end)
上面第一段代码会在代码开始时给角色增加1000生命上限,临时增加的上限会在战斗结束时移除。第二段代码会在战斗结束时永久增加生命上限100。
怎样实现一个像flex_quest/努力锻炼这样的能力?
实现像flex_quest/努力锻炼这样有计数器的能力需要添加一个自定义属性,然后在事件回调函数里使用和修改它。这里有一个完整的示例:https://github.com/MemeMayhem/ModExamples/tree/main/Medium-PerkQuest。