成长线
成长线升级加属性
成长线
- 获取成长线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界面
- edi.ui.update_ui(player, 界面ID) 界面刷新
-- 转生_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)