简介及需求
成就系统是游戏常见的功能模块,主要就是在用户达成某种条件时进行判定记录成就,难点在于嵌入各种各样的其它功能。
数据结构
数据库数据
--保存数据字段
{
"achievement" ,"mediumblob" ,{
achievements = {
},
point = 0,
pointReward = {
},
countdata = {
},
isrecord = {
},
} ,"成就数据" },
--成就类加载数据
function Achievement:onLoad()
self.cache = self.player.cache.achievement
self.cache.countdata = self.cache.countdata or {
}
self.cache.isrecord = self.cache.isrecord or {
}
self.ConfigList = groupby(server.configCenter.AchievementConfig)
end
数据内容
统计类型的数据种类繁多,还在不断更新增加中,其它的不需统计数据发成就id和value值即可
#成就信息
sc_achievement_info 31301 {
request {
achievements 0 : *group_data #成就分组
point 1 : integer #成就点
countdata 2 : valuedata #成就达成值
}
}
# 成就数据
.achievement_data {
id 0 : integer #成就id
time 1 : integer #获得时间
groupID 2 : integer #组id
typeID 3 : integer #子类型id
value 4 : integer #达到数值 --更新成就才有此字段
point 5 : integer #成就点
}
.type_data {
typeid 0: integer
achievedata 1: *achievement_data
}
# 成就类型数据
.group_data {
groupid 0 : integer
typedata 1 : *type_data #组类型数据
}
#更新成就
sc_achievement_update 31302 {
request {
achievementdata 0 : achievement_data
}
}
# 成就统计达成数据
.valuedata {
equip_gem 0 : integer #宝石等级
equip_jinglian 1 : integer #精炼等级
equip_wash 2 : integer #重铸次数
pet_compose 3 : integer #宠物合成次数
partner_unlock 4 : integer #仙君解锁个数
partner_call 5 : integer #仙君召唤次数
sign 6 : integer #累计签到次数
sect 7 : integer #门派技能
union 8 : integer #帮派技能
xiulian_role 9 : integer #角色修炼技能
xiulian_pet 10 : integer #宠物修炼技能
chat_speak 11 : integer #世界聊天次数
money 12 : integer #累计获得银币
fengyao 13 : integer #封妖任务次数
chumo 14 : integer #除魔任务次数
chumo_leader 15 : integer #带队除魔任务次数
yaowang 16 : integer #击杀妖王统计
shengxiao 17 : integer #累计击杀十二生肖
xingguan 18 : integer #累计击杀九曜星官
union_guildcontribute 19 : integer #累计帮派贡献
union_donate 20 : integer #累计上交帮派日志
union_daytask 21 : integer #累计帮派日常
kid_num 22 : integer #拥有子女数量
pet_wash 23 : integer #宠物洗练次数
pet_skill_learn 24 : integer #宠物技能学习次数
pet_catch 25 : integer #捕捉宠物累积次数
partner_call_ten 26 : integer #仙君十连召唤次数
mount_num 27 : integer #激活坐骑数
fashion_dress 28 : integer #同时激活时装数
fashion_headshow 29 : integer #同时激活头像数
fashion_touxiangkuang 30 : integer #同时激活头像框数
fashion_qipao 31 : integer #同时激活气泡数
bianshen_count 32 : integer #使用变身卡次数
union_qiyuan 33 : integer #帮派祈愿次数
pet_skill_special 34 : integer #变异宠物数量
partner_quality4 35 : integer #橙色仙君数量
partner_quality5 36 : integer #红色仙君数量
kid_growup_num 37 : integer #拥有成年子女数量
mount_top_num 38 : integer #拥有9阶坐骑数量
fashion_have 39 : integer #永久装扮数量
industry1 40 : integer #采矿等级
industry2 41 : integer #炼药等级
industry3 42 : integer #钓鱼等级
energyUse1 43 : integer #累计烹饪次数
energyUse2 44 : integer #累计炼药次数
energyUse3 45 : integer #累计附魔次数
worldAnswer_num 46 : integer #累计世界答题次数
friend_num 47 : integer #好友数量
vipCard_count1 48 : integer #累计购买周卡次数
vipCard_count2 49 : integer #累计购买月卡次数
building_level1 50 : integer #房屋等级
building_level2 51 : integer #农田等级
building_level3 52 : integer #牧场等级
building_level4 53 : integer #树圃等级
building_speed 54 : integer #累计使用家园卡次数
house_plant 55 : integer #累计种植农田次数
house_animal 56 : integer #累计牧场养殖次数
house_tree 57 : integer #累计家园祈愿次数
house_environment 58 : integer #家园环境度
active_point_150 59 : integer #每日活跃度达成150点累计
battle_all_shengxiao 60 : integer #累计击败十二生肖种类
battle_id_all_shengxiao 61 : integer #累计击败五星十二生肖
battle_all_xingguan 62 : integer #累计击败星官种类
battle_id_all_xingguan 63 : integer #累计击败五星星官
mission_list 64 : integer #累计完成师门任务
mission_yabiao 65 : integer #累计完成运镖任务
mission_xuncheng 66 : integer #累计完成巡城任务
mission_xianyuan 67 : integer #累计完成仙缘任务
achieve_all_xianyuan 68 : integer #累计完成仙缘种类
baotu_count 69 : integer #累计挖宝次数
baotuxiaoyao_count 70 : integer #累计逍遥宝图挖宝次数
baotu_item_low 71 : integer #累计挖到低阶兽决
baotu_item_high 72 : integer #累计挖到高阶兽决
}
成就设计
成就配置
配置表格:
项目代码对应配置:
local AchievementConfig = {
}
--成就类型
AchievementConfig.Type = {
level = {
groupID=1,typeID=1}, --等级
prop = {
groupID=1,typeID=2}, --属性
equip = {
groupID=1,typeID=3}, --装备
pet = {
groupID=1,typeID=4}, --宠物
partner = {
groupID=1,typeID=5}, --仙君
child = {
groupID=1,typeID=6}, --子女
mount = {
groupID=1,typeID=7}, --坐骑
sign = {
groupID=1,typeID=8}, --累计签到
guanzhi = {
groupID=1,typeID=9}, --官职
skill = {
groupID=2,typeID=1}, --门派技能
guildskill = {
groupID=2,typeID=2}, --帮派技能
xiulian = {
groupID=2,typeID=3}, --修炼技能
fishdrug = {
groupID=2,typeID=4}, --副职业技能
bianshen = {
groupID=2,typeID=6}, --变身
worldchat = {
groupID=3,typeID=1}, --世界聊天
friend