• 注册
  • 角色&存档 角色&存档 关注:328 内容:146

    【原创整活MOD】随机装备

  • 查看作者
  • 打赏作者
  • 2
  • 角色&存档
  • 渐入佳境
    2021

    一旦安装此MOD后启动服务端,会对存档造成不可逆的毁灭性修改

    【原创整活MOD】随机装备

    随便给你一套装备。可能需要重启游戏或者进行结算等操作进行刷新。

    MOD会重置所有的物品。不重置?也能做,等有时间再说吧。

    MOD完全没有经过测试,出现任何问题概不负责

    源码如下

    import { BotInventoryGenerator } from “@spt-aki/generators/BotInventoryGenerator”;
    import { BotHelper } from “@spt-aki/helpers/BotHelper”;
    import { IPreAkiLoadMod } from “@spt-aki/models/external/IPreAkiLoadMod”;
    import { SaveServer } from “@spt-aki/servers/SaveServer”;
    import { JsonUtil } from “@spt-aki/utils/JsonUtil”;
    import { DependencyContainer } from “tsyringe”;

    class Mod implements IPreAkiLoadMod
    {

        private static container: DependencyContainer;

       

        public preAkiLoad(container: DependencyContainer): void
        {

            Mod.container = container;

           

            container.afterResolution(“SaveServer”,(_t,result: SaveServer) =>
            {
                result.saveProfile = (sessionID: string) =>
                {
                    return this.saverandomkit(sessionID);
                }
            }, {frequency: “Always”});
        }

       

        public saverandomkit(sessionID: string): void
        {
            const saveServer = Mod.container.resolve<SaveServer>(“SaveServer”);
            const botInventoryGenerator = Mod.container.resolve<BotInventoryGenerator>(“BotInventoryGenerator”);
            const botHelper = Mod.container.resolve<BotHelper>(“BotHelper”);
            const jsonUtil = Mod.container.resolve<JsonUtil>(“JsonUtil”);
            const filePath = `${saveServer.profileFilepath}${sessionID}.json`;
            const side = saveServer.profiles[sessionID].characters.pmc.Info.Side
            const botJsonTemplate = jsonUtil.clone(botHelper.getBotTemplate(side))
            const playerLevel = saveServer.profiles[sessionID].characters.pmc.Info.Level
            saveServer.profiles[sessionID].characters.pmc.Inventory = botInventoryGenerator.generateInventory(sessionID,botJsonTemplate, “pmcbot”, true, playerLevel);
            for (const callback in saveServer.onBeforeSaveCallbacks)
            {
                const previous = saveServer.profiles[sessionID];
                try
                {
                    saveServer.profiles[sessionID] = saveServer.onBeforeSaveCallbacks[callback](saveServer.profiles[sessionID]);
                }
                catch (error)
                {
                    saveServer.logger.error(saveServer.localisationService.getText(“profile_save_callback_error”, { callback, error }));
                    saveServer.profiles[sessionID] = previous;
                }
            }

            const jsonProfile = saveServer.jsonUtil.serialize(saveServer.profiles[sessionID], true);
            const fmd5 = saveServer.hashUtil.generateMd5ForData(jsonProfile);
            if (typeof(saveServer.saveMd5[sessionID]) !== “string” || saveServer.saveMd5[sessionID] !== fmd5)
            {
                saveServer.saveMd5[sessionID] = String(fmd5);

                saveServer.vfs.writeFile(filePath, jsonProfile);
                saveServer.logger.info(saveServer.localisationService.getText(“profile_saved”));
            }
        }
    }

    module.exports = { mod: new Mod() }

    自成一派
    VIP4
    不学无术老年人

    如果是原创内容请在帖子标题上加入 原创 两字,便于社区巡查处理违规;非原创内容请在贴中标注原创作者昵称和出处。

    回复
    圆转纯熟

    咱不懂怎么用 [s-15]

    回复

    请登录之后再进行评论

    登录
    角色&存档
  • 今日 1
  • 内容 146
  • 关注 328
  • 聊天
    关注 78

    【招募】GRIFFIN TKF项目开工 期待你的加入 || 你是否想加入格里芬书写自己与人形的故事

  • 签到
  • 任务
  • 发布
  • 模式切换
  • 偏好设置
  • 帖子间隔 侧栏位置: