%%%------------------------------------------------------------------- %% 唤神 %% 说明 %% 唤神装备的格子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')">>).