3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 634|回复: 3
打印 上一主题 下一主题

[分享] 关于添加物品的MOD在1.5版本失效的问题,已经有解决方案了。

[复制链接]

12

主题

1014

帖子

1338

积分

游戏狂人

Rank: 6Rank: 6

贡献度
8
金元
13061
积分
1338
精华
0
注册时间
2015-9-26
跳转到指定楼层
主题
发表于 2025-8-22 10:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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 Arog(msg) end
        return true
    else
        print('[give_item] CALL FAILED: '..tostring(err))
        return false
    end
end)


保存退出,重新进游戏,可以正常添加物品了。

评分

1

查看全部评分

回复

使用道具 举报

0

主题

76

帖子

146

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1460
积分
146
精华
0
注册时间
2016-10-10
舒服的沙发
发表于 2025-8-23 16:49 | 只看该作者
为什么我复制进去之后进游戏直接报错啊
回复 支持 反对

使用道具 举报

3

主题

319

帖子

495

积分

高级玩家

Rank: 4

贡献度
13
金元
4431
积分
495
精华
0
注册时间
2010-4-14
硬硬的板凳
发表于 2025-8-24 02:20 | 只看该作者
我才知道这个MOD, 看了一下,需要安装UE4SS,有点繁琐, 我还是老老实实用我的CT表添加物品装备吧.......
回复 支持 反对

使用道具 举报

12

主题

1014

帖子

1338

积分

游戏狂人

Rank: 6Rank: 6

贡献度
8
金元
13061
积分
1338
精华
0
注册时间
2015-9-26
冰凉的地板
 楼主| 发表于 2025-8-24 02:34 | 只看该作者
本帖最后由 bobgod3000 于 2025-8-24 02:52 编辑
seolion 发表于 2025-8-23 16:49
为什么我复制进去之后进游戏直接报错啊

我这一切正常,按说代码只会导致MOD失效,不会导致游戏报错。你是不是更新1.5.1后报fatal error的?论坛有解决办法,你先试试。还有代码里有个表情符号,我发现只要打出:+L就会变成表情符号,也不知道怎么变成纯文字,那一行正确的是下面:






屏幕截图 2025-08-24 025101.png (9.24 KB, 下载次数: 1)

屏幕截图 2025-08-24 025101.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-23 13:57 , Processed in 0.029157 second(s), 20 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表