%%%-------------------------------------------------------------------
|
|
%% 唤神
|
|
%% 说明
|
|
%% 唤神装备的格子sell = 唤神id * 100 + pos
|
|
%% 辅助唤神位置id = 主站 pos * 100 + 位置
|
|
%% 神血 = 唤神生命 + 套装附带的神血 + 玩家生命*20%
|
|
%% 神攻 = 唤神攻击 + 玩家攻击
|
|
%% 神防 = 唤神防御 + 玩家防御
|
|
%%% @end
|
|
%%%-------------------------------------------------------------------
|
|
-author("liushl").
|
|
|
|
%% 出战位置判断 1-99为出战位置|101-9999为援护位置
|
|
-define(IS_PRIMARY_GOD(Pos), Pos >=1 andalso Pos =< 99).
|
|
-define(IS_SECONDARY_GOD(Pos), Pos >= 101 andalso Pos =< 9999).
|
|
%% Pos2 是不是 Pos1 的辅助位
|
|
-define(IS_THE_SECONDARY_GOD(Pos1, Pos2),
|
|
(?IS_PRIMARY_GOD(Pos1)
|
|
andalso ?IS_SECONDARY_GOD(Pos2)
|
|
andalso Pos2 div ?POS_OFFSET =:= Pos1)).
|
|
%% 出战位置偏移量
|
|
-define(POS_OFFSET, 100).
|
|
%% 唤神装备位置偏移量
|
|
-define(CELL_OFFSET, 100).
|
|
%% 默认解锁的主出战位大小
|
|
-define(DEFAULT_POS, 3).
|
|
%% 援助唤神属性折扣
|
|
-define(ASSISTANCE, 0.5).
|
|
%% 装备位置
|
|
-define(DEFAULT_EQUIP_POS, [1,2,3,4,5,6]).
|
|
%% 装备5级时产生变异属性
|
|
-define(GOD_EQUIP_SP_LV, 5).
|
|
%% 操作信息
|
|
-define(LOG_ACTIVE, 1). % 激活 {1,0, time}
|
|
-define(LOG_STAR_UP, 2). % 升星:每升一星{2, 星级,time}
|
|
-define(LOG_LV_UP, 3). % 升级:升到整50级 {3, 等级, time}
|
|
-define(LOG_SUIT, 4). % 激活套装:首次激活某6件套装{4, 套装类型,time}
|
|
-define(LOG_SKILL, 5). % 技能满级:某个技能满级{5, 技能id,time}
|
|
-define(LOG_EQUIP_UP, 6). % 装备强化
|
|
-define(LOG_GOD_FRONT, 7). % 唤神上阵变化
|
|
|
|
%% 召唤流程
|
|
-define(GOD_SUMMON_BEGIN, 1). % 初次召唤
|
|
-define(GOD_SUMMON_NEXT, 2). % 切换为下一个
|
|
-define(GOD_SUMMON_END, 3). % 结束
|
|
|
|
%%奖池类型
|
|
-define(NORMAL_POOL, 1). % 普通奖池
|
|
-define(LIMIT_POOL, 2). % 限时奖池
|
|
|
|
|
|
%% 效果类型
|
|
-define(TYPE_SUIT_SKILL_FRONT_GOD, 1). %% 上阵唤神属性加成
|
|
-define(TYPE_SUIT_SKILL_FRONT_ROLE, 2). %% 上阵玩家属性加成
|
|
-define(TYPE_SUIT_SKILL_FIGHT_ROLE, 3). %% 出战玩家属性加成
|
|
-define(TYPE_SUIT_SKILL_SPECIAL, 9). %% 特殊效果
|
|
%% 套装技能
|
|
-define(SUIT_SKILL_ROLE_CRIT_ADD , 1). % 上阵提升2000暴击
|
|
-define(SUIT_SKILL_GOD_ATT , 2). % 装备后神攻 翻倍
|
|
-define(SUIT_SKILL_ROLE_TEN , 3). % 上阵提升2000坚韧
|
|
-define(SUIT_SKILL_GOD_DEF , 4). % 装备后神防 翻倍
|
|
-define(SUIT_SKILL_ROLE_DODGE , 5). % 上阵提升2000闪避
|
|
-define(SUIT_SKILL_GOD_HP , 6). % 装备后神血 翻倍
|
|
-define(SUIT_SKILL_ROLE_PARRY_RATIO , 7). % 上阵提升5%格挡几率
|
|
-define(SUIT_SKILL_ROLE_UNCRIT_ADD_RATIO, 8). % 唤神+20%暴击抵抗
|
|
-define(SUIT_SKILL_GOD_CALL_ONE , 9). % 上阵后单个神祗召唤时间+5s
|
|
-define(SUIT_SKILL_GOD_CALL , 10). % 上阵后所有神祗召唤时间+5s
|
|
-define(SUIT_SKILL_ROLE_CRIT_HURT , 11). % 装备的唤神+15%暴击几率
|
|
-define(SUIT_SKILL_ADD_POS , 12). % 上阵后出战阵位+1
|
|
-define(SUIT_SKILL_ROLE_HURT_ADD_RATIO, 13). % 提升5%伤害加成
|
|
-define(SUIT_SKILL_ROLE_NO_CTRL , 14). % 出战战斗时免疫所有控制 减速/流血/眩晕 等
|
|
-define(SUIT_SKILL_STAB_RATIO , 15). % 提升5%格挡穿透
|
|
-define(SUIT_SKILL_ROLE_NO_HURT , 16). % 出战时前2s免疫所有伤害
|
|
-define(SUIT_SKILL_ROLE_ASSIST_PLUS1 , 17). % 该唤神护佑时属性加成为60%
|
|
-define(SUIT_SKILL_ROLE_ASSIST_PLUS2 , 18). % 该唤神护佑时属性加成为80%
|
|
|
|
%% 出战中的唤神信息
|
|
-record(god_fighting, {
|
|
id = 0
|
|
, att = 0 % 攻
|
|
, def = 0 % 防
|
|
, hp = 0 % 血
|
|
, hp_lim = 0 % 血上限
|
|
, skills = [] % 技能 [{skill_id, lv}|_]
|
|
, battle_effect = [] % 战斗特殊效果(一般是装备套装效果)[skill_id|_]
|
|
, time = 0 % 变身时间戳 utime:longunixtime()
|
|
, continue = 0 % 变身持续时间
|
|
}).
|
|
%% 唤神召唤出战信息
|
|
-record(god_summon, {
|
|
ref = [],
|
|
fighters = [] % 按出战顺序排列#god_fighting{}发到场景去
|
|
}).
|
|
%% 玩家唤神数据
|
|
-record(role_god, {
|
|
god_info = [] % 玩家激活的唤神
|
|
,unlock = [] % 出战解锁信息[出战位置/援助位置|_]
|
|
,summon_time = 0 % 召唤时间,CD过后才能继续召唤
|
|
,god_summon = undefined % 召唤出战信息。召唤时才有数据#god_summon{}
|
|
|
|
,temp_attr = [] % 某些唤神 出战时 会给玩家提供额外属性
|
|
,attr = [] % 提供给玩家的总属性列表:上阵的唤神才计算
|
|
,god_power = 0 % 唤神战力:包括唤神技能额外战力+神属性战力
|
|
,role_power = 0 % 总战力,人物属性战力
|
|
}).
|
|
|
|
%% 单个唤神
|
|
-record(god, {
|
|
id = 0, % 唤神id
|
|
star = 0, % 唤神星级
|
|
lv = 1, % 唤神等级
|
|
exp = 0, % 唤神经验
|
|
pos = 0, % 出战位置:0未出战|1-99为出战位置|101-9999为援护位置
|
|
attr = [], % 上阵提供给玩家的属性:培养属性/技能属性/装备属性
|
|
equip_attr = [], % 装备属性 只在装备变更时刷新
|
|
god_attr = [], % 唤神属性:变身战斗时附加给为玩家的 攻/血/防
|
|
% 主唤神:包括自己的成长属性+套装效果+人物继承
|
|
% 援助唤神:0.5*自己的成长属性+套装效果
|
|
% 未上阵:[]
|
|
skills = [], % 战斗技能[{skill_id, lv}|_]
|
|
suit_info = [], % 套装效果,统计装备属性的时候计算
|
|
suit_skills = [], % 套装技能
|
|
extra_power = 0, % 额外战力:技能战力/
|
|
power_show = 0 % 前端展示战力
|
|
}).
|
|
|
|
|
|
%%%===================================================================
|
|
%%% 配置
|
|
%%%===================================================================
|
|
|
|
%% 唤神配置
|
|
-record(base_god_info, {
|
|
id = 0,
|
|
name = <<>>,
|
|
star = 0,
|
|
cost = [],
|
|
need_lv = 0,
|
|
attr = [],
|
|
god_attr = [],
|
|
skills = [],
|
|
goods_id = 0,
|
|
skill_max = 0,
|
|
type = 0
|
|
}).
|
|
|
|
%% 唤神装备配置
|
|
-record(base_god_equip, {
|
|
id = 0,
|
|
name = <<>>,
|
|
attr = [],
|
|
extra_attr = [],
|
|
pos = 0,
|
|
quality = 0,
|
|
exp = 0,
|
|
suit_id = 0
|
|
}).
|
|
|
|
%% 唤神套装配置
|
|
-record(base_god_equip_suit, {
|
|
name = <<>>,
|
|
type = 0, %% 1属性百分比加成/2属性直接加成/3其他
|
|
effect = [] %%
|
|
}).
|
|
|
|
%% 唤神限时抽奖期数
|
|
-record(base_god_limit_phase, {
|
|
phase = 0,
|
|
god_id = 0,
|
|
count_award = [],
|
|
blessing_award = [],
|
|
days = 0
|
|
}).
|
|
|
|
%% 唤神普通抽奖期数
|
|
-record(base_god_normal_phase, {
|
|
phase = 0,
|
|
awards = 0
|
|
}).
|
|
|
|
%% 唤神抽奖奖品
|
|
-record(base_god_limit_award, {
|
|
id = 0,
|
|
awards = [],
|
|
broadcast = 0,
|
|
weight = 0,
|
|
need_lv = 0,
|
|
phase = 0
|
|
}).
|
|
|
|
%% 唤神抽奖奖品
|
|
-record(base_god_normal_award, {
|
|
id = 0,
|
|
awards = [],
|
|
broadcast = 0,
|
|
weight = 0,
|
|
need_lv = 0,
|
|
phase = 0,
|
|
show = 0
|
|
}).
|
|
|
|
|
|
-define(SELECT_ROLE_GOD_INFO,
|
|
<<"SELECT god_id, star, lv, exp, pos, skills FROM role_god_info WHERE role_id = ~p">>).
|
|
|
|
-define(SELECT_ROLE_GOD,
|
|
<<"SELECT unlock_pos FROM role_god WHERE role_id = ~p">>).
|
|
|
|
-define(REPLACE_INTO_ROLE_GOD_INFO,
|
|
<<"REPLACE INTO role_god_info(role_id, god_id, star, lv, exp, pos, skills) VALUES(~p, ~p, ~p, ~p, ~p, ~p, '~ts')">>).
|
|
|
|
-define(REPLACE_INTO_ROLE_GOD,
|
|
<<"REPLACE INTO role_god(role_id,unlock_pos) VALUES(~p, '~ts')">>).
|