ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::activity Class Reference
Inheritance diagram for ngl::activity:
ngl::activity_drawcompliance ngl::activity_rank

Public Member Functions

 activity (int32_t activityid, int32_t atime, int32_t aduration, activitydb &aactivitydb, activitytimedb &aactivitytimedb)
 活动构造函数(带参数版)
 activity (EActivity atype)
 活动构造函数(类型注册版)
EActivity type ()
int64_t activityid ()
virtual bool is_start ()
int32_t start_utc ()
int32_t finish_utc ()
int32_t day ()
const tab_activitytab ()
bool is_rank ()
virtual void start ()
virtual void init ()
virtual void rolelogin (i64_actorid aroleid)
 玩家登录时的活动处理
void recv_task_response (i64_actorid aroleid, int32_t aindex, bool aisreceive)
virtual void rolelevelchange (i64_actorid aroleid, int32_t abeforelevel, int32_t anowlevel)
 玩家等级变化时的活动处理
virtual void rolegoldchange (i64_actorid aroleid, int32_t abeforegold, int32_t anowgold)
 玩家金币变化时的活动处理
virtual void finish ()

Static Public Member Functions

static std::shared_ptr< activity > make (int32_t aactivityid, int32_t atime, int32_t aduration, activitydb &aactivitydb, activitytimedb &aactivitytimedb)
static void brief_activityvalues (i64_actorid aroleid)
 标记玩家简要数据中的活动值已变更

Protected Attributes

i64_actorid m_actorid = 0
const tab_activitym_tab = nullptr
data_modified< pbdb::db_activity > * m_activity = nullptr
data_modified< pbdb::db_activitytimes > * m_activitytimes = nullptr
activitydbm_activitydb = nullptr
activitytimedbm_activitytimedb = nullptr

Constructor & Destructor Documentation

◆ activity() [1/2]

ngl::activity::activity ( int32_t activityid,
int32_t atime,
int32_t aduration,
activitydb & aactivitydb,
activitytimedb & aactivitytimedb )

活动构造函数(带参数版)

初始化活动实例,加载配置表,创建或查找活动数据库记录和时间记录。

Parameters
[in]activityid活动ID
[in]atime活动开始时间
[in]aduration活动持续时间
[in]aactivitydb活动数据库引用
[in]aactivitytimedb活动时间数据库引用
Exceptions
调用tools::no_core_dump()如果配置表不存在

◆ activity() [2/2]

ngl::activity::activity ( EActivity atype)

活动构造函数(类型注册版)

将活动实例注册到全局活动类型映射表中。

Parameters
[in]atype活动类型枚举值

Member Function Documentation

◆ brief_activityvalues()

void ngl::activity::brief_activityvalues ( i64_actorid aroleid)
static

标记玩家简要数据中的活动值已变更

通知数据库组件活动相关的玩家简要数据需要持久化。

Parameters
[in]aroleid玩家角色ID

◆ finish()

virtual void ngl::activity::finish ( )
inlinevirtual

Reimplemented in ngl::activity_rank.

◆ rolegoldchange()

void ngl::activity::rolegoldchange ( i64_actorid aroleid,
int32_t abeforegold,
int32_t anowgold )
virtual

玩家金币变化时的活动处理

活动期间玩家金币变化时,更新排行榜中的金币增量数据。

Parameters
[in]aroleid玩家角色ID
[in]abeforegold变化前金币数
[in]anowgold变化后金币数

◆ rolelevelchange()

void ngl::activity::rolelevelchange ( i64_actorid aroleid,
int32_t abeforelevel,
int32_t anowlevel )
virtual

玩家等级变化时的活动处理

活动期间玩家等级变化时,更新排行榜中的等级增量数据。

Parameters
[in]aroleid玩家角色ID
[in]abeforelevel变化前等级
[in]anowlevel变化后等级

◆ rolelogin()

void ngl::activity::rolelogin ( i64_actorid aroleid)
virtual

玩家登录时的活动处理

根据当前天数检查活动任务的开启和关闭状态,向玩家发送任务开启/关闭通知。

Parameters
[in]aroleid登录的玩家角色ID

◆ start()

virtual void ngl::activity::start ( )
inlinevirtual

Reimplemented in ngl::activity_rank.


The documentation for this class was generated from the following files: