| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package model
- import (
- "rocommon"
- "rocommon/util"
- "roserver/baseserver"
- "runtime/debug"
- "sync"
- )
- var (
- updateList []interface{}
- RoleMag *RoleManager
- ArenaSeasonMag *ArenaSeasonManager
- CompetitionMag *CompetitionSeasonManager
- ActivitiesMag *ActivitiesManager
- RuneShopMag *StRuneShopExploreManager
- CrossMag *CrossManager
- httpParamMutex sync.RWMutex
- HttpNodeParam *baseserver.ServiceParam
- )
- type GameUpdate struct {
- rocommon.UpdateModule //eventqueue.go
- initTime uint64
- }
- //定义初始化模块,比方说角色管理模块,任务模块等,然后通过update来处理定时器相关的处理
- func (this *GameUpdate) Init() {
- this.initTime = util.GetTimeMilliseconds() + 2*1000
- RoleMag = NewRoleManager()
- ArenaSeasonMag = newArenaSeasonManager()
- CompetitionMag = newCompetitionSeasonManager()
- ActivitiesMag = newActivitiesMag()
- RuneShopMag = NewRuneShopExploreManager()
- CrossMag = newCrossMag()
- updateList = append(updateList,
- RoleMag,
- ArenaSeasonMag,
- CompetitionMag,
- ActivitiesMag,
- RuneShopMag,
- CrossMag,
- )
- }
- func (this *GameUpdate) Update(ms uint64) {
- defer func() {
- //打印奔溃信息
- if err := recover(); err != nil {
- util.FatalF("onError data=%v \n%s\n", err, string(debug.Stack()))
- }
- }()
- if ms < this.initTime {
- return
- }
- RoleMag.UpdateWithTimeWheel(ms)
- //对管理器进行更新操作
- for _, data := range updateList {
- data.(rocommon.UpdateLogic).Update(ms)
- }
- }
- func GetHttpNodeParam() baseserver.ServiceParam {
- httpParamMutex.RLock()
- defer httpParamMutex.RUnlock()
- return *HttpNodeParam
- }
- func SetHttpNodeParam(param *baseserver.ServiceParam) {
- httpParamMutex.Lock()
- defer httpParamMutex.Unlock()
- HttpNodeParam = param
- }
|