2025-06-08 00:52:17 +08:00
|
|
|
package room
|
|
|
|
|
|
|
|
import (
|
|
|
|
"game/common/proto/pb"
|
|
|
|
"github.com/fox/fox/ipb"
|
|
|
|
)
|
|
|
|
|
2025-06-08 22:51:10 +08:00
|
|
|
func (rm *ColorRoom) checkEnterRoom(user *ColorPlayer, iMsg *ipb.InternalMsg, req *pb.ReqMatchRoom) {
|
2025-06-08 00:52:17 +08:00
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2025-06-08 22:51:10 +08:00
|
|
|
func (rm *ColorRoom) OnEnterRoom(user *ColorPlayer, iMsg *ipb.InternalMsg, req *pb.ReqMatchRoom) {
|
2025-06-08 00:52:17 +08:00
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2025-06-08 22:29:01 +08:00
|
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) ApplyLeave(buffer []byte, user inter.UserInetr) {
|
|
|
|
// _ = buffer
|
|
|
|
// resp := new(pb.ColorPinoyLiveLeaveResp)
|
|
|
|
// u := rm.GetPlayer(user.GetId())
|
|
|
|
// if u == nil {
|
|
|
|
// rm.Table.KickOut(user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// // 有下注时不让玩家离开
|
2025-06-09 23:52:18 +08:00
|
|
|
// if u.totalBet != 0 {
|
2025-06-08 22:29:01 +08:00
|
|
|
// resp.Code = 1
|
|
|
|
// _ = user.SendMsg(int32(pb.ColorPinoyLiveReceiveFromClientMessageType_ColorPinoyLiveApplyLeave), resp)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// rm.KickOutUser(u)
|
|
|
|
// _ = user.SendMsg(int32(pb.ColorPinoyLiveReceiveFromClientMessageType_ColorPinoyLiveApplyLeave), resp)
|
|
|
|
// return
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) checkNoBet() bool {
|
|
|
|
// return rm.GetGameStatus() != pb.ColorPinoyLiveGameStatus_ColorPinoyLiveBetStatus ||
|
|
|
|
// rm.LiveMgr.MaintenanceStatus == 1 ||
|
|
|
|
// rm.LiveMgr.DiscardRestting
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) Bet(buffer []byte, user inter.UserInetr) {
|
|
|
|
// u := rm.getUser(user)
|
|
|
|
// u.MutexBet.Lock()
|
|
|
|
// defer u.MutexBet.Unlock()
|
|
|
|
// if rm.checkNoBet() {
|
|
|
|
// log.Error(rm.Log("game bet status err:%v", rm.GetGameStatus()))
|
|
|
|
// model.SendBetFailMessageInetr(model.StatusError, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// // 用户下注
|
|
|
|
// BetPb := &pb.ColorPinoyLiveBetReqs{}
|
|
|
|
// err := proto.Unmarshal(buffer, BetPb)
|
|
|
|
// if err != nil {
|
|
|
|
// log.Error(rm.Log("proto.Unmarshal err:%v", err))
|
|
|
|
// model.SendBetFailMessageInetr(model.DataErr, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// log.Debug(rm.Log("Bet pb = ", BetPb))
|
|
|
|
// var bets []*pb.ColorPinoyLiveBetReq
|
|
|
|
//
|
|
|
|
// for _, bet := range BetPb.Info {
|
|
|
|
// req := &pb.ColorPinoyLiveBetReq{
|
|
|
|
// BetType: bet.BetType,
|
|
|
|
// BetLevel: bet.BetLevel,
|
|
|
|
// BetIndex: bet.BetIndex,
|
|
|
|
// BetAmount: bet.BetAmount,
|
|
|
|
// }
|
|
|
|
// bets = append(bets, req)
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // log.Debug("Bet bets =", bets)
|
|
|
|
// rm.CheckAndBet(u, bets)
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) UserSitDown(buffer []byte, user inter.UserInetr) {
|
|
|
|
// us := &pb.ColorPinoyLiveUserSitDown{}
|
|
|
|
// _ = proto.Unmarshal(buffer, us)
|
|
|
|
// // u, ok := rm.AllUserList[user.GetId()]
|
|
|
|
// u := rm.GetPlayer(user.GetId())
|
|
|
|
// if u != nil {
|
|
|
|
// if rm.SceneInfo.SitScene(u, int(us.ChairNo)) {
|
|
|
|
// u.SceneChairId = int(us.ChairNo)
|
|
|
|
// rm.Traverse(func(v *model.User) bool {
|
|
|
|
// // rm.SendSceneMsg(v)
|
|
|
|
// return true
|
|
|
|
// })
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) SendUserListInfo(user inter.UserInetr) {
|
|
|
|
// msg := new(pb.ColorPinoyLiveUserList)
|
|
|
|
// for _, u := range rm.OnlineUserList {
|
|
|
|
// userinfo := new(pb.ColorPinoyLiveUserInfo)
|
|
|
|
// userinfo.NikeName = u.UserInetr.GetNike()
|
|
|
|
// userinfo.UserGlod = u.Balance
|
|
|
|
// userinfo.Head = u.UserInetr.GetHead()
|
|
|
|
// userinfo.UserID = u.UserID
|
|
|
|
// msg.UserList = append(msg.UserList, userinfo)
|
|
|
|
// }
|
|
|
|
// // log.Debug("SendUserListInfo", msg)
|
|
|
|
// _ = user.SendMsg(int32(pb.ColorPinoyLiveReceiveFromClientMessageType_ColorPinoyLiveApplyGetUserListInfo), msg)
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) SendTrend(u inter.UserInetr) {
|
|
|
|
// // log.Debug("发送走势图")
|
|
|
|
// msg := new(pb.ColorPinoyLiveTrend)
|
|
|
|
// msg.ListTrendGroup = rm.GameTrend.ListTrendGroup
|
|
|
|
// msg.LuckStarRate = rm.GetGameTrend()
|
|
|
|
// _ = u.SendMsg(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticeGameTrendInfo), msg)
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) OnUserStanUp(user *model.User) {
|
|
|
|
// rm.SceneInfo.UserStandUp(user.UserInetr)
|
|
|
|
// user.Mn.Lock()
|
|
|
|
// user.SceneChairId = 0
|
|
|
|
// user.Mn.Unlock()
|
|
|
|
// if rm.GetGameStatus() < pb.ColorPinoyLiveGameStatus_ColorPinoyLiveOpenThreeDice {
|
|
|
|
// rm.SelectUserListBalanceTopSitDownChair()
|
|
|
|
// } else {
|
|
|
|
// // rm.Traverse(func(v *model.User) bool {
|
|
|
|
// // rm.SendSceneMsg(v)
|
|
|
|
// // return true
|
|
|
|
// // })
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) AgainBet(user inter.UserInetr) {
|
|
|
|
// u := rm.getUser(user)
|
|
|
|
// u.MutexBet.Lock()
|
|
|
|
// defer u.MutexBet.Unlock()
|
|
|
|
// if rm.checkNoBet() {
|
|
|
|
// log.Error(rm.Log("game bet status err ", rm.GetGameStatus()))
|
|
|
|
// model.SendBetFailMessageInetr(model.StatusError, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// // u := rm.getUser(user)
|
|
|
|
// var bets []*pb.ColorPinoyLiveBetReq
|
|
|
|
// if u.TempLastTimeBet != nil {
|
|
|
|
// for _, bet := range u.TempLastTimeBet {
|
|
|
|
// bets = append(bets, bet...)
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// rm.CheckAndBet(u, bets)
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) BetDouble(user inter.UserInetr) {
|
|
|
|
// u := rm.getUser(user)
|
|
|
|
// u.MutexBet.Lock()
|
|
|
|
// defer u.MutexBet.Unlock()
|
|
|
|
// if rm.checkNoBet() {
|
|
|
|
// log.Error(rm.Log("game bet status err ", rm.GetGameStatus()))
|
|
|
|
// model.SendBetFailMessageInetr(model.StatusError, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// // u := rm.getUser(user)
|
|
|
|
// var bets []*pb.ColorPinoyLiveBetReq
|
|
|
|
// if u.LastTimeBet != nil {
|
|
|
|
// for _, bet := range u.LastTimeBet {
|
|
|
|
// bets = append(bets, bet...)
|
|
|
|
// }
|
|
|
|
// // log.Debug("BetDouble 上次下注:", u.LastTimeBet, "bets:", bets)
|
|
|
|
// }
|
|
|
|
// if len(bets) > 1000 {
|
|
|
|
// log.Error(rm.Log("game bet status err ", rm.GetGameStatus()))
|
|
|
|
// model.SendBetFailMessageInetr(12, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// rm.CheckAndBet(u, bets)
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//func (rm *ColorRoom) OnUndoBet(buffer []byte, user inter.UserInetr) {
|
|
|
|
// u := rm.getUser(user)
|
|
|
|
// u.MutexBet.Lock()
|
|
|
|
// defer u.MutexBet.Unlock()
|
|
|
|
// if rm.checkNoBet() {
|
|
|
|
// log.Error(rm.Log("game bet status err:%v", rm.GetGameStatus()))
|
|
|
|
// model.SendBetFailMessageInetr(model.StatusError, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// reqInfo := &pb.ColorPinoyLiveC2SUndoBet{}
|
|
|
|
// err := proto.Unmarshal(buffer, reqInfo)
|
|
|
|
// if err != nil {
|
|
|
|
// log.Error(rm.Log("proto.Unmarshal err:%v", err))
|
|
|
|
// model.SendBetFailMessageInetr(model.DataErr, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// rm.UndoBet(u, reqInfo.UndoType)
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//// ApplyUseProps todo
|
|
|
|
//func (rm *ColorRoom) ApplyUseProps(buffer []byte, userInter inter.UserInetr) {
|
|
|
|
// applyInfo := new(pb.ColorPinoyLiveApplyPropsReq)
|
|
|
|
// err := proto.Unmarshal(buffer, applyInfo)
|
|
|
|
// user := rm.getUser(userInter)
|
|
|
|
// if err != nil {
|
|
|
|
// log.Error(rm.Log("proto.Unmarshal err:%v", err))
|
|
|
|
// model.SendBetFailMessage(model.DataErr, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// AcceptUser := rm.GetPlayer(applyInfo.AcceptUserId)
|
|
|
|
// if AcceptUser == nil {
|
|
|
|
// log.Error(rm.Log("AcceptUser is null"))
|
|
|
|
// model.SendBetFailMessage(model.UserNull, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// _, err = user.GetPropsReal(rm.RoomCfg.Prop, rm.Table, rm.RoomCfg)
|
|
|
|
// if err != nil {
|
|
|
|
// log.Error(rm.Log("GetPropsReal err", err))
|
|
|
|
// model.SendBetFailMessage(model.ScoreLess, user)
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// leftCoins := user.Balance
|
|
|
|
// propsResp := &pb.ColorPinoyLivePlayerPropsResp{
|
|
|
|
// ApplyUserId: user.UserID,
|
|
|
|
// AcceptUserId: AcceptUser.UserID,
|
|
|
|
// PropsId: applyInfo.PropsId,
|
|
|
|
// Chips: leftCoins,
|
|
|
|
// }
|
|
|
|
// rm.Table.Broadcast(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticePlayerUseProps), propsResp)
|
|
|
|
//}
|