跳到主要内容

成长线

成长线升级加属性

成长线

  • 获取成长线KV:edi.player:get_growth_kv(玩家对象, 模块枚举, 字符串KEY)
  • 设置成长线KV:edi.player:set_growth_kv(玩家对象, 模块枚举, 字符串KEY, 数值)
  • 模块枚举:当前枚举类型是2, 看枚举定义文件中的 数据模块类型枚举 枚举说明

属性

  • 获取角色属性:edi.player:get_attr(玩家对象, 属性ID)
  • 设置角色属性:edi.player:set_attr(玩家对象, 属性ID, 属性值)
  • 修改角色属性:edi.player:change_attr(玩家对象, 属性ID, 属性值)
  • 更新玩家属性 Util.gl:update_attr(玩家对象, 当前属性列表, 升级后的属性列表)
  • 添加角色属性:Util.gl:add_attr(player, attrs)
    -- attrs 列表格式
{
{
key:integer 属性ID,
value:integer 属性值,
job:integer 职业
},
{
key:integer 属性ID,
value:integer 属性值,
job:integer 职业
}
}

转生目录结构

配置表:xlsx生成lua 转生配置表 grow_up.xlsx 生成 grow_up.lua

转生
│ 转生_mod.lua -- 数据功能文件
│ 转生_view.lua -- 界面文件

└─growup
grow_up.lua -- 自动化生成的表
grow_up.xlsx -- 转生成长线源表

成长线升级

-- 转生_mod.lua
local module = {}

local ConstDef = include("define.const_def")
local data = include("" .. MODE_NAME .. ".growup.grow_up")

local _cfg = {}
local _key = ""

-- 加载配置
for _, v in ipairs(data) do
local key = v.key
v.MainPropertyParsed = Util.gl:parse_attr_to_table(v.MainProperty)
v.Kv_LimitationParsed = Util.gl:parse_attr_condition(v.Kv_Limitation)
v.NeedStuff_AParsed = Util.gl:parse_item_condition(v.NeedStuff_A)
v.NeedStuff_BParsed = Util.gl:parse_item_condition(v.NeedStuff_B)
_cfg[key] = _cfg[key] or {}
_cfg[key][v.Level] = v
_key = key
end
--- 根据等级获取
---@param nLevel integer 等级索引ID
---@return table
function module:get_cfg_by_lv(nLevel)
return _cfg[_key] and _cfg[_key][nLevel] or nil
end

function module:do_grow_up(player, costtype)

local curLv = edi.player:get_growth_kv(player, ConstDef.KV_MODE.GrowUp, _key)
local curCfg = module:get_cfg_by_lv(curLv)
local nextCfg = module:get_cfg_by_lv(curLv + 1)

--- 添加成长线属性
Util.gl:update_attr(player, curCfg.MainPropertyParsed, nextCfg.MainPropertyParsed)

--- 提升成长线等级
edi.player:set_growth_kv(player, ConstDef.KV_MODE.GrowUp, _key, curLv + 1)

return true
end

return module

刷新ssr界面

-- 转生_view.lua

local view = {}
view.ssrID = 10060

local function _growup(player, costtype)

module:do_grow_up(player, costtype)
-- 刷新界面
edi.ui.update_ui(player, view.ssrID)
end
edi.event:reg_click('转生升级', _growup)

return view

登录时添加属性

local const_def = include('modules.define.const_def')
local attr_def = include('modules.define.attr_def')
local lua_config = include('module.转生.config.grow_up')

-- 缓存配置
local _cfg = {}

-- 登录事件
local function _on_login_end(player)
local level = edi.player:get_growth_kv(player, const_def.KV_MODE.GrowUp, "转生KEY")

-- 通过配置表批量添加属性
local config = _cfg["转生KEY"][level]
if config then
local main_property = Util.gl:parse_attr_to_table(config.MainProperty)
Util.gl:add_attr(player, main_property)
end

end

--@Main--
for _, val in ipairs(lua_config) do
_cfg[val.key] = _cfg[val.key] or {}
_cfg[val.key][val.Level] = val
end
edi.event:reg(edi.event.login_end, _on_login_end, module.NAME)