2026-03-04 15:54:01 +08:00

460 lines
17 KiB
Go

package msg
import (
"rocommon"
"rocommon/util"
"roserver/baseserver/model"
model2 "roserver/game/model"
"roserver/serverproto"
"strconv"
)
func init() {
serverproto.Handle_GAME_SSGameRoleAddItemListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SSGameRoleAddItemListReq)
util.InfoF("receive SSGameRoleAddItemListNtf msg=%v", msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
role = model2.RoleMag.GetRoleFromOffline(msg.Uid)
}
if role != nil {
addItems := make(map[int32]int32, 0)
for _, v := range msg.ItemList {
addItems[v.Key] = v.Value
}
if errCode := role.(*model2.Role).CanAddItemList(addItems); errCode != serverproto.ErrorCode_ERROR_OK {
util.ErrorF("SSGameRoleAddItemListNtf: AddItemList Fail, errCode=%d", errCode)
return
}
role.(*model2.Role).AddItemList(addItems, model2.AddFromType(msg.From), msg.Notify)
newItemList := make([]*serverproto.KeyValueType, 0)
for _, v := range msg.ItemList {
newItemList = append(newItemList, &serverproto.KeyValueType{
Key: v.Key,
Value: int32(role.(*model2.Role).GetResNum(v.Key)),
})
}
ackMsg := &serverproto.SSGameRoleAddItemListAck{
Uid: msg.Uid,
ItemList: newItemList,
}
role.(*model2.Role).SendAllFruit(ackMsg)
}
})
serverproto.Handle_GAME_SSGameRoleDeleteItemListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SSGameRoleDeleteItemListReq)
util.InfoF("receive SSGameRoleDeleteItemListNtf msg=%v", msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
role = model2.RoleMag.GetRoleFromOffline(msg.Uid)
}
if role != nil {
addItems := make(map[int32]int32, 0)
for _, v := range msg.ItemList {
addItems[v.Key] = v.Value
}
role.(*model2.Role).DelItemList(addItems, model2.AddItemST{AddFrom: model2.AddFromType(msg.From), Notify: msg.Notify})
newItemList := make([]*serverproto.KeyValueType, 0)
for _, v := range msg.ItemList {
newItemList = append(newItemList, &serverproto.KeyValueType{
Key: v.Key,
Value: int32(role.(*model2.Role).GetResNum(v.Key)),
})
}
ackMsg := &serverproto.SSGameRoleDeleteItemListAck{
Uid: msg.Uid,
ItemList: newItemList,
}
role.(*model2.Role).SendAllFruit(ackMsg)
}
})
serverproto.Handle_GAME_CSFruitJoinReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSFruitJoinReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSFruitJoinReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
headId := role.(*model2.Role).GetHeadId()
msg.HeadId = strconv.Itoa(int(headId))
msg.Level = role.(*model2.Role).GetRoleLevel()
msg.Nickname = role.(*model2.Role).GetNickName()
msg.ChipNum = int32(role.(*model2.Role).GetRmb())
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCFruitJoinAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitJoinAck)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
util.InfoF("uid=%v receive SCFruitJoinAck msg=%v", role.GetUUid(), msg)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSFruitChatReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSFruitChatReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSFruitJoinReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCFruitChatNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitChatNtf)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSFruitLeaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSFruitLeaveReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSFruitLeaveReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCFruitLeaveAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitLeaveAck)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
util.InfoF("uid=%v receive SCFruitLeaveAck msg=%v", role.GetUUid(), msg)
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSFruitBetReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSFruitBetReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSFruitBetReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCFruitBetAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitBetAck)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
subRmb := int32(role.(*model2.Role).GetRoleBase().GetRmb()) - msg.MyChipNum
//role.(*model2.Role).AddRmb(model2.AddItemST{ItemCount: subRmb}, false)
role.(*model2.Role).DelItem(int32(serverproto.ResType_Res_Rmb), subRmb, model2.AddItemST{AddFrom: model2.AddFrom_Fruit})
}
util.InfoF("uid=%v receive SCFruitBetAck msg=%v", role.GetUUid(), msg)
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitStartBetNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitStartBetNtf)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitSettleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitSettleNtf)
util.InfoF("uid=%v receive SCFruitSettleNtf msg=%v", msg.Uid, msg)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
if msg.AwardChipNum > 0 {
addRmb := msg.AwardChipNum
role.(*model2.Role).AddItem(int32(serverproto.ResType_Res_Rmb), addRmb, model2.AddFrom_Fruit)
rewardPoint := uint32(addRmb / 4)
role.(*model2.Role).GetRoleBattle().AddFruitIncomeRewardPoint(rewardPoint)
msg.AddRewardPoint = rewardPoint
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitSecTickNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitSecTickNtf)
//util.InfoF("uid=%v receive SCFruitSecTickNtf msg=%v", msg.Uid, msg)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitPlayerAwardRankNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitPlayerAwardRankNtf)
util.InfoF("uid=%v receive SCFruitPlayerAwardRankNtf msg=%v", msg.Uid, msg)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
/********************************************** LiveRoom **************************************************/
serverproto.Handle_GAME_CSLiveRoomJoinReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomJoinReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomJoinReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
headId := role.(*model2.Role).GetHeadId()
msg.PlayerInfo = &serverproto.LiveRoomPlayerInfo{
HeadId: strconv.Itoa(int(headId)),
Level: uint32(role.(*model2.Role).GetRoleLevel()),
VipLevel: uint32(role.(*model2.Role).GetVipLevel()),
Nickname: role.(*model2.Role).GetNickName(),
HeadTitle: 1,
Data: "",
}
msg.CoinNum = role.(*model2.Role).GetRmb()
msg.GameChipNum = uint32(role.(*model2.Role).GetResNum(int32(serverproto.ResType_Res_Game_Chip)))
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomJoinAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomJoinAck)
util.InfoF("uid=%v receive SCLiveRoomJoinAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomLeaveReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomLeaveReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomLeaveReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomLeaveAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomLeaveAck)
util.InfoF("uid=%v receive SCLiveRoomLeaveAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomChatReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomChatReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomChatReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomChatNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomChatNtf)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
util.InfoF("uid=%v receive SCLiveRoomChatNtf msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomSendGiftReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomSendGiftReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomSendGiftReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomSendGiftAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomSendGiftAck)
util.InfoF("uid=%v receive SCLiveRoomSendGiftAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomSendGiftNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomSendGiftNtf)
util.InfoF("uid=%v receive SCLiveRoomSendGiftNtf msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomAddHeartReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomAddHeartReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomAddHeartReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomAddHeartAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomAddHeartAck)
util.InfoF("uid=%v receive SCLiveRoomAddHeartAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomGiftRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomGiftRankReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomGiftRankReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomGiftRankAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomGiftRankAck)
util.InfoF("uid=%v receive SCLiveRoomGiftRankAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomGetReadyReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomGetReadyReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomGetReadyReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomGetReadyAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomGetReadyAck)
util.InfoF("uid=%v receive SCLiveRoomGetReadyAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomGetReadyNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomGetReadyNtf)
util.InfoF("uid=%v receive SCLiveRoomGetReadyNtf msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_CSLiveRoomShowSubmitReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSLiveRoomShowSubmitReq)
role := model2.RoleMag.GetRoleOrKick(cliId, ev)
if role == nil {
return
}
util.InfoF("uid=%v receive CSLiveRoomShowSubmitReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCLiveRoomShowSubmitAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomShowSubmitAck)
util.InfoF("uid=%v receive SCLiveRoomShowSubmitAck msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomShowDataNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomShowDataNtf)
util.InfoF("uid=%v receive SCLiveRoomShowDataNtf msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomCMDTalkNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomCMDTalkNtf)
util.InfoF("uid=%v receive SCLiveRoomCMDTalkNtf msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomCMDPlayNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomCMDPlayNtf)
util.InfoF("uid=%v receive SCLiveRoomCMDPlayNtf msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomStageNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomStageNtf)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
util.InfoF("uid=%v receive SCLiveRoomStageNtf msg=%v", msg.Uid, msg)
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCLiveRoomResultNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCLiveRoomResultNtf)
util.InfoF("uid=%v receive SCLiveRoomResultNtf msg=%v", msg.Uid, msg)
role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
if role == nil {
return
}
// 给当前玩家发放奖励
//if msg.RewardList != nil {
// for _, rewards := range msg.RewardList {
// if rewards.Key == role.GetUUid() {
// role.(model2.RoleLogicOuter).AddLiveRoomRewards(rewards.StrVal)
// break
// }
// }
//}
role.ReplayGate(msg, true)
})
}