Merge branch 'develop' into release
This commit is contained in:
commit
c14c15e18b
|
@ -66,6 +66,10 @@ const (
|
|||
GameID_Thirteen8 = 212 // 十三张(八人场)
|
||||
GameID_ThirteenFree = 213 // 十三张(自由场经典场)
|
||||
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_CaiShen = 301 // 财神
|
||||
GameId_Avengers = 302 // 复仇者联盟
|
||||
|
@ -116,7 +120,9 @@ func IsTienLenYuLe(gameId int) bool {
|
|||
GameId_TienLenSelect_yl,
|
||||
GameId_TienLenRank_yl,
|
||||
GameId_TienLenSelect_yl_toend,
|
||||
GameId_TienLenRank_yl_toend:
|
||||
GameId_TienLenRank_yl_toend,
|
||||
GameId_TienLenCustom_yl,
|
||||
GameId_TienLenCustom_yl_toend:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -131,7 +137,9 @@ func IsTienLenToEnd(gameId int) bool {
|
|||
GameId_TienLenSelect_toend,
|
||||
GameId_TienLenSelect_yl_toend,
|
||||
GameId_TienLenRank_toend,
|
||||
GameId_TienLenRank_yl_toend:
|
||||
GameId_TienLenRank_yl_toend,
|
||||
GameId_TienLenCustom_toend,
|
||||
GameId_TienLenCustom_yl_toend:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -853,3 +861,9 @@ const (
|
|||
On = 1 // 开启
|
||||
Off = 2 // 关闭
|
||||
)
|
||||
|
||||
const (
|
||||
DataConfigAll = 0 // 全部配置
|
||||
DataConfigSprite = 1 // 精灵配置
|
||||
DataConfigMatchAudience = 2 // 赛事观战开关
|
||||
)
|
||||
|
|
Binary file not shown.
|
@ -3424,6 +3424,106 @@
|
|||
"BetWaterRate": 100,
|
||||
"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,
|
||||
"Name": "Tienlen经典",
|
||||
|
|
Binary file not shown.
|
@ -142,6 +142,30 @@
|
|||
"GameId": 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,
|
||||
"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": [
|
||||
{
|
||||
"Id": 1,
|
||||
"SkinId": 300004
|
||||
"Type": 1,
|
||||
"SkinId": 300004,
|
||||
"VIPDes": "VIPShow.t1"
|
||||
},
|
||||
{
|
||||
"Id": 2,
|
||||
"Type": 1,
|
||||
"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()
|
||||
baseScore := msg.GetBaseScore()
|
||||
playerNum := int(msg.GetPlayerNum())
|
||||
matchInfoId := msg.GetMatchInfoId()
|
||||
scene := base.SceneMgrSington.CreateScene(s, sceneId, gameMode, sceneMode, gameId, msg.GetPlatform(), msg.GetParams(),
|
||||
msg.GetAgentor(), msg.GetCreator(), msg.GetReplayCode(), hallId, groupId, totalOfGames, dbGameFree,
|
||||
bEnterAfterStart, baseScore, playerNum, msg.GetChessRank(), paramsEx...)
|
||||
if scene != nil {
|
||||
if scene.IsMatchScene() {
|
||||
scene.MatchInfoId = matchInfoId
|
||||
if len(scene.Params) > 0 {
|
||||
scene.MatchId = scene.Params[0]
|
||||
}
|
||||
|
|
|
@ -136,6 +136,7 @@ type Scene struct {
|
|||
Novice bool
|
||||
Welfare bool
|
||||
KillPoints bool
|
||||
MatchInfoId int32
|
||||
}
|
||||
|
||||
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) {
|
||||
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),
|
||||
}
|
||||
proto.SetDefaults(pack)
|
||||
|
|
|
@ -619,6 +619,9 @@ func (this *TienLenSceneData) SendHandCard_Match() {
|
|||
proto.SetDefaults(pack)
|
||||
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||
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)
|
||||
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||
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),
|
||||
NextNeed: int32(s.MatchNextNeed),
|
||||
RecordId: sceneEx.recordId,
|
||||
TMInfoId: sceneEx.MatchInfoId,
|
||||
}
|
||||
pack.IsMatch = int32(0)
|
||||
// 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++ {
|
||||
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])
|
||||
} else {
|
||||
pd1.Cards = append(pd1.Cards, rule.InvalideCard)
|
||||
|
|
|
@ -135,7 +135,7 @@ type AllConfig struct {
|
|||
*webapi.AwardLogConfig
|
||||
// 新手引导配置
|
||||
*webapi.GuideConfig
|
||||
MatchAudience map[int32]*webapi.MatchAudience // 比赛观众列表
|
||||
MatchAudience map[int32]*webapi.MatchAudience // 比赛观众列表 key: 玩家id
|
||||
// 小精灵配置
|
||||
*webapi.SpiritConfig
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ const (
|
|||
OpResultCode_Game_OPRC_AllocRoomIdFailed_Game OpResultCode_Game = 1097 //房间id获取失败
|
||||
OpResultCode_Game_OPRC_PrivateRoomCountLimit_Game OpResultCode_Game = 1098 //私人房间上限
|
||||
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_PlayerMax_Game OpResultCode_Game = 1076 //超过单个用户最大下米数
|
||||
OpResultCode_Game_OPRC_LowerRice_PlayerDownMax_Game OpResultCode_Game = 1077
|
||||
|
@ -95,6 +96,7 @@ var (
|
|||
1097: "OPRC_AllocRoomIdFailed_Game",
|
||||
1098: "OPRC_PrivateRoomCountLimit_Game",
|
||||
1099: "OPRC_RoomNotExit",
|
||||
1100: "OPRC_MatchAudience",
|
||||
1075: "OPRC_LowerRice_ScenceMax_Game",
|
||||
1076: "OPRC_LowerRice_PlayerMax_Game",
|
||||
1077: "OPRC_LowerRice_PlayerDownMax_Game",
|
||||
|
@ -136,6 +138,7 @@ var (
|
|||
"OPRC_AllocRoomIdFailed_Game": 1097,
|
||||
"OPRC_PrivateRoomCountLimit_Game": 1098,
|
||||
"OPRC_RoomNotExit": 1099,
|
||||
"OPRC_MatchAudience": 1100,
|
||||
"OPRC_LowerRice_ScenceMax_Game": 1075,
|
||||
"OPRC_LowerRice_PlayerMax_Game": 1076,
|
||||
"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,
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
|
@ -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,
|
||||
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,
|
||||
0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52,
|
||||
0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e,
|
||||
0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a,
|
||||
0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f,
|
||||
0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4,
|
||||
0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61,
|
||||
0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52,
|
||||
0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43,
|
||||
0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||
0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64,
|
||||
0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61,
|
||||
0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f,
|
||||
0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65,
|
||||
0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74,
|
||||
0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d,
|
||||
0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75,
|
||||
0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61,
|
||||
0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67,
|
||||
0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||
0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19,
|
||||
0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72,
|
||||
0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52,
|
||||
0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f,
|
||||
0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f,
|
||||
0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73,
|
||||
0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61,
|
||||
0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18,
|
||||
0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c,
|
||||
0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98,
|
||||
0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a,
|
||||
0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x99, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f,
|
||||
0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11,
|
||||
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e,
|
||||
0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f,
|
||||
0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||
0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12,
|
||||
0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54,
|
||||
0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9f, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45,
|
||||
0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x18, 0x0a,
|
||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52,
|
||||
0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2,
|
||||
0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51,
|
||||
0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 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,
|
||||
0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41, 0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12,
|
||||
0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53,
|
||||
0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6, 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,
|
||||
0x11, 0x12, 0x16, 0x0a, 0x11, 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,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c,
|
||||
0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c,
|
||||
0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b,
|
||||
0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52,
|
||||
0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54,
|
||||
0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54,
|
||||
0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54,
|
||||
0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10,
|
||||
0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||
0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53,
|
||||
0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||
0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49,
|
||||
0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45,
|
||||
0x49, 0x44, 0x53, 0x10, 0xb6, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49,
|
||||
0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
||||
0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10,
|
||||
0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||
0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
|
||||
0x10, 0xb9, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a,
|
||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52,
|
||||
0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2,
|
||||
0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c,
|
||||
0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f,
|
||||
0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49,
|
||||
0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54,
|
||||
0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41,
|
||||
0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e,
|
||||
0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
||||
0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10,
|
||||
0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||
0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11,
|
||||
0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55,
|
||||
0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f,
|
||||
0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54,
|
||||
0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12,
|
||||
0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53,
|
||||
0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11,
|
||||
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e,
|
||||
0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44,
|
||||
0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d,
|
||||
0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
||||
0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 0x11,
|
||||
0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c,
|
||||
0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57,
|
||||
0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53,
|
||||
0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41,
|
||||
0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43,
|
||||
0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41,
|
||||
0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55,
|
||||
0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a,
|
||||
0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52,
|
||||
0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54,
|
||||
0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48,
|
||||
0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52,
|
||||
0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45,
|
||||
0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49,
|
||||
0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25, 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,
|
||||
0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52,
|
||||
0x43, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x10,
|
||||
0xcc, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72,
|
||||
0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47,
|
||||
0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c,
|
||||
0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d,
|
||||
0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4, 0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50,
|
||||
0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61,
|
||||
0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||
0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41,
|
||||
0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65,
|
||||
0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f,
|
||||
0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63,
|
||||
0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c,
|
||||
0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54,
|
||||
0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a,
|
||||
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f,
|
||||
0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a,
|
||||
0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49,
|
||||
0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b,
|
||||
0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
|
||||
0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f,
|
||||
0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f,
|
||||
0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f,
|
||||
0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||
0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75,
|
||||
0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d,
|
||||
0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72,
|
||||
0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10,
|
||||
0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50,
|
||||
0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10,
|
||||
0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a,
|
||||
0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45,
|
||||
0x10, 0x99, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19,
|
||||
0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41,
|
||||
0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a,
|
||||
0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52,
|
||||
0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x10, 0x9f, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52,
|
||||
0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11,
|
||||
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e,
|
||||
0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45,
|
||||
0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
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, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41,
|
||||
0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6,
|
||||
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, 0x11, 0x12, 0x16, 0x0a, 0x11, 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, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||
0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12,
|
||||
0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53,
|
||||
0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49,
|
||||
0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45,
|
||||
0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43,
|
||||
0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43,
|
||||
0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43,
|
||||
0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59,
|
||||
0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a,
|
||||
0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41,
|
||||
0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f,
|
||||
0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c,
|
||||
0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb6, 0x11, 0x12,
|
||||
0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54,
|
||||
0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a,
|
||||
0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41,
|
||||
0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47,
|
||||
0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0xb9, 0x11, 0x12, 0x18, 0x0a, 0x13,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48,
|
||||
0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11,
|
||||
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45,
|
||||
0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c,
|
||||
0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||
0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4,
|
||||
0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48,
|
||||
0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e,
|
||||
0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e,
|
||||
0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d,
|
||||
0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a,
|
||||
0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50,
|
||||
0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10, 0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49,
|
||||
0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e,
|
||||
0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46,
|
||||
0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e,
|
||||
0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41,
|
||||
0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf,
|
||||
0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c,
|
||||
0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a,
|
||||
0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45,
|
||||
0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43,
|
||||
0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x25,
|
||||
0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49,
|
||||
0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54,
|
||||
0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53,
|
||||
0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41,
|
||||
0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5,
|
||||
0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54,
|
||||
0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53,
|
||||
0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41,
|
||||
0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d,
|
||||
0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||
0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45,
|
||||
0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10,
|
||||
0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
|
||||
0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11,
|
||||
0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48,
|
||||
0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25,
|
||||
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,
|
||||
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, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43,
|
||||
0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 0x11, 0x12,
|
||||
0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45,
|
||||
0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0,
|
||||
0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43,
|
||||
0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c,
|
||||
0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f,
|
||||
0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe3, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
|
||||
0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12,
|
||||
0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54,
|
||||
0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f,
|
||||
0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54,
|
||||
0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49,
|
||||
0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f,
|
||||
0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54,
|
||||
0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 0x11, 0x12,
|
||||
0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d,
|
||||
0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xed, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46,
|
||||
0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10,
|
||||
0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
|
||||
0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a,
|
||||
0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45,
|
||||
0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c,
|
||||
0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||
0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18,
|
||||
0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f,
|
||||
0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49,
|
||||
0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
||||
0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11,
|
||||
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f,
|
||||
0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43,
|
||||
0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
|
||||
0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49,
|
||||
0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
|
||||
0x10, 0xfa, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a,
|
||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45,
|
||||
0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d,
|
||||
0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12,
|
||||
0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52,
|
||||
0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41,
|
||||
0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
|
||||
0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56,
|
||||
0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7, 0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49,
|
||||
0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47, 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74,
|
||||
0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26,
|
||||
0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
||||
0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61,
|
||||
0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56,
|
||||
0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41,
|
||||
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52,
|
||||
0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49,
|
||||
0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12,
|
||||
0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54,
|
||||
0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10,
|
||||
0xe3, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
|
||||
0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49,
|
||||
0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45,
|
||||
0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21,
|
||||
0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54,
|
||||
0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6,
|
||||
0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44,
|
||||
0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f,
|
||||
0x4d, 0x10, 0xe7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
|
||||
0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10,
|
||||
0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||
0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11,
|
||||
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41,
|
||||
0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42,
|
||||
0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10,
|
||||
0xed, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
|
||||
0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46, 0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12,
|
||||
0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54,
|
||||
0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10, 0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50,
|
||||
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59,
|
||||
0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1,
|
||||
0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c,
|
||||
0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c, 0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a,
|
||||
0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41,
|
||||
0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
|
||||
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4,
|
||||
0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41,
|
||||
0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a,
|
||||
0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45,
|
||||
0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43,
|
||||
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45,
|
||||
0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a,
|
||||
0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47,
|
||||
0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12,
|
||||
0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74,
|
||||
0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xfa, 0x11, 0x12, 0x18, 0x0a, 0x13,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52,
|
||||
0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
|
||||
0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e,
|
||||
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45,
|
||||
0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f,
|
||||
0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b,
|
||||
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54,
|
||||
0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
|
||||
0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21,
|
||||
0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49,
|
||||
0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7,
|
||||
0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50,
|
||||
0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
|
||||
0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65,
|
||||
0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67,
|
||||
0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
|
@ -30,6 +30,7 @@ enum OpResultCode_Game {
|
|||
OPRC_AllocRoomIdFailed_Game = 1097; //房间id获取失败
|
||||
OPRC_PrivateRoomCountLimit_Game = 1098; //私人房间上限
|
||||
OPRC_RoomNotExit = 1099; // 已经不在房间了
|
||||
OPRC_MatchAudience = 1100; // 不在比赛观战白名单
|
||||
|
||||
OPRC_LowerRice_ScenceMax_Game = 1075; //超过最大下米数量
|
||||
OPRC_LowerRice_PlayerMax_Game = 1076; //超过单个用户最大下米数
|
||||
|
|
|
@ -10903,7 +10903,7 @@ type Config struct {
|
|||
|
||||
// Tp 类型:
|
||||
// 1:小精灵快捷入口 On开关 Value地址
|
||||
// 2: ...
|
||||
// 2:比赛观战开关 On开关
|
||||
// ...
|
||||
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"`
|
||||
On bool `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"`
|
||||
|
|
|
@ -1351,7 +1351,7 @@ message SCGuideConfig{
|
|||
message Config{
|
||||
// Tp 类型:
|
||||
// 1:小精灵快捷入口 On开关 Value地址
|
||||
// 2: ...
|
||||
// 2:比赛观战开关 On开关
|
||||
// ...
|
||||
int32 Tp = 1;
|
||||
bool On = 2;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -837,6 +837,8 @@ message DB_GameFree {
|
|||
|
||||
int32 IsDrop = 72;
|
||||
|
||||
int32 IsCustom = 73;
|
||||
|
||||
}
|
||||
|
||||
message DB_GameFreeArray {
|
||||
|
@ -1755,9 +1757,13 @@ message DB_VIPShow {
|
|||
|
||||
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;
|
||||
bool RealCtrl = 22;
|
||||
repeated int32 ChessRank = 23;
|
||||
int32 MatchInfoId = 24;
|
||||
}
|
||||
|
||||
//PACKET_WG_DESTROYSCENE
|
||||
|
|
|
@ -651,6 +651,7 @@ type SCTienLenRoomInfo struct {
|
|||
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"` //是否能用记牌器
|
||||
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() {
|
||||
|
@ -888,6 +889,13 @@ func (x *SCTienLenRoomInfo) GetItemRecExpireTime() int64 {
|
|||
return 0
|
||||
}
|
||||
|
||||
func (x *SCTienLenRoomInfo) GetTMInfoId() int32 {
|
||||
if x != nil {
|
||||
return x.TMInfoId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//房间状态更新
|
||||
type SCTienLenRoomState struct {
|
||||
state protoimpl.MessageState
|
||||
|
@ -1501,6 +1509,7 @@ type SCTienLenCard struct {
|
|||
|
||||
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"` // 是否有出牌记录
|
||||
SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家id
|
||||
}
|
||||
|
||||
func (x *SCTienLenCard) Reset() {
|
||||
|
@ -1549,6 +1558,13 @@ func (x *SCTienLenCard) GetIsOutRecord() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (x *SCTienLenCard) GetSnId() int32 {
|
||||
if x != nil {
|
||||
return x.SnId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//测试数据
|
||||
type SCTienLenCardTest struct {
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
|
@ -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,
|
||||
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,
|
||||
0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e,
|
||||
0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03,
|
||||
0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53,
|
||||
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72,
|
||||
0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61,
|
||||
0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
|
||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64,
|
||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03,
|
||||
0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49,
|
||||
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a,
|
||||
0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
|
||||
0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73,
|
||||
0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f,
|
||||
0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
|
||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61,
|
||||
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c,
|
||||
0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
|
||||
0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43,
|
||||
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61,
|
||||
0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12,
|
||||
0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
|
||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65,
|
||||
0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65,
|
||||
0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02,
|
||||
0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x57,
|
||||
0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69,
|
||||
0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61,
|
||||
0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57,
|
||||
0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52,
|
||||
0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
|
||||
0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64,
|
||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64,
|
||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d,
|
||||
0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65,
|
||||
0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53,
|
||||
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c,
|
||||
0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e,
|
||||
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c,
|
||||
0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53,
|
||||
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d,
|
||||
0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f,
|
||||
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12,
|
||||
0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73,
|
||||
0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
|
||||
0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57,
|
||||
0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69,
|
||||
0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x22, 0x47, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61,
|
||||
0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||
0x05, 0x52, 0x05, 0x43, 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, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53,
|
||||
0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x4d, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x49, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x4d, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x49, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52,
|
||||
0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
|
||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e,
|
||||
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f,
|
||||
0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43,
|
||||
0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02,
|
||||
0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01,
|
||||
0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65,
|
||||
0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f,
|
||||
0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52,
|
||||
0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74,
|
||||
0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
|
||||
0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46,
|
||||
0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65,
|
||||
0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54,
|
||||
0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61,
|
||||
0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e,
|
||||
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73,
|
||||
0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49,
|
||||
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12,
|
||||
0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53,
|
||||
0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72,
|
||||
0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61,
|
||||
0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a,
|
||||
0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49,
|
||||
0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05,
|
||||
0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f,
|
||||
0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73,
|
||||
0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63,
|
||||
0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61,
|
||||
0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53,
|
||||
0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b,
|
||||
0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72,
|
||||
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72,
|
||||
0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20,
|
||||
0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64,
|
||||
0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65,
|
||||
0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36,
|
||||
0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
|
||||
0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
|
||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52,
|
||||
0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65,
|
||||
0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c,
|
||||
0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57,
|
||||
0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c,
|
||||
0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f,
|
||||
0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73,
|
||||
0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65,
|
||||
0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f,
|
||||
0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a,
|
||||
0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14,
|
||||
0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43,
|
||||
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,
|
||||
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,
|
||||
|
|
|
@ -116,6 +116,7 @@ message SCTienLenRoomInfo {
|
|||
repeated int32 OutCardRecord = 30 ;//已打出去的牌
|
||||
bool IsOutRecord = 31;//是否能用记牌器
|
||||
int64 ItemRecExpireTime = 32; //记牌器到期时间
|
||||
int32 TMInfoId = 33; //比赛配置ID
|
||||
}
|
||||
|
||||
//房间状态更新
|
||||
|
@ -185,6 +186,7 @@ message SCTienLenSmallGameBilled {
|
|||
message SCTienLenCard {
|
||||
repeated int32 Cards = 1; //手牌
|
||||
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
|
||||
}
|
||||
|
||||
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 CSReturnRoomHandler struct {
|
||||
|
@ -1235,10 +1147,95 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d
|
|||
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() {
|
||||
// 观众进入房间
|
||||
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{})
|
||||
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomPacketFactory{})
|
||||
|
@ -1266,4 +1263,7 @@ func init() {
|
|||
//我的游戏信息及平台公告
|
||||
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{})
|
||||
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.dirty = true
|
||||
}
|
||||
|
||||
CoinSceneMgrSingleton.PlayerLeave(p, int(msg.GetReason()))
|
||||
if scene.IsMatchScene() {
|
||||
scene.AudienceLeave(p, int(msg.GetReason()))
|
||||
} else {
|
||||
CoinSceneMgrSingleton.PlayerLeave(p, int(msg.GetReason()))
|
||||
}
|
||||
|
||||
//变化金币
|
||||
p.dirty = true
|
||||
|
@ -639,7 +642,7 @@ func init() {
|
|||
if msg, ok := pack.(*serverproto.GWChangeSceneEvent); ok {
|
||||
scene := SceneMgrSingleton.GetScene(int(msg.GetSceneId()))
|
||||
if scene != nil {
|
||||
scene.PlayerTryChange()
|
||||
//scene.PlayerTryChange()
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -199,17 +199,25 @@ func CSRoomList(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
|||
if v.matchCtx == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayerBySnId(v.matchCtx.copySnid)
|
||||
|
||||
d := &tournament.MatchPlayer{
|
||||
SnId: v.matchCtx.copySnid,
|
||||
Name: v.Name,
|
||||
HeadUrl: v.HeadUrl,
|
||||
Name: p.GetName(),
|
||||
UseRoleId: v.matchCtx.copyRoleId,
|
||||
UseSkinId: v.matchCtx.copySkinId,
|
||||
Rank: v.matchCtx.rank,
|
||||
Rank: TournamentMgr.GetRank(tm.SortId, v.matchCtx.copySnid),
|
||||
Score: v.matchCtx.grade,
|
||||
}
|
||||
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)
|
||||
}
|
||||
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) {
|
||||
|
@ -395,7 +395,7 @@ func (m *CoinSceneMgr) OnPlatformGameFreeUpdate(p *Platform, oldCfg, newCfg *web
|
|||
for _, scene := range cps.scenes {
|
||||
ids = append(ids, scene.sceneId)
|
||||
}
|
||||
SceneMgrSingleton.DoDelete(ids, true)
|
||||
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||
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==============================
|
||||
|
|
|
@ -330,7 +330,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) {
|
|||
// 玩家离开结算空房间的私人房
|
||||
if s.IsPrivateScene() {
|
||||
if s.IsEmpty() {
|
||||
s.DoDelete(false)
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) {
|
|||
}
|
||||
}
|
||||
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:
|
||||
PlatformMgrSingleton.GetConfig(config.Platform).SpiritConfig = config
|
||||
if !isInit {
|
||||
PlayerMgrSington.BroadcastMessageToPlatform(config.Platform, int(playerproto.PlayerPacketID_PACKET_SCDataConfig), &playerproto.SCDataConfig{
|
||||
Cfg: []*playerproto.Config{
|
||||
{
|
||||
Tp: 1,
|
||||
On: config.GetOn() == 1,
|
||||
Value: config.GetUrl(),
|
||||
},
|
||||
},
|
||||
})
|
||||
PlayerMgrSington.BroadcastDataConfigToPlatform(config.Platform, common.DataConfigSprite)
|
||||
}
|
||||
default:
|
||||
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 {
|
||||
case clientv3.EventTypePut:
|
||||
PlatformMgrSingleton.AddMatchAudience(config)
|
||||
if !isInit {
|
||||
p := PlayerMgrSington.GetPlayerBySnId(config.GetSnId())
|
||||
if p != nil {
|
||||
p.SCDataConfig(common.DataConfigMatchAudience)
|
||||
}
|
||||
}
|
||||
case clientv3.EventTypeDelete:
|
||||
PlatformMgrSingleton.DelMatchAudience(config)
|
||||
if !isInit {
|
||||
p := PlayerMgrSington.GetPlayerBySnId(config.GetSnId())
|
||||
if p != nil {
|
||||
p.SCDataConfig(common.DataConfigMatchAudience)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
|
|
|
@ -80,18 +80,14 @@ func (this *GameSession) GetSrvId() int32 {
|
|||
// 关闭其上的所有场景
|
||||
func (this *GameSession) CloseAllScene() {
|
||||
for sceneId, scene := range this.scenes {
|
||||
if scene.IsMiniGameScene() {
|
||||
|
||||
} else {
|
||||
scDestroyRoom := &gamehall_proto.SCDestroyRoom{
|
||||
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)
|
||||
scDestroyRoom := &gamehall_proto.SCDestroyRoom{
|
||||
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)
|
||||
}
|
||||
this.scenes = nil
|
||||
this.players = nil
|
||||
|
@ -173,6 +169,7 @@ func (this *GameSession) AddScene(s *Scene) {
|
|||
TotalOfGames: proto.Int32(s.totalRound),
|
||||
BaseScore: proto.Int32(s.BaseScore),
|
||||
PlayerNum: proto.Int(s.playerNum),
|
||||
MatchInfoId: s.MatchInfoId,
|
||||
}
|
||||
var platform *Platform
|
||||
if s.limitPlatform != nil {
|
||||
|
|
|
@ -373,7 +373,7 @@ func (this *HundredSceneMgr) OnPlatformDestroy(p *Platform) {
|
|||
for _, scene := range ss {
|
||||
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 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)
|
||||
}
|
||||
}
|
||||
SceneMgrSingleton.DoDelete(ids, true)
|
||||
SceneMgrSingleton.SendGameDestroy(ids, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/proto"
|
||||
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||
"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)}
|
||||
|
||||
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 {
|
||||
scene.matchId = tm.SortId
|
||||
return scene
|
||||
|
@ -172,11 +173,22 @@ func (ms *MatchSceneMgr) OnDestroyScene(sceneId int) {
|
|||
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) {
|
||||
if SceneMgrSingleton.scenes != nil && tm != nil {
|
||||
for _, scene := range SceneMgrSingleton.scenes {
|
||||
if scene.IsMatchScene() && scene.matchId == tm.SortId {
|
||||
scene.DoDelete(false)
|
||||
scene.SendGameDestroy(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1662,7 +1662,7 @@ func (this *Player) OnLogouted() {
|
|||
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)
|
||||
return
|
||||
}
|
||||
|
@ -2415,21 +2415,6 @@ func (this *Player) GetIP() string {
|
|||
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,
|
||||
dbGameFree *serverproto.DB_GameFree, baseScore, groupId int32) (*Scene, hallproto.OpResultCode_Game) {
|
||||
gs := GameSessMgrSington.GetMinLoadSess(gameId)
|
||||
|
@ -3101,8 +3086,8 @@ func (this *Player) SendPlayerInfo() {
|
|||
this.SCItems()
|
||||
// 引导配置
|
||||
this.SCGuide()
|
||||
// 小精灵配置
|
||||
this.SCSpirit()
|
||||
// 其它配置
|
||||
this.SCDataConfig(common.DataConfigAll)
|
||||
}
|
||||
|
||||
//func (this *Player) SendJackpotInfo() {
|
||||
|
@ -3832,9 +3817,9 @@ func (this *Player) SCVIPInfo() {
|
|||
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)
|
||||
return int32(math.Floor(float64(payTotal) * vips.MoneyRatio / 100))
|
||||
return payTotal * int64(vips.MoneyRatio)
|
||||
}
|
||||
|
||||
func (this *Player) VIPDraw(id, vip int32) {
|
||||
|
@ -3993,7 +3978,7 @@ func (this *Player) GetVIPLevel() int32 {
|
|||
vips := VipMgrSington.GetVIPcfg(this.Platform)
|
||||
vip := int32(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 {
|
||||
if allExp >= int64(v.VipEx) {
|
||||
vip = v.VipId
|
||||
|
@ -4126,7 +4111,7 @@ func (this *Player) GetPayGoodsInfo() {
|
|||
this.dirty = true
|
||||
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)
|
||||
|
||||
|
@ -4951,20 +4936,66 @@ func (this *Player) SCGuide() {
|
|||
logger.Logger.Tracef("SCGuideConfig: %v", pack)
|
||||
}
|
||||
|
||||
func (this *Player) SCSpirit() {
|
||||
cfg := PlatformMgrSingleton.GetConfig(this.Platform).SpiritConfig
|
||||
if cfg == nil {
|
||||
// DataConfigFuncMap 配置查询方法
|
||||
var DataConfigFuncMap = map[int]func(platform string, p *Player) *playerproto.Config{
|
||||
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
|
||||
}
|
||||
pack := &playerproto.SCDataConfig{
|
||||
Cfg: []*playerproto.Config{
|
||||
{
|
||||
Tp: 1,
|
||||
On: cfg.On == 1,
|
||||
Value: cfg.Url,
|
||||
},
|
||||
},
|
||||
pack := &playerproto.SCDataConfig{}
|
||||
if tp == common.DataConfigAll {
|
||||
for _, f := range DataConfigFuncMap {
|
||||
d := f(this.Platform, this)
|
||||
if d != nil {
|
||||
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/model"
|
||||
"mongo.games.com/game/proto"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
serverproto "mongo.games.com/game/protocol/server"
|
||||
"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) {
|
||||
if platform == "" {
|
||||
this.BroadcastMessage(packetid, rawpack)
|
||||
|
|
|
@ -18,7 +18,6 @@ import (
|
|||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/proto"
|
||||
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
serverproto "mongo.games.com/game/protocol/server"
|
||||
"mongo.games.com/game/srvdata"
|
||||
)
|
||||
|
@ -50,11 +49,11 @@ type PlayerGameCtx struct {
|
|||
type Scene struct {
|
||||
sceneId int //场景id
|
||||
gameId int //游戏id
|
||||
gameMode int //游戏模式
|
||||
gameMode int //游戏模式(玩法)
|
||||
sceneMode int //房间模式,参考common.SceneMode_XXX
|
||||
params []int64 //场景参数
|
||||
paramsEx []int32 //其他扩展参数
|
||||
playerNum int //人数
|
||||
playerNum int //房间最大人数
|
||||
robotNum int //机器人数量
|
||||
robotLimit int //最大限制机器人数量
|
||||
preInviteRobNum int //准备邀请机器人的数量
|
||||
|
@ -104,6 +103,7 @@ type Scene struct {
|
|||
gameSite int //tienlen游戏场次区分 1.初级 2.中级 3.高级场
|
||||
BaseScore int32 //tienlen游戏底分
|
||||
matchId int64 //比赛场id
|
||||
MatchInfoId int32 // 比赛场配置id
|
||||
|
||||
csp *CoinScenePool // 所在场景池
|
||||
hp *HundredSceneMgr // 百人场房间池
|
||||
|
@ -145,7 +145,7 @@ func NewScene(agentor, creator int32, id, gameId, gameMode, sceneMode int, clycl
|
|||
s.playerNum = int(sp.GetPlayerNum(s))
|
||||
s.lastTime = s.createTime
|
||||
|
||||
if s.IsHallScene() || s.IsCoinScene() {
|
||||
if s.IsCoinScene() {
|
||||
code := SceneMgrSingleton.AllocReplayCode()
|
||||
s.replayCode = code
|
||||
}
|
||||
|
@ -154,6 +154,9 @@ func NewScene(agentor, creator int32, id, gameId, gameMode, sceneMode int, clycl
|
|||
}
|
||||
if s.IsMatchScene() {
|
||||
s.BaseScore = 10
|
||||
if len(paramsEx) > 1 {
|
||||
s.MatchInfoId = paramsEx[1]
|
||||
}
|
||||
}
|
||||
s.sp.OnStart(s)
|
||||
return s
|
||||
|
@ -228,6 +231,13 @@ func (this *Scene) RobotIsLimit() bool {
|
|||
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 {
|
||||
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.gameSess.AddPlayer(p)
|
||||
|
||||
switch {
|
||||
case this.IsCoinScene():
|
||||
|
||||
case this.IsHundredScene():
|
||||
|
||||
case this.IsMatchScene():
|
||||
|
||||
}
|
||||
|
||||
// 如果正在等待比赛,退赛
|
||||
if !this.IsMatchScene() {
|
||||
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)
|
||||
}
|
||||
|
||||
//todo:send add msg to gamesrv
|
||||
data, err := p.MarshalData(this.gameId)
|
||||
data, err := p.MarshalData()
|
||||
if err == nil {
|
||||
var gateSid int64
|
||||
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) {
|
||||
CSPMCmd := &playerproto.CSPMCmd{
|
||||
Cmd: proto.String(cmd),
|
||||
func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool {
|
||||
logger.Logger.Infof("(this *Scene:%v) AudienceEnter(%v) ", this.sceneId, p.SnId)
|
||||
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 {
|
||||
if ctx, exist := this.gameCtx[snid]; exist {
|
||||
return ctx
|
||||
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()
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *Scene) PlayerLeave(p *Player, reason int) {
|
||||
logger.Logger.Infof("(this *Scene:%v) PlayerLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
||||
//if !this.IsMatchScene() {
|
||||
//pack := &hall_proto.SCLeaveRoom{
|
||||
// Reason: proto.Int(reason),
|
||||
// OpRetCode: hall_proto.OpResultCode_Game_OPRC_Sucess_Game,
|
||||
// Mode: proto.Int(0),
|
||||
// RoomId: proto.Int(this.sceneId),
|
||||
//}
|
||||
//proto.SetDefaults(pack)
|
||||
//p.SendToClient(int(hall_proto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack)
|
||||
pack := &hallproto.SCQuitGame{
|
||||
Id: int32(this.dbGameFree.Id),
|
||||
Reason: proto.Int(reason),
|
||||
msg := &serverproto.WGPlayerEnter{
|
||||
Sid: proto.Int64(p.sid),
|
||||
SnId: proto.Int32(p.SnId),
|
||||
GateSid: proto.Int64(gateSid),
|
||||
SceneId: proto.Int(this.sceneId),
|
||||
PlayerData: data,
|
||||
TakeCoin: takeCoin,
|
||||
IsLoaded: proto.Bool(ischangeroom),
|
||||
IsQM: false,
|
||||
IParams: p.MarshalIParam(),
|
||||
SParams: p.MarshalSParam(),
|
||||
CParams: p.MarshalCParam(),
|
||||
}
|
||||
pack.OpCode = hallproto.OpResultCode_Game_OPRC_Sucess_Game
|
||||
proto.SetDefaults(pack)
|
||||
p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_QUITGAME), pack)
|
||||
//}
|
||||
|
||||
//其他人直接从房间退出来
|
||||
this.DelPlayer(p)
|
||||
|
||||
// 玩家最后所在游戏
|
||||
p.LastGameId = int(this.dbGameFree.GetGameId())
|
||||
if !p.IsRob {
|
||||
if !p.IsRob { //保存下进入时的环境
|
||||
p.enterts = time.Now()
|
||||
this.gameCtx[p.SnId] = &PlayerGameCtx{
|
||||
takeCoin: p.takeCoin,
|
||||
enterTs: p.enterts.Unix(),
|
||||
}
|
||||
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 {
|
||||
if p.scene != this {
|
||||
inroomid := 0
|
||||
roomId := 0
|
||||
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 {
|
||||
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 {
|
||||
delete(this.gameCtx, p.SnId)
|
||||
}
|
||||
|
||||
p.scene = nil
|
||||
SceneMgrSingleton.OnPlayerLeaveScene(this, p)
|
||||
|
||||
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.lastTime = time.Now()
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool {
|
||||
logger.Logger.Infof("(this *Scene:%v) AudienceEnter(%v) ", this.sceneId, p.SnId)
|
||||
p.scene = this
|
||||
this.audiences[p.SnId] = p
|
||||
this.gameSess.AddPlayer(p)
|
||||
|
||||
//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
|
||||
// PlayerLeave 玩家离开
|
||||
func (this *Scene) PlayerLeave(p *Player, reason int) {
|
||||
logger.Logger.Infof("(this *Scene:%v) PlayerLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
||||
pack := &hallproto.SCQuitGame{
|
||||
Id: this.dbGameFree.Id,
|
||||
Reason: proto.Int(reason),
|
||||
}
|
||||
|
||||
return false
|
||||
pack.OpCode = hallproto.OpResultCode_Game_OPRC_Sucess_Game
|
||||
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) {
|
||||
logger.Logger.Infof("(this *Scene:%v) AudienceLeave(%v, %v) ", this.sceneId, p.SnId, reason)
|
||||
pack := &hallproto.SCLeaveRoom{
|
||||
|
@ -723,97 +711,25 @@ func (this *Scene) AudienceLeave(p *Player, reason int) {
|
|||
Mode: proto.Int(0),
|
||||
RoomId: proto.Int(this.sceneId),
|
||||
}
|
||||
proto.SetDefaults(pack)
|
||||
p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack)
|
||||
//观众直接从房间退出来
|
||||
this.DelAudience(p)
|
||||
if !p.IsRob {
|
||||
this.lastTime = time.Now()
|
||||
}
|
||||
logger.Logger.Tracef("AudienceLeave SCLeaveRoom: %v, %v", p.SnId, pack)
|
||||
this.DelPlayer(p)
|
||||
}
|
||||
|
||||
func (this *Scene) DelAudience(p *Player) bool {
|
||||
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
|
||||
//}
|
||||
|
||||
// AudienceSit 观众坐下
|
||||
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())
|
||||
if _, exist := this.audiences[p.SnId]; exist {
|
||||
delete(this.audiences, p.SnId)
|
||||
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
|
||||
msg.TakeCoin = proto.Int64(p.Coin)
|
||||
proto.SetDefaults(msg)
|
||||
this.players[p.SnId] = p
|
||||
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)
|
||||
if !p.IsRob {
|
||||
this.lastTime = time.Now()
|
||||
|
@ -871,6 +787,8 @@ func (this *Scene) GetAudienceCnt() int {
|
|||
return len(this.audiences)
|
||||
}
|
||||
|
||||
// IsFull 是否满人
|
||||
// 不包含观众
|
||||
func (this *Scene) IsFull() bool {
|
||||
return this.GetPlayerCnt() >= this.playerNum
|
||||
}
|
||||
|
@ -883,23 +801,24 @@ func (this *Scene) AllIsRobot() bool {
|
|||
return len(this.players) == this.robotNum
|
||||
}
|
||||
|
||||
// OnClose 房间销毁
|
||||
func (this *Scene) OnClose() {
|
||||
scDestroyRoom := &hallproto.SCDestroyRoom{
|
||||
RoomId: proto.Int(this.sceneId),
|
||||
OpRetCode: hallproto.OpResultCode_Game_OPRC_Sucess_Game,
|
||||
IsForce: proto.Int(1),
|
||||
}
|
||||
proto.SetDefaults(scDestroyRoom)
|
||||
this.Broadcast(int(hallproto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0)
|
||||
|
||||
this.deleting = true
|
||||
this.closed = true
|
||||
this.sp.OnStop(this)
|
||||
//NpcServerAgentSington.OnSceneClose(this)
|
||||
|
||||
for _, p := range this.players {
|
||||
this.DelPlayer(p)
|
||||
}
|
||||
for _, p := range this.audiences {
|
||||
this.DelAudience(p)
|
||||
this.DelPlayer(p)
|
||||
}
|
||||
this.players = nil
|
||||
this.audiences = nil
|
||||
|
@ -913,17 +832,13 @@ func (this *Scene) SendToGame(packetId int, pack interface{}) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func (this *Scene) SendToClient(packetid int, rawpack interface{}, excludeId int32) {
|
||||
for snid, value := range this.players {
|
||||
if snid == excludeId {
|
||||
|
||||
func (this *Scene) SendToClient(packetId int, pack interface{}, excludeId int32) {
|
||||
for v, value := range this.players {
|
||||
if v == excludeId {
|
||||
continue
|
||||
}
|
||||
value.SendToClient(packetid, rawpack)
|
||||
}
|
||||
}
|
||||
func (this *Scene) BilledRoomCard(snid []int32) {
|
||||
if this.sp != nil {
|
||||
this.sp.BilledRoomCard(this, snid)
|
||||
value.SendToClient(packetId, pack)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -936,7 +851,7 @@ func (this *Scene) IsLongTimeInactive() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (this *Scene) DoDelete(isGrace bool) {
|
||||
func (this *Scene) SendGameDestroy(isGrace bool) {
|
||||
if !isGrace {
|
||||
this.deleting = true
|
||||
this.force = true
|
||||
|
@ -949,46 +864,32 @@ func (this *Scene) DoDelete(isGrace bool) {
|
|||
logger.Logger.Tracef("WG_DESTROYSCENE: %v", pack)
|
||||
}
|
||||
|
||||
func (this *Scene) Shutdown() {
|
||||
if this.hadCost && this.sp != nil {
|
||||
this.sp.OnShutdown(this)
|
||||
}
|
||||
}
|
||||
|
||||
// 小游戏场
|
||||
func (this *Scene) IsMiniGameScene() bool {
|
||||
return this.sceneId >= common.MiniGameSceneStartId && this.sceneId < common.MiniGameSceneMaxId
|
||||
}
|
||||
|
||||
// 比赛场
|
||||
// IsMatchScene 比赛场
|
||||
func (this *Scene) IsMatchScene() bool {
|
||||
return this.sceneId >= common.MatchSceneStartId && this.sceneId < common.MatchSceneMaxId
|
||||
}
|
||||
|
||||
// 大厅场
|
||||
func (this *Scene) IsHallScene() bool {
|
||||
return this.sceneId >= common.HallSceneStartId && this.sceneId < common.HallSceneMaxId
|
||||
}
|
||||
|
||||
// 金币场
|
||||
// IsCoinScene 金币场
|
||||
func (this *Scene) IsCoinScene() bool {
|
||||
return this.sceneId >= common.CoinSceneStartId && this.sceneId < common.CoinSceneMaxId
|
||||
}
|
||||
|
||||
// 百人场
|
||||
// IsHundredScene 百人场
|
||||
func (this *Scene) IsHundredScene() bool {
|
||||
return this.sceneId >= common.HundredSceneStartId && this.sceneId < common.HundredSceneMaxId
|
||||
}
|
||||
|
||||
// 私人房间
|
||||
// IsPrivateScene 私人房间
|
||||
func (this *Scene) IsPrivateScene() bool {
|
||||
return this.sceneId >= common.PrivateSceneStartId && this.sceneId < common.PrivateSceneMaxId || this.sceneMode == common.SceneMode_Private
|
||||
}
|
||||
|
||||
// IsSceneMode 房间模式
|
||||
func (this *Scene) IsSceneMode(mode int) bool {
|
||||
return this.sceneMode == mode
|
||||
}
|
||||
|
||||
// IsRankMatch 排位赛
|
||||
func (this *Scene) IsRankMatch() bool {
|
||||
if this.dbGameFree == nil {
|
||||
return false
|
||||
|
@ -996,6 +897,7 @@ func (this *Scene) IsRankMatch() bool {
|
|||
return this.dbGameFree.RankType > 0
|
||||
}
|
||||
|
||||
// IsTestScene 试玩场
|
||||
func (this *Scene) IsTestScene() bool {
|
||||
if this.dbGameFree != nil {
|
||||
return this.dbGameFree.GetSceneType() == -1
|
||||
|
@ -1010,6 +912,9 @@ func (this *Scene) IsTestScene() bool {
|
|||
}
|
||||
|
||||
func (this *Scene) GetSceneName() string {
|
||||
if this.dbGameFree != nil {
|
||||
return this.dbGameFree.GetName() + this.dbGameFree.GetTitle()
|
||||
}
|
||||
if len(this.paramsEx) > 0 {
|
||||
dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(this.paramsEx[0])
|
||||
if dbGameFree != nil {
|
||||
|
@ -1020,6 +925,21 @@ func (this *Scene) GetSceneName() string {
|
|||
}
|
||||
|
||||
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 {
|
||||
gps := PlatformMgrSingleton.GetGameFree(this.limitPlatform.IdStr, this.paramsEx[0])
|
||||
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 {
|
||||
return true
|
||||
}
|
||||
|
@ -1106,31 +1026,7 @@ func (this *Scene) GetTruePlayerCnt() int {
|
|||
return len(this.players) - this.robotNum
|
||||
}
|
||||
|
||||
func (this *Scene) GetPlayerType(gameid, gamefreeid int32) (types []int32) {
|
||||
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) {
|
||||
func (this *Scene) Broadcast(packetId int, msg rawproto.Message, excludeSid int64) {
|
||||
mgs := make(map[*netlib.Session][]*srvlibproto.MCSessionUnion)
|
||||
for _, p := range this.players {
|
||||
if p != nil {
|
||||
|
@ -1159,7 +1055,7 @@ func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int6
|
|||
|
||||
for gateSess, v := range mgs {
|
||||
if gateSess != nil && len(v) != 0 {
|
||||
pack, err := common.CreateMulticastPacket(packetid, msg, v...)
|
||||
pack, err := common.CreateMulticastPacket(packetId, msg, v...)
|
||||
if err == nil {
|
||||
proto.SetDefaults(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 {
|
||||
for _, p := range this.players {
|
||||
if !p.IsRob {
|
||||
if p.GMLevel == 0 && p.Ip == ip {
|
||||
if p.Ip == ip {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -1184,45 +1079,6 @@ func (this *Scene) IsPreCreateScene() bool {
|
|||
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 {
|
||||
if idx < 0 || idx > len(this.paramsEx) {
|
||||
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() {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
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"
|
||||
)
|
||||
|
||||
|
@ -28,21 +28,13 @@ var SceneMgrSingleton = &SceneMgr{
|
|||
|
||||
// SceneMgr 房间管理器
|
||||
type SceneMgr struct {
|
||||
BaseClockSinker // 驱动时间事件
|
||||
BaseClockSinker // 驱动时间事件
|
||||
scenes map[int]*Scene // 房间id: Scene
|
||||
|
||||
scenes map[int]*Scene // 房间id: Scene
|
||||
privateAutoId int // 私人房房间号
|
||||
matchAutoId int // 比赛场房间号
|
||||
coinSceneAutoId 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 ""
|
||||
privateAutoId int // 私人房房间号
|
||||
matchAutoId int // 比赛场房间号
|
||||
coinSceneAutoId int // 金币场房间号
|
||||
hundredSceneAutoId int // 百人场房间号
|
||||
}
|
||||
|
||||
// AllocReplayCode 获取回访码
|
||||
|
@ -87,6 +79,14 @@ func (m *SceneMgr) GenOneMatchSceneId() int {
|
|||
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 获取房间对象
|
||||
func (m *SceneMgr) GetScene(sceneId int) *Scene {
|
||||
if s, exist := m.scenes[sceneId]; exist && !s.deleting {
|
||||
|
@ -123,6 +123,8 @@ func (m *SceneMgr) GetScenesByGameFreeId(gameFreeId int32) []*Scene {
|
|||
return scenes
|
||||
}
|
||||
|
||||
// GetMatchRoom 获取比赛房间
|
||||
// sortId 比赛id
|
||||
func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene {
|
||||
var scenes []*Scene
|
||||
for _, value := range m.scenes {
|
||||
|
@ -137,9 +139,10 @@ func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene {
|
|||
}
|
||||
|
||||
// MarshalAllRoom 获取房间列表
|
||||
// 返回 房间列表,总页数,总条数
|
||||
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) {
|
||||
roomInfo := make([]*webapi2.RoomInfo, 0, len(m.scenes))
|
||||
gameFreeId, snId int32, start, end, pageSize int32) ([]*webapiproto.RoomInfo, int32, int32) {
|
||||
roomInfo := make([]*webapiproto.RoomInfo, 0, len(m.scenes))
|
||||
var isNeedFindAll = false
|
||||
if model.GameParamData.IsFindRoomByGroup && platform != "" && snId != 0 && gameId == 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
|
||||
}
|
||||
|
||||
si := &webapi2.RoomInfo{
|
||||
si := &webapiproto.RoomInfo{
|
||||
Platform: platformName,
|
||||
SceneId: int32(s.sceneId),
|
||||
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,
|
||||
paramsEx ...int32) *Scene {
|
||||
logger.Logger.Trace("(this *SceneMgr) CreateScene ")
|
||||
// 创建房间
|
||||
s := NewScene(agentor, creator, sceneId, gameId, gameMode, sceneMode, clycleTimes, numOfGames, params, gs, limitPlatform, groupId,
|
||||
dbGameFree, paramsEx...)
|
||||
if s == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
m.scenes[sceneId] = s
|
||||
|
||||
// 创建水池
|
||||
if !s.IsMatchScene() && dbGameFree != nil && limitPlatform != nil {
|
||||
//平台水池设置
|
||||
gs.DetectCoinPoolSetting(limitPlatform.IdStr, dbGameFree.GetId(), s.groupId)
|
||||
}
|
||||
|
||||
// 添加到游戏服记录中
|
||||
gs.AddScene(s)
|
||||
var platformName string
|
||||
if limitPlatform != nil {
|
||||
|
@ -298,10 +304,9 @@ func (m *SceneMgr) CreateLocalGameScene(creator int32, sceneId, gameId, gameSite
|
|||
if s == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
m.scenes[sceneId] = s
|
||||
gs.AddScene(s)
|
||||
|
||||
gs.AddScene(s)
|
||||
var platformName string
|
||||
if limitPlatform != nil {
|
||||
platformName = limitPlatform.IdStr
|
||||
|
@ -336,44 +341,7 @@ func (m *SceneMgr) DestroyScene(sceneId int, isCompleted bool) {
|
|||
logger.Logger.Infof("(this *SceneMgr) DestroyScene, SceneId=%v", sceneId)
|
||||
}
|
||||
|
||||
func (m *SceneMgr) OnPlayerLeaveScene(s *Scene, p *Player) {
|
||||
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) {
|
||||
func (m *SceneMgr) SendGameDestroy(sceneId []int, isGrace bool) {
|
||||
if len(sceneId) == 0 {
|
||||
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)
|
||||
}
|
||||
|
||||
// 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===============================
|
||||
|
||||
// InterestClockEvent 接收所有时间事件
|
||||
|
@ -435,18 +378,18 @@ func (m *SceneMgr) OnMiniTimer() {
|
|||
case s.IsCoinScene():
|
||||
if s.IsLongTimeInactive() {
|
||||
if s.dbGameFree.GetCreateRoomNum() == 0 {
|
||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene DoDelete scene:%v IsLongTimeInactive", s.sceneId)
|
||||
s.DoDelete(false)
|
||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId)
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
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)
|
||||
s.DoDelete(false)
|
||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId)
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
}
|
||||
case s.IsPrivateScene():
|
||||
if s.IsLongTimeInactive() {
|
||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene DoDelete scene:%v IsLongTimeInactive", s.sceneId)
|
||||
s.DoDelete(false)
|
||||
logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId)
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,10 +61,6 @@ type ScenePolicyData struct {
|
|||
customIndexParams []*ScenePolicyDataParam
|
||||
}
|
||||
|
||||
func alignto(val, align int32) int32 {
|
||||
return (val + align - 1) / align
|
||||
}
|
||||
|
||||
func (spd *ScenePolicyData) Init() bool {
|
||||
spd.nameMap = make(map[string]*ScenePolicyDataParam)
|
||||
spd.aliasNameMap = make(map[string]*ScenePolicyDataParam)
|
||||
|
|
|
@ -19,6 +19,10 @@ import (
|
|||
"mongo.games.com/game/srvdata"
|
||||
)
|
||||
|
||||
func getSortId() int64 {
|
||||
return time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
type TmPlayer struct {
|
||||
SnId int32
|
||||
seq int // 报名序号(第几个报名的)
|
||||
|
@ -30,6 +34,7 @@ type TmGradeInfo struct {
|
|||
copyLv int32
|
||||
copyRoleId int32
|
||||
CopySkinId int32
|
||||
rank int32
|
||||
}
|
||||
|
||||
type TmMatch struct {
|
||||
|
@ -48,7 +53,7 @@ type TmMatch struct {
|
|||
|
||||
func NewTmMatch(platform string, match *webapi_proto.GameMatchDate, players map[int32]*TmPlayer) *TmMatch {
|
||||
ret := &TmMatch{
|
||||
SortId: time.Now().UnixNano(),
|
||||
SortId: getSortId(),
|
||||
TMId: match.Id,
|
||||
TmPlayer: make(map[int32]*TmPlayer),
|
||||
Platform: platform,
|
||||
|
@ -307,6 +312,7 @@ func (tm *TmMatch) RobotGradesDecline(round int) {
|
|||
copyLv: info.copyLv,
|
||||
copyRoleId: info.copyRoleId,
|
||||
CopySkinId: info.CopySkinId,
|
||||
rank: info.rank,
|
||||
}
|
||||
tm.robotGrades[lastRound][i] = gradeInfo
|
||||
if info.copySnid != 0 {
|
||||
|
|
|
@ -154,8 +154,8 @@ func (this *Tournament) addFinalPlayer(sortId int64, p *PerRankInfo) {
|
|||
this.finalPerRank[sortId] = append(this.finalPerRank[sortId], p)
|
||||
}
|
||||
|
||||
// 查询一场比赛某轮的历史数据
|
||||
func (this *Tournament) getRoundPlayer(sortId int64, round int32) *PlayerRoundInfo {
|
||||
// GetRoundPlayer 查询一场比赛某轮的历史数据
|
||||
func (this *Tournament) GetRoundPlayer(sortId int64, round int32) *PlayerRoundInfo {
|
||||
_, ok := this.roundPlayers[sortId]
|
||||
if !ok {
|
||||
return nil
|
||||
|
@ -923,6 +923,78 @@ func (this *Tournament) getRank(sortId int64, round, snid int32, isFinals bool)
|
|||
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 玩家比赛结束 更新积分
|
||||
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)
|
||||
|
@ -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) {
|
||||
logger.Logger.Tracef("NextRoundStartSingle 当前第 %v 轮", playerCtx.round)
|
||||
info := this.getRoundPlayer(sortId, playerCtx.round)
|
||||
info := this.GetRoundPlayer(sortId, playerCtx.round)
|
||||
if info == nil {
|
||||
return
|
||||
}
|
||||
|
@ -1042,11 +1114,24 @@ func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatc
|
|||
}
|
||||
|
||||
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
|
||||
})
|
||||
for k, v := range arr {
|
||||
v.rank = int32(k + 1)
|
||||
}
|
||||
playerCtx.tm.robotGrades[int(round)] = 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) {
|
||||
logger.Logger.Tracef("NextRoundStart 当前第 %v 轮", playerCtx.round)
|
||||
info := this.getRoundPlayer(sortId, playerCtx.round)
|
||||
info := this.GetRoundPlayer(sortId, playerCtx.round)
|
||||
if info == nil {
|
||||
return
|
||||
}
|
||||
|
@ -1158,7 +1243,7 @@ func (this *Tournament) NextRoundStart(sortId int64, playerCtx *PlayerMatchConte
|
|||
info.players = info.players[len(ps):]
|
||||
|
||||
willOut := false
|
||||
if promotionNum1 == this.getRoundPlayer(sortId, playerCtx.round-1).num {
|
||||
if promotionNum1 == this.GetRoundPlayer(sortId, playerCtx.round-1).num {
|
||||
// 最后一个人打完了,确定要淘汰的人
|
||||
willOut = true
|
||||
} else {
|
||||
|
|
|
@ -1747,24 +1747,24 @@ func init() {
|
|||
switch msg.DestroyType {
|
||||
case 1: //删除所有空房间
|
||||
for _, s := range SceneMgrSingleton.scenes {
|
||||
if !s.isPlatform(platform) {
|
||||
if !s.IsPlatform(platform) {
|
||||
continue
|
||||
}
|
||||
if s != nil && !s.deleting && len(s.players) == 0 {
|
||||
logger.Logger.Warnf("WebService SpecailEmptySceneId destroyroom scene:%v", s.sceneId)
|
||||
s.TryForceDelectMatchInfo()
|
||||
s.DoDelete(false)
|
||||
s.TryForceDeleteMatchInfo()
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
}
|
||||
case 2: //删除所有未开始的房间
|
||||
for _, s := range SceneMgrSingleton.scenes {
|
||||
if !s.isPlatform(platform) {
|
||||
if !s.IsPlatform(platform) {
|
||||
continue
|
||||
}
|
||||
if s != nil && !s.deleting && !s.starting && !s.IsHundredScene() {
|
||||
logger.Logger.Warnf("WebService SpecailUnstartSceneId destroyroom scene:%v", s.sceneId)
|
||||
s.TryForceDelectMatchInfo()
|
||||
s.DoDelete(false)
|
||||
s.TryForceDeleteMatchInfo()
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
}
|
||||
default: //删除指定房间
|
||||
|
@ -1780,14 +1780,14 @@ func init() {
|
|||
pack.Msg = "the sceneid is nil"
|
||||
return common.ResponseTag_NoFindRoom, pack
|
||||
}
|
||||
if !s.isPlatform(platform) {
|
||||
if !s.IsPlatform(platform) {
|
||||
pack.Tag = webapiproto.TagCode_FAILED
|
||||
pack.Msg = "the sceneid is not ower platform"
|
||||
return common.ResponseTag_NoFindRoom, pack
|
||||
}
|
||||
logger.Logger.Warnf("WebService destroyroom scene:%v", s.sceneId)
|
||||
s.TryForceDelectMatchInfo()
|
||||
s.DoDelete(false)
|
||||
s.TryForceDeleteMatchInfo()
|
||||
s.SendGameDestroy(false)
|
||||
}
|
||||
}
|
||||
return common.ResponseTag_Ok, pack
|
||||
|
@ -3444,7 +3444,7 @@ func init() {
|
|||
player.MoneyTotal += int64(info.ConsumeTypeNum)
|
||||
player.dirty = true
|
||||
player.SendDiffData()
|
||||
info.Amount[2] = player.GetVIPExpByPay(info.ConsumeNum)
|
||||
info.Amount[2] = int32(player.GetVIPExpByPay(int64(info.ConsumeNum)))
|
||||
|
||||
var itemInfo []*playerproto.PayItem
|
||||
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