Files
fc/server/tools/gen_data/cfg/robot_data.erl
T

125 lines
8.8 KiB
Erlang
Raw Normal View History

2026-05-23 22:10:14 +08:00
%%----------------------------------------------------
%% 数据配置文件
%% @author
%%----------------------------------------------------
-module(robot_data).
-export([cfg/0]).
-include("data_config.hrl").
-include("common.hrl").
cfg() ->
#data_cfg{
name = robot_data
,lua_name = robot_data
,desc = "机器人配置数据"
,source = "robot_data.xml"
,target = "robot_data.erl"
,inc = ["attr.hrl"]
,callback = [
{list, cb_fun, handle, {list, ["DATA"]}}
,{get, cb_fun, handle, {get_record, ["DATA"], id, new_map, [all, {partners, fun partners/2}]}}
,{{get_attr_by_lev, undefined}, cb_fun, handle, {get_fun, ["属性适配"], "get_attr_by_lev({~s, ~s, Lev}) when Lev =< ~s -> ~ts;", [id, type, lev, {rec, attr, attr}]}}
,{get_attr, cb_fun, handle, {get_record, ["属性计算"], [id, type, star], attr, attr}}
,{{get_ext, "{[],[]}"}, cb_fun, handle, {get_tuple, ["英雄库"], [bid, star], [skill, eqm]}}
,{star, cb_fun, handle, {get_fun, ["英雄库"], "star({~ts, Lev}) when ~ts =< Lev andalso Lev =< ~ts -> ~ts;", [bid, min, max, star]}}
,{{max_lev, "[40]"}, cb_fun, handle, {tuple_type, ["英雄库"], bid, max}}
,{lev, cb_fun, handle, {get_fun, ["等级取值范围"], "lev(Power) when ~ts =< Power andalso Power =< ~ts -> ~ts;", [min, max, lev]}}
,{{get_const, undefined}, cb_fun, handle, {get_fun, ["常量配置"], "get_const(~ts) -> ~ts; %% ~ts", [key, val, desc]}}
,{{get_sprite_info, undefined}, cb_fun, handle, {get_tuple, ["精灵战斗机器人数据"], id, [lev, break_lev, sprite1, sprite2, sprite3, sprite4]}}
]
,callback_cli = [
]
,sheet = [
{["DATA"], [
#f_column{type = int, name = id, desc = "ID", primary = true, mod = all}
,#f_column{type = int, name = face, desc = "角色头像", mod = all}
,#f_column{type = term, name = lev, desc = "角色等级", mod = all}
,#f_column{type = term, name = partner_1, add_list_sign = false, desc = "partner_1", mod = desc}
,#f_column{type = term, name = partner_2, add_list_sign = false, desc = "partner_2", mod = desc}
,#f_column{type = term, name = partner_3, add_list_sign = false, desc = "partner_3", mod = desc}
,#f_column{type = term, name = partner_4, add_list_sign = false, desc = "partner_4", mod = desc}
,#f_column{type = term, name = partner_5, add_list_sign = false, desc = "partner_5", mod = desc}
,#f_column{type = term, name = attr_id, desc = "属性适配ID", mod = all}
,#f_column{type = term, name = formation, desc = "阵法id", comment = "{Type,Rand}", mod = all}
,#f_column{type = term, name = hallows, desc = "神器", comment = "{Id,Step,SkillLev}", mod = all}
]}
,{["属性适配"], [
#f_column{type = int, name = id, desc = "ID", mod = all}
,#f_column{type = int, name = type, desc = "type", mod = all}
,#f_column{type = int, name = lev, desc = "等级", mod = all}
,#f_column{type = int, name = atk, desc = "攻击", mod = attr, val = "0"}
,#f_column{type = int, name = def, desc = "防御", mod = attr, val = "0"}
,#f_column{type = int, name = hp_max, desc = "气血上限", mod = attr, val = "0"}
,#f_column{type = int, name = speed, desc = "速度", mod = attr, val = "0"}
,#f_column{type = int, name = hit_rate, desc = "命中", mod = attr, val = "0"}
,#f_column{type = int, name = dodge_rate, desc = "闪避", mod = attr, val = "0"}
,#f_column{type = int, name = crit_rate, desc = "暴击", mod = attr, val = "0"}
,#f_column{type = int, name = crit_ratio, desc = "暴伤", mod = attr, val = "0"}
,#f_column{type = int, name = hit_magic, desc = "效果命中", mod = attr, val = "0"}
,#f_column{type = int, name = dodge_magic, desc = "效果闪避", mod = attr, val = "0"}
,#f_column{type = int, name = dam, desc = "易伤", mod = attr, val = "0"}
,#f_column{type = int, name = res, desc = "免伤", mod = attr, val = "0"}
,#f_column{type = int, name = cure, desc = "治疗提升", mod = attr, val = "0"}
,#f_column{type = int, name = be_cure, desc = "被治疗提升", mod = attr, val = "0"}
]}
,{["属性计算"], [
#f_column{type = int, name = id, desc = "ID", mod = all}
,#f_column{type = kv, name = type, desc = "职业", kv_type = partner_career_type, mod = all}
,#f_column{type = int, name = star, desc = "星数", mod = all}
,#f_column{type = int, name = hp_max, desc = "气血系数", mod = attr, val = "0"}
,#f_column{type = int, name = atk, desc = "攻击系数", mod = attr, val = "0"}
,#f_column{type = int, name = def, desc = "防御系数", mod = attr, val = "0"}
,#f_column{type = int, name = speed, desc = "速度系数", mod = attr, val = "0"}
,#f_column{type = int, name = hit_rate, desc = "命中", mod = attr, val = "0"}
,#f_column{type = int, name = dodge_rate, desc = "闪避", mod = attr, val = "0"}
,#f_column{type = int, name = crit_rate, desc = "暴击", mod = attr, val = "0"}
,#f_column{type = int, name = crit_ratio, desc = "暴伤", mod = attr, val = "0"}
,#f_column{type = int, name = hit_magic, desc = "效果命中", mod = attr, val = "0"}
,#f_column{type = int, name = dodge_magic, desc = "效果闪避", mod = attr, val = "0"}
,#f_column{type = int, name = dam, desc = "易伤", mod = attr, val = "0"}
,#f_column{type = int, name = res, desc = "免伤", mod = attr, val = "0"}
,#f_column{type = int, name = res_p, desc = "物伤", mod = attr, val = "0"}
,#f_column{type = int, name = res_s, desc = "法伤", mod = attr, val = "0"}
,#f_column{type = int, name = cure, desc = "治疗提升", mod = attr, val = "0"}
,#f_column{type = int, name = be_cure, desc = "被治疗提升", mod = attr, val = "0"}
]}
,{["英雄库"], [
#f_column{type = int, name = bid, desc = "伙伴Bid", mod = all}
,#f_column{type = int, name = star, desc = "星级", mod = all}
,#f_column{type = term, name = skill, desc = "被动技能", mod = all, val = "[]"}
,#f_column{type = term, name = eqm, desc = "装备id", mod = all, val = "[]"}
,#f_column{type = int, name = min, desc = "等级下限", mod = all}
,#f_column{type = int, name = max, desc = "等级上限", mod = all}
]}
,{["等级取值范围"], [
#f_column{type = int, name = min, desc = "战力下限", mod = all}
,#f_column{type = int, name = max, desc = "战力上限", mod = all}
,#f_column{type = int, name = lev, desc = "等级", mod = all}
]}
,{["常量配置"],[
#f_column{type = term, name = key, desc = "", add_list_sign = false,mod = all}
,#f_column{type = term, name = val, desc = "", add_list_sign = false,mod= all}
,#f_column{type = bstr, name = desc, desc = "描述", mod = client}
]}
,{["精灵战斗机器人数据"],[
#f_column{type = int, name = id, desc = "id", mod = server}
,#f_column{type = int, name = lev, desc = "等级", val = "0", mod= server}
,#f_column{type = int, name = break_lev, desc = "突破等级", val = "0", mod= server}
,#f_column{type = int, name = sprite1, desc = "1号位精灵", val = "0", mod= server}
,#f_column{type = int, name = sprite2, desc = "2号位精灵", val = "0", mod= server}
,#f_column{type = int, name = sprite3, desc = "3号位精灵", val = "0", mod= server}
,#f_column{type = int, name = sprite4, desc = "4号位精灵", val = "0", mod= server}
]}
]
}.
partners(_, Row) ->
P1 = cb_fun:get_val(partner_1, Row),
P2 = cb_fun:get_val(partner_2, Row),
P3 = cb_fun:get_val(partner_3, Row),
P4 = cb_fun:get_val(partner_4, Row),
P5 = cb_fun:get_val(partner_5, Row),
S = ?S("[~s,~s,~s,~s,~s]", [P1, P2, P3, P4, P5]),
{ok, S}.