Compare commits
16 Commits
e419902ac1
...
c14c15e18b
Author | SHA1 | Date |
---|---|---|
|
c14c15e18b | |
|
94a4737609 | |
|
f782b799ab | |
|
613ed6da76 | |
|
466eafe1bc | |
|
a13ed034d7 | |
|
825f22a3bf | |
|
3f95d10437 | |
|
ab974063e8 | |
|
85ba5689b1 | |
|
8736f54fe1 | |
|
919129d70f | |
|
7ebe12c3de | |
|
18e3e5cd7d | |
|
71655d8126 | |
|
00b0e01000 |
|
@ -66,6 +66,10 @@ const (
|
||||||
GameID_Thirteen8 = 212 // 十三张(八人场)
|
GameID_Thirteen8 = 212 // 十三张(八人场)
|
||||||
GameID_ThirteenFree = 213 // 十三张(自由场经典场)
|
GameID_ThirteenFree = 213 // 十三张(自由场经典场)
|
||||||
GameID_ThirteenFreeLaiZi = 214 // 十三张(自由场癞子场)
|
GameID_ThirteenFreeLaiZi = 214 // 十三张(自由场癞子场)
|
||||||
|
GameId_TienLenCustom = 215 // tienlen房卡经典版
|
||||||
|
GameId_TienLenCustom_yl = 216 // tienlen房卡娱乐版
|
||||||
|
GameId_TienLenCustom_toend = 217 // tienlen房卡典版(打到底)
|
||||||
|
GameId_TienLenCustom_yl_toend = 218 // tienlen房卡娱乐版(打到底)
|
||||||
__GameId_Slot_Min__ = 300 //################拉霸类################
|
__GameId_Slot_Min__ = 300 //################拉霸类################
|
||||||
GameId_CaiShen = 301 // 财神
|
GameId_CaiShen = 301 // 财神
|
||||||
GameId_Avengers = 302 // 复仇者联盟
|
GameId_Avengers = 302 // 复仇者联盟
|
||||||
|
@ -116,7 +120,9 @@ func IsTienLenYuLe(gameId int) bool {
|
||||||
GameId_TienLenSelect_yl,
|
GameId_TienLenSelect_yl,
|
||||||
GameId_TienLenRank_yl,
|
GameId_TienLenRank_yl,
|
||||||
GameId_TienLenSelect_yl_toend,
|
GameId_TienLenSelect_yl_toend,
|
||||||
GameId_TienLenRank_yl_toend:
|
GameId_TienLenRank_yl_toend,
|
||||||
|
GameId_TienLenCustom_yl,
|
||||||
|
GameId_TienLenCustom_yl_toend:
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
@ -131,7 +137,9 @@ func IsTienLenToEnd(gameId int) bool {
|
||||||
GameId_TienLenSelect_toend,
|
GameId_TienLenSelect_toend,
|
||||||
GameId_TienLenSelect_yl_toend,
|
GameId_TienLenSelect_yl_toend,
|
||||||
GameId_TienLenRank_toend,
|
GameId_TienLenRank_toend,
|
||||||
GameId_TienLenRank_yl_toend:
|
GameId_TienLenRank_yl_toend,
|
||||||
|
GameId_TienLenCustom_toend,
|
||||||
|
GameId_TienLenCustom_yl_toend:
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
@ -853,3 +861,9 @@ const (
|
||||||
On = 1 // 开启
|
On = 1 // 开启
|
||||||
Off = 2 // 关闭
|
Off = 2 // 关闭
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DataConfigAll = 0 // 全部配置
|
||||||
|
DataConfigSprite = 1 // 精灵配置
|
||||||
|
DataConfigMatchAudience = 2 // 赛事观战开关
|
||||||
|
)
|
||||||
|
|
Binary file not shown.
|
@ -3424,6 +3424,106 @@
|
||||||
"BetWaterRate": 100,
|
"BetWaterRate": 100,
|
||||||
"IsDrop": 1
|
"IsDrop": 1
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Id": 2150001,
|
||||||
|
"Name": "tienlen房卡经典",
|
||||||
|
"Title": "房卡场",
|
||||||
|
"GameId": 215,
|
||||||
|
"GameRule": 21500,
|
||||||
|
"GameType": 2,
|
||||||
|
"SceneType": 1,
|
||||||
|
"Desc": "0",
|
||||||
|
"ShowType": 3,
|
||||||
|
"BaseScore": 10,
|
||||||
|
"BetDec": "10",
|
||||||
|
"Ai": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"OtherIntParams": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"GameDif": "207",
|
||||||
|
"GameClass": 1,
|
||||||
|
"PlatformName": "越南棋牌",
|
||||||
|
"PlayerWaterRate": 100,
|
||||||
|
"BetWaterRate": 100,
|
||||||
|
"IsCustom": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 2160001,
|
||||||
|
"Name": "tienlen房卡娱乐",
|
||||||
|
"Title": "房卡场",
|
||||||
|
"GameId": 216,
|
||||||
|
"GameRule": 21600,
|
||||||
|
"GameType": 2,
|
||||||
|
"SceneType": 1,
|
||||||
|
"Desc": "0",
|
||||||
|
"ShowType": 3,
|
||||||
|
"BaseScore": 10,
|
||||||
|
"BetDec": "10",
|
||||||
|
"Ai": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"OtherIntParams": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"GameDif": "207",
|
||||||
|
"GameClass": 1,
|
||||||
|
"PlatformName": "越南棋牌",
|
||||||
|
"PlayerWaterRate": 100,
|
||||||
|
"BetWaterRate": 100,
|
||||||
|
"IsCustom": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 2170001,
|
||||||
|
"Name": "tienlen房卡经典打到底",
|
||||||
|
"Title": "房卡场",
|
||||||
|
"GameId": 217,
|
||||||
|
"GameRule": 21700,
|
||||||
|
"GameType": 2,
|
||||||
|
"SceneType": 1,
|
||||||
|
"Desc": "0",
|
||||||
|
"ShowType": 3,
|
||||||
|
"BaseScore": 10,
|
||||||
|
"BetDec": "10",
|
||||||
|
"Ai": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"OtherIntParams": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"GameDif": "207",
|
||||||
|
"GameClass": 1,
|
||||||
|
"PlatformName": "越南棋牌",
|
||||||
|
"PlayerWaterRate": 100,
|
||||||
|
"BetWaterRate": 100,
|
||||||
|
"IsCustom": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 2180001,
|
||||||
|
"Name": "tienlen房卡娱乐打到底",
|
||||||
|
"Title": "房卡场",
|
||||||
|
"GameId": 218,
|
||||||
|
"GameRule": 21800,
|
||||||
|
"GameType": 2,
|
||||||
|
"SceneType": 1,
|
||||||
|
"Desc": "0",
|
||||||
|
"ShowType": 3,
|
||||||
|
"BaseScore": 10,
|
||||||
|
"BetDec": "10",
|
||||||
|
"Ai": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"OtherIntParams": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"GameDif": "207",
|
||||||
|
"GameClass": 1,
|
||||||
|
"PlatformName": "越南棋牌",
|
||||||
|
"PlayerWaterRate": 100,
|
||||||
|
"BetWaterRate": 100,
|
||||||
|
"IsCustom": 1
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Id": 8070001,
|
"Id": 8070001,
|
||||||
"Name": "Tienlen经典",
|
"Name": "Tienlen经典",
|
||||||
|
|
Binary file not shown.
|
@ -142,6 +142,30 @@
|
||||||
"GameId": 247,
|
"GameId": 247,
|
||||||
"GameDif": "247"
|
"GameDif": "247"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Id": 21500,
|
||||||
|
"Name": "tienlen房卡经典",
|
||||||
|
"GameId": 215,
|
||||||
|
"GameDif": "215"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 21600,
|
||||||
|
"Name": "tienlen房卡娱乐",
|
||||||
|
"GameId": 216,
|
||||||
|
"GameDif": "216"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 21700,
|
||||||
|
"Name": "tienlen房卡经典打到底",
|
||||||
|
"GameId": 217,
|
||||||
|
"GameDif": "217"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 21800,
|
||||||
|
"Name": "tienlen房卡娱乐打到底",
|
||||||
|
"GameId": 218,
|
||||||
|
"GameDif": "218"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Id": 60600,
|
"Id": 60600,
|
||||||
"Name": "愤怒大叔",
|
"Name": "愤怒大叔",
|
||||||
|
|
Binary file not shown.
BIN
data/DB_Task.dat
BIN
data/DB_Task.dat
Binary file not shown.
|
@ -1,3 +1,7 @@
|
||||||
|
|
||||||
荅
|
ä§*
|
||||||
罘
|
VIPShow.t1
|
||||||
|
ã§ *
|
||||||
|
VIPShow.t2
|
||||||
|
±ê *
|
||||||
|
VIPShow.t3
|
|
@ -2,12 +2,23 @@
|
||||||
"Arr": [
|
"Arr": [
|
||||||
{
|
{
|
||||||
"Id": 1,
|
"Id": 1,
|
||||||
"SkinId": 300004
|
"Type": 1,
|
||||||
|
"SkinId": 300004,
|
||||||
|
"VIPDes": "VIPShow.t1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Id": 2,
|
"Id": 2,
|
||||||
|
"Type": 1,
|
||||||
"SkinId": 300003,
|
"SkinId": 300003,
|
||||||
"VIPLevel": 3
|
"VIPLevel": 3,
|
||||||
|
"VIPDes": "VIPShow.t2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 3,
|
||||||
|
"Type": 2,
|
||||||
|
"SkinId": 30001,
|
||||||
|
"VIPLevel": 6,
|
||||||
|
"VIPDes": "VIPShow.t3"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"GameName":"tienlen房卡经典",
|
||||||
|
"GameId":215,
|
||||||
|
"GameMode":[0],
|
||||||
|
"SceneType":[1],
|
||||||
|
"CanForceStart":true,
|
||||||
|
"MinPlayerCnt":2,
|
||||||
|
"DefaultPlayerCnt":4,
|
||||||
|
"TimeFreeStart":0,
|
||||||
|
"TimeFreeEnd":0,
|
||||||
|
"DependentPlayerCnt":true,
|
||||||
|
"EnterAfterStart":false
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"GameName":"tienlen房卡经典打到底",
|
||||||
|
"GameId":217,
|
||||||
|
"GameMode":[0],
|
||||||
|
"SceneType":[1],
|
||||||
|
"CanForceStart":true,
|
||||||
|
"MinPlayerCnt":2,
|
||||||
|
"DefaultPlayerCnt":4,
|
||||||
|
"TimeFreeStart":0,
|
||||||
|
"TimeFreeEnd":0,
|
||||||
|
"DependentPlayerCnt":true,
|
||||||
|
"EnterAfterStart":false
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"GameName":"tienlen房卡娱乐",
|
||||||
|
"GameId":216,
|
||||||
|
"GameMode":[0],
|
||||||
|
"SceneType":[1],
|
||||||
|
"CanForceStart":true,
|
||||||
|
"MinPlayerCnt":2,
|
||||||
|
"DefaultPlayerCnt":4,
|
||||||
|
"TimeFreeStart":0,
|
||||||
|
"TimeFreeEnd":0,
|
||||||
|
"DependentPlayerCnt":true,
|
||||||
|
"EnterAfterStart":false
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"GameName":"tienlen房卡娱乐打到底",
|
||||||
|
"GameId":218,
|
||||||
|
"GameMode":[0],
|
||||||
|
"SceneType":[1],
|
||||||
|
"CanForceStart":true,
|
||||||
|
"MinPlayerCnt":2,
|
||||||
|
"DefaultPlayerCnt":4,
|
||||||
|
"TimeFreeStart":0,
|
||||||
|
"TimeFreeEnd":0,
|
||||||
|
"DependentPlayerCnt":true,
|
||||||
|
"EnterAfterStart":false
|
||||||
|
}
|
|
@ -72,11 +72,13 @@ func init() {
|
||||||
totalOfGames := msg.GetTotalOfGames()
|
totalOfGames := msg.GetTotalOfGames()
|
||||||
baseScore := msg.GetBaseScore()
|
baseScore := msg.GetBaseScore()
|
||||||
playerNum := int(msg.GetPlayerNum())
|
playerNum := int(msg.GetPlayerNum())
|
||||||
|
matchInfoId := msg.GetMatchInfoId()
|
||||||
scene := base.SceneMgrSington.CreateScene(s, sceneId, gameMode, sceneMode, gameId, msg.GetPlatform(), msg.GetParams(),
|
scene := base.SceneMgrSington.CreateScene(s, sceneId, gameMode, sceneMode, gameId, msg.GetPlatform(), msg.GetParams(),
|
||||||
msg.GetAgentor(), msg.GetCreator(), msg.GetReplayCode(), hallId, groupId, totalOfGames, dbGameFree,
|
msg.GetAgentor(), msg.GetCreator(), msg.GetReplayCode(), hallId, groupId, totalOfGames, dbGameFree,
|
||||||
bEnterAfterStart, baseScore, playerNum, msg.GetChessRank(), paramsEx...)
|
bEnterAfterStart, baseScore, playerNum, msg.GetChessRank(), paramsEx...)
|
||||||
if scene != nil {
|
if scene != nil {
|
||||||
if scene.IsMatchScene() {
|
if scene.IsMatchScene() {
|
||||||
|
scene.MatchInfoId = matchInfoId
|
||||||
if len(scene.Params) > 0 {
|
if len(scene.Params) > 0 {
|
||||||
scene.MatchId = scene.Params[0]
|
scene.MatchId = scene.Params[0]
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,6 +136,7 @@ type Scene struct {
|
||||||
Novice bool
|
Novice bool
|
||||||
Welfare bool
|
Welfare bool
|
||||||
KillPoints bool
|
KillPoints bool
|
||||||
|
MatchInfoId int32
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewScene(ws *netlib.Session, sceneId, gameMode, sceneMode, gameId int, platform string, params []int64,
|
func NewScene(ws *netlib.Session, sceneId, gameMode, sceneMode, gameId int, platform string, params []int64,
|
||||||
|
@ -699,7 +700,7 @@ func (this *Scene) AudienceLeave(p *Player, reason int) {
|
||||||
//当前状态不能离场
|
//当前状态不能离场
|
||||||
if !this.CanChangeCoinScene(p) {
|
if !this.CanChangeCoinScene(p) {
|
||||||
pack := &gamehall.SCLeaveRoom{
|
pack := &gamehall.SCLeaveRoom{
|
||||||
OpRetCode: (gamehall.OpResultCode_Game(p.OpCode)), //protocol.OpResultCode_OPRC_Hundred_YouHadBetCannotLeave,
|
OpRetCode: gamehall.OpResultCode_Game(p.OpCode), //protocol.OpResultCode_OPRC_Hundred_YouHadBetCannotLeave,
|
||||||
RoomId: proto.Int(this.SceneId),
|
RoomId: proto.Int(this.SceneId),
|
||||||
}
|
}
|
||||||
proto.SetDefaults(pack)
|
proto.SetDefaults(pack)
|
||||||
|
|
|
@ -619,6 +619,9 @@ func (this *TienLenSceneData) SendHandCard_Match() {
|
||||||
proto.SetDefaults(pack)
|
proto.SetDefaults(pack)
|
||||||
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||||
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
|
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
|
||||||
|
|
||||||
|
pack.SnId = seat.SnId
|
||||||
|
this.BroadcastToAudience(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -652,6 +655,9 @@ func (this *TienLenSceneData) SendHandCard_Match() {
|
||||||
proto.SetDefaults(pack)
|
proto.SetDefaults(pack)
|
||||||
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||||
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
|
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
|
||||||
|
|
||||||
|
pack.SnId = seat.SnId
|
||||||
|
this.BroadcastToAudience(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -436,6 +436,7 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen
|
||||||
CurPlayerNum: int32(s.MatchCurPlayerNum),
|
CurPlayerNum: int32(s.MatchCurPlayerNum),
|
||||||
NextNeed: int32(s.MatchNextNeed),
|
NextNeed: int32(s.MatchNextNeed),
|
||||||
RecordId: sceneEx.recordId,
|
RecordId: sceneEx.recordId,
|
||||||
|
TMInfoId: sceneEx.MatchInfoId,
|
||||||
}
|
}
|
||||||
pack.IsMatch = int32(0)
|
pack.IsMatch = int32(0)
|
||||||
// 0.普通场 1.锦标赛 2.冠军赛 3.vip专属
|
// 0.普通场 1.锦标赛 2.冠军赛 3.vip专属
|
||||||
|
@ -517,7 +518,7 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen
|
||||||
//手牌
|
//手牌
|
||||||
for j := int32(0); j < rule.HandCardNum; j++ {
|
for j := int32(0); j < rule.HandCardNum; j++ {
|
||||||
if nowPlayer.cards[j] != rule.InvalideCard {
|
if nowPlayer.cards[j] != rule.InvalideCard {
|
||||||
if s.GetSceneState().GetState() == rule.TienLenSceneStateBilled { //结算状态显示用
|
if s.GetSceneState().GetState() == rule.TienLenSceneStateBilled || p.IsMarkFlag(base.PlayerState_Audience) { //结算状态显示用
|
||||||
pd1.Cards = append(pd1.Cards, nowPlayer.cards[j])
|
pd1.Cards = append(pd1.Cards, nowPlayer.cards[j])
|
||||||
} else {
|
} else {
|
||||||
pd1.Cards = append(pd1.Cards, rule.InvalideCard)
|
pd1.Cards = append(pd1.Cards, rule.InvalideCard)
|
||||||
|
|
|
@ -135,7 +135,7 @@ type AllConfig struct {
|
||||||
*webapi.AwardLogConfig
|
*webapi.AwardLogConfig
|
||||||
// 新手引导配置
|
// 新手引导配置
|
||||||
*webapi.GuideConfig
|
*webapi.GuideConfig
|
||||||
MatchAudience map[int32]*webapi.MatchAudience // 比赛观众列表
|
MatchAudience map[int32]*webapi.MatchAudience // 比赛观众列表 key: 玩家id
|
||||||
// 小精灵配置
|
// 小精灵配置
|
||||||
*webapi.SpiritConfig
|
*webapi.SpiritConfig
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,7 @@ const (
|
||||||
OpResultCode_Game_OPRC_AllocRoomIdFailed_Game OpResultCode_Game = 1097 //房间id获取失败
|
OpResultCode_Game_OPRC_AllocRoomIdFailed_Game OpResultCode_Game = 1097 //房间id获取失败
|
||||||
OpResultCode_Game_OPRC_PrivateRoomCountLimit_Game OpResultCode_Game = 1098 //私人房间上限
|
OpResultCode_Game_OPRC_PrivateRoomCountLimit_Game OpResultCode_Game = 1098 //私人房间上限
|
||||||
OpResultCode_Game_OPRC_RoomNotExit OpResultCode_Game = 1099 // 已经不在房间了
|
OpResultCode_Game_OPRC_RoomNotExit OpResultCode_Game = 1099 // 已经不在房间了
|
||||||
|
OpResultCode_Game_OPRC_MatchAudience OpResultCode_Game = 1100 // 不在比赛观战白名单
|
||||||
OpResultCode_Game_OPRC_LowerRice_ScenceMax_Game OpResultCode_Game = 1075 //超过最大下米数量
|
OpResultCode_Game_OPRC_LowerRice_ScenceMax_Game OpResultCode_Game = 1075 //超过最大下米数量
|
||||||
OpResultCode_Game_OPRC_LowerRice_PlayerMax_Game OpResultCode_Game = 1076 //超过单个用户最大下米数
|
OpResultCode_Game_OPRC_LowerRice_PlayerMax_Game OpResultCode_Game = 1076 //超过单个用户最大下米数
|
||||||
OpResultCode_Game_OPRC_LowerRice_PlayerDownMax_Game OpResultCode_Game = 1077
|
OpResultCode_Game_OPRC_LowerRice_PlayerDownMax_Game OpResultCode_Game = 1077
|
||||||
|
@ -95,6 +96,7 @@ var (
|
||||||
1097: "OPRC_AllocRoomIdFailed_Game",
|
1097: "OPRC_AllocRoomIdFailed_Game",
|
||||||
1098: "OPRC_PrivateRoomCountLimit_Game",
|
1098: "OPRC_PrivateRoomCountLimit_Game",
|
||||||
1099: "OPRC_RoomNotExit",
|
1099: "OPRC_RoomNotExit",
|
||||||
|
1100: "OPRC_MatchAudience",
|
||||||
1075: "OPRC_LowerRice_ScenceMax_Game",
|
1075: "OPRC_LowerRice_ScenceMax_Game",
|
||||||
1076: "OPRC_LowerRice_PlayerMax_Game",
|
1076: "OPRC_LowerRice_PlayerMax_Game",
|
||||||
1077: "OPRC_LowerRice_PlayerDownMax_Game",
|
1077: "OPRC_LowerRice_PlayerDownMax_Game",
|
||||||
|
@ -136,6 +138,7 @@ var (
|
||||||
"OPRC_AllocRoomIdFailed_Game": 1097,
|
"OPRC_AllocRoomIdFailed_Game": 1097,
|
||||||
"OPRC_PrivateRoomCountLimit_Game": 1098,
|
"OPRC_PrivateRoomCountLimit_Game": 1098,
|
||||||
"OPRC_RoomNotExit": 1099,
|
"OPRC_RoomNotExit": 1099,
|
||||||
|
"OPRC_MatchAudience": 1100,
|
||||||
"OPRC_LowerRice_ScenceMax_Game": 1075,
|
"OPRC_LowerRice_ScenceMax_Game": 1075,
|
||||||
"OPRC_LowerRice_PlayerMax_Game": 1076,
|
"OPRC_LowerRice_PlayerMax_Game": 1076,
|
||||||
"OPRC_LowerRice_PlayerDownMax_Game": 1077,
|
"OPRC_LowerRice_PlayerDownMax_Game": 1077,
|
||||||
|
@ -7942,7 +7945,7 @@ var file_game_proto_rawDesc = []byte{
|
||||||
0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61,
|
0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61,
|
||||||
0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d,
|
0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d,
|
||||||
0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73,
|
0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73,
|
||||||
0x2a, 0xe6, 0x09, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
|
0x2a, 0xff, 0x09, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
|
||||||
0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53,
|
0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53,
|
||||||
0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
|
0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
|
||||||
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||||
|
@ -7993,226 +7996,228 @@ var file_game_proto_rawDesc = []byte{
|
||||||
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d,
|
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d,
|
||||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||||
0xca, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x4e,
|
0xca, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x4e,
|
||||||
0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52,
|
0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52,
|
||||||
0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e,
|
0x43, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x10,
|
||||||
0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a,
|
0xcc, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72,
|
||||||
0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f,
|
0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47,
|
||||||
0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4,
|
0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c,
|
||||||
0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52,
|
0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d,
|
||||||
0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61,
|
0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4, 0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50,
|
||||||
0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52,
|
0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61,
|
||||||
0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43,
|
0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||||
0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41,
|
||||||
0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64,
|
0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65,
|
||||||
0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61,
|
0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f,
|
||||||
0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f,
|
0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63,
|
||||||
0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65,
|
0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c,
|
||||||
0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74,
|
0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54,
|
||||||
0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d,
|
0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a,
|
||||||
0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75,
|
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f,
|
||||||
0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61,
|
0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a,
|
||||||
0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67,
|
0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49,
|
||||||
0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b,
|
||||||
0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f,
|
0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
|
||||||
0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19,
|
0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f,
|
||||||
0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72,
|
0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f,
|
||||||
0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52,
|
0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f,
|
||||||
0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f,
|
0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||||
0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f,
|
0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75,
|
||||||
0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73,
|
0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d,
|
||||||
0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61,
|
0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72,
|
||||||
0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18,
|
0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||||
0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c,
|
0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50,
|
||||||
0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
|
0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98,
|
0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10,
|
||||||
0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a,
|
0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a,
|
||||||
0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x99, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41,
|
0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f,
|
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45,
|
||||||
0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x10, 0x99, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||||
0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11,
|
0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19,
|
||||||
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e,
|
0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41,
|
||||||
0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f,
|
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d,
|
||||||
0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12,
|
0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a,
|
||||||
0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54,
|
0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52,
|
||||||
0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9f, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41,
|
0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45,
|
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d,
|
||||||
0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x18, 0x0a,
|
0x10, 0x9f, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52,
|
0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52,
|
||||||
0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2,
|
0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11,
|
||||||
0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51,
|
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e,
|
||||||
0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45,
|
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45,
|
||||||
0x10, 0xa4, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41, 0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12,
|
0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa4, 0x11, 0x12, 0x1a, 0x0a, 0x15,
|
||||||
0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41,
|
||||||
0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
|
0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa7,
|
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6,
|
||||||
0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54,
|
0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54,
|
||||||
0x41, 0x53, 0x4b, 0x43, 0x48, 0x47, 0x10, 0xa8, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43,
|
0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa7, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41,
|
||||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c,
|
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x43, 0x48, 0x47, 0x10,
|
||||||
0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
0xa8, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||||
0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c,
|
0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12,
|
||||||
0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b,
|
0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53,
|
||||||
0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17,
|
0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52,
|
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49,
|
||||||
0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41,
|
0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54,
|
0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45,
|
||||||
0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41,
|
0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54,
|
0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43,
|
||||||
0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41,
|
0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54,
|
0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43,
|
||||||
0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41,
|
0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10,
|
0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43,
|
||||||
0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||||
0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53,
|
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59,
|
||||||
0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49,
|
0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a,
|
||||||
0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41,
|
||||||
0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45,
|
0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f,
|
||||||
0x49, 0x44, 0x53, 0x10, 0xb6, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c,
|
||||||
0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49,
|
0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb6, 0x11, 0x12,
|
||||||
0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54,
|
||||||
0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10,
|
0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a,
|
||||||
0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41,
|
||||||
0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
|
0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50,
|
||||||
0x10, 0xb9, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47,
|
||||||
0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a,
|
0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0xb9, 0x11, 0x12, 0x18, 0x0a, 0x13,
|
||||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48,
|
||||||
0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||||
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2,
|
0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11,
|
||||||
0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c,
|
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45,
|
||||||
0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50,
|
0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
||||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f,
|
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c,
|
||||||
0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b,
|
0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49,
|
0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4,
|
||||||
0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48,
|
||||||
0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54,
|
0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e,
|
||||||
0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d,
|
||||||
0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41,
|
0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e,
|
||||||
0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d,
|
||||||
0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e,
|
0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d,
|
||||||
0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d,
|
||||||
0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10,
|
0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a,
|
||||||
0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50,
|
||||||
0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11,
|
0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10, 0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50,
|
||||||
0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55,
|
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49,
|
||||||
0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f,
|
0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
|
||||||
0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54,
|
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e,
|
||||||
0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12,
|
0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||||
0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53,
|
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46,
|
||||||
0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11,
|
0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e,
|
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e,
|
||||||
0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15,
|
0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43,
|
||||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44,
|
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41,
|
||||||
0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b,
|
0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d,
|
0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf,
|
||||||
0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c,
|
||||||
0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 0x11,
|
0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a,
|
||||||
0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c,
|
0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45,
|
||||||
0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57,
|
0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43,
|
||||||
0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43,
|
||||||
0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53,
|
0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x25,
|
||||||
0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20,
|
0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49,
|
||||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41,
|
0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54,
|
||||||
0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43,
|
0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||||
0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53,
|
||||||
0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41,
|
0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e,
|
||||||
0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41,
|
||||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55,
|
0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5,
|
||||||
0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a,
|
0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54,
|
||||||
0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52,
|
0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53,
|
||||||
0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18,
|
0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54,
|
0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41,
|
||||||
0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50,
|
0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48,
|
0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d,
|
||||||
0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41,
|
0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52,
|
0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45,
|
||||||
0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
|
0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45,
|
0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10,
|
||||||
0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
|
||||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49,
|
0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11,
|
||||||
0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48,
|
||||||
0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41,
|
0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25,
|
||||||
0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xdd, 0x11, 0x12, 0x25, 0x0a, 0x20,
|
0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49,
|
||||||
|
0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41,
|
||||||
|
0x54, 0x45, 0x10, 0xdd, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||||
|
0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41,
|
||||||
|
0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xde, 0x11, 0x12, 0x2a, 0x0a, 0x25,
|
||||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47,
|
||||||
0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
|
0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
|
||||||
0x10, 0xde, 0x11, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43,
|
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56,
|
||||||
0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 0x11, 0x12,
|
0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41,
|
||||||
0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45,
|
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52,
|
||||||
0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0,
|
0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c,
|
||||||
0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49,
|
||||||
0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d,
|
0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12,
|
||||||
0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54,
|
||||||
0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c,
|
0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10,
|
||||||
0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
0xe3, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
|
||||||
0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f,
|
0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49,
|
||||||
0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe3, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43,
|
0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
|
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45,
|
||||||
0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12,
|
0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21,
|
||||||
0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54,
|
0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54,
|
||||||
0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f,
|
0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6,
|
||||||
0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44,
|
||||||
0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
|
0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f,
|
||||||
0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b,
|
0x4d, 0x10, 0xe7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49,
|
0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10,
|
||||||
0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50,
|
0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f,
|
0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11,
|
||||||
0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
|
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41,
|
||||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d,
|
0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15,
|
||||||
0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42,
|
||||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54,
|
0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10,
|
||||||
0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 0x11, 0x12,
|
0xed, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||||
0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d,
|
0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46, 0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12,
|
||||||
0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xed, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43,
|
0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54,
|
||||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46,
|
0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10, 0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50,
|
||||||
0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59,
|
||||||
0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10,
|
0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||||
0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
|
0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1,
|
||||||
0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a,
|
0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c,
|
||||||
0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45,
|
0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c, 0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a,
|
||||||
0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b,
|
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41,
|
||||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c,
|
0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||||
0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4,
|
||||||
0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18,
|
0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41,
|
||||||
0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f,
|
0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a,
|
||||||
0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b,
|
0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45,
|
||||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49,
|
0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43,
|
||||||
0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45,
|
||||||
0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11,
|
0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f,
|
0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a,
|
||||||
0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43,
|
0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12,
|
||||||
0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74,
|
||||||
0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49,
|
0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xfa, 0x11, 0x12, 0x18, 0x0a, 0x13,
|
||||||
0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52,
|
||||||
0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
|
0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||||
0x10, 0xfa, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e,
|
||||||
0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a,
|
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45,
|
||||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45,
|
0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15,
|
||||||
0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f,
|
||||||
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d,
|
0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b,
|
||||||
0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54,
|
||||||
0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12,
|
0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||||
0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52,
|
0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21,
|
||||||
0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41,
|
0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41,
|
0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7,
|
||||||
0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50,
|
||||||
0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56,
|
0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47,
|
||||||
0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7, 0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b,
|
0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49,
|
0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12,
|
||||||
0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47, 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65,
|
||||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74,
|
0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67,
|
||||||
0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72,
|
||||||
0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26,
|
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62,
|
||||||
0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61,
|
|
||||||
0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -30,6 +30,7 @@ enum OpResultCode_Game {
|
||||||
OPRC_AllocRoomIdFailed_Game = 1097; //房间id获取失败
|
OPRC_AllocRoomIdFailed_Game = 1097; //房间id获取失败
|
||||||
OPRC_PrivateRoomCountLimit_Game = 1098; //私人房间上限
|
OPRC_PrivateRoomCountLimit_Game = 1098; //私人房间上限
|
||||||
OPRC_RoomNotExit = 1099; // 已经不在房间了
|
OPRC_RoomNotExit = 1099; // 已经不在房间了
|
||||||
|
OPRC_MatchAudience = 1100; // 不在比赛观战白名单
|
||||||
|
|
||||||
OPRC_LowerRice_ScenceMax_Game = 1075; //超过最大下米数量
|
OPRC_LowerRice_ScenceMax_Game = 1075; //超过最大下米数量
|
||||||
OPRC_LowerRice_PlayerMax_Game = 1076; //超过单个用户最大下米数
|
OPRC_LowerRice_PlayerMax_Game = 1076; //超过单个用户最大下米数
|
||||||
|
|
|
@ -10903,7 +10903,7 @@ type Config struct {
|
||||||
|
|
||||||
// Tp 类型:
|
// Tp 类型:
|
||||||
// 1:小精灵快捷入口 On开关 Value地址
|
// 1:小精灵快捷入口 On开关 Value地址
|
||||||
// 2: ...
|
// 2:比赛观战开关 On开关
|
||||||
// ...
|
// ...
|
||||||
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"`
|
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"`
|
||||||
On bool `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"`
|
On bool `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"`
|
||||||
|
|
|
@ -1351,7 +1351,7 @@ message SCGuideConfig{
|
||||||
message Config{
|
message Config{
|
||||||
// Tp 类型:
|
// Tp 类型:
|
||||||
// 1:小精灵快捷入口 On开关 Value地址
|
// 1:小精灵快捷入口 On开关 Value地址
|
||||||
// 2: ...
|
// 2:比赛观战开关 On开关
|
||||||
// ...
|
// ...
|
||||||
int32 Tp = 1;
|
int32 Tp = 1;
|
||||||
bool On = 2;
|
bool On = 2;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -837,6 +837,8 @@ message DB_GameFree {
|
||||||
|
|
||||||
int32 IsDrop = 72;
|
int32 IsDrop = 72;
|
||||||
|
|
||||||
|
int32 IsCustom = 73;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message DB_GameFreeArray {
|
message DB_GameFreeArray {
|
||||||
|
@ -1755,9 +1757,13 @@ message DB_VIPShow {
|
||||||
|
|
||||||
int32 Id = 1;
|
int32 Id = 1;
|
||||||
|
|
||||||
int32 SkinId = 2;
|
int32 Type = 2;
|
||||||
|
|
||||||
int32 VIPLevel = 3;
|
int32 SkinId = 3;
|
||||||
|
|
||||||
|
int32 VIPLevel = 4;
|
||||||
|
|
||||||
|
string VIPDes = 5;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -186,6 +186,7 @@ message WGCreateScene {
|
||||||
int32 PlayerNum = 21;
|
int32 PlayerNum = 21;
|
||||||
bool RealCtrl = 22;
|
bool RealCtrl = 22;
|
||||||
repeated int32 ChessRank = 23;
|
repeated int32 ChessRank = 23;
|
||||||
|
int32 MatchInfoId = 24;
|
||||||
}
|
}
|
||||||
|
|
||||||
//PACKET_WG_DESTROYSCENE
|
//PACKET_WG_DESTROYSCENE
|
||||||
|
|
|
@ -651,6 +651,7 @@ type SCTienLenRoomInfo struct {
|
||||||
OutCardRecord []int32 `protobuf:"varint,30,rep,packed,name=OutCardRecord,proto3" json:"OutCardRecord,omitempty"` //已打出去的牌
|
OutCardRecord []int32 `protobuf:"varint,30,rep,packed,name=OutCardRecord,proto3" json:"OutCardRecord,omitempty"` //已打出去的牌
|
||||||
IsOutRecord bool `protobuf:"varint,31,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` //是否能用记牌器
|
IsOutRecord bool `protobuf:"varint,31,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` //是否能用记牌器
|
||||||
ItemRecExpireTime int64 `protobuf:"varint,32,opt,name=ItemRecExpireTime,proto3" json:"ItemRecExpireTime,omitempty"` //记牌器到期时间
|
ItemRecExpireTime int64 `protobuf:"varint,32,opt,name=ItemRecExpireTime,proto3" json:"ItemRecExpireTime,omitempty"` //记牌器到期时间
|
||||||
|
TMInfoId int32 `protobuf:"varint,33,opt,name=TMInfoId,proto3" json:"TMInfoId,omitempty"` //比赛配置ID
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SCTienLenRoomInfo) Reset() {
|
func (x *SCTienLenRoomInfo) Reset() {
|
||||||
|
@ -888,6 +889,13 @@ func (x *SCTienLenRoomInfo) GetItemRecExpireTime() int64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *SCTienLenRoomInfo) GetTMInfoId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.TMInfoId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
//房间状态更新
|
//房间状态更新
|
||||||
type SCTienLenRoomState struct {
|
type SCTienLenRoomState struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
|
@ -1501,6 +1509,7 @@ type SCTienLenCard struct {
|
||||||
|
|
||||||
Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌
|
Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌
|
||||||
IsOutRecord bool `protobuf:"varint,2,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` // 是否有出牌记录
|
IsOutRecord bool `protobuf:"varint,2,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` // 是否有出牌记录
|
||||||
|
SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家id
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SCTienLenCard) Reset() {
|
func (x *SCTienLenCard) Reset() {
|
||||||
|
@ -1549,6 +1558,13 @@ func (x *SCTienLenCard) GetIsOutRecord() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *SCTienLenCard) GetSnId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SnId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
//测试数据
|
//测试数据
|
||||||
type SCTienLenCardTest struct {
|
type SCTienLenCardTest struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
|
@ -2357,7 +2373,7 @@ var file_tienlen_proto_rawDesc = []byte{
|
||||||
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65,
|
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65,
|
||||||
0x76, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61,
|
0x76, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61,
|
||||||
0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||||
0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xab, 0x07, 0x0a, 0x11, 0x53, 0x43, 0x54,
|
0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xc7, 0x07, 0x0a, 0x11, 0x53, 0x43, 0x54,
|
||||||
0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16,
|
0x69, 0x65, 0x6e, 0x4c, 0x65, 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,
|
0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||||
0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f,
|
0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f,
|
||||||
|
@ -2416,80 +2432,83 @@ var file_tienlen_proto_rawDesc = []byte{
|
||||||
0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d,
|
0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d,
|
||||||
0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20,
|
0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20,
|
||||||
0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69,
|
0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69,
|
||||||
0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e,
|
0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x4d, 0x49, 0x6e, 0x66, 0x6f,
|
||||||
0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05,
|
0x49, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x4d, 0x49, 0x6e, 0x66, 0x6f,
|
||||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61,
|
0x49, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52,
|
||||||
0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03,
|
0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
|
||||||
0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53,
|
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16,
|
||||||
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12,
|
0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06,
|
||||||
0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e,
|
||||||
0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72,
|
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f,
|
||||||
0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61,
|
0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43,
|
||||||
0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
|
0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02,
|
||||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64,
|
0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01,
|
||||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65,
|
||||||
0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03,
|
0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
|
||||||
0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49,
|
0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f,
|
||||||
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a,
|
0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70,
|
||||||
0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
|
0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20,
|
||||||
0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73,
|
0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52,
|
||||||
0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f,
|
0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74,
|
||||||
0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
|
0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
|
||||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61,
|
0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46,
|
||||||
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c,
|
0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65,
|
||||||
0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
|
0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01,
|
||||||
0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54,
|
||||||
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61,
|
0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61,
|
||||||
0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e,
|
||||||
0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12,
|
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10,
|
||||||
0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73,
|
||||||
0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49,
|
0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49,
|
||||||
0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65,
|
0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49,
|
||||||
0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12,
|
||||||
0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
|
0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65,
|
0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53,
|
||||||
0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65,
|
0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72,
|
||||||
0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61,
|
||||||
0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02,
|
0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a,
|
||||||
0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x57,
|
0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49,
|
||||||
0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69,
|
0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05,
|
||||||
0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69,
|
0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f,
|
||||||
0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69,
|
0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69,
|
||||||
0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
|
0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20,
|
||||||
0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61,
|
0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a,
|
||||||
0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57,
|
0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73,
|
||||||
0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52,
|
0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63,
|
||||||
0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
|
0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61,
|
||||||
0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64,
|
0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53,
|
||||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64,
|
0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b,
|
||||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d,
|
0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72,
|
||||||
0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65,
|
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72,
|
||||||
0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74,
|
0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20,
|
||||||
0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20,
|
0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64,
|
||||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53,
|
0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,
|
||||||
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c,
|
0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65,
|
||||||
0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e,
|
0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36,
|
||||||
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c,
|
0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
|
||||||
0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53,
|
0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
|
||||||
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d,
|
0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52,
|
||||||
0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f,
|
0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65,
|
||||||
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12,
|
0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c,
|
||||||
0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20,
|
0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20,
|
||||||
0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12,
|
0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57,
|
||||||
0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
|
0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||||
0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73,
|
0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c,
|
||||||
0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
|
0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f,
|
||||||
0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57,
|
0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73,
|
||||||
0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69,
|
0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65,
|
||||||
0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69,
|
0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f,
|
||||||
0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69,
|
0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69,
|
||||||
0x6e, 0x22, 0x47, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61,
|
0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20,
|
||||||
0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a,
|
||||||
0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75,
|
0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14,
|
||||||
0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49,
|
0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43,
|
||||||
0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53,
|
0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63,
|
||||||
|
0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74,
|
||||||
|
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03,
|
||||||
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53,
|
||||||
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74,
|
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74,
|
||||||
0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
|
0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
|
||||||
0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65,
|
0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65,
|
||||||
|
|
|
@ -116,6 +116,7 @@ message SCTienLenRoomInfo {
|
||||||
repeated int32 OutCardRecord = 30 ;//已打出去的牌
|
repeated int32 OutCardRecord = 30 ;//已打出去的牌
|
||||||
bool IsOutRecord = 31;//是否能用记牌器
|
bool IsOutRecord = 31;//是否能用记牌器
|
||||||
int64 ItemRecExpireTime = 32; //记牌器到期时间
|
int64 ItemRecExpireTime = 32; //记牌器到期时间
|
||||||
|
int32 TMInfoId = 33; //比赛配置ID
|
||||||
}
|
}
|
||||||
|
|
||||||
//房间状态更新
|
//房间状态更新
|
||||||
|
@ -185,6 +186,7 @@ message SCTienLenSmallGameBilled {
|
||||||
message SCTienLenCard {
|
message SCTienLenCard {
|
||||||
repeated int32 Cards = 1; //手牌
|
repeated int32 Cards = 1; //手牌
|
||||||
bool IsOutRecord = 2; // 是否有出牌记录
|
bool IsOutRecord = 2; // 是否有出牌记录
|
||||||
|
int32 SnId = 3; //玩家id
|
||||||
}
|
}
|
||||||
|
|
||||||
//测试数据
|
//测试数据
|
||||||
|
|
2
public
2
public
|
@ -1 +1 @@
|
||||||
Subproject commit 5436469c04056f83ab69b52b7cdeb5d21832fa94
|
Subproject commit fd8bef907ea15489504529da70f72038444b54e0
|
|
@ -183,94 +183,6 @@ failed:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type CSAudienceEnterRoomHandler struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *CSAudienceEnterRoomHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
|
||||||
logger.Logger.Trace("CSAudienceEnterRoomHandler Process recv ", data)
|
|
||||||
if msg, ok := data.(*gamehall.CSEnterRoom); ok {
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
|
||||||
if p == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
var code = gamehall.OpResultCode_Game_OPRC_Sucess_Game
|
|
||||||
var sp ScenePolicy
|
|
||||||
var dbGameFree *server.DB_GameFree
|
|
||||||
var cfg *webapiproto.GameFree
|
|
||||||
scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId()))
|
|
||||||
if scene == nil {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
|
||||||
logger.Logger.Trace("CSAudienceEnterRoomHandler scene == nil")
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
if !scene.CanAudience() {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
|
||||||
logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.CanAudience() %v", scene.sceneId)
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
|
|
||||||
if scene.IsMatchScene() && !PlatformMgrSingleton.IsMatchAudience(p.Platform, p.SnId) {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
|
||||||
logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.IsMatchAudience() %v", scene.sceneId)
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
if p.scene != nil {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_CannotWatchReasonInOther_Game
|
|
||||||
logger.Logger.Trace("CSAudienceEnterRoomHandler p.scene != nil")
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
cfg = PlatformMgrSingleton.GetGameFree(p.Platform, scene.dbGameFree.Id)
|
|
||||||
if cfg != nil && (cfg.GroupId != scene.groupId || cfg.GroupId == 0) {
|
|
||||||
if scene.limitPlatform != nil {
|
|
||||||
if scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.IdStr {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
|
||||||
logger.Logger.Tracef("CSEnterRoomHandler ScenePolicy(gameid:%v mode:%v) scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.Name", scene.gameId, scene.gameMode)
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//if !scene.starting {
|
|
||||||
// code = gamehall.OpResultCode_Game_OPRC_CannotWatchReasonRoomNotStart_Game
|
|
||||||
// logger.Logger.Trace("CSAudienceEnterRoomHandler !scene.starting")
|
|
||||||
// goto failed
|
|
||||||
//}
|
|
||||||
if scene.deleting {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
|
||||||
logger.Logger.Trace("CSAudienceEnterRoomHandler scene is deleting")
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
if scene.closed {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_RoomHadClosed_Game
|
|
||||||
logger.Logger.Trace("CSAudienceEnterRoomHandler scene is closed")
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
//if scene.IsCoinScene() || scene.IsHundredScene() {
|
|
||||||
// code = gamehall.OpResultCode_Game_OPRC_Error_Game
|
|
||||||
// logger.Logger.Trace("CSAudienceEnterRoomHandler scene is IsCoinScene IsHundredScene")
|
|
||||||
// goto failed
|
|
||||||
//}
|
|
||||||
|
|
||||||
sp = GetScenePolicy(scene.gameId, scene.gameMode)
|
|
||||||
if sp == nil {
|
|
||||||
code = gamehall.OpResultCode_Game_OPRC_GameNotExist_Game
|
|
||||||
logger.Logger.Tracef("CSAudienceEnterRoomHandler ScenePolicy(gameid:%v mode:%v) not registe", scene.gameId, scene.gameMode)
|
|
||||||
goto failed
|
|
||||||
}
|
|
||||||
dbGameFree = scene.dbGameFree
|
|
||||||
code = gamehall.OpResultCode_Game(CoinSceneMgrSingleton.AudienceEnter(p, dbGameFree.GetId(), msg.GetRoomId(), nil, true))
|
|
||||||
|
|
||||||
failed:
|
|
||||||
if code != gamehall.OpResultCode_Game_OPRC_Sucess_Game {
|
|
||||||
resp := &gamehall.SCEnterRoom{
|
|
||||||
OpRetCode: code,
|
|
||||||
}
|
|
||||||
proto.SetDefaults(resp)
|
|
||||||
p.SendToClient(int(gamehall.GameHallPacketID_PACKET_SC_ENTERROOM), resp)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type CSReturnRoomPacketFactory struct {
|
type CSReturnRoomPacketFactory struct {
|
||||||
}
|
}
|
||||||
type CSReturnRoomHandler struct {
|
type CSReturnRoomHandler struct {
|
||||||
|
@ -1235,10 +1147,95 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CSAudienceEnterRoomHandler(s *netlib.Session, packetId int, data interface{}, sid int64) error {
|
||||||
|
logger.Logger.Trace("CSAudienceEnterRoomHandler Process recv ", data)
|
||||||
|
msg, ok := data.(*gamehall.CSEnterRoom)
|
||||||
|
if !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
p := PlayerMgrSington.GetPlayer(sid)
|
||||||
|
if p == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var code = gamehall.OpResultCode_Game_OPRC_Error_Game
|
||||||
|
var sp ScenePolicy
|
||||||
|
var cfg *webapiproto.GameFree
|
||||||
|
|
||||||
|
// 房间是否存在
|
||||||
|
scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId()))
|
||||||
|
if scene == nil {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
||||||
|
logger.Logger.Trace("CSAudienceEnterRoomHandler scene == nil")
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 房间是否正在销毁
|
||||||
|
if scene.deleting {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
||||||
|
logger.Logger.Trace("CSAudienceEnterRoomHandler scene is deleting")
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 房间是否已经关闭
|
||||||
|
if scene.closed {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_RoomHadClosed_Game
|
||||||
|
logger.Logger.Trace("CSAudienceEnterRoomHandler scene is closed")
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 玩家没有在房间中
|
||||||
|
if p.scene != nil {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_CannotWatchReasonInOther_Game
|
||||||
|
logger.Logger.Trace("CSAudienceEnterRoomHandler p.scene != nil")
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 房间是否可以观战
|
||||||
|
if !scene.CanAudience() {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
||||||
|
logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.CanAudience() %v", scene.sceneId)
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 比赛场白名单观众
|
||||||
|
if scene.IsMatchScene() && !PlatformMgrSingleton.IsMatchAudience(p.Platform, p.SnId) {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_MatchAudience
|
||||||
|
logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.IsMatchAudience() %v", scene.sceneId)
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 是不是相同平台
|
||||||
|
cfg = PlatformMgrSingleton.GetGameFree(p.Platform, scene.dbGameFree.Id)
|
||||||
|
if cfg == nil || (scene.limitPlatform != nil && scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.IdStr) {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game
|
||||||
|
logger.Logger.Tracef("CSEnterRoomHandler ScenePolicy(gameid:%v mode:%v) scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.Name", scene.gameId, scene.gameMode)
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
// 游戏规则是否存在
|
||||||
|
sp = GetScenePolicy(scene.gameId, scene.gameMode)
|
||||||
|
if sp == nil {
|
||||||
|
code = gamehall.OpResultCode_Game_OPRC_GameNotExist_Game
|
||||||
|
logger.Logger.Tracef("CSAudienceEnterRoomHandler ScenePolicy(gameid:%v mode:%v) not registe", scene.gameId, scene.gameMode)
|
||||||
|
goto failed
|
||||||
|
}
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case scene.IsCoinScene():
|
||||||
|
code = gamehall.OpResultCode_Game(CoinSceneMgrSingleton.AudienceEnter(p, cfg.GetDbGameFree().GetId(), msg.GetRoomId(), nil, true))
|
||||||
|
case scene.IsHundredScene():
|
||||||
|
|
||||||
|
case scene.IsMatchScene():
|
||||||
|
code = gamehall.OpResultCode_Game(MatchSceneMgrSingleton.AudienceEnter(p, cfg.GetDbGameFree().GetId(), int(msg.GetRoomId()), nil, true))
|
||||||
|
}
|
||||||
|
|
||||||
|
failed:
|
||||||
|
if code != gamehall.OpResultCode_Game_OPRC_Sucess_Game {
|
||||||
|
resp := &gamehall.SCEnterRoom{
|
||||||
|
OpRetCode: code,
|
||||||
|
}
|
||||||
|
p.SendToClient(int(gamehall.GameHallPacketID_PACKET_SC_ENTERROOM), resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// 观众进入房间
|
|
||||||
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSAudienceEnterRoomHandler{})
|
|
||||||
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSEnterRoomPacketFactory{})
|
|
||||||
// 返回房间
|
// 返回房间
|
||||||
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomHandler{})
|
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomHandler{})
|
||||||
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomPacketFactory{})
|
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomPacketFactory{})
|
||||||
|
@ -1266,4 +1263,7 @@ func init() {
|
||||||
//我的游戏信息及平台公告
|
//我的游戏信息及平台公告
|
||||||
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{})
|
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{})
|
||||||
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticePacketFactory{})
|
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticePacketFactory{})
|
||||||
|
|
||||||
|
// 观众进入房间
|
||||||
|
common.Register(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &gamehall.CSEnterRoom{}, CSAudienceEnterRoomHandler)
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,8 +253,11 @@ func init() {
|
||||||
p.GameCoinTs = gameCoinTs
|
p.GameCoinTs = gameCoinTs
|
||||||
p.dirty = true
|
p.dirty = true
|
||||||
}
|
}
|
||||||
|
if scene.IsMatchScene() {
|
||||||
CoinSceneMgrSingleton.PlayerLeave(p, int(msg.GetReason()))
|
scene.AudienceLeave(p, int(msg.GetReason()))
|
||||||
|
} else {
|
||||||
|
CoinSceneMgrSingleton.PlayerLeave(p, int(msg.GetReason()))
|
||||||
|
}
|
||||||
|
|
||||||
//变化金币
|
//变化金币
|
||||||
p.dirty = true
|
p.dirty = true
|
||||||
|
@ -639,7 +642,7 @@ func init() {
|
||||||
if msg, ok := pack.(*serverproto.GWChangeSceneEvent); ok {
|
if msg, ok := pack.(*serverproto.GWChangeSceneEvent); ok {
|
||||||
scene := SceneMgrSingleton.GetScene(int(msg.GetSceneId()))
|
scene := SceneMgrSingleton.GetScene(int(msg.GetSceneId()))
|
||||||
if scene != nil {
|
if scene != nil {
|
||||||
scene.PlayerTryChange()
|
//scene.PlayerTryChange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -199,17 +199,25 @@ func CSRoomList(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
||||||
if v.matchCtx == nil {
|
if v.matchCtx == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p := PlayerMgrSington.GetPlayerBySnId(v.matchCtx.copySnid)
|
||||||
|
|
||||||
d := &tournament.MatchPlayer{
|
d := &tournament.MatchPlayer{
|
||||||
SnId: v.matchCtx.copySnid,
|
SnId: v.matchCtx.copySnid,
|
||||||
Name: v.Name,
|
Name: p.GetName(),
|
||||||
HeadUrl: v.HeadUrl,
|
|
||||||
UseRoleId: v.matchCtx.copyRoleId,
|
UseRoleId: v.matchCtx.copyRoleId,
|
||||||
UseSkinId: v.matchCtx.copySkinId,
|
UseSkinId: v.matchCtx.copySkinId,
|
||||||
Rank: v.matchCtx.rank,
|
Rank: TournamentMgr.GetRank(tm.SortId, v.matchCtx.copySnid),
|
||||||
Score: v.matchCtx.grade,
|
Score: v.matchCtx.grade,
|
||||||
}
|
}
|
||||||
room.Players = append(room.Players, d)
|
room.Players = append(room.Players, d)
|
||||||
}
|
}
|
||||||
|
sort.Slice(room.Players, func(i, j int) bool {
|
||||||
|
if room.Players[i].Rank == room.Players[j].Rank {
|
||||||
|
return room.Players[i].SnId < room.Players[j].SnId
|
||||||
|
}
|
||||||
|
return room.Players[i].Rank < room.Players[j].Rank
|
||||||
|
})
|
||||||
pack.List = append(pack.List, room)
|
pack.List = append(pack.List, room)
|
||||||
}
|
}
|
||||||
p.SendToClient(int(tournament.TOURNAMENTID_PACKET_TM_SCRoomList), pack)
|
p.SendToClient(int(tournament.TOURNAMENTID_PACKET_TM_SCRoomList), pack)
|
||||||
|
|
|
@ -370,7 +370,7 @@ func (m *CoinSceneMgr) OnPlatformDestroy(p *Platform) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SceneMgrSingleton.DoDelete(ids, true)
|
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *CoinSceneMgr) OnPlatformChangeDisabled(p *Platform, disabled bool) {
|
func (m *CoinSceneMgr) OnPlatformChangeDisabled(p *Platform, disabled bool) {
|
||||||
|
@ -395,7 +395,7 @@ func (m *CoinSceneMgr) OnPlatformGameFreeUpdate(p *Platform, oldCfg, newCfg *web
|
||||||
for _, scene := range cps.scenes {
|
for _, scene := range cps.scenes {
|
||||||
ids = append(ids, scene.sceneId)
|
ids = append(ids, scene.sceneId)
|
||||||
}
|
}
|
||||||
SceneMgrSingleton.DoDelete(ids, true)
|
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||||
m.TouchCreateRoom(p.IdStr, newCfg.DbGameFree.Id)
|
m.TouchCreateRoom(p.IdStr, newCfg.DbGameFree.Id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -414,7 +414,7 @@ func (m *CoinSceneMgr) OnPlatformDestroyByGameFreeId(p *Platform, gameFreeId int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SceneMgrSingleton.DoDelete(ids, true)
|
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
//=========================PlatformGameGroupObserver==============================
|
//=========================PlatformGameGroupObserver==============================
|
||||||
|
|
|
@ -330,7 +330,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) {
|
||||||
// 玩家离开结算空房间的私人房
|
// 玩家离开结算空房间的私人房
|
||||||
if s.IsPrivateScene() {
|
if s.IsPrivateScene() {
|
||||||
if s.IsEmpty() {
|
if s.IsEmpty() {
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -345,7 +345,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if hasCnt > int(csp.dbGameFree.GetCreateRoomNum()) {
|
if hasCnt > int(csp.dbGameFree.GetCreateRoomNum()) {
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -323,15 +323,7 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
|
||||||
case *webapi.SpiritConfig:
|
case *webapi.SpiritConfig:
|
||||||
PlatformMgrSingleton.GetConfig(config.Platform).SpiritConfig = config
|
PlatformMgrSingleton.GetConfig(config.Platform).SpiritConfig = config
|
||||||
if !isInit {
|
if !isInit {
|
||||||
PlayerMgrSington.BroadcastMessageToPlatform(config.Platform, int(playerproto.PlayerPacketID_PACKET_SCDataConfig), &playerproto.SCDataConfig{
|
PlayerMgrSington.BroadcastDataConfigToPlatform(config.Platform, common.DataConfigSprite)
|
||||||
Cfg: []*playerproto.Config{
|
|
||||||
{
|
|
||||||
Tp: 1,
|
|
||||||
On: config.GetOn() == 1,
|
|
||||||
Value: config.GetUrl(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
|
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
|
||||||
|
@ -404,8 +396,20 @@ func handlerEvent(ctx context.Context, completeKey string, isInit bool, event *c
|
||||||
switch event.Type {
|
switch event.Type {
|
||||||
case clientv3.EventTypePut:
|
case clientv3.EventTypePut:
|
||||||
PlatformMgrSingleton.AddMatchAudience(config)
|
PlatformMgrSingleton.AddMatchAudience(config)
|
||||||
|
if !isInit {
|
||||||
|
p := PlayerMgrSington.GetPlayerBySnId(config.GetSnId())
|
||||||
|
if p != nil {
|
||||||
|
p.SCDataConfig(common.DataConfigMatchAudience)
|
||||||
|
}
|
||||||
|
}
|
||||||
case clientv3.EventTypeDelete:
|
case clientv3.EventTypeDelete:
|
||||||
PlatformMgrSingleton.DelMatchAudience(config)
|
PlatformMgrSingleton.DelMatchAudience(config)
|
||||||
|
if !isInit {
|
||||||
|
p := PlayerMgrSington.GetPlayerBySnId(config.GetSnId())
|
||||||
|
if p != nil {
|
||||||
|
p.SCDataConfig(common.DataConfigMatchAudience)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -80,18 +80,14 @@ func (this *GameSession) GetSrvId() int32 {
|
||||||
// 关闭其上的所有场景
|
// 关闭其上的所有场景
|
||||||
func (this *GameSession) CloseAllScene() {
|
func (this *GameSession) CloseAllScene() {
|
||||||
for sceneId, scene := range this.scenes {
|
for sceneId, scene := range this.scenes {
|
||||||
if scene.IsMiniGameScene() {
|
scDestroyRoom := &gamehall_proto.SCDestroyRoom{
|
||||||
|
RoomId: proto.Int(sceneId),
|
||||||
} else {
|
OpRetCode: gamehall_proto.OpResultCode_Game_OPRC_Sucess_Game,
|
||||||
scDestroyRoom := &gamehall_proto.SCDestroyRoom{
|
IsForce: proto.Int(1),
|
||||||
RoomId: proto.Int(sceneId),
|
|
||||||
OpRetCode: gamehall_proto.OpResultCode_Game_OPRC_Sucess_Game,
|
|
||||||
IsForce: proto.Int(1),
|
|
||||||
}
|
|
||||||
proto.SetDefaults(scDestroyRoom)
|
|
||||||
scene.Broadcast(int(gamehall_proto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0)
|
|
||||||
SceneMgrSingleton.DestroyScene(sceneId, true)
|
|
||||||
}
|
}
|
||||||
|
proto.SetDefaults(scDestroyRoom)
|
||||||
|
scene.Broadcast(int(gamehall_proto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0)
|
||||||
|
SceneMgrSingleton.DestroyScene(sceneId, true)
|
||||||
}
|
}
|
||||||
this.scenes = nil
|
this.scenes = nil
|
||||||
this.players = nil
|
this.players = nil
|
||||||
|
@ -173,6 +169,7 @@ func (this *GameSession) AddScene(s *Scene) {
|
||||||
TotalOfGames: proto.Int32(s.totalRound),
|
TotalOfGames: proto.Int32(s.totalRound),
|
||||||
BaseScore: proto.Int32(s.BaseScore),
|
BaseScore: proto.Int32(s.BaseScore),
|
||||||
PlayerNum: proto.Int(s.playerNum),
|
PlayerNum: proto.Int(s.playerNum),
|
||||||
|
MatchInfoId: s.MatchInfoId,
|
||||||
}
|
}
|
||||||
var platform *Platform
|
var platform *Platform
|
||||||
if s.limitPlatform != nil {
|
if s.limitPlatform != nil {
|
||||||
|
|
|
@ -373,7 +373,7 @@ func (this *HundredSceneMgr) OnPlatformDestroy(p *Platform) {
|
||||||
for _, scene := range ss {
|
for _, scene := range ss {
|
||||||
ids = append(ids, scene.sceneId)
|
ids = append(ids, scene.sceneId)
|
||||||
}
|
}
|
||||||
SceneMgrSingleton.DoDelete(ids, true)
|
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,7 +392,7 @@ func (this *HundredSceneMgr) OnPlatformGameFreeUpdate(p *Platform, oldCfg, newCf
|
||||||
}
|
}
|
||||||
if scenes, exist := this.scenesOfPlatform[p.IdStr]; exist {
|
if scenes, exist := this.scenesOfPlatform[p.IdStr]; exist {
|
||||||
if s, ok := scenes[newCfg.DbGameFree.Id]; ok {
|
if s, ok := scenes[newCfg.DbGameFree.Id]; ok {
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -412,7 +412,7 @@ func (this *HundredSceneMgr) OnPlatformDestroyByGameFreeId(p *Platform, gameFree
|
||||||
ids = append(ids, scene.sceneId)
|
ids = append(ids, scene.sceneId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SceneMgrSingleton.DoDelete(ids, true)
|
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
|
|
||||||
"mongo.games.com/game/common"
|
"mongo.games.com/game/common"
|
||||||
"mongo.games.com/game/proto"
|
"mongo.games.com/game/proto"
|
||||||
|
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||||
"mongo.games.com/game/protocol/server"
|
"mongo.games.com/game/protocol/server"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -59,7 +60,7 @@ func (ms *MatchSceneMgr) NewScene(tm *TmMatch, isFinals bool, round int32) *Scen
|
||||||
params := []int64{tm.SortId, int64(finals), int64(round), int64(curPlayerNum), int64(nextNeed), int64(tm.gmd.MatchType)}
|
params := []int64{tm.SortId, int64(finals), int64(round), int64(curPlayerNum), int64(nextNeed), int64(tm.gmd.MatchType)}
|
||||||
|
|
||||||
scene := SceneMgrSingleton.CreateScene(0, 0, sceneId, gameId, int(gameMode), common.SceneMode_Match, 1,
|
scene := SceneMgrSingleton.CreateScene(0, 0, sceneId, gameId, int(gameMode), common.SceneMode_Match, 1,
|
||||||
0, params, gs, limitPlatform, groupId, tm.dbGameFree, tm.dbGameFree.GetId())
|
0, params, gs, limitPlatform, groupId, tm.dbGameFree, tm.dbGameFree.GetId(), tm.gmd.Id)
|
||||||
if scene != nil {
|
if scene != nil {
|
||||||
scene.matchId = tm.SortId
|
scene.matchId = tm.SortId
|
||||||
return scene
|
return scene
|
||||||
|
@ -172,11 +173,22 @@ func (ms *MatchSceneMgr) OnDestroyScene(sceneId int) {
|
||||||
delete(ms.scenes, sceneId)
|
delete(ms.scenes, sceneId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ms *MatchSceneMgr) AudienceEnter(p *Player, id int32, roomId int, exclude []int32, ischangeroom bool) hallproto.OpResultCode {
|
||||||
|
scene, ok := ms.scenes[roomId]
|
||||||
|
if !ok {
|
||||||
|
return hallproto.OpResultCode_OPRC_RoomHadClosed
|
||||||
|
}
|
||||||
|
if !scene.AudienceEnter(p, ischangeroom) {
|
||||||
|
return hallproto.OpResultCode_OPRC_RoomHadClosed
|
||||||
|
}
|
||||||
|
return hallproto.OpResultCode_OPRC_Sucess
|
||||||
|
}
|
||||||
|
|
||||||
func (ms *MatchSceneMgr) MatchStop(tm *TmMatch) {
|
func (ms *MatchSceneMgr) MatchStop(tm *TmMatch) {
|
||||||
if SceneMgrSingleton.scenes != nil && tm != nil {
|
if SceneMgrSingleton.scenes != nil && tm != nil {
|
||||||
for _, scene := range SceneMgrSingleton.scenes {
|
for _, scene := range SceneMgrSingleton.scenes {
|
||||||
if scene.IsMatchScene() && scene.matchId == tm.SortId {
|
if scene.IsMatchScene() && scene.matchId == tm.SortId {
|
||||||
scene.DoDelete(false)
|
scene.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1662,7 +1662,7 @@ func (this *Player) OnLogouted() {
|
||||||
this.Save(true)
|
this.Save(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) MarshalData(gameid int) (d []byte, e error) {
|
func (this *Player) MarshalData() (d []byte, e error) {
|
||||||
d, e = netlib.Gob.Marshal(this.PlayerData)
|
d, e = netlib.Gob.Marshal(this.PlayerData)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -2415,21 +2415,6 @@ func (this *Player) GetIP() string {
|
||||||
return this.Ip
|
return this.Ip
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) CreateScene(sceneId, gameId, gameMode, sceneMode int, numOfGames int32, params []int64, dbGameFree *serverproto.DB_GameFree) (*Scene, hallproto.OpResultCode_Game) {
|
|
||||||
gs := GameSessMgrSington.GetMinLoadSess(gameId)
|
|
||||||
if gs == nil {
|
|
||||||
logger.Logger.Warnf("(this *Player) EnterScene %v, %v GameSessMgrSington.GetMinLoadSess() = nil ", this.SnId, gameId)
|
|
||||||
return nil, hallproto.OpResultCode_Game_OPRC_SceneServerMaintain_Game
|
|
||||||
}
|
|
||||||
|
|
||||||
s := SceneMgrSingleton.CreateScene(0, this.SnId, sceneId, gameId, gameMode, sceneMode, 1, numOfGames, params, gs, this.GetPlatform(), 0, dbGameFree, dbGameFree.GetId())
|
|
||||||
if s == nil {
|
|
||||||
logger.Logger.Tracef("(this *Player) EnterScene %v, SceneMgrSingleton.CreateScene() = nil ", this.SnId)
|
|
||||||
return nil, hallproto.OpResultCode_Game_OPRC_Error_Game
|
|
||||||
}
|
|
||||||
return s, hallproto.OpResultCode_Game_OPRC_Sucess_Game
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Player) CreateLocalGameScene(sceneId, gameId, gameSite, sceneMode, playerNum int, params []int64,
|
func (this *Player) CreateLocalGameScene(sceneId, gameId, gameSite, sceneMode, playerNum int, params []int64,
|
||||||
dbGameFree *serverproto.DB_GameFree, baseScore, groupId int32) (*Scene, hallproto.OpResultCode_Game) {
|
dbGameFree *serverproto.DB_GameFree, baseScore, groupId int32) (*Scene, hallproto.OpResultCode_Game) {
|
||||||
gs := GameSessMgrSington.GetMinLoadSess(gameId)
|
gs := GameSessMgrSington.GetMinLoadSess(gameId)
|
||||||
|
@ -3101,8 +3086,8 @@ func (this *Player) SendPlayerInfo() {
|
||||||
this.SCItems()
|
this.SCItems()
|
||||||
// 引导配置
|
// 引导配置
|
||||||
this.SCGuide()
|
this.SCGuide()
|
||||||
// 小精灵配置
|
// 其它配置
|
||||||
this.SCSpirit()
|
this.SCDataConfig(common.DataConfigAll)
|
||||||
}
|
}
|
||||||
|
|
||||||
//func (this *Player) SendJackpotInfo() {
|
//func (this *Player) SendJackpotInfo() {
|
||||||
|
@ -3832,9 +3817,9 @@ func (this *Player) SCVIPInfo() {
|
||||||
logger.Logger.Tracef("send vipinfo to client:%v", pack)
|
logger.Logger.Tracef("send vipinfo to client:%v", pack)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) GetVIPExpByPay(payTotal int32) int32 {
|
func (this *Player) GetVIPExpByPay(payTotal int64) int64 {
|
||||||
vips := VipMgrSington.GetVIPcfg(this.Platform)
|
vips := VipMgrSington.GetVIPcfg(this.Platform)
|
||||||
return int32(math.Floor(float64(payTotal) * vips.MoneyRatio / 100))
|
return payTotal * int64(vips.MoneyRatio)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) VIPDraw(id, vip int32) {
|
func (this *Player) VIPDraw(id, vip int32) {
|
||||||
|
@ -3993,7 +3978,7 @@ func (this *Player) GetVIPLevel() int32 {
|
||||||
vips := VipMgrSington.GetVIPcfg(this.Platform)
|
vips := VipMgrSington.GetVIPcfg(this.Platform)
|
||||||
vip := int32(0)
|
vip := int32(0)
|
||||||
if vips != nil && this.MoneyPayTotal != 0 {
|
if vips != nil && this.MoneyPayTotal != 0 {
|
||||||
allExp := int64(float64(this.MoneyPayTotal) * vips.MoneyRatio)
|
allExp := this.MoneyPayTotal * int64(vips.MoneyRatio)
|
||||||
for _, v := range vips.List {
|
for _, v := range vips.List {
|
||||||
if allExp >= int64(v.VipEx) {
|
if allExp >= int64(v.VipEx) {
|
||||||
vip = v.VipId
|
vip = v.VipId
|
||||||
|
@ -4126,7 +4111,7 @@ func (this *Player) GetPayGoodsInfo() {
|
||||||
this.dirty = true
|
this.dirty = true
|
||||||
this.SendDiffData()
|
this.SendDiffData()
|
||||||
|
|
||||||
info.Amount[2] = this.GetVIPExpByPay(info.ConsumeNum)
|
info.Amount[2] = int32(this.GetVIPExpByPay(int64(info.ConsumeNum)))
|
||||||
|
|
||||||
BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false)
|
BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false)
|
||||||
|
|
||||||
|
@ -4951,20 +4936,66 @@ func (this *Player) SCGuide() {
|
||||||
logger.Logger.Tracef("SCGuideConfig: %v", pack)
|
logger.Logger.Tracef("SCGuideConfig: %v", pack)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Player) SCSpirit() {
|
// DataConfigFuncMap 配置查询方法
|
||||||
cfg := PlatformMgrSingleton.GetConfig(this.Platform).SpiritConfig
|
var DataConfigFuncMap = map[int]func(platform string, p *Player) *playerproto.Config{
|
||||||
if cfg == nil {
|
common.DataConfigSprite: func(platform string, p *Player) *playerproto.Config {
|
||||||
|
cfg := PlatformMgrSingleton.GetConfig(platform).SpiritConfig
|
||||||
|
if cfg == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &playerproto.Config{
|
||||||
|
Tp: common.DataConfigSprite,
|
||||||
|
On: cfg.On == 1,
|
||||||
|
Value: cfg.Url,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
common.DataConfigMatchAudience: func(platform string, p *Player) *playerproto.Config {
|
||||||
|
if p == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
cfg := PlatformMgrSingleton.GetConfig(platform).MatchAudience
|
||||||
|
if cfg == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
d, ok := cfg[p.GetSnId()]
|
||||||
|
if !ok || d == nil {
|
||||||
|
return &playerproto.Config{
|
||||||
|
Tp: common.DataConfigMatchAudience,
|
||||||
|
On: false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return &playerproto.Config{
|
||||||
|
Tp: common.DataConfigMatchAudience,
|
||||||
|
On: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// SCDataConfig 通知配置
|
||||||
|
// tp 类型 0所有 1小精灵 2比赛观众开关
|
||||||
|
func (this *Player) SCDataConfig(tp int) {
|
||||||
|
if this == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
pack := &playerproto.SCDataConfig{
|
pack := &playerproto.SCDataConfig{}
|
||||||
Cfg: []*playerproto.Config{
|
if tp == common.DataConfigAll {
|
||||||
{
|
for _, f := range DataConfigFuncMap {
|
||||||
Tp: 1,
|
d := f(this.Platform, this)
|
||||||
On: cfg.On == 1,
|
if d != nil {
|
||||||
Value: cfg.Url,
|
pack.Cfg = append(pack.Cfg, d)
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
|
} else {
|
||||||
|
f, ok := DataConfigFuncMap[tp]
|
||||||
|
if ok {
|
||||||
|
d := f(this.Platform, this)
|
||||||
|
if d != nil {
|
||||||
|
pack.Cfg = append(pack.Cfg, d)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(pack.Cfg) > 0 {
|
||||||
|
this.SendToClient(int(playerproto.PlayerPacketID_PACKET_SCDataConfig), pack)
|
||||||
|
logger.Logger.Tracef("SCDataConfig: %v", pack)
|
||||||
}
|
}
|
||||||
this.SendToClient(int(playerproto.PlayerPacketID_PACKET_SCDataConfig), pack)
|
|
||||||
logger.Logger.Tracef("SCDataConfig: %v", pack)
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
"mongo.games.com/game/common"
|
"mongo.games.com/game/common"
|
||||||
"mongo.games.com/game/model"
|
"mongo.games.com/game/model"
|
||||||
"mongo.games.com/game/proto"
|
"mongo.games.com/game/proto"
|
||||||
|
playerproto "mongo.games.com/game/protocol/player"
|
||||||
serverproto "mongo.games.com/game/protocol/server"
|
serverproto "mongo.games.com/game/protocol/server"
|
||||||
"mongo.games.com/game/worldsrv/internal"
|
"mongo.games.com/game/worldsrv/internal"
|
||||||
)
|
)
|
||||||
|
@ -328,6 +329,21 @@ func (this *PlayerMgr) BroadcastMessageToPlatform(platform string, packetid int,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *PlayerMgr) BroadcastDataConfigToPlatform(platform string, tp int) {
|
||||||
|
packetId := int(playerproto.PlayerPacketID_PACKET_SCDataConfig)
|
||||||
|
pack := &playerproto.SCDataConfig{}
|
||||||
|
f, ok := DataConfigFuncMap[tp]
|
||||||
|
if ok {
|
||||||
|
d := f(platform, nil)
|
||||||
|
if d != nil {
|
||||||
|
pack.Cfg = append(pack.Cfg, d)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(pack.Cfg) > 0 {
|
||||||
|
this.BroadcastMessageToPlatform(platform, packetId, pack)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (this *PlayerMgr) BroadcastMessageToPlatformByFunc(platform string, packetid int, rawpack interface{}, f func(p *Player) bool) {
|
func (this *PlayerMgr) BroadcastMessageToPlatformByFunc(platform string, packetid int, rawpack interface{}, f func(p *Player) bool) {
|
||||||
if platform == "" {
|
if platform == "" {
|
||||||
this.BroadcastMessage(packetid, rawpack)
|
this.BroadcastMessage(packetid, rawpack)
|
||||||
|
|
|
@ -18,7 +18,6 @@ import (
|
||||||
"mongo.games.com/game/model"
|
"mongo.games.com/game/model"
|
||||||
"mongo.games.com/game/proto"
|
"mongo.games.com/game/proto"
|
||||||
hallproto "mongo.games.com/game/protocol/gamehall"
|
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||||
playerproto "mongo.games.com/game/protocol/player"
|
|
||||||
serverproto "mongo.games.com/game/protocol/server"
|
serverproto "mongo.games.com/game/protocol/server"
|
||||||
"mongo.games.com/game/srvdata"
|
"mongo.games.com/game/srvdata"
|
||||||
)
|
)
|
||||||
|
@ -50,11 +49,11 @@ type PlayerGameCtx struct {
|
||||||
type Scene struct {
|
type Scene struct {
|
||||||
sceneId int //场景id
|
sceneId int //场景id
|
||||||
gameId int //游戏id
|
gameId int //游戏id
|
||||||
gameMode int //游戏模式
|
gameMode int //游戏模式(玩法)
|
||||||
sceneMode int //房间模式,参考common.SceneMode_XXX
|
sceneMode int //房间模式,参考common.SceneMode_XXX
|
||||||
params []int64 //场景参数
|
params []int64 //场景参数
|
||||||
paramsEx []int32 //其他扩展参数
|
paramsEx []int32 //其他扩展参数
|
||||||
playerNum int //人数
|
playerNum int //房间最大人数
|
||||||
robotNum int //机器人数量
|
robotNum int //机器人数量
|
||||||
robotLimit int //最大限制机器人数量
|
robotLimit int //最大限制机器人数量
|
||||||
preInviteRobNum int //准备邀请机器人的数量
|
preInviteRobNum int //准备邀请机器人的数量
|
||||||
|
@ -104,6 +103,7 @@ type Scene struct {
|
||||||
gameSite int //tienlen游戏场次区分 1.初级 2.中级 3.高级场
|
gameSite int //tienlen游戏场次区分 1.初级 2.中级 3.高级场
|
||||||
BaseScore int32 //tienlen游戏底分
|
BaseScore int32 //tienlen游戏底分
|
||||||
matchId int64 //比赛场id
|
matchId int64 //比赛场id
|
||||||
|
MatchInfoId int32 // 比赛场配置id
|
||||||
|
|
||||||
csp *CoinScenePool // 所在场景池
|
csp *CoinScenePool // 所在场景池
|
||||||
hp *HundredSceneMgr // 百人场房间池
|
hp *HundredSceneMgr // 百人场房间池
|
||||||
|
@ -145,7 +145,7 @@ func NewScene(agentor, creator int32, id, gameId, gameMode, sceneMode int, clycl
|
||||||
s.playerNum = int(sp.GetPlayerNum(s))
|
s.playerNum = int(sp.GetPlayerNum(s))
|
||||||
s.lastTime = s.createTime
|
s.lastTime = s.createTime
|
||||||
|
|
||||||
if s.IsHallScene() || s.IsCoinScene() {
|
if s.IsCoinScene() {
|
||||||
code := SceneMgrSingleton.AllocReplayCode()
|
code := SceneMgrSingleton.AllocReplayCode()
|
||||||
s.replayCode = code
|
s.replayCode = code
|
||||||
}
|
}
|
||||||
|
@ -154,6 +154,9 @@ func NewScene(agentor, creator int32, id, gameId, gameMode, sceneMode int, clycl
|
||||||
}
|
}
|
||||||
if s.IsMatchScene() {
|
if s.IsMatchScene() {
|
||||||
s.BaseScore = 10
|
s.BaseScore = 10
|
||||||
|
if len(paramsEx) > 1 {
|
||||||
|
s.MatchInfoId = paramsEx[1]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
s.sp.OnStart(s)
|
s.sp.OnStart(s)
|
||||||
return s
|
return s
|
||||||
|
@ -228,6 +231,13 @@ func (this *Scene) RobotIsLimit() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Scene) GetPlayerGameCtx(snid int32) *PlayerGameCtx {
|
||||||
|
if ctx, exist := this.gameCtx[snid]; exist {
|
||||||
|
return ctx
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool {
|
func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool {
|
||||||
logger.Logger.Infof("(this *Scene:%v) PlayerEnter(%v, %v) ", this.sceneId, p.SnId, pos)
|
logger.Logger.Infof("(this *Scene:%v) PlayerEnter(%v, %v) ", this.sceneId, p.SnId, pos)
|
||||||
|
|
||||||
|
@ -273,15 +283,6 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool {
|
||||||
this.players[p.SnId] = p
|
this.players[p.SnId] = p
|
||||||
this.gameSess.AddPlayer(p)
|
this.gameSess.AddPlayer(p)
|
||||||
|
|
||||||
switch {
|
|
||||||
case this.IsCoinScene():
|
|
||||||
|
|
||||||
case this.IsHundredScene():
|
|
||||||
|
|
||||||
case this.IsMatchScene():
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果正在等待比赛,退赛
|
// 如果正在等待比赛,退赛
|
||||||
if !this.IsMatchScene() {
|
if !this.IsMatchScene() {
|
||||||
isWaiting, tmid := TournamentMgr.IsMatchWaiting(p.Platform, p.SnId)
|
isWaiting, tmid := TournamentMgr.IsMatchWaiting(p.Platform, p.SnId)
|
||||||
|
@ -458,8 +459,7 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool {
|
||||||
logger.Logger.Tracef("(this *Scene) PlayerEnter(%v) robot(%v) robotlimit(%v)", name, this.robotNum, this.robotLimit)
|
logger.Logger.Tracef("(this *Scene) PlayerEnter(%v) robot(%v) robotlimit(%v)", name, this.robotNum, this.robotLimit)
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo:send add msg to gamesrv
|
data, err := p.MarshalData()
|
||||||
data, err := p.MarshalData(this.gameId)
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
var gateSid int64
|
var gateSid int64
|
||||||
if p.gateSess != nil {
|
if p.gateSess != nil {
|
||||||
|
@ -563,158 +563,146 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExePMCmd(s *netlib.Session, cmd string) {
|
func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool {
|
||||||
CSPMCmd := &playerproto.CSPMCmd{
|
logger.Logger.Infof("(this *Scene:%v) AudienceEnter(%v) ", this.sceneId, p.SnId)
|
||||||
Cmd: proto.String(cmd),
|
p.scene = this
|
||||||
|
takeCoin := p.Coin
|
||||||
|
p.takeCoin = takeCoin
|
||||||
|
this.audiences[p.SnId] = p
|
||||||
|
this.gameSess.AddPlayer(p)
|
||||||
|
|
||||||
|
data, err := p.MarshalData()
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
proto.SetDefaults(CSPMCmd)
|
|
||||||
logger.Logger.Trace("CSPMCmd:", CSPMCmd)
|
|
||||||
s.Send(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), CSPMCmd)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Scene) GetPlayerGameCtx(snid int32) *PlayerGameCtx {
|
var gateSid int64
|
||||||
if ctx, exist := this.gameCtx[snid]; exist {
|
if p.gateSess != nil {
|
||||||
return ctx
|
if srvInfo, ok := p.gateSess.GetAttribute(srvlib.SessionAttributeServerInfo).(*srvlibproto.SSSrvRegiste); ok && srvInfo != nil {
|
||||||
|
sessionId := srvlib.NewSessionIdEx(srvInfo.GetAreaId(), srvInfo.GetType(), srvInfo.GetId(), 0)
|
||||||
|
gateSid = sessionId.Get()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Scene) PlayerLeave(p *Player, reason int) {
|
msg := &serverproto.WGPlayerEnter{
|
||||||
logger.Logger.Infof("(this *Scene:%v) PlayerLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
Sid: proto.Int64(p.sid),
|
||||||
//if !this.IsMatchScene() {
|
SnId: proto.Int32(p.SnId),
|
||||||
//pack := &hall_proto.SCLeaveRoom{
|
GateSid: proto.Int64(gateSid),
|
||||||
// Reason: proto.Int(reason),
|
SceneId: proto.Int(this.sceneId),
|
||||||
// OpRetCode: hall_proto.OpResultCode_Game_OPRC_Sucess_Game,
|
PlayerData: data,
|
||||||
// Mode: proto.Int(0),
|
TakeCoin: takeCoin,
|
||||||
// RoomId: proto.Int(this.sceneId),
|
IsLoaded: proto.Bool(ischangeroom),
|
||||||
//}
|
IsQM: false,
|
||||||
//proto.SetDefaults(pack)
|
IParams: p.MarshalIParam(),
|
||||||
//p.SendToClient(int(hall_proto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack)
|
SParams: p.MarshalSParam(),
|
||||||
pack := &hallproto.SCQuitGame{
|
CParams: p.MarshalCParam(),
|
||||||
Id: int32(this.dbGameFree.Id),
|
|
||||||
Reason: proto.Int(reason),
|
|
||||||
}
|
}
|
||||||
pack.OpCode = hallproto.OpResultCode_Game_OPRC_Sucess_Game
|
|
||||||
proto.SetDefaults(pack)
|
|
||||||
p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_QUITGAME), pack)
|
|
||||||
//}
|
|
||||||
|
|
||||||
//其他人直接从房间退出来
|
if !p.IsRob { //保存下进入时的环境
|
||||||
this.DelPlayer(p)
|
p.enterts = time.Now()
|
||||||
|
this.gameCtx[p.SnId] = &PlayerGameCtx{
|
||||||
// 玩家最后所在游戏
|
takeCoin: p.takeCoin,
|
||||||
p.LastGameId = int(this.dbGameFree.GetGameId())
|
enterTs: p.enterts.Unix(),
|
||||||
if !p.IsRob {
|
}
|
||||||
this.lastTime = time.Now()
|
this.lastTime = time.Now()
|
||||||
}
|
}
|
||||||
|
this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCEENTER), msg)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Scene) lastScene(p *Player) {
|
||||||
|
// 记录玩家在每个游戏场次最后进入的房间号
|
||||||
|
// 只记录金币场
|
||||||
|
if this.IsCoinScene() {
|
||||||
|
const MINHOLD = 10
|
||||||
|
const MAXHOLD = 20
|
||||||
|
holdCnt := MINHOLD
|
||||||
|
if this.csp != nil {
|
||||||
|
holdCnt = this.csp.GetHasTruePlayerSceneCnt() + 2
|
||||||
|
if holdCnt < MINHOLD {
|
||||||
|
holdCnt = MINHOLD
|
||||||
|
}
|
||||||
|
if holdCnt > MAXHOLD {
|
||||||
|
holdCnt = MAXHOLD
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if p.lastSceneId == nil {
|
||||||
|
p.lastSceneId = make(map[int32][]int32)
|
||||||
|
}
|
||||||
|
id := this.dbGameFree.GetId()
|
||||||
|
if sceneIds, exist := p.lastSceneId[id]; exist {
|
||||||
|
if !common.InSliceInt32(sceneIds, int32(this.sceneId)) {
|
||||||
|
sceneIds = append(sceneIds, int32(this.sceneId))
|
||||||
|
cnt := len(sceneIds)
|
||||||
|
if cnt > holdCnt {
|
||||||
|
sceneIds = sceneIds[cnt-holdCnt:]
|
||||||
|
}
|
||||||
|
p.lastSceneId[id] = sceneIds
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p.lastSceneId[id] = []int32{int32(this.sceneId)}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) DelPlayer(p *Player) bool {
|
func (this *Scene) DelPlayer(p *Player) bool {
|
||||||
if p.scene != this {
|
if p.scene != this {
|
||||||
inroomid := 0
|
roomId := 0
|
||||||
if p.scene != nil {
|
if p.scene != nil {
|
||||||
inroomid = p.scene.sceneId
|
roomId = p.scene.sceneId
|
||||||
}
|
}
|
||||||
logger.Logger.Warnf("(this *Scene) DelPlayer found player:%v in room:%v but room:%v", p.SnId, inroomid, this.sceneId)
|
logger.Logger.Errorf("DelPlayer found player:%v in room:%v but room:%v", p.SnId, roomId, this.sceneId)
|
||||||
}
|
}
|
||||||
|
|
||||||
if this.gameSess != nil {
|
if this.gameSess != nil {
|
||||||
this.gameSess.DelPlayer(p)
|
this.gameSess.DelPlayer(p)
|
||||||
}
|
}
|
||||||
delete(this.players, p.SnId)
|
// 玩家离开游戏
|
||||||
|
if _, ok := this.players[p.SnId]; ok {
|
||||||
|
delete(this.players, p.SnId)
|
||||||
|
if p.IsRobot() {
|
||||||
|
this.robotNum--
|
||||||
|
}
|
||||||
|
// 记录玩家最近玩游戏的房间
|
||||||
|
this.lastScene(p)
|
||||||
|
// 玩家最后所在游戏
|
||||||
|
p.LastGameId = int(this.dbGameFree.GetGameId())
|
||||||
|
}
|
||||||
|
// 观众离开游戏
|
||||||
|
if _, ok := this.audiences[p.SnId]; ok {
|
||||||
|
delete(this.audiences, p.SnId)
|
||||||
|
}
|
||||||
|
for k, v := range this.seats {
|
||||||
|
if v != nil && v.SnId == p.SnId {
|
||||||
|
p.pos = -1
|
||||||
|
this.seats[k] = nil
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
if !p.IsRob {
|
if !p.IsRob {
|
||||||
delete(this.gameCtx, p.SnId)
|
delete(this.gameCtx, p.SnId)
|
||||||
}
|
}
|
||||||
|
|
||||||
p.scene = nil
|
p.scene = nil
|
||||||
SceneMgrSingleton.OnPlayerLeaveScene(this, p)
|
if !p.IsRob {
|
||||||
|
this.lastTime = time.Now()
|
||||||
switch {
|
|
||||||
case this.IsHundredScene():
|
|
||||||
//case this.IsHallScene():
|
|
||||||
// PlatformMgrSingleton.OnPlayerLeaveScene(this, p)
|
|
||||||
// for i := 0; i < this.playerNum; i++ {
|
|
||||||
// if this.seats[i] == p {
|
|
||||||
// p.pos = -1
|
|
||||||
// this.seats[i] = nil
|
|
||||||
// break
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
case this.IsCoinScene() || this.IsMatchScene():
|
|
||||||
for i := 0; i < this.playerNum; i++ {
|
|
||||||
if this.seats[i] == p {
|
|
||||||
p.pos = -1
|
|
||||||
this.seats[i] = nil
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.IsRob {
|
|
||||||
this.robotNum--
|
|
||||||
name := this.GetSceneName()
|
|
||||||
logger.Logger.Tracef("(this *Scene) PlayerLeave(%v) robot(%v) robotlimit(%v)", name, this.robotNum, this.robotLimit)
|
|
||||||
}
|
|
||||||
//from gameserver, so don't need send msg
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool {
|
// PlayerLeave 玩家离开
|
||||||
logger.Logger.Infof("(this *Scene:%v) AudienceEnter(%v) ", this.sceneId, p.SnId)
|
func (this *Scene) PlayerLeave(p *Player, reason int) {
|
||||||
p.scene = this
|
logger.Logger.Infof("(this *Scene:%v) PlayerLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
||||||
this.audiences[p.SnId] = p
|
pack := &hallproto.SCQuitGame{
|
||||||
this.gameSess.AddPlayer(p)
|
Id: this.dbGameFree.Id,
|
||||||
|
Reason: proto.Int(reason),
|
||||||
//todo:send add msg to gamesrv
|
|
||||||
data, err := p.MarshalData(this.gameId)
|
|
||||||
if err == nil {
|
|
||||||
var gateSid int64
|
|
||||||
if p.gateSess != nil {
|
|
||||||
if srvInfo, ok := p.gateSess.GetAttribute(srvlib.SessionAttributeServerInfo).(*srvlibproto.SSSrvRegiste); ok && srvInfo != nil {
|
|
||||||
sessionId := srvlib.NewSessionIdEx(srvInfo.GetAreaId(), srvInfo.GetType(), srvInfo.GetId(), 0)
|
|
||||||
gateSid = sessionId.Get()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
isQuMin := false
|
|
||||||
//if !p.IsRob {
|
|
||||||
// pt := PlatformMgrSingleton.GetPackageTag(p.PackageID)
|
|
||||||
// if pt != nil && pt.SpreadTag == 1 {
|
|
||||||
// isQuMin = true
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
msg := &serverproto.WGPlayerEnter{
|
|
||||||
Sid: proto.Int64(p.sid),
|
|
||||||
SnId: proto.Int32(p.SnId),
|
|
||||||
GateSid: proto.Int64(gateSid),
|
|
||||||
SceneId: proto.Int(this.sceneId),
|
|
||||||
PlayerData: data,
|
|
||||||
IsLoaded: proto.Bool(ischangeroom),
|
|
||||||
IsQM: proto.Bool(isQuMin),
|
|
||||||
IParams: p.MarshalIParam(),
|
|
||||||
SParams: p.MarshalSParam(),
|
|
||||||
CParams: p.MarshalCParam(),
|
|
||||||
}
|
|
||||||
|
|
||||||
if !p.IsRob { //保存下进入时的环境
|
|
||||||
this.gameCtx[p.SnId] = &PlayerGameCtx{
|
|
||||||
takeCoin: p.takeCoin,
|
|
||||||
enterTs: p.enterts.Unix(),
|
|
||||||
totalConvertibleFlow: p.TotalConvertibleFlow,
|
|
||||||
}
|
|
||||||
this.lastTime = time.Now()
|
|
||||||
}
|
|
||||||
|
|
||||||
takeCoin := p.Coin
|
|
||||||
p.takeCoin = takeCoin
|
|
||||||
msg.TakeCoin = proto.Int64(takeCoin)
|
|
||||||
proto.SetDefaults(msg)
|
|
||||||
this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCEENTER), msg)
|
|
||||||
p.enterts = time.Now()
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
pack.OpCode = hallproto.OpResultCode_Game_OPRC_Sucess_Game
|
||||||
return false
|
p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_QUITGAME), pack)
|
||||||
|
logger.Logger.Tracef("SCQuitGame: %v, %v", p.SnId, pack)
|
||||||
|
this.DelPlayer(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AudienceLeave 观众离开
|
||||||
func (this *Scene) AudienceLeave(p *Player, reason int) {
|
func (this *Scene) AudienceLeave(p *Player, reason int) {
|
||||||
logger.Logger.Infof("(this *Scene:%v) AudienceLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
logger.Logger.Infof("(this *Scene:%v) AudienceLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
||||||
pack := &hallproto.SCLeaveRoom{
|
pack := &hallproto.SCLeaveRoom{
|
||||||
|
@ -723,97 +711,25 @@ func (this *Scene) AudienceLeave(p *Player, reason int) {
|
||||||
Mode: proto.Int(0),
|
Mode: proto.Int(0),
|
||||||
RoomId: proto.Int(this.sceneId),
|
RoomId: proto.Int(this.sceneId),
|
||||||
}
|
}
|
||||||
proto.SetDefaults(pack)
|
|
||||||
p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack)
|
p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack)
|
||||||
//观众直接从房间退出来
|
logger.Logger.Tracef("AudienceLeave SCLeaveRoom: %v, %v", p.SnId, pack)
|
||||||
this.DelAudience(p)
|
this.DelPlayer(p)
|
||||||
if !p.IsRob {
|
|
||||||
this.lastTime = time.Now()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) DelAudience(p *Player) bool {
|
// AudienceSit 观众坐下
|
||||||
logger.Logger.Infof("(this *Scene:%v) DelAudience(%v) ", this.sceneId, p.SnId)
|
|
||||||
if p.scene != this {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if this.gameSess != nil {
|
|
||||||
this.gameSess.DelPlayer(p)
|
|
||||||
}
|
|
||||||
delete(this.audiences, p.SnId)
|
|
||||||
if !p.IsRob {
|
|
||||||
delete(this.gameCtx, p.SnId)
|
|
||||||
}
|
|
||||||
p.scene = nil
|
|
||||||
SceneMgrSingleton.OnPlayerLeaveScene(this, p)
|
|
||||||
//from gameserver, so don't need send msg
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
//观众坐下
|
|
||||||
//func (this *Scene) AudienceSit(p *Player, pos int) bool {
|
|
||||||
// logger.Logger.Infof("(this *Scene:%v) AudienceSit(%v, %v, %v) ", this.sceneId, p.SnId, pos)
|
|
||||||
// if _, exist := this.audiences[p.SnId]; exist {
|
|
||||||
// if pos == -1 && !this.IsHundredScene() { //自动匹配;百人场没座位概念
|
|
||||||
// for i := 0; i < this.playerNum; i++ {
|
|
||||||
// if this.seats[i] == nil {
|
|
||||||
// pos = i
|
|
||||||
// break
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if pos != -1 || this.IsHundredScene() {
|
|
||||||
// if !this.IsHundredScene() {
|
|
||||||
// if this.seats[pos] != nil {
|
|
||||||
// return false
|
|
||||||
// }
|
|
||||||
// p.pos = pos
|
|
||||||
// p.applyPos = -1
|
|
||||||
// this.seats[pos] = p
|
|
||||||
// }
|
|
||||||
// delete(this.audiences, p.SnId)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// p.scene = this
|
|
||||||
// this.players[p.SnId] = p
|
|
||||||
//
|
|
||||||
// NpcServerAgentSington.OnPlayerEnterScene(this, p)
|
|
||||||
// if this.IsCoinScene() {
|
|
||||||
// CoinSceneMgrSingleton.OnPlayerEnter(p, int32(this.sceneId))
|
|
||||||
// } else if this.IsHallScene() {
|
|
||||||
// PlatformMgrSingleton.OnPlayerEnterScene(this, p)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// msg := &protocol.WGAudienceSit{
|
|
||||||
// SnId: proto.Int32(p.SnId),
|
|
||||||
// SceneId: proto.Int(this.sceneId),
|
|
||||||
// Pos: proto.Int(pos),
|
|
||||||
// }
|
|
||||||
// p.takeCoin = p.Coin
|
|
||||||
// msg.TakeCoin = proto.Int64(p.Coin)
|
|
||||||
// proto.SetDefaults(msg)
|
|
||||||
// this.SendToGame(int(protocol.MmoPacketID_PACKET_WG_AUDIENCESIT), msg)
|
|
||||||
// this.lastTime = time.Now()
|
|
||||||
// return true
|
|
||||||
// }
|
|
||||||
// return false
|
|
||||||
//}
|
|
||||||
|
|
||||||
func (this *Scene) AudienceSit(p *Player, pos int) bool {
|
func (this *Scene) AudienceSit(p *Player, pos int) bool {
|
||||||
logger.Logger.Infof("(this *Scene:%v) AudienceSit(%v, %v, %v) ", this.sceneId, p.SnId, pos, this.dbGameFree.GetId())
|
logger.Logger.Infof("(this *Scene:%v) AudienceSit(%v, %v, %v) ", this.sceneId, p.SnId, pos, this.dbGameFree.GetId())
|
||||||
if _, exist := this.audiences[p.SnId]; exist {
|
if _, exist := this.audiences[p.SnId]; exist {
|
||||||
delete(this.audiences, p.SnId)
|
delete(this.audiences, p.SnId)
|
||||||
p.scene = this
|
p.scene = this
|
||||||
this.players[p.SnId] = p
|
|
||||||
|
|
||||||
msg := &serverproto.WGAudienceSit{
|
|
||||||
SnId: proto.Int32(p.SnId),
|
|
||||||
SceneId: proto.Int(this.sceneId),
|
|
||||||
Pos: proto.Int(pos),
|
|
||||||
}
|
|
||||||
p.takeCoin = p.Coin
|
p.takeCoin = p.Coin
|
||||||
msg.TakeCoin = proto.Int64(p.Coin)
|
this.players[p.SnId] = p
|
||||||
proto.SetDefaults(msg)
|
msg := &serverproto.WGAudienceSit{
|
||||||
|
SnId: proto.Int32(p.SnId),
|
||||||
|
TakeCoin: p.Coin,
|
||||||
|
SceneId: proto.Int(this.sceneId),
|
||||||
|
Pos: proto.Int(pos),
|
||||||
|
}
|
||||||
this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCESIT), msg)
|
this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCESIT), msg)
|
||||||
if !p.IsRob {
|
if !p.IsRob {
|
||||||
this.lastTime = time.Now()
|
this.lastTime = time.Now()
|
||||||
|
@ -871,6 +787,8 @@ func (this *Scene) GetAudienceCnt() int {
|
||||||
return len(this.audiences)
|
return len(this.audiences)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsFull 是否满人
|
||||||
|
// 不包含观众
|
||||||
func (this *Scene) IsFull() bool {
|
func (this *Scene) IsFull() bool {
|
||||||
return this.GetPlayerCnt() >= this.playerNum
|
return this.GetPlayerCnt() >= this.playerNum
|
||||||
}
|
}
|
||||||
|
@ -883,23 +801,24 @@ func (this *Scene) AllIsRobot() bool {
|
||||||
return len(this.players) == this.robotNum
|
return len(this.players) == this.robotNum
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OnClose 房间销毁
|
||||||
func (this *Scene) OnClose() {
|
func (this *Scene) OnClose() {
|
||||||
scDestroyRoom := &hallproto.SCDestroyRoom{
|
scDestroyRoom := &hallproto.SCDestroyRoom{
|
||||||
RoomId: proto.Int(this.sceneId),
|
RoomId: proto.Int(this.sceneId),
|
||||||
OpRetCode: hallproto.OpResultCode_Game_OPRC_Sucess_Game,
|
OpRetCode: hallproto.OpResultCode_Game_OPRC_Sucess_Game,
|
||||||
IsForce: proto.Int(1),
|
IsForce: proto.Int(1),
|
||||||
}
|
}
|
||||||
proto.SetDefaults(scDestroyRoom)
|
|
||||||
this.Broadcast(int(hallproto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0)
|
this.Broadcast(int(hallproto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0)
|
||||||
|
|
||||||
|
this.deleting = true
|
||||||
this.closed = true
|
this.closed = true
|
||||||
this.sp.OnStop(this)
|
this.sp.OnStop(this)
|
||||||
//NpcServerAgentSington.OnSceneClose(this)
|
|
||||||
for _, p := range this.players {
|
for _, p := range this.players {
|
||||||
this.DelPlayer(p)
|
this.DelPlayer(p)
|
||||||
}
|
}
|
||||||
for _, p := range this.audiences {
|
for _, p := range this.audiences {
|
||||||
this.DelAudience(p)
|
this.DelPlayer(p)
|
||||||
}
|
}
|
||||||
this.players = nil
|
this.players = nil
|
||||||
this.audiences = nil
|
this.audiences = nil
|
||||||
|
@ -913,17 +832,13 @@ func (this *Scene) SendToGame(packetId int, pack interface{}) bool {
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
func (this *Scene) SendToClient(packetid int, rawpack interface{}, excludeId int32) {
|
|
||||||
for snid, value := range this.players {
|
func (this *Scene) SendToClient(packetId int, pack interface{}, excludeId int32) {
|
||||||
if snid == excludeId {
|
for v, value := range this.players {
|
||||||
|
if v == excludeId {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
value.SendToClient(packetid, rawpack)
|
value.SendToClient(packetId, pack)
|
||||||
}
|
|
||||||
}
|
|
||||||
func (this *Scene) BilledRoomCard(snid []int32) {
|
|
||||||
if this.sp != nil {
|
|
||||||
this.sp.BilledRoomCard(this, snid)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -936,7 +851,7 @@ func (this *Scene) IsLongTimeInactive() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) DoDelete(isGrace bool) {
|
func (this *Scene) SendGameDestroy(isGrace bool) {
|
||||||
if !isGrace {
|
if !isGrace {
|
||||||
this.deleting = true
|
this.deleting = true
|
||||||
this.force = true
|
this.force = true
|
||||||
|
@ -949,46 +864,32 @@ func (this *Scene) DoDelete(isGrace bool) {
|
||||||
logger.Logger.Tracef("WG_DESTROYSCENE: %v", pack)
|
logger.Logger.Tracef("WG_DESTROYSCENE: %v", pack)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) Shutdown() {
|
// IsMatchScene 比赛场
|
||||||
if this.hadCost && this.sp != nil {
|
|
||||||
this.sp.OnShutdown(this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 小游戏场
|
|
||||||
func (this *Scene) IsMiniGameScene() bool {
|
|
||||||
return this.sceneId >= common.MiniGameSceneStartId && this.sceneId < common.MiniGameSceneMaxId
|
|
||||||
}
|
|
||||||
|
|
||||||
// 比赛场
|
|
||||||
func (this *Scene) IsMatchScene() bool {
|
func (this *Scene) IsMatchScene() bool {
|
||||||
return this.sceneId >= common.MatchSceneStartId && this.sceneId < common.MatchSceneMaxId
|
return this.sceneId >= common.MatchSceneStartId && this.sceneId < common.MatchSceneMaxId
|
||||||
}
|
}
|
||||||
|
|
||||||
// 大厅场
|
// IsCoinScene 金币场
|
||||||
func (this *Scene) IsHallScene() bool {
|
|
||||||
return this.sceneId >= common.HallSceneStartId && this.sceneId < common.HallSceneMaxId
|
|
||||||
}
|
|
||||||
|
|
||||||
// 金币场
|
|
||||||
func (this *Scene) IsCoinScene() bool {
|
func (this *Scene) IsCoinScene() bool {
|
||||||
return this.sceneId >= common.CoinSceneStartId && this.sceneId < common.CoinSceneMaxId
|
return this.sceneId >= common.CoinSceneStartId && this.sceneId < common.CoinSceneMaxId
|
||||||
}
|
}
|
||||||
|
|
||||||
// 百人场
|
// IsHundredScene 百人场
|
||||||
func (this *Scene) IsHundredScene() bool {
|
func (this *Scene) IsHundredScene() bool {
|
||||||
return this.sceneId >= common.HundredSceneStartId && this.sceneId < common.HundredSceneMaxId
|
return this.sceneId >= common.HundredSceneStartId && this.sceneId < common.HundredSceneMaxId
|
||||||
}
|
}
|
||||||
|
|
||||||
// 私人房间
|
// IsPrivateScene 私人房间
|
||||||
func (this *Scene) IsPrivateScene() bool {
|
func (this *Scene) IsPrivateScene() bool {
|
||||||
return this.sceneId >= common.PrivateSceneStartId && this.sceneId < common.PrivateSceneMaxId || this.sceneMode == common.SceneMode_Private
|
return this.sceneId >= common.PrivateSceneStartId && this.sceneId < common.PrivateSceneMaxId || this.sceneMode == common.SceneMode_Private
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsSceneMode 房间模式
|
||||||
func (this *Scene) IsSceneMode(mode int) bool {
|
func (this *Scene) IsSceneMode(mode int) bool {
|
||||||
return this.sceneMode == mode
|
return this.sceneMode == mode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsRankMatch 排位赛
|
||||||
func (this *Scene) IsRankMatch() bool {
|
func (this *Scene) IsRankMatch() bool {
|
||||||
if this.dbGameFree == nil {
|
if this.dbGameFree == nil {
|
||||||
return false
|
return false
|
||||||
|
@ -996,6 +897,7 @@ func (this *Scene) IsRankMatch() bool {
|
||||||
return this.dbGameFree.RankType > 0
|
return this.dbGameFree.RankType > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsTestScene 试玩场
|
||||||
func (this *Scene) IsTestScene() bool {
|
func (this *Scene) IsTestScene() bool {
|
||||||
if this.dbGameFree != nil {
|
if this.dbGameFree != nil {
|
||||||
return this.dbGameFree.GetSceneType() == -1
|
return this.dbGameFree.GetSceneType() == -1
|
||||||
|
@ -1010,6 +912,9 @@ func (this *Scene) IsTestScene() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) GetSceneName() string {
|
func (this *Scene) GetSceneName() string {
|
||||||
|
if this.dbGameFree != nil {
|
||||||
|
return this.dbGameFree.GetName() + this.dbGameFree.GetTitle()
|
||||||
|
}
|
||||||
if len(this.paramsEx) > 0 {
|
if len(this.paramsEx) > 0 {
|
||||||
dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(this.paramsEx[0])
|
dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(this.paramsEx[0])
|
||||||
if dbGameFree != nil {
|
if dbGameFree != nil {
|
||||||
|
@ -1020,6 +925,21 @@ func (this *Scene) GetSceneName() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) RandRobotCnt() {
|
func (this *Scene) RandRobotCnt() {
|
||||||
|
if this.dbGameFree != nil {
|
||||||
|
numrng := this.dbGameFree.GetRobotNumRng()
|
||||||
|
if len(numrng) >= 2 {
|
||||||
|
if numrng[1] == numrng[0] {
|
||||||
|
this.robotLimit = int(numrng[0])
|
||||||
|
} else {
|
||||||
|
if numrng[1] < numrng[0] {
|
||||||
|
numrng[1], numrng[0] = numrng[0], numrng[1]
|
||||||
|
}
|
||||||
|
this.robotLimit = int(numrng[1]) //int(numrng[0] + rand.Int31n(numrng[1]-numrng[0]) + 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if len(this.paramsEx) > 0 {
|
if len(this.paramsEx) > 0 {
|
||||||
gps := PlatformMgrSingleton.GetGameFree(this.limitPlatform.IdStr, this.paramsEx[0])
|
gps := PlatformMgrSingleton.GetGameFree(this.limitPlatform.IdStr, this.paramsEx[0])
|
||||||
if gps != nil {
|
if gps != nil {
|
||||||
|
@ -1045,7 +965,7 @@ func (this *Scene) RandRobotCnt() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) isPlatform(platform string) bool {
|
func (this *Scene) IsPlatform(platform string) bool {
|
||||||
if platform == "0" || platform == this.limitPlatform.IdStr {
|
if platform == "0" || platform == this.limitPlatform.IdStr {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -1106,31 +1026,7 @@ func (this *Scene) GetTruePlayerCnt() int {
|
||||||
return len(this.players) - this.robotNum
|
return len(this.players) - this.robotNum
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) GetPlayerType(gameid, gamefreeid int32) (types []int32) {
|
func (this *Scene) Broadcast(packetId int, msg rawproto.Message, excludeSid int64) {
|
||||||
for _, p := range this.players {
|
|
||||||
t := int32(0)
|
|
||||||
if p.IsRob {
|
|
||||||
t = common.PlayerType_Rob
|
|
||||||
} else if p.WBLevel < 0 {
|
|
||||||
t = common.PlayerType_Black
|
|
||||||
} else if p.WBLevel > 0 {
|
|
||||||
t = common.PlayerType_White
|
|
||||||
} else {
|
|
||||||
pt := p.CheckType(gameid, gamefreeid)
|
|
||||||
if pt != nil {
|
|
||||||
t = pt.GetId()
|
|
||||||
} else {
|
|
||||||
t = common.PlayerType_Undefine
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !common.InSliceInt32(types, t) {
|
|
||||||
types = append(types, t)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int64) {
|
|
||||||
mgs := make(map[*netlib.Session][]*srvlibproto.MCSessionUnion)
|
mgs := make(map[*netlib.Session][]*srvlibproto.MCSessionUnion)
|
||||||
for _, p := range this.players {
|
for _, p := range this.players {
|
||||||
if p != nil {
|
if p != nil {
|
||||||
|
@ -1159,7 +1055,7 @@ func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int6
|
||||||
|
|
||||||
for gateSess, v := range mgs {
|
for gateSess, v := range mgs {
|
||||||
if gateSess != nil && len(v) != 0 {
|
if gateSess != nil && len(v) != 0 {
|
||||||
pack, err := common.CreateMulticastPacket(packetid, msg, v...)
|
pack, err := common.CreateMulticastPacket(packetId, msg, v...)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
proto.SetDefaults(pack)
|
proto.SetDefaults(pack)
|
||||||
gateSess.Send(int(srvlibproto.SrvlibPacketID_PACKET_SS_MULTICAST), pack)
|
gateSess.Send(int(srvlibproto.SrvlibPacketID_PACKET_SS_MULTICAST), pack)
|
||||||
|
@ -1171,12 +1067,11 @@ func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int6
|
||||||
func (this *Scene) HasSameIp(ip string) bool {
|
func (this *Scene) HasSameIp(ip string) bool {
|
||||||
for _, p := range this.players {
|
for _, p := range this.players {
|
||||||
if !p.IsRob {
|
if !p.IsRob {
|
||||||
if p.GMLevel == 0 && p.Ip == ip {
|
if p.Ip == ip {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1184,45 +1079,6 @@ func (this *Scene) IsPreCreateScene() bool {
|
||||||
return this.dbGameFree.GetCreateRoomNum() > 0
|
return this.dbGameFree.GetCreateRoomNum() > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) PlayerTryChange() {
|
|
||||||
var member []*Player
|
|
||||||
var player *Player
|
|
||||||
for _, value := range this.players {
|
|
||||||
if !value.IsRob {
|
|
||||||
member = append(member, value)
|
|
||||||
player = value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if len(member) <= 1 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
gameFreeId := this.dbGameFree.GetId()
|
|
||||||
gameConfig := PlatformMgrSingleton.GetGameFree(player.Platform, gameFreeId)
|
|
||||||
if gameConfig != nil && gameConfig.DbGameFree.GetMatchMode() == 1 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for i := 0; i < len(member)-1; i++ {
|
|
||||||
p := member[i]
|
|
||||||
other := member[i+1:]
|
|
||||||
if this.dbGameFree.GetSamePlaceLimit() > 0 && sceneLimitMgr.LimitSamePlaceBySnid(other, p,
|
|
||||||
this.dbGameFree.GetGameId(), this.dbGameFree.GetSamePlaceLimit()) {
|
|
||||||
if p.scene.IsPrivateScene() {
|
|
||||||
//if ClubSceneMgrSington.PlayerInChanging(p) {
|
|
||||||
// continue
|
|
||||||
//}
|
|
||||||
//ClubSceneMgrSington.PlayerTryChange(p, gameFreeId, []int32{int32(this.sceneId)}, false)
|
|
||||||
} else {
|
|
||||||
if CoinSceneMgrSingleton.PlayerInChanging(p) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
excludeSceneIds := p.lastSceneId[gameFreeId]
|
|
||||||
CoinSceneMgrSingleton.PlayerTryChange(p, gameFreeId, excludeSceneIds, false)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Scene) GetParamEx(idx int) int32 {
|
func (this *Scene) GetParamEx(idx int) int32 {
|
||||||
if idx < 0 || idx > len(this.paramsEx) {
|
if idx < 0 || idx > len(this.paramsEx) {
|
||||||
return -1
|
return -1
|
||||||
|
@ -1238,7 +1094,7 @@ func (this *Scene) SetParamEx(idx int, val int32) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Scene) TryForceDelectMatchInfo() {
|
func (this *Scene) TryForceDeleteMatchInfo() {
|
||||||
if !this.IsMatchScene() {
|
if !this.IsMatchScene() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
"mongo.games.com/game/common"
|
"mongo.games.com/game/common"
|
||||||
"mongo.games.com/game/model"
|
"mongo.games.com/game/model"
|
||||||
serverproto "mongo.games.com/game/protocol/server"
|
serverproto "mongo.games.com/game/protocol/server"
|
||||||
webapi2 "mongo.games.com/game/protocol/webapi"
|
webapiproto "mongo.games.com/game/protocol/webapi"
|
||||||
"mongo.games.com/game/webapi"
|
"mongo.games.com/game/webapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,21 +28,13 @@ var SceneMgrSingleton = &SceneMgr{
|
||||||
|
|
||||||
// SceneMgr 房间管理器
|
// SceneMgr 房间管理器
|
||||||
type SceneMgr struct {
|
type SceneMgr struct {
|
||||||
BaseClockSinker // 驱动时间事件
|
BaseClockSinker // 驱动时间事件
|
||||||
|
scenes map[int]*Scene // 房间id: Scene
|
||||||
|
|
||||||
scenes map[int]*Scene // 房间id: Scene
|
privateAutoId int // 私人房房间号
|
||||||
privateAutoId int // 私人房房间号
|
matchAutoId int // 比赛场房间号
|
||||||
matchAutoId int // 比赛场房间号
|
coinSceneAutoId int // 金币场房间号
|
||||||
coinSceneAutoId int // 金币场房间号
|
hundredSceneAutoId int // 百人场房间号
|
||||||
hundredSceneAutoId int // 百人场房间号
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *SceneMgr) GetPlatformBySceneId(sceneId int) string {
|
|
||||||
s := m.GetScene(sceneId)
|
|
||||||
if s != nil && s.limitPlatform != nil {
|
|
||||||
return s.limitPlatform.IdStr
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllocReplayCode 获取回访码
|
// AllocReplayCode 获取回访码
|
||||||
|
@ -87,6 +79,14 @@ func (m *SceneMgr) GenOneMatchSceneId() int {
|
||||||
return m.matchAutoId
|
return m.matchAutoId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *SceneMgr) GetPlatformBySceneId(sceneId int) string {
|
||||||
|
s := m.GetScene(sceneId)
|
||||||
|
if s != nil && s.limitPlatform != nil {
|
||||||
|
return s.limitPlatform.IdStr
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// GetScene 获取房间对象
|
// GetScene 获取房间对象
|
||||||
func (m *SceneMgr) GetScene(sceneId int) *Scene {
|
func (m *SceneMgr) GetScene(sceneId int) *Scene {
|
||||||
if s, exist := m.scenes[sceneId]; exist && !s.deleting {
|
if s, exist := m.scenes[sceneId]; exist && !s.deleting {
|
||||||
|
@ -123,6 +123,8 @@ func (m *SceneMgr) GetScenesByGameFreeId(gameFreeId int32) []*Scene {
|
||||||
return scenes
|
return scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetMatchRoom 获取比赛房间
|
||||||
|
// sortId 比赛id
|
||||||
func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene {
|
func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene {
|
||||||
var scenes []*Scene
|
var scenes []*Scene
|
||||||
for _, value := range m.scenes {
|
for _, value := range m.scenes {
|
||||||
|
@ -137,9 +139,10 @@ func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MarshalAllRoom 获取房间列表
|
// MarshalAllRoom 获取房间列表
|
||||||
|
// 返回 房间列表,总页数,总条数
|
||||||
func (m *SceneMgr) MarshalAllRoom(platform string, groupId, gameId int, gameMode, clubId, sceneMode, sceneId int,
|
func (m *SceneMgr) MarshalAllRoom(platform string, groupId, gameId int, gameMode, clubId, sceneMode, sceneId int,
|
||||||
gameFreeId, snId int32, start, end, pageSize int32) ([]*webapi2.RoomInfo, int32, int32) {
|
gameFreeId, snId int32, start, end, pageSize int32) ([]*webapiproto.RoomInfo, int32, int32) {
|
||||||
roomInfo := make([]*webapi2.RoomInfo, 0, len(m.scenes))
|
roomInfo := make([]*webapiproto.RoomInfo, 0, len(m.scenes))
|
||||||
var isNeedFindAll = false
|
var isNeedFindAll = false
|
||||||
if model.GameParamData.IsFindRoomByGroup && platform != "" && snId != 0 && gameId == 0 &&
|
if model.GameParamData.IsFindRoomByGroup && platform != "" && snId != 0 && gameId == 0 &&
|
||||||
gameMode == 0 && sceneId == -1 && groupId == 0 && clubId == 0 && sceneMode == 0 {
|
gameMode == 0 && sceneId == -1 && groupId == 0 && clubId == 0 && sceneMode == 0 {
|
||||||
|
@ -159,7 +162,7 @@ func (m *SceneMgr) MarshalAllRoom(platform string, groupId, gameId int, gameMode
|
||||||
platformName = s.limitPlatform.IdStr
|
platformName = s.limitPlatform.IdStr
|
||||||
}
|
}
|
||||||
|
|
||||||
si := &webapi2.RoomInfo{
|
si := &webapiproto.RoomInfo{
|
||||||
Platform: platformName,
|
Platform: platformName,
|
||||||
SceneId: int32(s.sceneId),
|
SceneId: int32(s.sceneId),
|
||||||
GameId: int32(s.gameId),
|
GameId: int32(s.gameId),
|
||||||
|
@ -266,18 +269,21 @@ func (m *SceneMgr) CreateScene(agentor, creator int32, sceneId, gameId, gameMode
|
||||||
numOfGames int32, params []int64, gs *GameSession, limitPlatform *Platform, groupId int32, dbGameFree *serverproto.DB_GameFree,
|
numOfGames int32, params []int64, gs *GameSession, limitPlatform *Platform, groupId int32, dbGameFree *serverproto.DB_GameFree,
|
||||||
paramsEx ...int32) *Scene {
|
paramsEx ...int32) *Scene {
|
||||||
logger.Logger.Trace("(this *SceneMgr) CreateScene ")
|
logger.Logger.Trace("(this *SceneMgr) CreateScene ")
|
||||||
|
// 创建房间
|
||||||
s := NewScene(agentor, creator, sceneId, gameId, gameMode, sceneMode, clycleTimes, numOfGames, params, gs, limitPlatform, groupId,
|
s := NewScene(agentor, creator, sceneId, gameId, gameMode, sceneMode, clycleTimes, numOfGames, params, gs, limitPlatform, groupId,
|
||||||
dbGameFree, paramsEx...)
|
dbGameFree, paramsEx...)
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
m.scenes[sceneId] = s
|
m.scenes[sceneId] = s
|
||||||
|
|
||||||
|
// 创建水池
|
||||||
if !s.IsMatchScene() && dbGameFree != nil && limitPlatform != nil {
|
if !s.IsMatchScene() && dbGameFree != nil && limitPlatform != nil {
|
||||||
//平台水池设置
|
//平台水池设置
|
||||||
gs.DetectCoinPoolSetting(limitPlatform.IdStr, dbGameFree.GetId(), s.groupId)
|
gs.DetectCoinPoolSetting(limitPlatform.IdStr, dbGameFree.GetId(), s.groupId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 添加到游戏服记录中
|
||||||
gs.AddScene(s)
|
gs.AddScene(s)
|
||||||
var platformName string
|
var platformName string
|
||||||
if limitPlatform != nil {
|
if limitPlatform != nil {
|
||||||
|
@ -298,10 +304,9 @@ func (m *SceneMgr) CreateLocalGameScene(creator int32, sceneId, gameId, gameSite
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
m.scenes[sceneId] = s
|
m.scenes[sceneId] = s
|
||||||
gs.AddScene(s)
|
|
||||||
|
|
||||||
|
gs.AddScene(s)
|
||||||
var platformName string
|
var platformName string
|
||||||
if limitPlatform != nil {
|
if limitPlatform != nil {
|
||||||
platformName = limitPlatform.IdStr
|
platformName = limitPlatform.IdStr
|
||||||
|
@ -336,44 +341,7 @@ func (m *SceneMgr) DestroyScene(sceneId int, isCompleted bool) {
|
||||||
logger.Logger.Infof("(this *SceneMgr) DestroyScene, SceneId=%v", sceneId)
|
logger.Logger.Infof("(this *SceneMgr) DestroyScene, SceneId=%v", sceneId)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SceneMgr) OnPlayerLeaveScene(s *Scene, p *Player) {
|
func (m *SceneMgr) SendGameDestroy(sceneId []int, isGrace bool) {
|
||||||
logger.Logger.Trace("(this *SceneMgr) OnPlayerLeaveScene", p.SnId)
|
|
||||||
|
|
||||||
// 记录玩家在每个游戏场次最后进入的房间号
|
|
||||||
// 只记录金币场
|
|
||||||
if s.IsCoinScene() {
|
|
||||||
const MINHOLD = 10
|
|
||||||
const MAXHOLD = 20
|
|
||||||
holdCnt := MINHOLD
|
|
||||||
if s.csp != nil {
|
|
||||||
holdCnt = s.csp.GetHasTruePlayerSceneCnt() + 2
|
|
||||||
if holdCnt < MINHOLD {
|
|
||||||
holdCnt = MINHOLD
|
|
||||||
}
|
|
||||||
if holdCnt > MAXHOLD {
|
|
||||||
holdCnt = MAXHOLD
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if p.lastSceneId == nil {
|
|
||||||
p.lastSceneId = make(map[int32][]int32)
|
|
||||||
}
|
|
||||||
id := s.dbGameFree.GetId()
|
|
||||||
if sceneIds, exist := p.lastSceneId[id]; exist {
|
|
||||||
if !common.InSliceInt32(sceneIds, int32(s.sceneId)) {
|
|
||||||
sceneIds = append(sceneIds, int32(s.sceneId))
|
|
||||||
cnt := len(sceneIds)
|
|
||||||
if cnt > holdCnt {
|
|
||||||
sceneIds = sceneIds[cnt-holdCnt:]
|
|
||||||
}
|
|
||||||
p.lastSceneId[id] = sceneIds
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
p.lastSceneId[id] = []int32{int32(s.sceneId)}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *SceneMgr) DoDelete(sceneId []int, isGrace bool) {
|
|
||||||
if len(sceneId) == 0 {
|
if len(sceneId) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -393,31 +361,6 @@ func (m *SceneMgr) DoDelete(sceneId []int, isGrace bool) {
|
||||||
srvlib.ServerSessionMgrSington.Broadcast(int(serverproto.SSPacketID_PACKET_WG_DESTROYSCENE), pack, common.GetSelfAreaId(), srvlib.GameServerType)
|
srvlib.ServerSessionMgrSington.Broadcast(int(serverproto.SSPacketID_PACKET_WG_DESTROYSCENE), pack, common.GetSelfAreaId(), srvlib.GameServerType)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetThirdScene 获取三方游戏房间
|
|
||||||
//func (m *SceneMgr) GetThirdScene(i webapi.IThirdPlatform) *Scene {
|
|
||||||
// if i == nil {
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
// sceneId := i.GetPlatformBase().SceneId
|
|
||||||
// scene := m.scenes[sceneId]
|
|
||||||
// if scene != nil {
|
|
||||||
// return scene
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// gs := GameSessMgrSington.GetMinLoadSess(i.GetPlatformBase().BaseGameID)
|
|
||||||
// if gs != nil {
|
|
||||||
// limitPlatform := PlatformMgrSingleton.GetPlatform(DefaultPlatform)
|
|
||||||
// var gameMode = common.SceneMode_Thr
|
|
||||||
// dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(i.GetPlatformBase().VultGameID)
|
|
||||||
// scene := SceneMgrSingleton.CreateScene(0, 0, sceneId, i.GetPlatformBase().BaseGameID, gameMode, int(common.SceneMode_Thr), 1, -1,
|
|
||||||
// []int64{}, gs, limitPlatform, 0, dbGameFree, i.GetPlatformBase().VultGameID)
|
|
||||||
// return scene
|
|
||||||
// } else {
|
|
||||||
// logger.Logger.Errorf("Get %v game min session failed.", i.GetPlatformBase().BaseGameID)
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
//=========================ClockSinker===============================
|
//=========================ClockSinker===============================
|
||||||
|
|
||||||
// InterestClockEvent 接收所有时间事件
|
// InterestClockEvent 接收所有时间事件
|
||||||
|
@ -435,18 +378,18 @@ func (m *SceneMgr) OnMiniTimer() {
|
||||||
case s.IsCoinScene():
|
case s.IsCoinScene():
|
||||||
if s.IsLongTimeInactive() {
|
if s.IsLongTimeInactive() {
|
||||||
if s.dbGameFree.GetCreateRoomNum() == 0 {
|
if s.dbGameFree.GetCreateRoomNum() == 0 {
|
||||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene DoDelete scene:%v IsLongTimeInactive", s.sceneId)
|
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId)
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
if s.dbGameFree.GetCreateRoomNum() > 0 && s.csp != nil && s.csp.GetRoomNum() > int(s.dbGameFree.GetCreateRoomNum()) {
|
if s.dbGameFree.GetCreateRoomNum() > 0 && s.csp != nil && s.csp.GetRoomNum() > int(s.dbGameFree.GetCreateRoomNum()) {
|
||||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene DoDelete scene:%v IsLongTimeInactive", s.sceneId)
|
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId)
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case s.IsPrivateScene():
|
case s.IsPrivateScene():
|
||||||
if s.IsLongTimeInactive() {
|
if s.IsLongTimeInactive() {
|
||||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene DoDelete scene:%v IsLongTimeInactive", s.sceneId)
|
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId)
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,10 +61,6 @@ type ScenePolicyData struct {
|
||||||
customIndexParams []*ScenePolicyDataParam
|
customIndexParams []*ScenePolicyDataParam
|
||||||
}
|
}
|
||||||
|
|
||||||
func alignto(val, align int32) int32 {
|
|
||||||
return (val + align - 1) / align
|
|
||||||
}
|
|
||||||
|
|
||||||
func (spd *ScenePolicyData) Init() bool {
|
func (spd *ScenePolicyData) Init() bool {
|
||||||
spd.nameMap = make(map[string]*ScenePolicyDataParam)
|
spd.nameMap = make(map[string]*ScenePolicyDataParam)
|
||||||
spd.aliasNameMap = make(map[string]*ScenePolicyDataParam)
|
spd.aliasNameMap = make(map[string]*ScenePolicyDataParam)
|
||||||
|
|
|
@ -19,6 +19,10 @@ import (
|
||||||
"mongo.games.com/game/srvdata"
|
"mongo.games.com/game/srvdata"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func getSortId() int64 {
|
||||||
|
return time.Now().UnixMilli()
|
||||||
|
}
|
||||||
|
|
||||||
type TmPlayer struct {
|
type TmPlayer struct {
|
||||||
SnId int32
|
SnId int32
|
||||||
seq int // 报名序号(第几个报名的)
|
seq int // 报名序号(第几个报名的)
|
||||||
|
@ -30,6 +34,7 @@ type TmGradeInfo struct {
|
||||||
copyLv int32
|
copyLv int32
|
||||||
copyRoleId int32
|
copyRoleId int32
|
||||||
CopySkinId int32
|
CopySkinId int32
|
||||||
|
rank int32
|
||||||
}
|
}
|
||||||
|
|
||||||
type TmMatch struct {
|
type TmMatch struct {
|
||||||
|
@ -48,7 +53,7 @@ type TmMatch struct {
|
||||||
|
|
||||||
func NewTmMatch(platform string, match *webapi_proto.GameMatchDate, players map[int32]*TmPlayer) *TmMatch {
|
func NewTmMatch(platform string, match *webapi_proto.GameMatchDate, players map[int32]*TmPlayer) *TmMatch {
|
||||||
ret := &TmMatch{
|
ret := &TmMatch{
|
||||||
SortId: time.Now().UnixNano(),
|
SortId: getSortId(),
|
||||||
TMId: match.Id,
|
TMId: match.Id,
|
||||||
TmPlayer: make(map[int32]*TmPlayer),
|
TmPlayer: make(map[int32]*TmPlayer),
|
||||||
Platform: platform,
|
Platform: platform,
|
||||||
|
@ -307,6 +312,7 @@ func (tm *TmMatch) RobotGradesDecline(round int) {
|
||||||
copyLv: info.copyLv,
|
copyLv: info.copyLv,
|
||||||
copyRoleId: info.copyRoleId,
|
copyRoleId: info.copyRoleId,
|
||||||
CopySkinId: info.CopySkinId,
|
CopySkinId: info.CopySkinId,
|
||||||
|
rank: info.rank,
|
||||||
}
|
}
|
||||||
tm.robotGrades[lastRound][i] = gradeInfo
|
tm.robotGrades[lastRound][i] = gradeInfo
|
||||||
if info.copySnid != 0 {
|
if info.copySnid != 0 {
|
||||||
|
|
|
@ -154,8 +154,8 @@ func (this *Tournament) addFinalPlayer(sortId int64, p *PerRankInfo) {
|
||||||
this.finalPerRank[sortId] = append(this.finalPerRank[sortId], p)
|
this.finalPerRank[sortId] = append(this.finalPerRank[sortId], p)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询一场比赛某轮的历史数据
|
// GetRoundPlayer 查询一场比赛某轮的历史数据
|
||||||
func (this *Tournament) getRoundPlayer(sortId int64, round int32) *PlayerRoundInfo {
|
func (this *Tournament) GetRoundPlayer(sortId int64, round int32) *PlayerRoundInfo {
|
||||||
_, ok := this.roundPlayers[sortId]
|
_, ok := this.roundPlayers[sortId]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
|
@ -923,6 +923,78 @@ func (this *Tournament) getRank(sortId int64, round, snid int32, isFinals bool)
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRank 获取排名
|
||||||
|
func (this *Tournament) GetRank(sortId int64, snid int32) int32 {
|
||||||
|
tm := this.GetTm(sortId)
|
||||||
|
if tm == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
round := this.GetRound(sortId)
|
||||||
|
useRobot := this.IsRobotOn(tm.gmd)
|
||||||
|
|
||||||
|
robotRankFunc := func(n int, snid int32) int32 {
|
||||||
|
rank := int32(0)
|
||||||
|
for _, v := range tm.robotGrades[n] {
|
||||||
|
if v.copySnid == snid {
|
||||||
|
return v.rank
|
||||||
|
}
|
||||||
|
if v.copySnid == 0 {
|
||||||
|
rank = v.rank
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rank
|
||||||
|
}
|
||||||
|
|
||||||
|
playerRankFunc := func(n int, snid int32) int32 {
|
||||||
|
d := this.GetRoundPlayer(sortId, int32(n))
|
||||||
|
if d != nil {
|
||||||
|
for _, v := range d.players {
|
||||||
|
if v.p.SnId == snid {
|
||||||
|
return v.rank
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
d = this.GetRoundPlayer(sortId, int32(n-1))
|
||||||
|
if d != nil {
|
||||||
|
for _, v := range d.players {
|
||||||
|
if v.p.SnId == snid {
|
||||||
|
return v.rank
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if round <= 1 {
|
||||||
|
d := tm.TmPlayer[snid]
|
||||||
|
if d != nil {
|
||||||
|
return int32(d.seq)
|
||||||
|
}
|
||||||
|
if useRobot {
|
||||||
|
n := 0
|
||||||
|
for _, v := range tm.TmPlayer {
|
||||||
|
n = v.seq - 1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
for k, v := range tm.robotGrades[0] {
|
||||||
|
if v.copySnid == snid {
|
||||||
|
if k < n {
|
||||||
|
return int32(k)
|
||||||
|
}
|
||||||
|
return int32(k + 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
} else {
|
||||||
|
if useRobot {
|
||||||
|
return robotRankFunc(int(round-1), snid)
|
||||||
|
} else {
|
||||||
|
return playerRankFunc(int(round-1), snid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateMatchInfo 玩家比赛结束 更新积分
|
// UpdateMatchInfo 玩家比赛结束 更新积分
|
||||||
func (this *Tournament) UpdateMatchInfo(p *Player, sortId int64, grade, isWin int32, matchRobotGrades map[int32]int32) {
|
func (this *Tournament) UpdateMatchInfo(p *Player, sortId int64, grade, isWin int32, matchRobotGrades map[int32]int32) {
|
||||||
logger.Logger.Tracef("UpdateMatchInfo: sortId:%v, grade:%v, isWin: %v, matchRobotGrades:%v", sortId, grade, isWin, matchRobotGrades)
|
logger.Logger.Tracef("UpdateMatchInfo: sortId:%v, grade:%v, isWin: %v, matchRobotGrades:%v", sortId, grade, isWin, matchRobotGrades)
|
||||||
|
@ -999,7 +1071,7 @@ func (this *Tournament) stopMatch(matchId int32, sortId int64) (isOver bool) {
|
||||||
// 开启机器人时使用
|
// 开启机器人时使用
|
||||||
func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatchContext, matchRobotGrades map[int32]int32) {
|
func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatchContext, matchRobotGrades map[int32]int32) {
|
||||||
logger.Logger.Tracef("NextRoundStartSingle 当前第 %v 轮", playerCtx.round)
|
logger.Logger.Tracef("NextRoundStartSingle 当前第 %v 轮", playerCtx.round)
|
||||||
info := this.getRoundPlayer(sortId, playerCtx.round)
|
info := this.GetRoundPlayer(sortId, playerCtx.round)
|
||||||
if info == nil {
|
if info == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1042,11 +1114,24 @@ func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatc
|
||||||
}
|
}
|
||||||
|
|
||||||
sort.Slice(arr, func(i, j int) bool {
|
sort.Slice(arr, func(i, j int) bool {
|
||||||
|
if arr[i].grade == arr[j].grade { // 真人在前
|
||||||
|
if arr[i].copySnid == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if arr[j].copySnid == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
return arr[i].grade > arr[j].grade
|
return arr[i].grade > arr[j].grade
|
||||||
})
|
})
|
||||||
|
for k, v := range arr {
|
||||||
|
v.rank = int32(k + 1)
|
||||||
|
}
|
||||||
|
playerCtx.tm.robotGrades[int(round)] = arr
|
||||||
|
|
||||||
for _, info := range arr {
|
for _, info := range arr {
|
||||||
logger.Logger.Tracef("NextRoundStart_Single 本轮积分排名 Snid:%v Grade:%v copyLv:%v copyRoleId:%v", info.copySnid, info.grade, info.copyLv, info.copyRoleId)
|
logger.Logger.Tracef("NextRoundStart_Single 本轮积分排名 round:%v Snid:%v Grade:%v copyLv:%v copyRoleId:%v rank:%v",
|
||||||
|
playerCtx.round, info.copySnid, info.grade, info.copyLv, info.copyRoleId, info.rank)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取排名
|
// 获取排名
|
||||||
|
@ -1117,7 +1202,7 @@ func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatc
|
||||||
// 关闭机器时使用
|
// 关闭机器时使用
|
||||||
func (this *Tournament) NextRoundStart(sortId int64, playerCtx *PlayerMatchContext) {
|
func (this *Tournament) NextRoundStart(sortId int64, playerCtx *PlayerMatchContext) {
|
||||||
logger.Logger.Tracef("NextRoundStart 当前第 %v 轮", playerCtx.round)
|
logger.Logger.Tracef("NextRoundStart 当前第 %v 轮", playerCtx.round)
|
||||||
info := this.getRoundPlayer(sortId, playerCtx.round)
|
info := this.GetRoundPlayer(sortId, playerCtx.round)
|
||||||
if info == nil {
|
if info == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1158,7 +1243,7 @@ func (this *Tournament) NextRoundStart(sortId int64, playerCtx *PlayerMatchConte
|
||||||
info.players = info.players[len(ps):]
|
info.players = info.players[len(ps):]
|
||||||
|
|
||||||
willOut := false
|
willOut := false
|
||||||
if promotionNum1 == this.getRoundPlayer(sortId, playerCtx.round-1).num {
|
if promotionNum1 == this.GetRoundPlayer(sortId, playerCtx.round-1).num {
|
||||||
// 最后一个人打完了,确定要淘汰的人
|
// 最后一个人打完了,确定要淘汰的人
|
||||||
willOut = true
|
willOut = true
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1747,24 +1747,24 @@ func init() {
|
||||||
switch msg.DestroyType {
|
switch msg.DestroyType {
|
||||||
case 1: //删除所有空房间
|
case 1: //删除所有空房间
|
||||||
for _, s := range SceneMgrSingleton.scenes {
|
for _, s := range SceneMgrSingleton.scenes {
|
||||||
if !s.isPlatform(platform) {
|
if !s.IsPlatform(platform) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if s != nil && !s.deleting && len(s.players) == 0 {
|
if s != nil && !s.deleting && len(s.players) == 0 {
|
||||||
logger.Logger.Warnf("WebService SpecailEmptySceneId destroyroom scene:%v", s.sceneId)
|
logger.Logger.Warnf("WebService SpecailEmptySceneId destroyroom scene:%v", s.sceneId)
|
||||||
s.TryForceDelectMatchInfo()
|
s.TryForceDeleteMatchInfo()
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case 2: //删除所有未开始的房间
|
case 2: //删除所有未开始的房间
|
||||||
for _, s := range SceneMgrSingleton.scenes {
|
for _, s := range SceneMgrSingleton.scenes {
|
||||||
if !s.isPlatform(platform) {
|
if !s.IsPlatform(platform) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if s != nil && !s.deleting && !s.starting && !s.IsHundredScene() {
|
if s != nil && !s.deleting && !s.starting && !s.IsHundredScene() {
|
||||||
logger.Logger.Warnf("WebService SpecailUnstartSceneId destroyroom scene:%v", s.sceneId)
|
logger.Logger.Warnf("WebService SpecailUnstartSceneId destroyroom scene:%v", s.sceneId)
|
||||||
s.TryForceDelectMatchInfo()
|
s.TryForceDeleteMatchInfo()
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default: //删除指定房间
|
default: //删除指定房间
|
||||||
|
@ -1780,14 +1780,14 @@ func init() {
|
||||||
pack.Msg = "the sceneid is nil"
|
pack.Msg = "the sceneid is nil"
|
||||||
return common.ResponseTag_NoFindRoom, pack
|
return common.ResponseTag_NoFindRoom, pack
|
||||||
}
|
}
|
||||||
if !s.isPlatform(platform) {
|
if !s.IsPlatform(platform) {
|
||||||
pack.Tag = webapiproto.TagCode_FAILED
|
pack.Tag = webapiproto.TagCode_FAILED
|
||||||
pack.Msg = "the sceneid is not ower platform"
|
pack.Msg = "the sceneid is not ower platform"
|
||||||
return common.ResponseTag_NoFindRoom, pack
|
return common.ResponseTag_NoFindRoom, pack
|
||||||
}
|
}
|
||||||
logger.Logger.Warnf("WebService destroyroom scene:%v", s.sceneId)
|
logger.Logger.Warnf("WebService destroyroom scene:%v", s.sceneId)
|
||||||
s.TryForceDelectMatchInfo()
|
s.TryForceDeleteMatchInfo()
|
||||||
s.DoDelete(false)
|
s.SendGameDestroy(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return common.ResponseTag_Ok, pack
|
return common.ResponseTag_Ok, pack
|
||||||
|
@ -3444,7 +3444,7 @@ func init() {
|
||||||
player.MoneyTotal += int64(info.ConsumeTypeNum)
|
player.MoneyTotal += int64(info.ConsumeTypeNum)
|
||||||
player.dirty = true
|
player.dirty = true
|
||||||
player.SendDiffData()
|
player.SendDiffData()
|
||||||
info.Amount[2] = player.GetVIPExpByPay(info.ConsumeNum)
|
info.Amount[2] = int32(player.GetVIPExpByPay(int64(info.ConsumeNum)))
|
||||||
|
|
||||||
var itemInfo []*playerproto.PayItem
|
var itemInfo []*playerproto.PayItem
|
||||||
var items []*Item
|
var items []*Item
|
||||||
|
|
Binary file not shown.
Binary file not shown.
BIN
xlsx/DB_VIP.xlsx
BIN
xlsx/DB_VIP.xlsx
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue