From 636082a69b7dd0d3f77b6697d8dd904c4b71486c Mon Sep 17 00:00:00 2001 From: tomas Date: Mon, 4 Nov 2024 09:39:35 +0800 Subject: [PATCH 1/2] surewin --- gamesrv/fortunedragon/scenepolicy_fortunedragon.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gamesrv/fortunedragon/scenepolicy_fortunedragon.go b/gamesrv/fortunedragon/scenepolicy_fortunedragon.go index 1877f77..aec819f 100644 --- a/gamesrv/fortunedragon/scenepolicy_fortunedragon.go +++ b/gamesrv/fortunedragon/scenepolicy_fortunedragon.go @@ -408,9 +408,13 @@ func (this *SceneStateStartFortuneDragon) OnPlayerOp(s *base.Scene, p *base.Play if err == nil { data = assemble.DataToCli(Response).(assemble.GameEnd) if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + var realBet = data.TotalBet + if playerEx.BetMode == 1 { + realBet *= 5 + } //第一次触发或者正常模式 - playerEx.AddCoin(int64(-data.TotalBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) - playerEx.totalBet = int64(data.TotalBet) + playerEx.AddCoin(int64(-realBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) + playerEx.totalBet = int64(realBet) } var taxCoin float64 if data.RoundReward > 0 { From 5e8572632a0e2423ff57c89cdbc92c903f75bc5b Mon Sep 17 00:00:00 2001 From: tomas Date: Mon, 4 Nov 2024 10:31:45 +0800 Subject: [PATCH 2/2] add proto --- gamerule/fortuneox/constants.go | 22 + gamesrv/fortuneox/action_fortuneox.go | 47 + gamesrv/fortuneox/playerdata_fortuneox.go | 51 ++ gamesrv/fortuneox/scenedata_fortuneox.go | 45 + gamesrv/fortuneox/scenepolicy_fortuneox.go | 571 +++++++++++++ .../scenepolicy_fortunerabbit.go | 6 - protocol/doc.md | 12 + protocol/fortunemouse/fortunemouse.pb.go | 802 ++++++++++++++++++ protocol/fortunemouse/fortunemouse.proto | 68 ++ protocol/fortuneox/fortuneox.pb.go | 797 +++++++++++++++++ protocol/fortuneox/fortuneox.proto | 68 ++ protocol/fortunetiger/fortunetiger.pb.go | 802 ++++++++++++++++++ protocol/fortunetiger/fortunetiger.proto | 68 ++ 13 files changed, 3353 insertions(+), 6 deletions(-) create mode 100644 gamerule/fortuneox/constants.go create mode 100644 gamesrv/fortuneox/action_fortuneox.go create mode 100644 gamesrv/fortuneox/playerdata_fortuneox.go create mode 100644 gamesrv/fortuneox/scenedata_fortuneox.go create mode 100644 gamesrv/fortuneox/scenepolicy_fortuneox.go create mode 100644 protocol/fortunemouse/fortunemouse.pb.go create mode 100644 protocol/fortunemouse/fortunemouse.proto create mode 100644 protocol/fortuneox/fortuneox.pb.go create mode 100644 protocol/fortuneox/fortuneox.proto create mode 100644 protocol/fortunetiger/fortunetiger.pb.go create mode 100644 protocol/fortunetiger/fortunetiger.proto diff --git a/gamerule/fortuneox/constants.go b/gamerule/fortuneox/constants.go new file mode 100644 index 0000000..4d09722 --- /dev/null +++ b/gamerule/fortuneox/constants.go @@ -0,0 +1,22 @@ +package fortuneox + +// 房间类型 +const ( + RoomMode_Classic int = iota //经典 + RoomMode_Max +) + +// 场景状态 +const ( + FortuneOxStateStart int = iota //默认状态 + FortuneOxStateMax +) + +// 玩家操作 +const ( + FortuneOxPlayerOpStart int = iota + FortuneOxPlayerOpSwitch +) +const NowByte int64 = 10000 + +const GameDataKey = "FortuneData" diff --git a/gamesrv/fortuneox/action_fortuneox.go b/gamesrv/fortuneox/action_fortuneox.go new file mode 100644 index 0000000..ffc6d66 --- /dev/null +++ b/gamesrv/fortuneox/action_fortuneox.go @@ -0,0 +1,47 @@ +package fortuneox + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/fortuneox" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +type CSFortuneOxOpPacketFactory struct { +} +type CSFortuneOxOpHandler struct { +} + +func (this *CSFortuneOxOpPacketFactory) CreatePacket() interface{} { + pack := &fortuneox.CSFortuneOxOp{} + return pack +} + +func (this *CSFortuneOxOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if op, ok := data.(*fortuneox.CSFortuneOxOp); ok { + p := base.PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSFortuneOxOpHandler p == nil") + return nil + } + scene := p.GetScene() + if scene == nil { + logger.Logger.Warn("CSFortuneOxOpHandler p.scene == nil") + return nil + } + if !scene.HasPlayer(p) { + return nil + } + if scene.GetScenePolicy() != nil { + scene.GetScenePolicy().OnPlayerOp(scene, p, int(op.GetOpCode()), op.GetParams()) + } + return nil + } + return nil +} +func init() { + //fortunerabbit + common.RegisterHandler(int(fortuneox.FortuneOxPID_PACKET_FORTUNEOX_CSFORTUNEOXOP), &CSFortuneOxOpHandler{}) + netlib.RegisterFactory(int(fortuneox.FortuneOxPID_PACKET_FORTUNEOX_CSFORTUNEOXOP), &CSFortuneOxOpPacketFactory{}) +} diff --git a/gamesrv/fortuneox/playerdata_fortuneox.go b/gamesrv/fortuneox/playerdata_fortuneox.go new file mode 100644 index 0000000..b050466 --- /dev/null +++ b/gamesrv/fortuneox/playerdata_fortuneox.go @@ -0,0 +1,51 @@ +package fortuneox + +import ( + "mongo.games.com/game/gamerule/fortuneox" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/slots" +) + +type FortuneOxPlayerData struct { + *base.Player + leaveTime int32 //离开时间 + SlotsSession *base.SlotsSession + + BetSizeIndex int64 `json:"bsi"` //选中的单注下标 + BetLevelIndex int64 `json:"bli"` //选中的等级下标 + BetLineIndex int64 `json:"bii"` //选中的线数下标 + BetMode int64 `json:"bm,optional"` //0.常规 1.必中 + + taxCoin int64 + winCoin int64 + currentLogId string + totalBet int64 + + isRespin bool //只用于判断是否可以离开 +} + +type SpinLock struct { + ReSpinStatus int `json:"rs,omitempty"` //0.默认 1.第一次触发 2.进行中 3.结束 + //OXSpecial + NewSuperStack []int64 `json:"nss,omitempty"` +} + +func (p *FortuneOxPlayerData) init() { + p.SlotsSession = base.NewSession(uint64(p.SnId), p.Coin*fortuneox.NowByte) +} +func (p *FortuneOxPlayerData) Clear() { + p.taxCoin = 0 + p.winCoin = 0 + p.currentLogId = "" +} + +// 需要带到world上进行数据处理 +func (p *FortuneOxPlayerData) PushPlayer() map[string]string { + cache := slots.SlotsMgrSington.PushPlayer(p.SlotsSession) + return cache +} + +// 进房的时候需要带进来 +func (p *FortuneOxPlayerData) PullPlayer(data map[string]string) { + slots.SlotsMgrSington.PullPlayer(p.SlotsSession, data) +} diff --git a/gamesrv/fortuneox/scenedata_fortuneox.go b/gamesrv/fortuneox/scenedata_fortuneox.go new file mode 100644 index 0000000..94e2911 --- /dev/null +++ b/gamesrv/fortuneox/scenedata_fortuneox.go @@ -0,0 +1,45 @@ +package fortuneox + +import ( + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" +) + +type FortuneOxSceneData struct { + *base.Scene //场景 + players map[int32]*FortuneOxPlayerData //玩家信息 + BetConfig *assemble.BetConfig +} + +func NewFortuneOxSceneData(s *base.Scene) *FortuneOxSceneData { + sceneEx := &FortuneOxSceneData{ + Scene: s, + players: make(map[int32]*FortuneOxPlayerData), + } + sceneEx.Init() + return sceneEx +} +func (s *FortuneOxSceneData) Init() { + +} + +func (s *FortuneOxSceneData) Clear() { + //应该是水池变一次就判断修改一次 + //s.slotRateWeight = s.slotRateWeightTotal[0] +} +func (s *FortuneOxSceneData) SceneDestroy(force bool) { + //销毁房间 + s.Scene.Destroy(force) +} + +func (s *FortuneOxSceneData) delPlayer(SnId int32) { + if _, exist := s.players[SnId]; exist { + delete(s.players, SnId) + } +} +func (s *FortuneOxSceneData) OnPlayerLeave(p *base.Player, reason int) { + if /*playerEx*/ _, ok := p.ExtraData.(*FortuneOxPlayerData); ok { + + } + s.delPlayer(p.SnId) +} diff --git a/gamesrv/fortuneox/scenepolicy_fortuneox.go b/gamesrv/fortuneox/scenepolicy_fortuneox.go new file mode 100644 index 0000000..a73b222 --- /dev/null +++ b/gamesrv/fortuneox/scenepolicy_fortuneox.go @@ -0,0 +1,571 @@ +package fortuneox + +import ( + "encoding/json" + "mongo.games.com/game/common" + "mongo.games.com/game/gamerule/fortuneox" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" + "mongo.games.com/game/gamesrv/slotspkg/slots" + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + protocol "mongo.games.com/game/protocol/fortuneox" + "mongo.games.com/game/protocol/server" + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "time" +) + +// //////////////////////////////////////////////////////////// +var ScenePolicyFortuneOxSington = &ScenePolicyFortuneOx{} + +type ScenePolicyFortuneOx struct { + base.BaseScenePolicy + states [fortuneox.FortuneOxStateMax]base.SceneState +} + +// 创建场景扩展数据 +func (this *ScenePolicyFortuneOx) CreateSceneExData(s *base.Scene) interface{} { + sceneEx := NewFortuneOxSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + } + } + return sceneEx +} + +// 创建玩家扩展数据 +func (this *ScenePolicyFortuneOx) CreatePlayerExData(s *base.Scene, p *base.Player) interface{} { + playerEx := &FortuneOxPlayerData{Player: p} + p.SetExtraData(playerEx) + return playerEx +} + +// 场景开启事件 +func (this *ScenePolicyFortuneOx) OnStart(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnStart, sceneId=", s.GetSceneId()) + sceneEx := NewFortuneOxSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + s.ChangeSceneState(fortuneox.FortuneOxStateStart) + } + } +} + +// 场景关闭事件 +func (this *ScenePolicyFortuneOx) OnStop(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnStop , sceneId=", s.GetSceneId()) +} + +// 场景心跳事件 +func (this *ScenePolicyFortuneOx) OnTick(s *base.Scene) { + if s == nil { + return + } + if s.GetSceneState() != nil { + s.GetSceneState().OnTick(s) + } +} + +// 玩家进入事件 +func (this *ScenePolicyFortuneOx) OnPlayerEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + playerEx := &FortuneOxPlayerData{Player: p} + + playerEx.init() + + d := p.GameData[fortuneox.GameDataKey] + if d != nil { + m := make(map[string]string) + json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } else { + m := make(map[string]string) + //json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } + + playerEx.SlotsSession.SetCoin(playerEx.Coin * fortuneox.NowByte) + + playerEx.Clear() + + sceneEx.players[p.SnId] = playerEx + + p.SetExtraData(playerEx) + FortuneOxSendRoomInfo(s, sceneEx, playerEx) + + s.FirePlayerEvent(p, base.PlayerEventEnter, nil) + } +} + +// 玩家离开事件 +func (this *ScenePolicyFortuneOx) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + if playerEx, ok := p.ExtraData.(*FortuneOxPlayerData); ok { + m := playerEx.PushPlayer() + if m != nil && len(m) > 0 { + b, err := json.Marshal(m) + if err != nil { + logger.Logger.Error("OnPlayerLeave, json.Marshal error:", err) + } else { + p.GameData[fortuneox.GameDataKey] = &model.PlayerGameData{ + Platform: p.Platform, + SnId: p.SnId, + Id: fortuneox.GameDataKey, + Data: b, + } + } + } + } + if sceneEx, ok := s.ExtraData.(*FortuneOxSceneData); ok { + s.FirePlayerEvent(p, base.PlayerEventLeave, nil) + sceneEx.OnPlayerLeave(p, reason) + } +} + +// 玩家掉线 +func (this *ScenePolicyFortuneOx) OnPlayerDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.PlayerEventDropLine, nil) +} + +// 玩家重连 +func (this *ScenePolicyFortuneOx) OnPlayerRehold(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + if playerEx, ok := p.GetExtraData().(*FortuneOxPlayerData); ok { + FortuneOxSendRoomInfo(s, sceneEx, playerEx) + } + } +} + +// 返回房间 +func (this *ScenePolicyFortuneOx) OnPlayerReturn(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerReturn, GetSceneId()=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + if playerEx, ok := p.GetExtraData().(*FortuneOxPlayerData); ok { + //if p.IsMarkFlag(base.PlayerState_Auto) { + // p.UnmarkFlag(base.PlayerState_Auto) + // p.SyncFlag() + //} + //发送房间信息给自己 + FortuneOxSendRoomInfo(s, sceneEx, playerEx) + s.FirePlayerEvent(p, base.PlayerEventReturn, nil) + } + } +} + +func FortuneOxSendRoomInfo(s *base.Scene, sceneEx *FortuneOxSceneData, playerEx *FortuneOxPlayerData) { + pack := FortuneOxCreateRoomInfoPacket(s, sceneEx, playerEx) + logger.Logger.Trace("RoomInfo: ", pack) + playerEx.SendToClient(int(protocol.FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO), pack) +} +func FortuneOxCreateRoomInfoPacket(s *base.Scene, sceneEx *FortuneOxSceneData, playerEx *FortuneOxPlayerData) interface{} { + //房间信息 + pack := &protocol.SCFortuneOxRoomInfo{ + RoomId: s.SceneId, + GameId: s.GameId, + RoomMode: s.SceneMode, + SceneType: s.GetSceneType(), + Params: common.CopySliceInt64ToInt32(s.Params), + NumOfGames: proto.Int(sceneEx.NumOfGames), + State: proto.Int(s.SceneState.GetState()), + ParamsEx: s.GetDBGameFree().OtherIntParams, + GameFreeId: proto.Int32(s.GetDBGameFree().Id), + //BetLimit: s.GetDBGameFree().BetLimit, + } + + //自己的信息 + if playerEx != nil { + pd := &protocol.FortuneOxPlayerData{ + SnId: proto.Int32(playerEx.SnId), + Name: proto.String(playerEx.Name), + Head: proto.Int32(playerEx.Head), + Sex: proto.Int32(playerEx.Sex), + Coin: proto.Int64(playerEx.Coin), + Pos: proto.Int(playerEx.Pos), + Flag: proto.Int(playerEx.GetFlag()), + City: proto.String(playerEx.City), + HeadOutLine: proto.Int32(playerEx.HeadOutLine), + VIP: proto.Int32(playerEx.VIP), + } + pack.Player = pd + } + + //get data + Response, err := slots.SlotsMgrSington.Enter(playerEx.SlotsSession, int64(s.GameId)) + if err == nil { + data := assemble.DataToCli(Response).(assemble.TableInfo) + pi, _ := json.Marshal(data) + pack.PlayerInfo = string(pi) + if sceneEx.BetConfig == nil { + sceneEx.BetConfig = &data.BetConfig + } + } else { + logger.Logger.Error("slots enter err:", err) + } + proto.SetDefaults(pack) + return pack +} +func (this *ScenePolicyFortuneOx) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + if s == nil || p == nil { + return false + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + if s.GetSceneState() != nil { + if s.GetSceneState().OnPlayerOp(s, p, opcode, params) { + p.SetLastOPTimer(time.Now()) + return true + } + return false + } + return true +} + +func (this *ScenePolicyFortuneOx) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyFortuneOx) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params) + if s.GetSceneState() != nil { + s.GetSceneState().OnPlayerEvent(s, p, evtcode, params) + } +} + +// 当前状态能否换桌 +func (this *ScenePolicyFortuneOx) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if s == nil || p == nil { + return false + } + if s.GetSceneState() != nil { + return s.GetSceneState().CanChangeCoinScene(s, p) + } + return false +} + +// 状态基类 +type SceneBaseStateFortuneOx struct { +} + +func (this *SceneBaseStateFortuneOx) GetTimeout(s *base.Scene) int { + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + return int(time.Now().Sub(sceneEx.GetStateStartTime()) / time.Second) + } + return 0 +} + +func (this *SceneBaseStateFortuneOx) CanChangeTo(s base.SceneState) bool { + return true +} + +// 当前状态能否换桌 +func (this *SceneBaseStateFortuneOx) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + return true +} +func (this *SceneBaseStateFortuneOx) OnEnter(s *base.Scene) { + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + sceneEx.SetStateStartTime(time.Now()) + } +} + +func (this *SceneBaseStateFortuneOx) OnLeave(s *base.Scene) {} +func (this *SceneBaseStateFortuneOx) OnTick(s *base.Scene) { + if time.Now().Sub(s.GameStartTime) > time.Second*3 { + if sceneEx, ok := s.ExtraData.(*FortuneOxSceneData); ok { + for _, p := range sceneEx.players { + if p.IsOnLine() { + p.leaveTime = 0 + continue + } + p.leaveTime++ + if p.leaveTime < 60*2 { + continue + } + //踢出玩家 + sceneEx.PlayerLeave(p.Player, common.PlayerLeaveReason_LongTimeNoOp, true) + } + } + s.GameStartTime = time.Now() + } +} +func (this *SceneBaseStateFortuneOx) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + return false +} +func (this *SceneBaseStateFortuneOx) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { +} + +// //////////////////////////////////////////////////////////// +// 开始状态 +// //////////////////////////////////////////////////////////// +type SceneStateStartFortuneOx struct { + SceneBaseStateFortuneOx +} + +func (this *SceneStateStartFortuneOx) GetState() int { + return fortuneox.FortuneOxStateStart +} + +func (this *SceneStateStartFortuneOx) CanChangeTo(s base.SceneState) bool { + return false +} + +// 当前状态能否换桌 +func (this *SceneStateStartFortuneOx) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if playerEx, ok := p.GetExtraData().(*FortuneOxPlayerData); ok { + if playerEx.isRespin { + return false + } + } + return true +} + +func (this *SceneStateStartFortuneOx) GetTimeout(s *base.Scene) int { + return 0 +} + +func (this *SceneStateStartFortuneOx) OnEnter(s *base.Scene) { + this.SceneBaseStateFortuneOx.OnEnter(s) + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + sceneEx.SetGameNowTime(time.Now()) + } +} + +// 状态离开时 +func (this *SceneStateStartFortuneOx) OnLeave(s *base.Scene) { + this.SceneBaseStateFortuneOx.OnLeave(s) + logger.Logger.Tracef("(this *SceneStateStartFortuneOx) OnLeave, sceneid=%v", s.GetSceneId()) +} + +// 玩家操作 +func (this *SceneStateStartFortuneOx) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + logger.Logger.Tracef("(this *SceneStateStartFortuneOx) OnPlayerOp, sceneid=%v params=%v", s.GetSceneId(), params) + if this.SceneBaseStateFortuneOx.OnPlayerOp(s, p, opcode, params) { + return true + } + if sceneEx, ok := s.GetExtraData().(*FortuneOxSceneData); ok { + if playerEx, ok := p.GetExtraData().(*FortuneOxPlayerData); ok { + switch opcode { + case fortuneox.FortuneOxPlayerOpStart: + playerEx.Clear() + if len(params) < 3 { + pack := &protocol.SCFortuneOxBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCFortuneOxBilled", pack.String()) + playerEx.SendToClient(int(protocol.FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXBILLED), pack) + return true + } + playerEx.BetSizeIndex = params[0] + playerEx.BetLevelIndex = params[1] + playerEx.BetLineIndex = params[2] + //playerEx.BetMode = params[3] + needCoin := sceneEx.BetConfig.BetSize[params[0]] * float64(sceneEx.BetConfig.BetLevel[params[1]]) * + float64(sceneEx.BetConfig.BetLines[params[2]]) + if needCoin > float64(playerEx.Coin) { + pack := &protocol.SCFortuneOxBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCFortuneOxBilled:", pack.String()) + playerEx.SendToClient(int(protocol.FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXBILLED), pack) + return true + } + + //playerEx.SlotsSession.SetCoin(playerEx.Coin * fortuneox.NowByte) + //logger.Logger.Trace("=============init dif coin", playerEx.Coin-playerEx.SlotsSession.Coin()/fortuneox.NowByte) + + //get data + Response, err := slots.SlotsMgrSington.Play(playerEx.SlotsSession, &base.SpinReq{ + GameId: int64(sceneEx.GameId), + BetSizeIndex: playerEx.BetSizeIndex, + BetLevelIndex: playerEx.BetLevelIndex, + BetLineIndex: playerEx.BetLineIndex, + BetMode: playerEx.BetMode, + Ts: time.Now().Unix(), + }) + var gameEndStr string + var data assemble.GameEnd + if err == nil { + data = assemble.DataToCli(Response).(assemble.GameEnd) + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + //第一次触发或者正常模式 + //logger.Logger.Trace("=============addcoin1111 ", -data.TotalBet) + playerEx.AddCoin(int64(-data.TotalBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) + playerEx.totalBet = int64(data.TotalBet) + //logger.Logger.Trace("=======bet======dif++++ ", float64(playerEx.Coin)-data.BetAfterCoin) + } + var taxCoin float64 + if data.RoundReward > 0 { + //税收比例 + taxRate := sceneEx.GetDBGameFree().GetTaxRate() + if taxRate < 0 || taxRate > 10000 { + taxRate = 500 + } + taxCoin = data.RoundReward * float64(taxRate) / 10000 + data.RoundReward = data.RoundReward - taxCoin + playerEx.AddServiceFee(int64(taxCoin)) + playerEx.taxCoin = int64(taxCoin) + playerEx.winCoin = int64(data.RoundReward) + } + pi, _ := json.Marshal(data) + gameEndStr = string(pi) + respinStatus := data.Results[0].ArrSpins[0].Special.(SpinLock).ReSpinStatus + if respinStatus == 0 || respinStatus == 3 { + //logger.Logger.Trace("===win==========addcoin222 ", data.RoundReward) + playerEx.AddCoin(int64(data.RoundReward), common.GainWay_HundredSceneWin, 0, "system", s.GetSceneName()) + //logger.Logger.Trace("=======win======dif++++ ", float64(playerEx.Coin)-data.FinalCoin) + //免费游戏结束或者正常模式 + sceneEx.StaticsLaba(&base.StaticLabaParam{ + SnId: playerEx.SnId, + Gain: int64(data.RoundReward - data.TotalBet), + GainTax: int64(taxCoin), + IsAddTimes: true, + }) + } + if respinStatus == 0 || respinStatus == 3 { + playerEx.isRespin = false + } else { + playerEx.isRespin = true + } + } else { + logger.Logger.Error("slots Play err:", err) + } + + playerEx.SlotsSession.SetCoin(int64(data.FinalCoin) * fortuneox.NowByte) + + //logger.Logger.Trace("======end=======init dif coin", playerEx.Coin-playerEx.SlotsSession.Coin()/fortuneox.NowByte) + + if playerEx.Coin != int64(data.FinalCoin) { + logger.Logger.Error("==========playerEx.Coin != data.FinalCoin==============", (float64(playerEx.Coin)-data.FinalCoin)/10000) + } + pack := &protocol.SCFortuneOxBilled{ + OpRetCode: proto.Int32(0), + GameEndStr: proto.String(gameEndStr), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCFortuneOxBilled", pack.String()) + playerEx.SendToClient(int(protocol.FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXBILLED), pack) + + // 记录本次操作 + FortuneOxAndSaveLog(sceneEx, playerEx, data) + } + } + } + return true +} + +// 玩家事件 +func (this *SceneStateStartFortuneOx) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + logger.Logger.Trace("(this *SceneStateStartFortuneOx) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " evtcode=", evtcode) + this.SceneBaseStateFortuneOx.OnPlayerEvent(s, p, evtcode, params) +} + +func (this *SceneStateStartFortuneOx) OnTick(s *base.Scene) { + this.SceneBaseStateFortuneOx.OnTick(s) +} + +// ////////////////////////////////////////////////////////////////////////////// +func (this *ScenePolicyFortuneOx) RegisteSceneState(state base.SceneState) { + if state == nil { + return + } + stateid := state.GetState() + if stateid < 0 || stateid >= fortuneox.FortuneOxStateMax { + return + } + this.states[stateid] = state +} + +func (this *ScenePolicyFortuneOx) GetSceneState(s *base.Scene, stateid int) base.SceneState { + if stateid >= 0 && stateid < fortuneox.FortuneOxStateMax { + return this.states[stateid] + } + return nil +} +func FortuneOxAndSaveLog(sceneEx *FortuneOxSceneData, playerEx *FortuneOxPlayerData, data assemble.GameEnd) { + if !playerEx.IsRob { + data.SnId = playerEx.SnId + info, err := model.MarshalGameNoteByROLL(data) + if err == nil { + logid, _ := model.AutoIncGameLogId() + playerEx.currentLogId = logid + sceneEx.SaveGameDetailedLog(logid, info, &base.GameDetailedParam{}) + totalin := playerEx.totalBet + totalout := int64(data.RoundReward) + playerEx.taxCoin + validFlow := totalin + totalout + validBet := common.AbsI64(totalin - totalout) + logParam := &base.SaveGamePlayerListLogParam{ + Platform: playerEx.Platform, + Channel: playerEx.Channel, + Promoter: playerEx.BeUnderAgentCode, + PackageTag: playerEx.PackageID, + InviterId: playerEx.InviterId, + LogId: logid, + TotalIn: totalin, + TotalOut: totalout, + TaxCoin: playerEx.taxCoin, + BetAmount: playerEx.totalBet, + WinAmountNoAnyTax: int64(data.RoundReward) + playerEx.taxCoin, + ValidBet: validBet, + ValidFlow: validFlow, + IsFirstGame: sceneEx.IsPlayerFirst(playerEx.Player), + } + sceneEx.SaveGamePlayerListLog(playerEx.SnId, logParam) + } + } + + //统计输下注金币数 + if !sceneEx.Testing && !playerEx.IsRob { + playerBet := &server.PlayerData{ + SnId: proto.Int32(playerEx.SnId), + Bet: proto.Int64(playerEx.CurrentBet), + Gain: proto.Int64(int64(data.RoundReward) + playerEx.taxCoin), + Tax: proto.Int64(playerEx.taxCoin), + Coin: proto.Int64(playerEx.GetCoin()), + GameCoinTs: proto.Int64(playerEx.GameCoinTs), + } + gwPlayerBet := &server.GWPlayerData{ + SceneId: sceneEx.SceneId, + GameFreeId: proto.Int32(sceneEx.GetDBGameFree().GetId()), + } + gwPlayerBet.Datas = append(gwPlayerBet.Datas, playerBet) + sceneEx.SyncPlayerDatas(&base.PlayerDataParam{ + HasRobotGaming: false, + Data: gwPlayerBet, + }) + } + + playerEx.taxCoin = 0 + playerEx.winCoin = 0 + + if sceneEx.CheckNeedDestroy() && data.Results[0].FreeNum <= 0 { + sceneEx.PlayerLeave(playerEx.Player, common.PlayerLeaveReason_OnDestroy, true) + } +} +func init() { + //主状态 + ScenePolicyFortuneOxSington.RegisteSceneState(&SceneStateStartFortuneOx{}) + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + base.RegisteScenePolicy(common.GameId_FortuneOx, fortuneox.RoomMode_Classic, ScenePolicyFortuneOxSington) + return nil + }) +} diff --git a/gamesrv/fortunerabbit/scenepolicy_fortunerabbit.go b/gamesrv/fortunerabbit/scenepolicy_fortunerabbit.go index a1497a2..4664408 100644 --- a/gamesrv/fortunerabbit/scenepolicy_fortunerabbit.go +++ b/gamesrv/fortunerabbit/scenepolicy_fortunerabbit.go @@ -446,12 +446,6 @@ func (this *SceneStateStartFortuneRabbit) OnPlayerOp(s *base.Scene, p *base.Play } else { playerEx.isFree = false } - - if data.Results[0].FreeNum > 0 { - playerEx.isFree = true - } else { - playerEx.isFree = false - } } else { logger.Logger.Error("slots Play err:", err) } diff --git a/protocol/doc.md b/protocol/doc.md index cd95479..2dd90d6 100644 --- a/protocol/doc.md +++ b/protocol/doc.md @@ -173,5 +173,17 @@ - 5610~5619 +### fortuneox.prot + +- 5620~5629 + +### fortunetiger.prot + +- 5630~5639 + +### fortunemouse.prot + +- 5640~5649 + ### game.proto(玩家离开) - 8000~8099 \ No newline at end of file diff --git a/protocol/fortunemouse/fortunemouse.pb.go b/protocol/fortunemouse/fortunemouse.pb.go new file mode 100644 index 0000000..3b05588 --- /dev/null +++ b/protocol/fortunemouse/fortunemouse.pb.go @@ -0,0 +1,802 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1-devel +// protoc v3.19.4 +// source: fortunemouse.proto + +package fortunemouse + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +//fortunemouse +//龙 +type FortuneMousePID int32 + +const ( + FortuneMousePID_PACKET_FORTUNEMOUSE_ZERO FortuneMousePID = 0 // 弃用消息号 + FortuneMousePID_PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO FortuneMousePID = 5640 //房间信息 + FortuneMousePID_PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP FortuneMousePID = 5641 + FortuneMousePID_PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP FortuneMousePID = 5642 + FortuneMousePID_PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE FortuneMousePID = 5643 + FortuneMousePID_PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED FortuneMousePID = 5644 +) + +// Enum value maps for FortuneMousePID. +var ( + FortuneMousePID_name = map[int32]string{ + 0: "PACKET_FORTUNEMOUSE_ZERO", + 5640: "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO", + 5641: "PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP", + 5642: "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP", + 5643: "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE", + 5644: "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED", + } + FortuneMousePID_value = map[string]int32{ + "PACKET_FORTUNEMOUSE_ZERO": 0, + "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO": 5640, + "PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP": 5641, + "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP": 5642, + "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE": 5643, + "PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED": 5644, + } +) + +func (x FortuneMousePID) Enum() *FortuneMousePID { + p := new(FortuneMousePID) + *p = x + return p +} + +func (x FortuneMousePID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FortuneMousePID) Descriptor() protoreflect.EnumDescriptor { + return file_fortunemouse_proto_enumTypes[0].Descriptor() +} + +func (FortuneMousePID) Type() protoreflect.EnumType { + return &file_fortunemouse_proto_enumTypes[0] +} + +func (x FortuneMousePID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FortuneMousePID.Descriptor instead. +func (FortuneMousePID) EnumDescriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{0} +} + +type FortuneMousePlayerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` //名字 + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //账号 + Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` //头像 + Sex int32 `protobuf:"varint,4,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 + Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 + Pos int32 `protobuf:"varint,6,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + Flag int32 `protobuf:"varint,7,opt,name=Flag,proto3" json:"Flag,omitempty"` //二进制标记 + Params []string `protobuf:"bytes,8,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:ip 等 + City string `protobuf:"bytes,9,opt,name=City,proto3" json:"City,omitempty"` //城市 + HeadOutLine int32 `protobuf:"varint,10,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框 + VIP int32 `protobuf:"varint,11,opt,name=VIP,proto3" json:"VIP,omitempty"` +} + +func (x *FortuneMousePlayerData) Reset() { + *x = FortuneMousePlayerData{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunemouse_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FortuneMousePlayerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FortuneMousePlayerData) ProtoMessage() {} + +func (x *FortuneMousePlayerData) ProtoReflect() protoreflect.Message { + mi := &file_fortunemouse_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FortuneMousePlayerData.ProtoReflect.Descriptor instead. +func (*FortuneMousePlayerData) Descriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{0} +} + +func (x *FortuneMousePlayerData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FortuneMousePlayerData) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +func (x *FortuneMousePlayerData) GetHead() int32 { + if x != nil { + return x.Head + } + return 0 +} + +func (x *FortuneMousePlayerData) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *FortuneMousePlayerData) GetCoin() int64 { + if x != nil { + return x.Coin + } + return 0 +} + +func (x *FortuneMousePlayerData) GetPos() int32 { + if x != nil { + return x.Pos + } + return 0 +} + +func (x *FortuneMousePlayerData) GetFlag() int32 { + if x != nil { + return x.Flag + } + return 0 +} + +func (x *FortuneMousePlayerData) GetParams() []string { + if x != nil { + return x.Params + } + return nil +} + +func (x *FortuneMousePlayerData) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *FortuneMousePlayerData) GetHeadOutLine() int32 { + if x != nil { + return x.HeadOutLine + } + return 0 +} + +func (x *FortuneMousePlayerData) GetVIP() int32 { + if x != nil { + return x.VIP + } + return 0 +} + +//房间信息 +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +type SCFortuneMouseRoomInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id + GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` + GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id + RoomMode int32 `protobuf:"varint,4,opt,name=RoomMode,proto3" json:"RoomMode,omitempty"` //游戏模式 + Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //规则参数 + NumOfGames int32 `protobuf:"varint,6,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` //当前第几局 + State int32 `protobuf:"varint,7,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + ParamsEx []int64 `protobuf:"varint,8,rep,packed,name=ParamsEx,proto3" json:"ParamsEx,omitempty"` //其他参数 + SceneType int32 `protobuf:"varint,9,opt,name=SceneType,proto3" json:"SceneType,omitempty"` //房间模式 + Player *FortuneMousePlayerData `protobuf:"bytes,10,opt,name=Player,proto3" json:"Player,omitempty"` //房间内的玩家信息 + PlayerInfo string `protobuf:"bytes,11,opt,name=PlayerInfo,proto3" json:"PlayerInfo,omitempty"` +} + +func (x *SCFortuneMouseRoomInfo) Reset() { + *x = SCFortuneMouseRoomInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunemouse_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneMouseRoomInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneMouseRoomInfo) ProtoMessage() {} + +func (x *SCFortuneMouseRoomInfo) ProtoReflect() protoreflect.Message { + mi := &file_fortunemouse_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneMouseRoomInfo.ProtoReflect.Descriptor instead. +func (*SCFortuneMouseRoomInfo) Descriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{1} +} + +func (x *SCFortuneMouseRoomInfo) GetRoomId() int32 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetGameFreeId() int32 { + if x != nil { + return x.GameFreeId + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetGameId() int32 { + if x != nil { + return x.GameId + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetRoomMode() int32 { + if x != nil { + return x.RoomMode + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +func (x *SCFortuneMouseRoomInfo) GetNumOfGames() int32 { + if x != nil { + return x.NumOfGames + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetParamsEx() []int64 { + if x != nil { + return x.ParamsEx + } + return nil +} + +func (x *SCFortuneMouseRoomInfo) GetSceneType() int32 { + if x != nil { + return x.SceneType + } + return 0 +} + +func (x *SCFortuneMouseRoomInfo) GetPlayer() *FortuneMousePlayerData { + if x != nil { + return x.Player + } + return nil +} + +func (x *SCFortuneMouseRoomInfo) GetPlayerInfo() string { + if x != nil { + return x.PlayerInfo + } + return "" +} + +//玩家操作 +//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +type CSFortuneMouseOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 0.spin + Params []int64 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 下注索引编号 +} + +func (x *CSFortuneMouseOp) Reset() { + *x = CSFortuneMouseOp{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunemouse_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSFortuneMouseOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSFortuneMouseOp) ProtoMessage() {} + +func (x *CSFortuneMouseOp) ProtoReflect() protoreflect.Message { + mi := &file_fortunemouse_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSFortuneMouseOp.ProtoReflect.Descriptor instead. +func (*CSFortuneMouseOp) Descriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{2} +} + +func (x *CSFortuneMouseOp) GetOpCode() int32 { + if x != nil { + return x.OpCode + } + return 0 +} + +func (x *CSFortuneMouseOp) GetParams() []int64 { + if x != nil { + return x.Params + } + return nil +} + +//玩家操作返回 +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +type SCFortuneMouseOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 + OpRetCode int32 `protobuf:"varint,2,opt,name=OpRetCode,proto3" json:"OpRetCode,omitempty"` //操作结果 1.金币不足 2.低于该值不能押注 + Params []int64 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 +} + +func (x *SCFortuneMouseOp) Reset() { + *x = SCFortuneMouseOp{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunemouse_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneMouseOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneMouseOp) ProtoMessage() {} + +func (x *SCFortuneMouseOp) ProtoReflect() protoreflect.Message { + mi := &file_fortunemouse_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneMouseOp.ProtoReflect.Descriptor instead. +func (*SCFortuneMouseOp) Descriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{3} +} + +func (x *SCFortuneMouseOp) GetOpCode() int32 { + if x != nil { + return x.OpCode + } + return 0 +} + +func (x *SCFortuneMouseOp) GetOpRetCode() int32 { + if x != nil { + return x.OpRetCode + } + return 0 +} + +func (x *SCFortuneMouseOp) GetParams() []int64 { + if x != nil { + return x.Params + } + return nil +} + +//房间状态 +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +type SCFortuneMouseRoomState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + SubState int32 `protobuf:"varint,2,opt,name=SubState,proto3" json:"SubState,omitempty"` //房间当前子状态 + Params []int32 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //状态参数 +} + +func (x *SCFortuneMouseRoomState) Reset() { + *x = SCFortuneMouseRoomState{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunemouse_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneMouseRoomState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneMouseRoomState) ProtoMessage() {} + +func (x *SCFortuneMouseRoomState) ProtoReflect() protoreflect.Message { + mi := &file_fortunemouse_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneMouseRoomState.ProtoReflect.Descriptor instead. +func (*SCFortuneMouseRoomState) Descriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{4} +} + +func (x *SCFortuneMouseRoomState) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCFortuneMouseRoomState) GetSubState() int32 { + if x != nil { + return x.SubState + } + return 0 +} + +func (x *SCFortuneMouseRoomState) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +type SCFortuneMouseBilled struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode int32 `protobuf:"varint,1,opt,name=OpRetCode,proto3" json:"OpRetCode,omitempty"` //0.spin成功 1.spin失败 + GameEndStr string `protobuf:"bytes,2,opt,name=GameEndStr,proto3" json:"GameEndStr,omitempty"` +} + +func (x *SCFortuneMouseBilled) Reset() { + *x = SCFortuneMouseBilled{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunemouse_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneMouseBilled) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneMouseBilled) ProtoMessage() {} + +func (x *SCFortuneMouseBilled) ProtoReflect() protoreflect.Message { + mi := &file_fortunemouse_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneMouseBilled.ProtoReflect.Descriptor instead. +func (*SCFortuneMouseBilled) Descriptor() ([]byte, []int) { + return file_fortunemouse_proto_rawDescGZIP(), []int{5} +} + +func (x *SCFortuneMouseBilled) GetOpRetCode() int32 { + if x != nil { + return x.OpRetCode + } + return 0 +} + +func (x *SCFortuneMouseBilled) GetGameEndStr() string { + if x != nil { + return x.GameEndStr + } + return "" +} + +var File_fortunemouse_proto protoreflect.FileDescriptor + +var file_fortunemouse_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x16, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4d, 0x6f, + 0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, + 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, + 0x69, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x56, 0x49, 0x50, 0x22, 0xea, 0x02, 0x0a, 0x16, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, + 0x75, 0x6e, 0x65, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4d, 0x6f, 0x75, 0x73, 0x65, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x42, 0x0a, 0x10, 0x43, 0x53, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4d, + 0x6f, 0x75, 0x73, 0x65, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x60, 0x0a, 0x10, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, + 0x75, 0x6e, 0x65, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x63, 0x0a, 0x17, 0x53, 0x43, 0x46, 0x6f, + 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x75, 0x62, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x54, 0x0a, + 0x14, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x42, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x53, 0x74, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x53, 0x74, 0x72, 0x2a, 0x97, 0x02, 0x0a, 0x0f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4d, + 0x6f, 0x75, 0x73, 0x65, 0x50, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x5a, + 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x2f, 0x0a, 0x2a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x53, 0x43, 0x46, + 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x49, + 0x4e, 0x46, 0x4f, 0x10, 0x88, 0x2c, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x43, 0x53, + 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x10, 0x89, + 0x2c, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, + 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, + 0x4e, 0x45, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x10, 0x8a, 0x2c, 0x12, 0x30, 0x0a, 0x2b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, + 0x55, 0x53, 0x45, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, 0x4f, 0x55, + 0x53, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x8b, 0x2c, 0x12, 0x2d, + 0x0a, 0x28, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, + 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4d, + 0x4f, 0x55, 0x53, 0x45, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x8c, 0x2c, 0x42, 0x2c, 0x5a, + 0x2a, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x66, + 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_fortunemouse_proto_rawDescOnce sync.Once + file_fortunemouse_proto_rawDescData = file_fortunemouse_proto_rawDesc +) + +func file_fortunemouse_proto_rawDescGZIP() []byte { + file_fortunemouse_proto_rawDescOnce.Do(func() { + file_fortunemouse_proto_rawDescData = protoimpl.X.CompressGZIP(file_fortunemouse_proto_rawDescData) + }) + return file_fortunemouse_proto_rawDescData +} + +var file_fortunemouse_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_fortunemouse_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_fortunemouse_proto_goTypes = []interface{}{ + (FortuneMousePID)(0), // 0: fortunemouse.FortuneMousePID + (*FortuneMousePlayerData)(nil), // 1: fortunemouse.FortuneMousePlayerData + (*SCFortuneMouseRoomInfo)(nil), // 2: fortunemouse.SCFortuneMouseRoomInfo + (*CSFortuneMouseOp)(nil), // 3: fortunemouse.CSFortuneMouseOp + (*SCFortuneMouseOp)(nil), // 4: fortunemouse.SCFortuneMouseOp + (*SCFortuneMouseRoomState)(nil), // 5: fortunemouse.SCFortuneMouseRoomState + (*SCFortuneMouseBilled)(nil), // 6: fortunemouse.SCFortuneMouseBilled +} +var file_fortunemouse_proto_depIdxs = []int32{ + 1, // 0: fortunemouse.SCFortuneMouseRoomInfo.Player:type_name -> fortunemouse.FortuneMousePlayerData + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_fortunemouse_proto_init() } +func file_fortunemouse_proto_init() { + if File_fortunemouse_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_fortunemouse_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FortuneMousePlayerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunemouse_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneMouseRoomInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunemouse_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSFortuneMouseOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunemouse_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneMouseOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunemouse_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneMouseRoomState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunemouse_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneMouseBilled); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_fortunemouse_proto_rawDesc, + NumEnums: 1, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_fortunemouse_proto_goTypes, + DependencyIndexes: file_fortunemouse_proto_depIdxs, + EnumInfos: file_fortunemouse_proto_enumTypes, + MessageInfos: file_fortunemouse_proto_msgTypes, + }.Build() + File_fortunemouse_proto = out.File + file_fortunemouse_proto_rawDesc = nil + file_fortunemouse_proto_goTypes = nil + file_fortunemouse_proto_depIdxs = nil +} diff --git a/protocol/fortunemouse/fortunemouse.proto b/protocol/fortunemouse/fortunemouse.proto new file mode 100644 index 0000000..6d6431c --- /dev/null +++ b/protocol/fortunemouse/fortunemouse.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package fortunemouse; +option go_package = "mongo.games.com/game/protocol/fortunemouse"; + +//fortunemouse +//龙 +enum FortuneMousePID { + PACKET_FORTUNEMOUSE_ZERO = 0;// 弃用消息号 + PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO = 5640; //房间信息 + PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP = 5641; + PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP = 5642; + PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE = 5643; + PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED = 5644; +} + +message FortuneMousePlayerData { + string Name = 1; //名字 + int32 SnId = 2; //账号 + int32 Head = 3; //头像 + int32 Sex = 4; //性别 + int64 Coin = 5; //金币 + int32 Pos = 6; //座位位置 + int32 Flag = 7; //二进制标记 + repeated string Params = 8; //其他数据 如:ip 等 + string City = 9; //城市 + int32 HeadOutLine = 10; //头像框 + int32 VIP = 11; +} +//房间信息 +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +message SCFortuneMouseRoomInfo { + int32 RoomId = 1; //房间id + int32 GameFreeId = 2; + int32 GameId = 3; //游戏id + int32 RoomMode = 4; //游戏模式 + repeated int32 Params = 5; //规则参数 + int32 NumOfGames = 6; //当前第几局 + int32 State = 7; //房间当前状态 + repeated int64 ParamsEx = 8; //其他参数 + int32 SceneType = 9; //房间模式 + FortuneMousePlayerData Player = 10; //房间内的玩家信息 + string PlayerInfo = 11; +} +//玩家操作 +//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +message CSFortuneMouseOp { + int32 OpCode = 1; //操作码 0.spin + repeated int64 Params = 2; //操作参数 下注索引编号 +} +//玩家操作返回 +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +message SCFortuneMouseOp { + int32 OpCode = 1; //操作码 + int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 + repeated int64 Params = 3; //操作参数 +} +//房间状态 +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +message SCFortuneMouseRoomState { + int32 State = 1; //房间当前状态 + int32 SubState = 2; //房间当前子状态 + repeated int32 Params = 3; //状态参数 +} +//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +message SCFortuneMouseBilled{ + int32 OpRetCode = 1;//0.spin成功 1.spin失败 + string GameEndStr = 2; +} \ No newline at end of file diff --git a/protocol/fortuneox/fortuneox.pb.go b/protocol/fortuneox/fortuneox.pb.go new file mode 100644 index 0000000..2817ebc --- /dev/null +++ b/protocol/fortuneox/fortuneox.pb.go @@ -0,0 +1,797 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1-devel +// protoc v3.19.4 +// source: fortuneox.proto + +package fortuneox + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +//fortuneox +//龙 +type FortuneOxPID int32 + +const ( + FortuneOxPID_PACKET_FORTUNEOX_ZERO FortuneOxPID = 0 // 弃用消息号 + FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO FortuneOxPID = 5620 //房间信息 + FortuneOxPID_PACKET_FORTUNEOX_CSFORTUNEOXOP FortuneOxPID = 5621 + FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXOP FortuneOxPID = 5622 + FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXROOMSTATE FortuneOxPID = 5623 + FortuneOxPID_PACKET_FORTUNEOX_SCFORTUNEOXBILLED FortuneOxPID = 5624 +) + +// Enum value maps for FortuneOxPID. +var ( + FortuneOxPID_name = map[int32]string{ + 0: "PACKET_FORTUNEOX_ZERO", + 5620: "PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO", + 5621: "PACKET_FORTUNEOX_CSFORTUNEOXOP", + 5622: "PACKET_FORTUNEOX_SCFORTUNEOXOP", + 5623: "PACKET_FORTUNEOX_SCFORTUNEOXROOMSTATE", + 5624: "PACKET_FORTUNEOX_SCFORTUNEOXBILLED", + } + FortuneOxPID_value = map[string]int32{ + "PACKET_FORTUNEOX_ZERO": 0, + "PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO": 5620, + "PACKET_FORTUNEOX_CSFORTUNEOXOP": 5621, + "PACKET_FORTUNEOX_SCFORTUNEOXOP": 5622, + "PACKET_FORTUNEOX_SCFORTUNEOXROOMSTATE": 5623, + "PACKET_FORTUNEOX_SCFORTUNEOXBILLED": 5624, + } +) + +func (x FortuneOxPID) Enum() *FortuneOxPID { + p := new(FortuneOxPID) + *p = x + return p +} + +func (x FortuneOxPID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FortuneOxPID) Descriptor() protoreflect.EnumDescriptor { + return file_fortuneox_proto_enumTypes[0].Descriptor() +} + +func (FortuneOxPID) Type() protoreflect.EnumType { + return &file_fortuneox_proto_enumTypes[0] +} + +func (x FortuneOxPID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FortuneOxPID.Descriptor instead. +func (FortuneOxPID) EnumDescriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{0} +} + +type FortuneOxPlayerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` //名字 + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //账号 + Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` //头像 + Sex int32 `protobuf:"varint,4,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 + Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 + Pos int32 `protobuf:"varint,6,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + Flag int32 `protobuf:"varint,7,opt,name=Flag,proto3" json:"Flag,omitempty"` //二进制标记 + Params []string `protobuf:"bytes,8,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:ip 等 + City string `protobuf:"bytes,9,opt,name=City,proto3" json:"City,omitempty"` //城市 + HeadOutLine int32 `protobuf:"varint,10,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框 + VIP int32 `protobuf:"varint,11,opt,name=VIP,proto3" json:"VIP,omitempty"` +} + +func (x *FortuneOxPlayerData) Reset() { + *x = FortuneOxPlayerData{} + if protoimpl.UnsafeEnabled { + mi := &file_fortuneox_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FortuneOxPlayerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FortuneOxPlayerData) ProtoMessage() {} + +func (x *FortuneOxPlayerData) ProtoReflect() protoreflect.Message { + mi := &file_fortuneox_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FortuneOxPlayerData.ProtoReflect.Descriptor instead. +func (*FortuneOxPlayerData) Descriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{0} +} + +func (x *FortuneOxPlayerData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FortuneOxPlayerData) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +func (x *FortuneOxPlayerData) GetHead() int32 { + if x != nil { + return x.Head + } + return 0 +} + +func (x *FortuneOxPlayerData) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *FortuneOxPlayerData) GetCoin() int64 { + if x != nil { + return x.Coin + } + return 0 +} + +func (x *FortuneOxPlayerData) GetPos() int32 { + if x != nil { + return x.Pos + } + return 0 +} + +func (x *FortuneOxPlayerData) GetFlag() int32 { + if x != nil { + return x.Flag + } + return 0 +} + +func (x *FortuneOxPlayerData) GetParams() []string { + if x != nil { + return x.Params + } + return nil +} + +func (x *FortuneOxPlayerData) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *FortuneOxPlayerData) GetHeadOutLine() int32 { + if x != nil { + return x.HeadOutLine + } + return 0 +} + +func (x *FortuneOxPlayerData) GetVIP() int32 { + if x != nil { + return x.VIP + } + return 0 +} + +//房间信息 +//PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO +type SCFortuneOxRoomInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id + GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` + GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id + RoomMode int32 `protobuf:"varint,4,opt,name=RoomMode,proto3" json:"RoomMode,omitempty"` //游戏模式 + Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //规则参数 + NumOfGames int32 `protobuf:"varint,6,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` //当前第几局 + State int32 `protobuf:"varint,7,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + ParamsEx []int64 `protobuf:"varint,8,rep,packed,name=ParamsEx,proto3" json:"ParamsEx,omitempty"` //其他参数 + SceneType int32 `protobuf:"varint,9,opt,name=SceneType,proto3" json:"SceneType,omitempty"` //房间模式 + Player *FortuneOxPlayerData `protobuf:"bytes,10,opt,name=Player,proto3" json:"Player,omitempty"` //房间内的玩家信息 + PlayerInfo string `protobuf:"bytes,11,opt,name=PlayerInfo,proto3" json:"PlayerInfo,omitempty"` +} + +func (x *SCFortuneOxRoomInfo) Reset() { + *x = SCFortuneOxRoomInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_fortuneox_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneOxRoomInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneOxRoomInfo) ProtoMessage() {} + +func (x *SCFortuneOxRoomInfo) ProtoReflect() protoreflect.Message { + mi := &file_fortuneox_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneOxRoomInfo.ProtoReflect.Descriptor instead. +func (*SCFortuneOxRoomInfo) Descriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{1} +} + +func (x *SCFortuneOxRoomInfo) GetRoomId() int32 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetGameFreeId() int32 { + if x != nil { + return x.GameFreeId + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetGameId() int32 { + if x != nil { + return x.GameId + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetRoomMode() int32 { + if x != nil { + return x.RoomMode + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +func (x *SCFortuneOxRoomInfo) GetNumOfGames() int32 { + if x != nil { + return x.NumOfGames + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetParamsEx() []int64 { + if x != nil { + return x.ParamsEx + } + return nil +} + +func (x *SCFortuneOxRoomInfo) GetSceneType() int32 { + if x != nil { + return x.SceneType + } + return 0 +} + +func (x *SCFortuneOxRoomInfo) GetPlayer() *FortuneOxPlayerData { + if x != nil { + return x.Player + } + return nil +} + +func (x *SCFortuneOxRoomInfo) GetPlayerInfo() string { + if x != nil { + return x.PlayerInfo + } + return "" +} + +//玩家操作 +//PACKET_FORTUNEOX_CSFORTUNEOXOP +type CSFortuneOxOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 0.spin + Params []int64 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 下注索引编号 +} + +func (x *CSFortuneOxOp) Reset() { + *x = CSFortuneOxOp{} + if protoimpl.UnsafeEnabled { + mi := &file_fortuneox_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSFortuneOxOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSFortuneOxOp) ProtoMessage() {} + +func (x *CSFortuneOxOp) ProtoReflect() protoreflect.Message { + mi := &file_fortuneox_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSFortuneOxOp.ProtoReflect.Descriptor instead. +func (*CSFortuneOxOp) Descriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{2} +} + +func (x *CSFortuneOxOp) GetOpCode() int32 { + if x != nil { + return x.OpCode + } + return 0 +} + +func (x *CSFortuneOxOp) GetParams() []int64 { + if x != nil { + return x.Params + } + return nil +} + +//玩家操作返回 +//PACKET_FORTUNEOX_SCFORTUNEOXOP +type SCFortuneOxOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 + OpRetCode int32 `protobuf:"varint,2,opt,name=OpRetCode,proto3" json:"OpRetCode,omitempty"` //操作结果 1.金币不足 2.低于该值不能押注 + Params []int64 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 +} + +func (x *SCFortuneOxOp) Reset() { + *x = SCFortuneOxOp{} + if protoimpl.UnsafeEnabled { + mi := &file_fortuneox_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneOxOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneOxOp) ProtoMessage() {} + +func (x *SCFortuneOxOp) ProtoReflect() protoreflect.Message { + mi := &file_fortuneox_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneOxOp.ProtoReflect.Descriptor instead. +func (*SCFortuneOxOp) Descriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{3} +} + +func (x *SCFortuneOxOp) GetOpCode() int32 { + if x != nil { + return x.OpCode + } + return 0 +} + +func (x *SCFortuneOxOp) GetOpRetCode() int32 { + if x != nil { + return x.OpRetCode + } + return 0 +} + +func (x *SCFortuneOxOp) GetParams() []int64 { + if x != nil { + return x.Params + } + return nil +} + +//房间状态 +//PACKET_FORTUNEOX_SCFORTUNEOXROOMSTATE +type SCFortuneOxRoomState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + SubState int32 `protobuf:"varint,2,opt,name=SubState,proto3" json:"SubState,omitempty"` //房间当前子状态 + Params []int32 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //状态参数 +} + +func (x *SCFortuneOxRoomState) Reset() { + *x = SCFortuneOxRoomState{} + if protoimpl.UnsafeEnabled { + mi := &file_fortuneox_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneOxRoomState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneOxRoomState) ProtoMessage() {} + +func (x *SCFortuneOxRoomState) ProtoReflect() protoreflect.Message { + mi := &file_fortuneox_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneOxRoomState.ProtoReflect.Descriptor instead. +func (*SCFortuneOxRoomState) Descriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{4} +} + +func (x *SCFortuneOxRoomState) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCFortuneOxRoomState) GetSubState() int32 { + if x != nil { + return x.SubState + } + return 0 +} + +func (x *SCFortuneOxRoomState) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +//PACKET_FORTUNEOX_SCFORTUNEOXBILLED +type SCFortuneOxBilled struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode int32 `protobuf:"varint,1,opt,name=OpRetCode,proto3" json:"OpRetCode,omitempty"` //0.spin成功 1.spin失败 + GameEndStr string `protobuf:"bytes,2,opt,name=GameEndStr,proto3" json:"GameEndStr,omitempty"` +} + +func (x *SCFortuneOxBilled) Reset() { + *x = SCFortuneOxBilled{} + if protoimpl.UnsafeEnabled { + mi := &file_fortuneox_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneOxBilled) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneOxBilled) ProtoMessage() {} + +func (x *SCFortuneOxBilled) ProtoReflect() protoreflect.Message { + mi := &file_fortuneox_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneOxBilled.ProtoReflect.Descriptor instead. +func (*SCFortuneOxBilled) Descriptor() ([]byte, []int) { + return file_fortuneox_proto_rawDescGZIP(), []int{5} +} + +func (x *SCFortuneOxBilled) GetOpRetCode() int32 { + if x != nil { + return x.OpRetCode + } + return 0 +} + +func (x *SCFortuneOxBilled) GetGameEndStr() string { + if x != nil { + return x.GameEndStr + } + return "" +} + +var File_fortuneox_proto protoreflect.FileDescriptor + +var file_fortuneox_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x6f, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x09, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x6f, 0x78, 0x22, 0xfd, 0x01, 0x0a, + 0x13, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, + 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, + 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, + 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, + 0x50, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x22, 0xe1, 0x02, 0x0a, + 0x13, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, 0x78, 0x52, 0x6f, 0x6f, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, + 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, + 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, + 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6f, 0x72, 0x74, 0x75, + 0x6e, 0x65, 0x6f, 0x78, 0x2e, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, 0x78, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x3f, 0x0a, 0x0d, 0x43, 0x53, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, 0x78, 0x4f, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x5d, 0x0a, 0x0d, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, 0x78, + 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4f, + 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x60, 0x0a, 0x14, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, 0x78, 0x52, + 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x51, 0x0a, 0x11, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x4f, + 0x78, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x53, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x53, 0x74, 0x72, 0x2a, 0xf3, 0x01, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, + 0x65, 0x4f, 0x78, 0x50, 0x49, 0x44, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, + 0x00, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, + 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4f, + 0x58, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf4, 0x2b, 0x12, 0x23, 0x0a, 0x1e, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4f, 0x58, + 0x5f, 0x43, 0x53, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x4f, 0x50, 0x10, 0xf5, + 0x2b, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, + 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4f, + 0x58, 0x4f, 0x50, 0x10, 0xf6, 0x2b, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, + 0x54, 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, + 0xf7, 0x2b, 0x12, 0x27, 0x0a, 0x22, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, + 0x54, 0x55, 0x4e, 0x45, 0x4f, 0x58, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, + 0x4f, 0x58, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0xf8, 0x2b, 0x42, 0x29, 0x5a, 0x27, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x66, 0x6f, 0x72, + 0x74, 0x75, 0x6e, 0x65, 0x6f, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_fortuneox_proto_rawDescOnce sync.Once + file_fortuneox_proto_rawDescData = file_fortuneox_proto_rawDesc +) + +func file_fortuneox_proto_rawDescGZIP() []byte { + file_fortuneox_proto_rawDescOnce.Do(func() { + file_fortuneox_proto_rawDescData = protoimpl.X.CompressGZIP(file_fortuneox_proto_rawDescData) + }) + return file_fortuneox_proto_rawDescData +} + +var file_fortuneox_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_fortuneox_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_fortuneox_proto_goTypes = []interface{}{ + (FortuneOxPID)(0), // 0: fortuneox.FortuneOxPID + (*FortuneOxPlayerData)(nil), // 1: fortuneox.FortuneOxPlayerData + (*SCFortuneOxRoomInfo)(nil), // 2: fortuneox.SCFortuneOxRoomInfo + (*CSFortuneOxOp)(nil), // 3: fortuneox.CSFortuneOxOp + (*SCFortuneOxOp)(nil), // 4: fortuneox.SCFortuneOxOp + (*SCFortuneOxRoomState)(nil), // 5: fortuneox.SCFortuneOxRoomState + (*SCFortuneOxBilled)(nil), // 6: fortuneox.SCFortuneOxBilled +} +var file_fortuneox_proto_depIdxs = []int32{ + 1, // 0: fortuneox.SCFortuneOxRoomInfo.Player:type_name -> fortuneox.FortuneOxPlayerData + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_fortuneox_proto_init() } +func file_fortuneox_proto_init() { + if File_fortuneox_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_fortuneox_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FortuneOxPlayerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortuneox_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneOxRoomInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortuneox_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSFortuneOxOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortuneox_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneOxOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortuneox_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneOxRoomState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortuneox_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneOxBilled); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_fortuneox_proto_rawDesc, + NumEnums: 1, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_fortuneox_proto_goTypes, + DependencyIndexes: file_fortuneox_proto_depIdxs, + EnumInfos: file_fortuneox_proto_enumTypes, + MessageInfos: file_fortuneox_proto_msgTypes, + }.Build() + File_fortuneox_proto = out.File + file_fortuneox_proto_rawDesc = nil + file_fortuneox_proto_goTypes = nil + file_fortuneox_proto_depIdxs = nil +} diff --git a/protocol/fortuneox/fortuneox.proto b/protocol/fortuneox/fortuneox.proto new file mode 100644 index 0000000..637d7b5 --- /dev/null +++ b/protocol/fortuneox/fortuneox.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package fortuneox; +option go_package = "mongo.games.com/game/protocol/fortuneox"; + +//fortuneox +//龙 +enum FortuneOxPID { + PACKET_FORTUNEOX_ZERO = 0;// 弃用消息号 + PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO = 5620; //房间信息 + PACKET_FORTUNEOX_CSFORTUNEOXOP = 5621; + PACKET_FORTUNEOX_SCFORTUNEOXOP = 5622; + PACKET_FORTUNEOX_SCFORTUNEOXROOMSTATE = 5623; + PACKET_FORTUNEOX_SCFORTUNEOXBILLED = 5624; +} + +message FortuneOxPlayerData { + string Name = 1; //名字 + int32 SnId = 2; //账号 + int32 Head = 3; //头像 + int32 Sex = 4; //性别 + int64 Coin = 5; //金币 + int32 Pos = 6; //座位位置 + int32 Flag = 7; //二进制标记 + repeated string Params = 8; //其他数据 如:ip 等 + string City = 9; //城市 + int32 HeadOutLine = 10; //头像框 + int32 VIP = 11; +} +//房间信息 +//PACKET_FORTUNEOX_SCFORTUNEOXROOMINFO +message SCFortuneOxRoomInfo { + int32 RoomId = 1; //房间id + int32 GameFreeId = 2; + int32 GameId = 3; //游戏id + int32 RoomMode = 4; //游戏模式 + repeated int32 Params = 5; //规则参数 + int32 NumOfGames = 6; //当前第几局 + int32 State = 7; //房间当前状态 + repeated int64 ParamsEx = 8; //其他参数 + int32 SceneType = 9; //房间模式 + FortuneOxPlayerData Player = 10; //房间内的玩家信息 + string PlayerInfo = 11; +} +//玩家操作 +//PACKET_FORTUNEOX_CSFORTUNEOXOP +message CSFortuneOxOp { + int32 OpCode = 1; //操作码 0.spin + repeated int64 Params = 2; //操作参数 下注索引编号 +} +//玩家操作返回 +//PACKET_FORTUNEOX_SCFORTUNEOXOP +message SCFortuneOxOp { + int32 OpCode = 1; //操作码 + int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 + repeated int64 Params = 3; //操作参数 +} +//房间状态 +//PACKET_FORTUNEOX_SCFORTUNEOXROOMSTATE +message SCFortuneOxRoomState { + int32 State = 1; //房间当前状态 + int32 SubState = 2; //房间当前子状态 + repeated int32 Params = 3; //状态参数 +} +//PACKET_FORTUNEOX_SCFORTUNEOXBILLED +message SCFortuneOxBilled{ + int32 OpRetCode = 1;//0.spin成功 1.spin失败 + string GameEndStr = 2; +} \ No newline at end of file diff --git a/protocol/fortunetiger/fortunetiger.pb.go b/protocol/fortunetiger/fortunetiger.pb.go new file mode 100644 index 0000000..672022d --- /dev/null +++ b/protocol/fortunetiger/fortunetiger.pb.go @@ -0,0 +1,802 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1-devel +// protoc v3.19.4 +// source: fortunetiger.proto + +package fortunetiger + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +//fortunetiger +//龙 +type FortuneTigerPID int32 + +const ( + FortuneTigerPID_PACKET_FORTUNETIGER_ZERO FortuneTigerPID = 0 // 弃用消息号 + FortuneTigerPID_PACKET_FORTUNETIGER_SCFORTUNETIGERROOMINFO FortuneTigerPID = 5630 //房间信息 + FortuneTigerPID_PACKET_FORTUNETIGER_CSFORTUNETIGEROP FortuneTigerPID = 5631 + FortuneTigerPID_PACKET_FORTUNETIGER_SCFORTUNETIGEROP FortuneTigerPID = 5632 + FortuneTigerPID_PACKET_FORTUNETIGER_SCFORTUNETIGERROOMSTATE FortuneTigerPID = 5633 + FortuneTigerPID_PACKET_FORTUNETIGER_SCFORTUNETIGERBILLED FortuneTigerPID = 5634 +) + +// Enum value maps for FortuneTigerPID. +var ( + FortuneTigerPID_name = map[int32]string{ + 0: "PACKET_FORTUNETIGER_ZERO", + 5630: "PACKET_FORTUNETIGER_SCFORTUNETIGERROOMINFO", + 5631: "PACKET_FORTUNETIGER_CSFORTUNETIGEROP", + 5632: "PACKET_FORTUNETIGER_SCFORTUNETIGEROP", + 5633: "PACKET_FORTUNETIGER_SCFORTUNETIGERROOMSTATE", + 5634: "PACKET_FORTUNETIGER_SCFORTUNETIGERBILLED", + } + FortuneTigerPID_value = map[string]int32{ + "PACKET_FORTUNETIGER_ZERO": 0, + "PACKET_FORTUNETIGER_SCFORTUNETIGERROOMINFO": 5630, + "PACKET_FORTUNETIGER_CSFORTUNETIGEROP": 5631, + "PACKET_FORTUNETIGER_SCFORTUNETIGEROP": 5632, + "PACKET_FORTUNETIGER_SCFORTUNETIGERROOMSTATE": 5633, + "PACKET_FORTUNETIGER_SCFORTUNETIGERBILLED": 5634, + } +) + +func (x FortuneTigerPID) Enum() *FortuneTigerPID { + p := new(FortuneTigerPID) + *p = x + return p +} + +func (x FortuneTigerPID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FortuneTigerPID) Descriptor() protoreflect.EnumDescriptor { + return file_fortunetiger_proto_enumTypes[0].Descriptor() +} + +func (FortuneTigerPID) Type() protoreflect.EnumType { + return &file_fortunetiger_proto_enumTypes[0] +} + +func (x FortuneTigerPID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FortuneTigerPID.Descriptor instead. +func (FortuneTigerPID) EnumDescriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{0} +} + +type FortuneDragonPlayerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` //名字 + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //账号 + Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` //头像 + Sex int32 `protobuf:"varint,4,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 + Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 + Pos int32 `protobuf:"varint,6,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + Flag int32 `protobuf:"varint,7,opt,name=Flag,proto3" json:"Flag,omitempty"` //二进制标记 + Params []string `protobuf:"bytes,8,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:ip 等 + City string `protobuf:"bytes,9,opt,name=City,proto3" json:"City,omitempty"` //城市 + HeadOutLine int32 `protobuf:"varint,10,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框 + VIP int32 `protobuf:"varint,11,opt,name=VIP,proto3" json:"VIP,omitempty"` +} + +func (x *FortuneDragonPlayerData) Reset() { + *x = FortuneDragonPlayerData{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunetiger_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FortuneDragonPlayerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FortuneDragonPlayerData) ProtoMessage() {} + +func (x *FortuneDragonPlayerData) ProtoReflect() protoreflect.Message { + mi := &file_fortunetiger_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FortuneDragonPlayerData.ProtoReflect.Descriptor instead. +func (*FortuneDragonPlayerData) Descriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{0} +} + +func (x *FortuneDragonPlayerData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FortuneDragonPlayerData) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetHead() int32 { + if x != nil { + return x.Head + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetCoin() int64 { + if x != nil { + return x.Coin + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetPos() int32 { + if x != nil { + return x.Pos + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetFlag() int32 { + if x != nil { + return x.Flag + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetParams() []string { + if x != nil { + return x.Params + } + return nil +} + +func (x *FortuneDragonPlayerData) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *FortuneDragonPlayerData) GetHeadOutLine() int32 { + if x != nil { + return x.HeadOutLine + } + return 0 +} + +func (x *FortuneDragonPlayerData) GetVIP() int32 { + if x != nil { + return x.VIP + } + return 0 +} + +//房间信息 +//PACKET_FORTUNETIGER_SCFORTUNETIGERROOMINFO +type SCFortuneDragonRoomInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id + GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` + GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id + RoomMode int32 `protobuf:"varint,4,opt,name=RoomMode,proto3" json:"RoomMode,omitempty"` //游戏模式 + Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //规则参数 + NumOfGames int32 `protobuf:"varint,6,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` //当前第几局 + State int32 `protobuf:"varint,7,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + ParamsEx []int64 `protobuf:"varint,8,rep,packed,name=ParamsEx,proto3" json:"ParamsEx,omitempty"` //其他参数 + SceneType int32 `protobuf:"varint,9,opt,name=SceneType,proto3" json:"SceneType,omitempty"` //房间模式 + Player *FortuneDragonPlayerData `protobuf:"bytes,10,opt,name=Player,proto3" json:"Player,omitempty"` //房间内的玩家信息 + PlayerInfo string `protobuf:"bytes,11,opt,name=PlayerInfo,proto3" json:"PlayerInfo,omitempty"` +} + +func (x *SCFortuneDragonRoomInfo) Reset() { + *x = SCFortuneDragonRoomInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunetiger_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneDragonRoomInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneDragonRoomInfo) ProtoMessage() {} + +func (x *SCFortuneDragonRoomInfo) ProtoReflect() protoreflect.Message { + mi := &file_fortunetiger_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneDragonRoomInfo.ProtoReflect.Descriptor instead. +func (*SCFortuneDragonRoomInfo) Descriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{1} +} + +func (x *SCFortuneDragonRoomInfo) GetRoomId() int32 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetGameFreeId() int32 { + if x != nil { + return x.GameFreeId + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetGameId() int32 { + if x != nil { + return x.GameId + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetRoomMode() int32 { + if x != nil { + return x.RoomMode + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +func (x *SCFortuneDragonRoomInfo) GetNumOfGames() int32 { + if x != nil { + return x.NumOfGames + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetParamsEx() []int64 { + if x != nil { + return x.ParamsEx + } + return nil +} + +func (x *SCFortuneDragonRoomInfo) GetSceneType() int32 { + if x != nil { + return x.SceneType + } + return 0 +} + +func (x *SCFortuneDragonRoomInfo) GetPlayer() *FortuneDragonPlayerData { + if x != nil { + return x.Player + } + return nil +} + +func (x *SCFortuneDragonRoomInfo) GetPlayerInfo() string { + if x != nil { + return x.PlayerInfo + } + return "" +} + +//玩家操作 +//PACKET_FORTUNETIGER_CSFORTUNETIGEROP +type CSFortuneDragonOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 0.spin + Params []int64 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 下注索引编号 +} + +func (x *CSFortuneDragonOp) Reset() { + *x = CSFortuneDragonOp{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunetiger_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSFortuneDragonOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSFortuneDragonOp) ProtoMessage() {} + +func (x *CSFortuneDragonOp) ProtoReflect() protoreflect.Message { + mi := &file_fortunetiger_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSFortuneDragonOp.ProtoReflect.Descriptor instead. +func (*CSFortuneDragonOp) Descriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{2} +} + +func (x *CSFortuneDragonOp) GetOpCode() int32 { + if x != nil { + return x.OpCode + } + return 0 +} + +func (x *CSFortuneDragonOp) GetParams() []int64 { + if x != nil { + return x.Params + } + return nil +} + +//玩家操作返回 +//PACKET_FORTUNETIGER_SCFORTUNETIGEROP +type SCFortuneDragonOp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 + OpRetCode int32 `protobuf:"varint,2,opt,name=OpRetCode,proto3" json:"OpRetCode,omitempty"` //操作结果 1.金币不足 2.低于该值不能押注 + Params []int64 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 +} + +func (x *SCFortuneDragonOp) Reset() { + *x = SCFortuneDragonOp{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunetiger_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneDragonOp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneDragonOp) ProtoMessage() {} + +func (x *SCFortuneDragonOp) ProtoReflect() protoreflect.Message { + mi := &file_fortunetiger_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneDragonOp.ProtoReflect.Descriptor instead. +func (*SCFortuneDragonOp) Descriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{3} +} + +func (x *SCFortuneDragonOp) GetOpCode() int32 { + if x != nil { + return x.OpCode + } + return 0 +} + +func (x *SCFortuneDragonOp) GetOpRetCode() int32 { + if x != nil { + return x.OpRetCode + } + return 0 +} + +func (x *SCFortuneDragonOp) GetParams() []int64 { + if x != nil { + return x.Params + } + return nil +} + +//房间状态 +//PACKET_FORTUNETIGER_SCFORTUNETIGERROOMSTATE +type SCFortuneDragonRoomState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 + SubState int32 `protobuf:"varint,2,opt,name=SubState,proto3" json:"SubState,omitempty"` //房间当前子状态 + Params []int32 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //状态参数 +} + +func (x *SCFortuneDragonRoomState) Reset() { + *x = SCFortuneDragonRoomState{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunetiger_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneDragonRoomState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneDragonRoomState) ProtoMessage() {} + +func (x *SCFortuneDragonRoomState) ProtoReflect() protoreflect.Message { + mi := &file_fortunetiger_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneDragonRoomState.ProtoReflect.Descriptor instead. +func (*SCFortuneDragonRoomState) Descriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{4} +} + +func (x *SCFortuneDragonRoomState) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +func (x *SCFortuneDragonRoomState) GetSubState() int32 { + if x != nil { + return x.SubState + } + return 0 +} + +func (x *SCFortuneDragonRoomState) GetParams() []int32 { + if x != nil { + return x.Params + } + return nil +} + +//PACKET_FORTUNETIGER_SCFORTUNETIGERBILLED +type SCFortuneDragonBilled struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpRetCode int32 `protobuf:"varint,1,opt,name=OpRetCode,proto3" json:"OpRetCode,omitempty"` //0.spin成功 1.spin失败 + GameEndStr string `protobuf:"bytes,2,opt,name=GameEndStr,proto3" json:"GameEndStr,omitempty"` +} + +func (x *SCFortuneDragonBilled) Reset() { + *x = SCFortuneDragonBilled{} + if protoimpl.UnsafeEnabled { + mi := &file_fortunetiger_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCFortuneDragonBilled) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCFortuneDragonBilled) ProtoMessage() {} + +func (x *SCFortuneDragonBilled) ProtoReflect() protoreflect.Message { + mi := &file_fortunetiger_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCFortuneDragonBilled.ProtoReflect.Descriptor instead. +func (*SCFortuneDragonBilled) Descriptor() ([]byte, []int) { + return file_fortunetiger_proto_rawDescGZIP(), []int{5} +} + +func (x *SCFortuneDragonBilled) GetOpRetCode() int32 { + if x != nil { + return x.OpRetCode + } + return 0 +} + +func (x *SCFortuneDragonBilled) GetGameEndStr() string { + if x != nil { + return x.GameEndStr + } + return "" +} + +var File_fortunetiger_proto protoreflect.FileDescriptor + +var file_fortunetiger_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x74, 0x69, 0x67, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x74, 0x69, 0x67, + 0x65, 0x72, 0x22, 0x81, 0x02, 0x0a, 0x17, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x44, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, + 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, + 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, + 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, + 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x22, 0xec, 0x02, 0x0a, 0x17, 0x53, 0x43, 0x46, 0x6f, 0x72, + 0x74, 0x75, 0x6e, 0x65, 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, + 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, + 0x74, 0x69, 0x67, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x44, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x53, 0x46, 0x6f, 0x72, 0x74, 0x75, + 0x6e, 0x65, 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x61, 0x0a, 0x11, 0x53, 0x43, + 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x4f, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, + 0x18, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x55, 0x0a, 0x15, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, + 0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x2a, 0x97, 0x02, 0x0a, 0x0f, 0x46, + 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x54, 0x69, 0x67, 0x65, 0x72, 0x50, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, + 0x54, 0x49, 0x47, 0x45, 0x52, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x2f, 0x0a, 0x2a, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, + 0x47, 0x45, 0x52, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, + 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xfe, 0x2b, 0x12, 0x29, 0x0a, + 0x24, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, + 0x49, 0x47, 0x45, 0x52, 0x5f, 0x43, 0x53, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, + 0x47, 0x45, 0x52, 0x4f, 0x50, 0x10, 0xff, 0x2b, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, 0x45, 0x52, 0x5f, + 0x53, 0x43, 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, 0x45, 0x52, 0x4f, 0x50, + 0x10, 0x80, 0x2c, 0x12, 0x30, 0x0a, 0x2b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x46, 0x4f, + 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, 0x45, 0x52, 0x5f, 0x53, 0x43, 0x46, 0x4f, 0x52, + 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x10, 0x81, 0x2c, 0x12, 0x2d, 0x0a, 0x28, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x46, 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, 0x45, 0x52, 0x5f, 0x53, 0x43, 0x46, + 0x4f, 0x52, 0x54, 0x55, 0x4e, 0x45, 0x54, 0x49, 0x47, 0x45, 0x52, 0x42, 0x49, 0x4c, 0x4c, 0x45, + 0x44, 0x10, 0x82, 0x2c, 0x42, 0x2c, 0x5a, 0x2a, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, + 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x74, 0x69, 0x67, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_fortunetiger_proto_rawDescOnce sync.Once + file_fortunetiger_proto_rawDescData = file_fortunetiger_proto_rawDesc +) + +func file_fortunetiger_proto_rawDescGZIP() []byte { + file_fortunetiger_proto_rawDescOnce.Do(func() { + file_fortunetiger_proto_rawDescData = protoimpl.X.CompressGZIP(file_fortunetiger_proto_rawDescData) + }) + return file_fortunetiger_proto_rawDescData +} + +var file_fortunetiger_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_fortunetiger_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_fortunetiger_proto_goTypes = []interface{}{ + (FortuneTigerPID)(0), // 0: fortunetiger.FortuneTigerPID + (*FortuneDragonPlayerData)(nil), // 1: fortunetiger.FortuneDragonPlayerData + (*SCFortuneDragonRoomInfo)(nil), // 2: fortunetiger.SCFortuneDragonRoomInfo + (*CSFortuneDragonOp)(nil), // 3: fortunetiger.CSFortuneDragonOp + (*SCFortuneDragonOp)(nil), // 4: fortunetiger.SCFortuneDragonOp + (*SCFortuneDragonRoomState)(nil), // 5: fortunetiger.SCFortuneDragonRoomState + (*SCFortuneDragonBilled)(nil), // 6: fortunetiger.SCFortuneDragonBilled +} +var file_fortunetiger_proto_depIdxs = []int32{ + 1, // 0: fortunetiger.SCFortuneDragonRoomInfo.Player:type_name -> fortunetiger.FortuneDragonPlayerData + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_fortunetiger_proto_init() } +func file_fortunetiger_proto_init() { + if File_fortunetiger_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_fortunetiger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FortuneDragonPlayerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunetiger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneDragonRoomInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunetiger_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSFortuneDragonOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunetiger_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneDragonOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunetiger_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneDragonRoomState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fortunetiger_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCFortuneDragonBilled); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_fortunetiger_proto_rawDesc, + NumEnums: 1, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_fortunetiger_proto_goTypes, + DependencyIndexes: file_fortunetiger_proto_depIdxs, + EnumInfos: file_fortunetiger_proto_enumTypes, + MessageInfos: file_fortunetiger_proto_msgTypes, + }.Build() + File_fortunetiger_proto = out.File + file_fortunetiger_proto_rawDesc = nil + file_fortunetiger_proto_goTypes = nil + file_fortunetiger_proto_depIdxs = nil +} diff --git a/protocol/fortunetiger/fortunetiger.proto b/protocol/fortunetiger/fortunetiger.proto new file mode 100644 index 0000000..3f8b4ad --- /dev/null +++ b/protocol/fortunetiger/fortunetiger.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package fortunetiger; +option go_package = "mongo.games.com/game/protocol/fortunetiger"; + +//fortunetiger +//龙 +enum FortuneTigerPID { + PACKET_FORTUNETIGER_ZERO = 0;// 弃用消息号 + PACKET_FORTUNETIGER_SCFORTUNETIGERROOMINFO = 5630; //房间信息 + PACKET_FORTUNETIGER_CSFORTUNETIGEROP = 5631; + PACKET_FORTUNETIGER_SCFORTUNETIGEROP = 5632; + PACKET_FORTUNETIGER_SCFORTUNETIGERROOMSTATE = 5633; + PACKET_FORTUNETIGER_SCFORTUNETIGERBILLED = 5634; +} + +message FortuneDragonPlayerData { + string Name = 1; //名字 + int32 SnId = 2; //账号 + int32 Head = 3; //头像 + int32 Sex = 4; //性别 + int64 Coin = 5; //金币 + int32 Pos = 6; //座位位置 + int32 Flag = 7; //二进制标记 + repeated string Params = 8; //其他数据 如:ip 等 + string City = 9; //城市 + int32 HeadOutLine = 10; //头像框 + int32 VIP = 11; +} +//房间信息 +//PACKET_FORTUNETIGER_SCFORTUNETIGERROOMINFO +message SCFortuneDragonRoomInfo { + int32 RoomId = 1; //房间id + int32 GameFreeId = 2; + int32 GameId = 3; //游戏id + int32 RoomMode = 4; //游戏模式 + repeated int32 Params = 5; //规则参数 + int32 NumOfGames = 6; //当前第几局 + int32 State = 7; //房间当前状态 + repeated int64 ParamsEx = 8; //其他参数 + int32 SceneType = 9; //房间模式 + FortuneDragonPlayerData Player = 10; //房间内的玩家信息 + string PlayerInfo = 11; +} +//玩家操作 +//PACKET_FORTUNETIGER_CSFORTUNETIGEROP +message CSFortuneDragonOp { + int32 OpCode = 1; //操作码 0.spin + repeated int64 Params = 2; //操作参数 下注索引编号 +} +//玩家操作返回 +//PACKET_FORTUNETIGER_SCFORTUNETIGEROP +message SCFortuneDragonOp { + int32 OpCode = 1; //操作码 + int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 + repeated int64 Params = 3; //操作参数 +} +//房间状态 +//PACKET_FORTUNETIGER_SCFORTUNETIGERROOMSTATE +message SCFortuneDragonRoomState { + int32 State = 1; //房间当前状态 + int32 SubState = 2; //房间当前子状态 + repeated int32 Params = 3; //状态参数 +} +//PACKET_FORTUNETIGER_SCFORTUNETIGERBILLED +message SCFortuneDragonBilled{ + int32 OpRetCode = 1;//0.spin成功 1.spin失败 + string GameEndStr = 2; +} \ No newline at end of file