|
ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
|
排行榜数据库组件 More...
#include <ranklist.h>
Public Member Functions | |
| ranklist () | |
| 构造排行榜数据库组件,初始化默认排行榜类型 | |
| void | related_actorid () final |
| 关联ActorID,设置组件的ActorID为自动生成的唯一标识 | |
| bool | update_value (pbdb::eranklist atype, rank_item &litem, const pbdb::db_brief &abrief, bool afirstsynchronize) |
| 更新单个排行榜类型的值 | |
| bool | update_value (const pbdb::db_brief &abrief, bool afirstsynchronize) |
| 更新玩家在所有排行榜中的排名 | |
| void | add_data (const pbdb::db_ranklist &aitem) |
| 从数据库记录添加排行榜条目 | |
| virtual void | initdata () |
| 初始化排行榜数据,加载所有排行榜数据到内存 | |
| bool | ranklist_get (i64_actorid aroleid, pbdb::eranklist atype, int32_t apage, pbnet::PROBUFF_NET_RANKLIST_RESPONSE &apro) |
| 分页获取排行榜数据 | |
| void | ranklist_sync (i64_actorid aroleid, pbdb::eranklist atype, int32_t aactivityid, int32_t apage) |
| 同步排行榜数据到客户端 | |
| void | rank_get (int32_t arankid, std::vector< int64_t > &arolerank) |
| 获取排行榜所有角色ID | |
| void | rank_remove (int32_t arankid) |
| 移除排行榜类型 | |
| void | rank_add (int32_t arankid) |
| 添加排行榜类型 | |
排行榜数据库组件
管理排行榜数据的数据库操作,包括排行榜的初始化、更新和查询。 支持多种排行榜类型(等级、金币等),每种类型使用独立的rankset排序。 通过tdb_brief监听玩家数据变化,实时更新排行榜排名。 支持动态添加/删除排行榜类型和分页查询。
| void ngl::ranklist::add_data | ( | const pbdb::db_ranklist & | aitem | ) |
从数据库记录添加排行榜条目
| [in] | aitem | 排行榜数据库记录 |
| void ngl::ranklist::rank_add | ( | int32_t | arankid | ) |
添加排行榜类型
| [in] | arankid | 排行榜类型ID |
| void ngl::ranklist::rank_get | ( | int32_t | arankid, |
| std::vector< int64_t > & | arolerank ) |
获取排行榜所有角色ID
| [in] | arankid | 排行榜类型ID |
| [out] | arolerank | 角色ID列表 |
| void ngl::ranklist::rank_remove | ( | int32_t | arankid | ) |
移除排行榜类型
| [in] | arankid | 排行榜类型ID |
| bool ngl::ranklist::ranklist_get | ( | i64_actorid | aroleid, |
| pbdb::eranklist | atype, | ||
| int32_t | apage, | ||
| pbnet::PROBUFF_NET_RANKLIST_RESPONSE & | apro ) |
分页获取排行榜数据
| [in] | aroleid | 请求者角色ID |
| [in] | atype | 排行榜类型 |
| [in] | apage | 页码 |
| [out] | apro | 排行榜响应protobuf消息 |
| void ngl::ranklist::ranklist_sync | ( | i64_actorid | aroleid, |
| pbdb::eranklist | atype, | ||
| int32_t | aactivityid, | ||
| int32_t | apage ) |
同步排行榜数据到客户端
| [in] | aroleid | 目标玩家角色ID |
| [in] | atype | 排行榜类型 |
| [in] | aactivityid | 活动ID(预留) |
| [in] | apage | 页码 |
| bool ngl::ranklist::update_value | ( | const pbdb::db_brief & | abrief, |
| bool | afirstsynchronize ) |
更新玩家在所有排行榜中的排名
| [in] | abrief | 玩家简要信息 |
| [in] | afirstsynchronize | 是否为首次同步 |
| bool ngl::ranklist::update_value | ( | pbdb::eranklist | atype, |
| rank_item & | litem, | ||
| const pbdb::db_brief & | abrief, | ||
| bool | afirstsynchronize ) |
更新单个排行榜类型的值
| [in] | atype | 排行榜类型 |
| [in,out] | litem | 排行榜条目 |
| [in] | abrief | 玩家简要信息 |
| [in] | afirstsynchronize | 是否为首次同步 |