Project1

标题: 关于游戏数据 任务&成就系统 数据结构的个人方案 [打印本页]

作者: 清澈淌漾    时间: 2022-9-22 20:13
标题: 关于游戏数据 任务&成就系统 数据结构的个人方案
本帖最后由 清澈淌漾 于 2022-9-22 20:53 编辑

定义一张  成就数值表
规定每个数值类型的意义
数值类型1  总获得金钱
数值类型2  出售道具获得金钱
数值类型3  完成任务获得金钱
数值类型4  打怪获得金钱
数值类型5  总消耗金钱
数值类型6  修理装备消耗金钱
数值类型7  击杀史莱姆数量

玩家id  数值类型  值
100        1          1000
100        2          200
100        3          500
100        4          300
100        5          500
100        6          400
100        7          200

////////////////////////////////////////////
表内的数值 只增不减。
根据数值类型 在统一的接口代码中嵌入
获得金钱让 数值类型1增加
失去金钱让 数值类型2增加
/////////////////////////////////////////////  
资源文件                                 记录方式
任务编号                        名称                       成就?    需要类型         数值
     1                  击杀10个史莱姆                        f               7               10
     2                  击杀20个史莱姆                        f               7               10
     3                  击杀30个史莱姆                        f               7               10
     4                  击杀40个史莱姆                        f               7               10
     5                  击杀50个史莱姆                        f               7               50
     6                  累积击杀100个史莱姆                    t               7               100
     7                  累积击杀200个史莱姆                    t               7               200
     8                  累积击杀300个史莱姆                    t               7               300
成就 为F时 表示
玩家在接到任务时  存入 对应的数值值
成就 为T时 表示这个是自动接受自动达成的成就

比如 100号玩家已经击杀200个史莱姆
他领取了 击杀50个史莱姆 的任务
在存档记录中 写入以下一条
玩家编号    任务编号  领取日期  初始值
   100              5           日期        200
/////////////////////////////////////////////
初始值记录了 接受任务时 成就数值写在任务的数据中内
显示给玩家的进度是
当前数值-接受任务时数值/资源文件中的完成数值

----------------------------------------
对于成就   只需记下 是否已经达成。
如果是成就链
任务编号                   名称                    成就?    需要类型      数值   下一个任务
     6                  累积击杀100个史莱姆       t              7               100       7
     7                  累积击杀200个史莱姆       t              7               200       8
     8                  累积击杀300个史莱姆       t              7               300       9
     9                  未开放                             t              99                1        0
已知 【全部的任务编号】  【已达成的任务编号】  
未达成的任务= 【全部的任务编号】 -【已达成的任务编号】
给玩家显示的任务(端点任务)=【全部未达成的任务】-【全部未达成的任务的下一个任务】
为了方便扩展  可以写一个通用的终点任务
/////////////////////////////////////////////





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1