成就系统

本文介绍了游戏中的成就系统设计,包括成就的简介和需求、数据结构如数据库数据及其内容,详细阐述了成就的设计和管理过程,如成就配置、成就事件触发、验证统计以及成就达成后的领奖和累计重置机制。难点在于处理多种复合条件的验证判定,涉及游戏的多个功能模块。
摘要由CSDN通过智能技术生成

简介及需求

成就系统是游戏常见的功能模块,主要就是在用户达成某种条件时进行判定记录成就,难点在于嵌入各种各样的其它功能。
在这里插入图片描述

数据结构

数据库数据

--保存数据字段
{
    "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 		 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值