99 lines
4.1 KiB
Go
99 lines
4.1 KiB
Go
package main
|
|
|
|
import (
|
|
"mongo.games.com/goserver/core"
|
|
"mongo.games.com/goserver/core/basic"
|
|
|
|
"mongo.games.com/game/common"
|
|
"mongo.games.com/game/model"
|
|
"mongo.games.com/game/mq"
|
|
)
|
|
|
|
func init() {
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.LoginLogCollName, Data: &model.LoginLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBGiveLog, Data: &model.CoinGiveLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.CoinLogCollName, Data: &model.CoinLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.ItemLogCollName, Data: &model.ItemLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.WelfareLogCollName, Data: &model.WelfareLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.OnlineLogCollName, Data: &model.OnlineLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankSeason, Data: &model.PlayerRankScore{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankPlayerCoin, Data: &model.RankPlayerCoin{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackBankrupt, Data: &model.BankruptLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackReliefund, Data: &model.ReliefFundLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBInvite, Data: &model.EvtInviteMsg{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankPlayerLevel, Data: &model.PlayerLevelInfo{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankPlayerPermit, Data: &model.PermitScore{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitCycle, Data: &model.BackendPermitCycle{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitRank, Data: &model.BackendPermitRank{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitExchange, Data: &model.BackendPermitExchange{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitJoin, Data: &model.BackendPermitJoin{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitTask, Data: &model.BackendPermitTask{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackClientLog, Data: &model.ClientLogMysql{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemJyb, Data: &model.JybLog{}})
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBVipGiftLog, Data: &model.DbVip{}})
|
|
}
|
|
|
|
func init() {
|
|
// 金币对账
|
|
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
|
Name: mq.WorldLogCoinAck,
|
|
Data: &model.CoinLog{},
|
|
Handler: func(data interface{}) (err error) {
|
|
log, ok := data.(*model.CoinLog)
|
|
if !ok || log == nil {
|
|
return
|
|
}
|
|
//通知主线程执行后续操作
|
|
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
|
player := PlayerMgrSington.GetPlayerBySnId(log.SnId)
|
|
if player != nil {
|
|
player.Coin += log.RestCount
|
|
player.SyncGameCoin(int(log.RoomId), log.SeqNo)
|
|
}
|
|
return nil
|
|
}), true)
|
|
return
|
|
},
|
|
})
|
|
|
|
// 邀请数据同步
|
|
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
|
Name: mq.WorldInviteAck,
|
|
Data: &model.EvtInviteAckMsg{},
|
|
Handler: func(data interface{}) (err error) {
|
|
log, ok := data.(*model.EvtInviteAckMsg)
|
|
if !ok || log == nil {
|
|
return
|
|
}
|
|
|
|
//通知主线程执行后续操作
|
|
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
|
player := PlayerMgrSington.GetPlayerBySnId(log.Snid)
|
|
if player != nil {
|
|
// 邀请数量
|
|
player.INum = log.Num
|
|
player.ResetTaskN(common.TaskTypeInviteNum)
|
|
TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: player.SnId, Num: player.INum})
|
|
|
|
// 邀请积分
|
|
player.IScore = log.Score
|
|
player.ResetTaskN(common.TaskTypeInviteScore)
|
|
TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{
|
|
SnId: player.SnId,
|
|
Num: log.Score,
|
|
})
|
|
// 充值金额
|
|
player.IMoney = log.Money
|
|
player.ResetTaskN(common.TaskTypeInviteRecharge)
|
|
TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{
|
|
SnId: player.SnId,
|
|
Num: log.Money,
|
|
})
|
|
}
|
|
return nil
|
|
}), true)
|
|
return
|
|
},
|
|
})
|
|
}
|