如何在REFramework和 Lua的帮助下,在《生化危机4重制版》中生成特定敌人并大量增加弹药?
我正在开发一个Discord机器人,通过REFramework的 Lua脚本实时控制RE4 Remake,纯粹为了和我的朋友们一起玩。到现在已经实现了一些功能,但有两个具体问题卡住了。
目前已经实现的功能:
通过ctx:get_HitPoint():set_CurrentHitPoint() 来读取和设置里昂的HP
通过hp:set_Invincible(true) 启用无敌模式
通过enemy:get_HitPoint():dead() 杀死所有敌人
问题1——生成特定敌人
我在chainsaw.CharacterManager上钩取了requestCreateHead、requestCreateBody和 requestSpawn,并准确捕捉到一个可工作训练器在生成Ganado(KindID=200000)时的做法:
requestCreateHead: arg[2]=CharacterInstanceCoordinator arg[3]=ContextID(Str=16740001) arg[4]=200000
requestCreateBody: arg[2]=CharacterInstanceCoordinator arg[3]=ContextID(Str=16740001) arg[4]=200000
requestSpawn: arg[2]=CharacterManager arg[3]=ContextID(Str=16740001) arg[4]=ContextID(Str=16740001)
我可以通过charMgr:get_InstanceCoordinator() 获取CharacterInstanceCoordinator,并通过charMgr:generateDynamicContextID() 生成ContextID,但我不知道如何将KindID(200000)作为requestCreateHead和 requestCreateBody的第三个参数传入。
我尝试过但不起作用的方法:
sdk.create_instance("chainsaw.Ch1c0SpawnParamCommon") + requestSpawn — 执行没有错误,但没有任何效果
直接使用CharacterSpawnParamDB中的SpawnParams — 同样,没有出现任何敌人
有谁知道如何在Lua中正确地调用带有KindID的 requestCreateHead,或者即使我做错了什么,应该如何生成特定的敌人?
问题2——向特定类型的武器添加弹药
我想给特定武器类型(手枪、霰弹枪、步枪)添加弹药,与里昂当前装备的武器无关。我使用的是chainsaw.EquipmentManager。
我尝试过的方法:
equipMgr:get_EquipWeapon(0) — 只返回当前武器
查看chainsaw.InventoryManager的方法 — 发现findInventoryController,但不知道如何用它来获取特定武器的堆栈
有谁知道如何在背包中按武器类型找到弹药并增加数量吗?
环境:
RE4 Remake(Steam,2023)
REFramework来自Nexus Mods(最新版,2024/2025)
通过reframework/autorun/ 的Lua脚本
CharacterManager的 KindID已确认:Ganado=200000,Garrador=200009,Verdugo=81105,Dr.Salvador=81109
提前致谢!
解决方案
只能通过场景来生成更多敌人,/ 或使用REasy或 RE Content编辑器。