控制台可编辑 RpgParams

控制台可编辑 RpgParams

将rpgparams暴露到控制台,你可以设置它们并实时看到效果

杂项

描述

开放了在控制台中修改 rpgparam 数值的能力,无需再编写 XML 模组。

这让你可以进行几个实时编辑。

  • 基础库存容量
  • 力量转背包容量
  • SprintCost
  • 体力恢复基础
  • 体力回复冷却
  • 最大装甲负载
  • 装甲负重对冲刺的影响
  • 奔跑所需护甲值
  • 撬锁开锁器损坏几率
  • 开锁技巧:合适容差
  • SkillXPHit
  • 技能经验击杀
  • StatXPKill
  • 技能上限
  • StatCap
  • 最大专长点数
  • 无害跌落高度
  • 致命坠落高度
  • 修理包容量
  • 隐身击杀概率系数 A

以及更多...

安装

解压到 mods 文件夹

使用方法

打开控制台,输入 kcse_rpgparam_ 后按 Tab 键,你就可以像编辑其他变量一样找到并编辑这些 RPG 参数了。

支持在 user.cfg 中设置它们!

要求

KCSE

来源

#include "KCSE/KCSEAPI.h"
#include "rpgmodule/S_RpgParams.h"
#include "crysystem/SSystemGlobalEnvironment.h"
#include <string>
#include <vector>
using namespace wh::rpgmodule;
static std::vector<std::string> g_cvarNames;
KCSE_PLUGIN_INFO("Console RPG 参数", "JerryYOJ", 1);
KCSE_PLUGIN_LOAD(kcse)
{
    kcse->GetMessagingInterface()->RegisterListener([](KCSE::Message* msg) {
        if (msg->type != KCSE::IMessagingInterface::kMessage_DataLoaded)
            return;
        auto* con  = SSystemGlobalEnvironment::GetInstance()->pConsole;
        auto* log  = SSystemGlobalEnvironment::GetInstance()->pLog;
        auto* defs = S_RpgParamDefs::Get();
        g_cvarNames.reserve(S_RpgParamDefs::kParamCount);
        int registered = 0;
        for (auto& def : *defs) {
            if (!def.name || !def.name[0])
                continue;
            g_cvarNames.emplace_back(std::string("kcse_rpgparam_") + def.name);
            float* slot = &def.AsFloat();
            const char* help = def.description ? def.description : "";
            con->RegisterCVarFloat(g_cvarNames.back().c_str(), slot, *slot, VF_NULL, help);
            ++registered;
        }
        log->LogAlways("[ConsoleRpgParam] 已将 %d 个RPG参数注册为CVars", registered);
        return true;
    });
}