erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

232 行
12 KiB

%%%------------------------------------------------
%%% File : record.erl
%%% Author : csj
%%% Created : 2010-09-15
%%% Description: record
%%%------------------------------------------------
-include("table_to_record.hrl").
%%战斗属性 战斗相关属性的率一般为 万分比值*10000,
%% 发给客户端显示使用 万分比值*10000/100,显示为等级
-record(battle_attr, {
x = 0, %% X 坐标
y = 0, %% Y 坐标
direct_x = 0, %% 朝向x坐标
direct_y = 0, %% 朝向y坐标
career = 1, %% 职业(参考common.hrl定义)
skill_cd_all = 0, %% 对所有技能的CD, 冷冻到期时间(毫秒)
buff_timer_start = false, %% buff计时器是否开启 true.开启 false.关闭
skill_cd_list = [], %% 技能使用CD,格式[{SkillId, CdTime},...], CdTime为冷冻到期时间(毫秒)
link_skill_buff = [], %% 能触发后续技能的buff列表
delay_skill_buff = [], %% 延迟触发buff
timer_buff = [], %% 时间触发类buff
hurted_buff = [], %% 被击触发类buff
skill_buff = [], %% 技能特殊状态Buff/单次有效,过期还原/需发到客户端[{BufId, 过期时间},...] 毫秒,
buff1 = [], %% 技能加战斗属性BUF列表/单次有效,过期还原 [{BufId, 过期时间},...] 毫秒
buff2 = [], %% 技能加血力法量BUF列表/周期性, 过期保留 [{BufId, CD到期时间, 剩余次数},...] 毫秒
sing_expire = 0, %% 吟唱到期时间(毫秒), 目前只对怪有效, 0为不在吟唱时间内
use_combopoint = 0, %% 是否使用了combopoint增加属性攻击值(0未用, 其他为使用的点数)
combopoint_max = 0, %% 最大连击点数
combopoint = 0, %% 连击点数(技能消耗/获得的属性,可额外增加伤害率或防御率)
hit_point = 0, %% 生命
hit_point_max = 0, %% 生命上限
magic = 0, %% 法力值
magic_max = 0, %% 法力值上限
anger = 0, %% 怒气值
anger_max = 0, %% 怒气值上限
attack = 0, %% 普通攻击力
attack_ratio = 0, %% 普通攻击力增加伤害率(Buff附加值, 初始为0)
defense = 0, %% 普通防御力
defense_ratio = 0, %% 普通防御力增加防御率(Buff附加值, 初始为0)
abs_damage = 0, %% 绝对伤害值
fattack = 0, %% 仙攻值
fattack_ratio = 0, %% 仙攻值增加伤害率(Buff附加值, 初始为0)
mattack = 0, %% 魔攻值
mattack_ratio = 0, %% 魔攻值增加伤害率(Buff附加值, 初始为0)
dattack = 0, %% 妖攻值
dattack_ratio = 0, %% 妖攻值增加伤害率(Buff附加值, 初始为0)
fdefense = 0, %% 仙防值
fdefense_ratio = 0, %% 仙防值增加防御率(Buff附加值, 初始为0)
mdefense = 0, %% 魔防值
mdefense_ratio = 0, %% 魔防值增加防御率(Buff附加值, 初始为0)
ddefense = 0, %% 妖防值
ddefense_ratio = 0, %% 妖防值增加防御率(Buff附加值, 初始为0)
speed = 0, %% 移动速度
attack_speed = 0, %% 攻击速度
hit_ratio = 1, %% 命中等级(万分比)
dodge_ratio = 1, %% 闪避等级(万分比)
crit_ratio = 1, %% 暴击等级(万分比)
tough_ratio = 1, %% 坚韧等级(万分比)
frozen_resis_ratio = 0, %% 冰冻抗性率(帮派技能引入)
weak_resis_ratio = 0, %% 虚弱抗性率(帮派技能引入)
flaw_resis_ratio = 0, %% 破绽抗性率(帮派技能引入)
poison_resis_ratio = 0, %% 中毒抗性率(帮派技能引入)
avoid_attack_ratio = 0, %% 受到普攻免伤害率(Buff附加值, 初始为0)
avoid_fattack_ratio = 0, %% 受到仙攻免伤率(Buff附加值, 初始为0)
avoid_mattack_ratio = 0, %% 受到魔攻免伤率(Buff附加值, 初始为0)
avoid_dattack_ratio = 0, %% 受到妖攻免伤率(Buff附加值, 初始为0)
avoid_crit_attack_ratio = 0, %% 受到普攻暴击免伤害率(Buff附加值, 初始为0)
avoid_crit_fattack_ratio = 0, %% 受到仙攻暴击免伤率(Buff附加值, 初始为0)
avoid_crit_mattack_ratio = 0, %% 受到魔攻暴击免伤率(Buff附加值, 初始为0)
avoid_crit_dattack_ratio = 0, %% 受到妖攻暴击免伤率(Buff附加值, 初始为0)
ignore_defense = 0, %% 攻方忽略防方普防值(武魂引入)
ignore_fdefense = 0, %% 攻方忽略防方仙防值(武魂引入)
ignore_mdefense = 0, %% 攻方忽略防方魔防值(武魂引入)
ignore_ddefense = 0, %% 攻方忽略防方妖防值(武魂引入)
status_stop = 0, %% 石化状态
status_silent = 0, %% 沉默状态[能普攻,不能技能]
status_unstoptable = 0, %% 免役控制
status_unattrackable = 0, %% 不能发起攻击[普通或者技能都不可以]
change_appearance = 0, %% 外观变换
energy = {}, %% 能量球,
passive_skill_attr = [], %% 职业被动分流,
hurt_call_back = 0, %% 受击反弹伤害百分比
passive_hurt_rate = 0, %% 反伤百分比增加比率(被动技能)
control_radio = 0, %% 技能产生控制的几率
walk_path = [], %% 行走路径,格式[DestX,DestY,Len,<<WalkPath>>]
move_destination = {0, 0}, %% 移动的目的点
ai_init_id = 0, %% 初始的AI,用于重置
clock_time = 143, %% 初始的时钟(一秒钟走7步,1000/7)
demage_buff_list = [], %% 伤害buff列表
remove_buff_list = [], %% 移除buff列表
attr_freeze_probability = 0, %% 受到冰冻的概率
hp_cover_callback = 0, %% 回复效果
is_rush_success = 0, %% 标记玩家是否冲锋成功 0.默认状态 1.冲锋成功 2.冲锋失败
fight_pos = {1, 1}, %% 攻击对方时,站在对方的方位参数 1,0/1,1/1,-1/0,1/0,-1/-1,0/-1,1/-1,-1
return_steps = 0, %% 在返回时,记录返回的步数(主要用于怪物返回的瞬移)
move_speed_queue = {{0, []}, {0, []}},%%移动速度buff效果队列
damage_reduction = {0, 0, 0, ""}, %%当前吸收伤害盾吸收数值
damage_reduction_queue = [], %%伤害吸收队列
invincible = 0, %%无敌状态
reduce_dot_damage = 0, %%忽略dot千分比伤害
abs_crit_ratio = 1, %%暴击率真实值
real_defense = 0 %%实际的物理防御力
}).
%%用户的其他附加信息(对应player.other)
-record(player_other, {
skill_list = [], % 技能列表[{SkillId, Level}, ...]
skill_point = {0, 0}, % 技能点
socket = undefined, % 当前用户的socket
pid = undefined, % 用户进程Pid
pid_goods = undefined, % 物品模块进程Pid
pid_send = [], % 消息发送进程Pid(可多个)
pid_battle = undefined, % 战斗进程Pid
pid_scene = undefined, % 当前场景Pid
pid_dungeon = undefined, % 当前副本进程
pid_task = undefined, % 当前任务Pid
pid_mount = undefined, % 当前座骑Pid
node = undefined, % 进程所在节点
blacklist = false, % 是否受黑名单监控
pk_mode = 0, % 0-不强制pk模式 1-强制和平模式 2-强制自由pk模式 3-强制帮会pk模式
goods_ets_id = 0, % 物品ets表ID
equip_current = [], % 影响玩家外观装备
role_suit = [], % 套装列表
weapon_strenLv = 0, % 武器强化等级
armor_strenLv = 0, % 盔甲强化等级
fashion_strenLv = 0, % 时装强化等级
wapon_accstrenLv = 0, % 武饰强化等级
wing_strenLv = 0, % 翅膀强化等级
mount_fashion = 0, % 坐骑外观
team_id = 0, % 队伍ID, 0为无队伍
team_leader = 0, % 是否队长1是,其他不是
pet_facade = 0, % 宠物外观
pet_status = 0, % 0宠物休息, 1出战, 2不存在
pet_quality_lv = 0, % 宠物品阶
pet_name = <<"">>, % 宠物名字
step_check_tasks = [], % 玩家移动时候是否需要检查任务的任务列表
hardware_info = {} %玩家硬件信息
}).
%%任务进度(用于在杀怪,采集等动作时保存对应的未完成任务与已完成任务)
-record(task_process_info, {
task_unfinsh = [], %%未完成的任务
task_fin = [] %%已完成任务
}).
%%怪物掉落
-record(mon_drop_goods, {
drop_id = 0, %% 掉落物实例ID
uid = 0, %% 玩家ID
mon_id = 0, %% 掉落产生ID
goods_id = 0, %% 物品ID
goods_num = 0, %% 掉落数量
x = 0, %% 掉落的X左边
y = 0, %% 掉落的Y坐标
expire_time = 0 %% 掉落失效时间
}).
%% 购买npc商店日志
-record(ets_npc_shop_log, {
key,
buy_num, %%
buy_time %%
}).
%% 购买商城日志
-record(ets_shop_log, {
key,
buy_num, %%
buy_time %%
}).
%% 购买商城日志
-record(ets_special_shop_log, {
key,
buy_num, %%
buy_time %%
}).
%% 队伍信息
-record(team, {
tid = 0, %%队伍ID
leader_id = 0, %%队长ID
leader_nick = <<>>, %%队长名字
leader_level = 0, %%队长的等级
direct_join = 0, %%直接加入队伍
invite_allow = 0, %%成员可发邀请
max_num = 0, %%最大队员数
member_ids = [] %%成员ID列表
}).
%% 成员信息
-record(team_member, {
uid = 0, %%角色ID
tid = 0, %%队伍ID
level = 0, %%队长的等级
nick = <<>>, %%名字
force = 0, %%战斗力
camp = 0, %%阵营
career = 0, %%职业
gender = 0 %%性别
}).
-record(energy, {
attack = <<"{}">>, %%攻击时回复的能量系数k
injured, %%被攻击时回复的能量系数k
crit, %%暴击回复的能量系数k
battle_recover, %%战斗时回复每秒的能量系数 k
normal_recover, %%离开战斗时每秒回复的能量系数 k
last_reflesh_time, %%最近一次计算能量球的时间
energy_val, %%玩家当前的能量值
max_energy, %%玩家能量值上限 ,
freeze_second = 0, %%能量值暂停衰减的时间
attack_callback_rate = 1, %%攻击回复能量值比
injured_rate = 1000, %%受击回复能量比例
recover_percent = 0 %%回复能量百分比
}).
-record(ets_scene_slice, {
id = 0,
obj = []
}).
-record(hardware_info, {
os = 0,%%手机操作系统,如:0.未知 1.android 2.iphone
os_version = <<"">>,%%操作系统版本号,如:2.3.4
device = <<"">>,%%设备名称,如:三星GT-S5830
device_type = 0,%%设备类型,如:0.未知 1.android 2.iPhone 3.iPad
screen = <<"">>,%%屏幕分辨率,如:480*800
mno = 0,%%移动网络运营商(mobile network operators),0.未知 1.中国移动 2.中国电信 3.中国联通
nm = 0 %%联网方式(Networking mode),如:0.未知 1.3G 2.WIFI 3.2G
}).