| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package model
- import (
- "rocommon"
- "rocommon/rpc"
- "rocommon/util"
- "roserver/baseserver/model"
- "roserver/serverproto"
- "runtime/debug"
- )
- var (
- updateList []interface{}
- CompetitionMag *CompetitionManager
- TowerMag *TowerRankManger
- CardCollectMag *CardCollectManager
- ArenaMag *ArenaRankManger
- DaoChang100Mag *DaoChang100Manager
- MapScoreMag *MapScoreManger
- KeepSakeMag *KeepSakeCollectManager
- PetRankMag *PetRankManger
- SkillRankMag *SkillRankManger
- )
- type RankUpdate struct {
- rocommon.UpdateModule //eventqueue.go
- initTime uint64
- }
- func (this *RankUpdate) Init() {
- this.initTime = util.GetTimeMilliseconds() + 2*1000
- CompetitionMag = newCompetitionManager()
- updateList = append(updateList, CompetitionMag)
- TowerMag = newTowerRankManger()
- updateList = append(updateList, TowerMag)
- ArenaMag = newArenaRankManger()
- updateList = append(updateList, ArenaMag)
- CardCollectMag = newCardCollectManager()
- updateList = append(updateList, CardCollectMag)
- DaoChang100Mag = newDaoChang100Manager()
- updateList = append(updateList, DaoChang100Mag)
- MapScoreMag = newMapScoreManger()
- updateList = append(updateList, MapScoreMag)
- KeepSakeMag = newKeepSakeCollectManager()
- updateList = append(updateList, KeepSakeMag)
- PetRankMag = newPetRankManger()
- updateList = append(updateList, PetRankMag)
- SkillRankMag = newSkillRankManger()
- updateList = append(updateList, SkillRankMag)
- }
- func (this *RankUpdate) Update(ms uint64) {
- defer func() {
- //打印奔溃信息
- if err := recover(); err != nil {
- util.InfoF("onError data=%v \n%s\n", err, string(debug.Stack()))
- }
- }()
- if ms < this.initTime {
- return
- }
- //对管理器进行更新操作
- for _, data := range updateList {
- data.(rocommon.UpdateLogic).Update(ms)
- }
- }
- func SendSocial(msg interface{}) bool {
- data, meta, err := rpc.EncodeMessage(msg)
- if err != nil {
- util.InfoF("[SendSocial] EncodeMessage err:%v %v", err, msg)
- return false
- }
- socialNode := model.SelectServiceNode(model.SERVICE_NODE_TYPE_SOCIAL_STR, 0)
- if socialNode == "" {
- util.InfoF("[SendSocial] social node not exist msg:%v", msg)
- return false
- }
- socialSess := model.GetServiceNode(socialNode)
- if socialSess == nil {
- util.ErrorF("[SendSocial] social session not exist:%v", socialSess)
- } else {
- //如果玩家信息存在,ClientId中存放的是玩家ID,否则存放的是玩家的gate sessionId
- socialSess.Send(&serverproto.ServiceTransmitAck{
- MsgId: uint32(meta.ID),
- MsgData: data,
- })
- }
- return true
- }
- func SendToAllGame(msg interface{}) {
- data, info, err := rpc.EncodeMessage(msg)
- if err != nil {
- util.InfoF("[SendGame]EncodeMessage err:%v %v", err, msg)
- return
- }
- sendMsg := &serverproto.ServiceTransmitAck{
- MsgId: uint32(info.ID),
- MsgData: data,
- }
- serviceList := model.GetAllServiceNodeByName(model.SERVICE_NODE_TYPE_GAME_STR)
- if len(serviceList) > 0 {
- for _, node := range serviceList {
- gameSess := model.GetServiceNode(node)
- if gameSess != nil {
- gameSess.Send(sendMsg)
- }
- }
- }
- }
|