游戏狂人
 
- 贡献度
- 8
- 金元
- 13061
- 积分
- 1338
- 精华
- 0
- 注册时间
- 2015-9-26
|
本帖最后由 bobgod3000 于 2025-8-24 02:38 编辑
GiveItemCmd这个MOD可以根据代码添加物品,在游戏升级1.5后就失效了且原作者迟迟未更新版本。N网的讨论区给出解决方案:
用记事本打开原MOD的Scripts目录下main.lua这个文件,删除原代码,用以下代码代替:
print('---------------- GIVE ITEM (LevelScriptLibrary) ENABLED ----------------')
print('Use: give_item <SortID> [Amount]')
print('WorldContext = player pawn / controller found automatically')
local CACHED_LSL_CDO = nil -- Default__LevelScriptLibrary_C
local CACHED_WORLDCONTEXT = nil
local function GetLevelScriptLibraryCDO()
if CACHED_LSL_CDO and CACHED_LSL_CDO:IsValid() then
return CACHED_LSL_CDO
end
local obj = StaticFindObject("/Game/DynamicCombatSystem/Blueprints/Libraries/LevelScriptLibrary.Default__LevelScriptLibrary_C")
if obj and obj:IsValid() then
CACHED_LSL_CDO = obj
return obj
end
print("[give_item] ERROR: LevelScriptLibrary CDO not found")
return nil
end
local function ResolveWorldContext()
if CACHED_WORLDCONTEXT and CACHED_WORLDCONTEXT:IsValid() then
return CACHED_WORLDCONTEXT
end
local player = FindFirstOf('BP_CombatCharacter_Player_Final_C')
if player and player:IsValid() then
CACHED_WORLDCONTEXT = player
return player
end
local pc = FindFirstOf('/Script/Engine.PlayerController')
if pc and pc:IsValid() then
CACHED_WORLDCONTEXT = pc
return pc
end
print("[give_item] ERROR: WorldContext not found (no player/controller)")
return nil
end
-- команда: give_item <SortID> [Amount]
RegisterConsoleCommandHandler('give_item', function(FullCommand, Parameters, Ar)
local sortId = tonumber(Parameters[1])
local amount = tonumber(Parameters[2]) or 1
if not sortId then
print('Usage: give_item <SortID> [Amount]')
return false
end
local lsl = GetLevelScriptLibraryCDO()
local ctx = ResolveWorldContext()
if not lsl or not ctx then
return false
end
local ok, err = pcall(function()
lsl:GiveItemToPlayer(sortId, amount, ctx)
end)
if ok then
local msg = string.format('Gave SortID=%d Amount=%d', sortId, amount)
print('[give_item] '..msg)
if Ar then Ar og(msg) end
return true
else
print('[give_item] CALL FAILED: '..tostring(err))
return false
end
end)
保存退出,重新进游戏,可以正常添加物品了。
|
评分
-
1
查看全部评分
-
|