109 lines
3.7 KiB
Go
109 lines
3.7 KiB
Go
package msg
|
|
|
|
import (
|
|
"log"
|
|
"rocommon"
|
|
"rocommon/util"
|
|
"roserver/baseserver/model"
|
|
model2 "roserver/fruit/model"
|
|
"roserver/serverproto"
|
|
)
|
|
|
|
func init() {
|
|
log.Println("fruit msg init ..")
|
|
serverproto.Handle_FRUIT_SSPlayerOnlineNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
|
|
msg := ev.Msg().(*serverproto.SSPlayerOnlineNtf)
|
|
util.InfoF("receive SSPlayerOnlineNtf msg:%v", msg)
|
|
model2.FruitMgr.AddPlayer(msg.BriefInfo.Uid, msg.BriefInfo.NickName)
|
|
})
|
|
|
|
serverproto.Handle_FRUIT_SSPlayerOfflineNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
|
|
msg := ev.Msg().(*serverproto.SSPlayerOfflineNtf)
|
|
util.InfoF("receive SSPlayerOfflineNtf msg:%v", msg)
|
|
model2.FruitMgr.Room.Leave(msg.Uid)
|
|
model2.FruitMgr.RemovePlayer(msg.Uid)
|
|
})
|
|
|
|
serverproto.Handle_FRUIT_CSFruitJoinReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
|
|
msg := ev.Msg().(*serverproto.CSFruitJoinReq)
|
|
util.InfoF("receive CSFruitJoinReq msg:%v", msg)
|
|
model2.FruitMgr.Room.Join(msg.Uid)
|
|
player := model2.FruitMgr.GetPlayer(msg.Uid)
|
|
player.ChipNum = 10000
|
|
totalBetInfo := make([]*serverproto.FruitSlotInfo, 0)
|
|
for slot := 1; slot <= 8; slot++ {
|
|
betNum := model2.FruitMgr.Room.TotalBetInfo[int32(slot)]
|
|
totalBetInfo = append(totalBetInfo, &serverproto.FruitSlotInfo{
|
|
Slot: int32(slot),
|
|
Num: betNum,
|
|
})
|
|
}
|
|
myBetInfo := make([]*serverproto.FruitSlotInfo, 0)
|
|
for slot := 1; slot <= 8; slot++ {
|
|
betNum := player.CurrBetInfo[int32(slot)]
|
|
myBetInfo = append(myBetInfo, &serverproto.FruitSlotInfo{
|
|
Slot: int32(slot),
|
|
Num: betNum,
|
|
})
|
|
}
|
|
ackMsg := &serverproto.SCFruitJoinAck{
|
|
Uid: msg.Uid,
|
|
Error: 0,
|
|
Stage: model2.FruitMgr.Room.Stage,
|
|
Sec: model2.FruitMgr.Room.Sec,
|
|
MyChipNum: player.ChipNum,
|
|
PoolChipNum: model2.FruitMgr.Room.PoolChipNum,
|
|
TotalBetInfo: totalBetInfo,
|
|
MyBetInfo: myBetInfo,
|
|
SettleHistory: model2.FruitMgr.Room.SettleHistory,
|
|
CurrAwardSlots: model2.FruitMgr.Room.CurrAwardSlots,
|
|
CurrTargetSlot: model2.FruitMgr.Room.CurrTargetSlot,
|
|
PlayerAwardRank: model2.FruitMgr.Room.CurrPlayerAwardRank,
|
|
}
|
|
model.ServiceReplay(ev, ackMsg)
|
|
})
|
|
|
|
serverproto.Handle_FRUIT_CSFruitLeaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
|
|
msg := ev.Msg().(*serverproto.CSFruitLeaveReq)
|
|
util.InfoF("receive CSFruitLeaveReq msg:%v", msg)
|
|
model2.FruitMgr.Room.Leave(msg.Uid)
|
|
ackMsg := &serverproto.SCFruitLeaveAck{
|
|
Uid: msg.Uid,
|
|
Error: 0,
|
|
}
|
|
model.ServiceReplay(ev, ackMsg)
|
|
})
|
|
|
|
serverproto.Handle_FRUIT_CSFruitBetReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
|
|
msg := ev.Msg().(*serverproto.CSFruitBetReq)
|
|
util.InfoF("receive CSFruitBetReq msg:%v", msg)
|
|
uid := msg.Uid
|
|
errCode := model2.FruitMgr.Room.Bet(msg.Uid, msg.GetBetInfo())
|
|
player := model2.FruitMgr.GetPlayer(uid)
|
|
totalBetInfo := make([]*serverproto.FruitSlotInfo, 0)
|
|
myBetInfo := make([]*serverproto.FruitSlotInfo, 0)
|
|
var i int32
|
|
for i = 1; i <= 8; i++ {
|
|
slotTotalBetNum := model2.FruitMgr.Room.TotalBetInfo[i]
|
|
myBetNum := player.CurrBetInfo[i]
|
|
totalBetInfo = append(totalBetInfo, &serverproto.FruitSlotInfo{
|
|
Slot: i,
|
|
Num: slotTotalBetNum,
|
|
})
|
|
myBetInfo = append(myBetInfo, &serverproto.FruitSlotInfo{
|
|
Slot: i,
|
|
Num: myBetNum,
|
|
})
|
|
}
|
|
ackMsg := &serverproto.SCFruitBetAck{
|
|
Uid: msg.Uid,
|
|
Error: int32(errCode),
|
|
MyChipNum: player.ChipNum,
|
|
PoolChipNum: uint32(model2.FruitMgr.Room.PoolChipNum),
|
|
TotalBetInfo: totalBetInfo,
|
|
MyBetInfo: myBetInfo,
|
|
}
|
|
model.ServiceReplay(ev, ackMsg)
|
|
})
|
|
}
|