From e33fe64bca043249041dd646bb3e5f2b9c11dcf6 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 5 Sep 2024 14:20:36 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=88=BF=E9=97=B4=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/scenemgr.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldsrv/scenemgr.go b/worldsrv/scenemgr.go index 702bc49..185f3f5 100644 --- a/worldsrv/scenemgr.go +++ b/worldsrv/scenemgr.go @@ -183,9 +183,9 @@ func (m *SceneMgr) MarshalAllRoom(platform string, groupId, gameId int, gameMode ((s.gameId == gameId && s.gameMode == gameMode) || gameId == 0) && (s.sceneId == sceneId || sceneId == 0) && (s.groupId == int32(groupId) || groupId == 0) && (s.dbGameFree.GetId() == gameFreeId || gameFreeId == 0) && - (s.sceneMode == sceneMode || sceneMode == -1)) || isNeedFindAll && + (s.sceneMode == sceneMode || sceneMode == -1) && ((s.IsCustom() && isCustom) || !isCustom) && - (s.GetRoomConfigId() == roomConfigId || roomConfigId == 0) { + (s.GetRoomConfigId() == roomConfigId || roomConfigId == 0)) || isNeedFindAll { var platformName string if s.limitPlatform != nil { platformName = s.limitPlatform.IdStr From e1e805f9d870eae1f774ad3e1765bfd32579d7d7 Mon Sep 17 00:00:00 2001 From: kxdd Date: Thu, 5 Sep 2024 14:23:36 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A8=83=E5=A8=83=E6=9C=BA=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B5=81=E7=A6=81=E6=AD=A2=E6=B5=81=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamerule/clawdoll/constants.go | 13 +++ gamerule/clawdoll/logic.go | 8 ++ gamesrv/clawdoll/scene_clawdoll.go | 134 ++++++++++++++++++++++- gamesrv/clawdoll/scenepolicy_clawdoll.go | 16 ++- protocol/clawdoll/clawdoll.pb.go | 91 ++++++++------- protocol/clawdoll/clawdoll.proto | 1 + 6 files changed, 208 insertions(+), 55 deletions(-) diff --git a/gamerule/clawdoll/constants.go b/gamerule/clawdoll/constants.go index b1c0813..e855368 100644 --- a/gamerule/clawdoll/constants.go +++ b/gamerule/clawdoll/constants.go @@ -19,6 +19,7 @@ const ( ClawDollPlayerStatePlayGame //游戏中 ClawDollPlayerStateBilled //结算 ClawDollPlayerWaitPayCoin //等待下一局投币 + ClawDollPlayerAudience //观众状态 ClawDollPlayerStateMax ) @@ -58,3 +59,15 @@ const ( ClawStrong //强力抓 ClawGain //必出抓 ) + +const ( + RoomStat_Audience = iota //观众旁观者 + RoomStat_Wait //等待状态 +) + +// actionType : 1 禁止推流 ForbidRTCStream +// actionType : 2 恢复推流 ResumeRTCStream +const ( + Zego_ForbidRTCStream = iota + 1 + Zego_ResumeRTCStream = iota + 1 +) diff --git a/gamerule/clawdoll/logic.go b/gamerule/clawdoll/logic.go index 78f1018..45f603d 100644 --- a/gamerule/clawdoll/logic.go +++ b/gamerule/clawdoll/logic.go @@ -2,3 +2,11 @@ package clawdoll type Logic struct { } + +type ZegoForbidRTCResp struct { + Code int64 + Message string + RequestId string + Data any + Error int +} diff --git a/gamesrv/clawdoll/scene_clawdoll.go b/gamesrv/clawdoll/scene_clawdoll.go index 8c3070d..fd0fbd7 100644 --- a/gamesrv/clawdoll/scene_clawdoll.go +++ b/gamesrv/clawdoll/scene_clawdoll.go @@ -2,15 +2,28 @@ package clawdoll import ( "container/list" + "crypto/md5" + "encoding/hex" + "encoding/json" + "fmt" + "io/ioutil" + "math/rand" "mongo.games.com/game/common" rule "mongo.games.com/game/gamerule/clawdoll" "mongo.games.com/game/gamesrv/base" "mongo.games.com/game/proto" "mongo.games.com/game/protocol/clawdoll" "mongo.games.com/game/protocol/machine" + "mongo.games.com/game/protocol/webapi" + "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/netlib" + "mongo.games.com/goserver/core/task" + "mongo.games.com/goserver/core/timer" "mongo.games.com/goserver/srvlib" + "net/http" + "net/url" + "time" ) type PlayerData struct { @@ -84,6 +97,10 @@ func (this *SceneEx) BroadcastPlayerEnter(p *base.Player, reason int) { pack.Data.HeadUrl = p.HeadUrl pack.Data.Name = p.Name + if playerEx, ok := p.ExtraData.(*PlayerEx); ok { + pack.Data.Stat = playerEx.clawDollState + } + proto.SetDefaults(pack) this.Broadcast(int(clawdoll.CLAWDOLLPacketID_PACKET_SC_PlayerEnter), pack, p.GetSid()) @@ -109,9 +126,9 @@ func (this *SceneEx) OnPlayerEnter(p *base.Player, reason int) { return } - if this.GetPlayerNum() > 0 { - // 发送http Get请求 打开直播间流 - + if this.GetPlayerNum() >= 1 && this.GetPlayerNum() <= 3 { + // 发送http Get请求 恢复直播间流 + //operateTask(this, 2, rule.Zego_ResumeRTCStream, p.Platform) } } @@ -126,9 +143,9 @@ func (this *SceneEx) OnPlayerLeave(p *base.Player, reason int) { return } - if this.GetPlayerNum() <= 0 { + if len(this.players) <= 0 { // 发送http Get请求 关闭直播间流 - + //operateTask(this, 2, rule.Zego_ForbidRTCStream, p.Platform) } } @@ -413,3 +430,110 @@ func (this *SceneEx) SendToMachine(pid int, msg interface{}) { logger.Logger.Error("MachineConn is nil !") } } + +// actionType : 1 禁止推流 ForbidRTCStream +// actionType : 2 恢复推流 ResumeRTCStream +func operateTask(sceneEx *SceneEx, times int, actionType int, platform string) { + + machineId := sceneEx.GetDBGameFree().GetId() % 6080000 + machineInfo := sceneEx.GetMachineServerInfo(machineId, platform) + if machineInfo == nil { + logger.Logger.Errorf("ZegoRTCStreamAction machineId: %v, platform: %v", machineId, platform) + return + } + + actionTypeStr := "NoneAction" + if actionType == rule.Zego_ForbidRTCStream { + actionTypeStr = "ForbidRTCStream" + } else { + actionTypeStr = "ResumeRTCStream" + } + + logger.Logger.Tracef("ZegoRTCStreamAction: actionTypeStr: %v, machineId: %v, machineInfo: %v", actionTypeStr, machineId, machineInfo) + + var resp rule.ZegoForbidRTCResp + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + resp = ZegoRTCStreamAction(actionTypeStr, machineInfo) + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if resp.Error == 0 && resp.Code == 0 && resp.Message == "ok" { + + } else { + logger.Logger.Errorf("ZegoForbidRTCResp Code: %v, Error: %v, Message: %v", resp.Code, resp.Error, resp.Message) + if times > 0 { + timer.StartTimer(timer.TimerActionWrapper(func(h timer.TimerHandle, ud interface{}) bool { + operateTask(sceneEx, times-1, actionType, platform) + return true + }), nil, time.Second*5, 1) + } + } + }), "ZegoRTCStream_Action").Start() +} + +func ZegoRTCStreamAction(Action string, machineInfo *webapi.MachineInfo) rule.ZegoForbidRTCResp { + + var zegoForbidRTCResp = rule.ZegoForbidRTCResp{ + Error: 1, + } + + timestamp := time.Now().Unix() + queryParams := url.Values{} + + queryParams.Set("StreamId", "test") + queryParams.Set("Sequence", fmt.Sprintf("%d", timestamp)) + + // 生成16进制随机字符串(16位) + nonce := make([]byte, 8) + rand.Read(nonce) + hexNonce := hex.EncodeToString(nonce) + // 生成签名 + signature := generateSignature(uint32(machineInfo.AppId), machineInfo.ServerSecret, hexNonce, timestamp) + authParams := url.Values{} + authParams.Set("AppId", fmt.Sprintf("%d", uint32(machineInfo.AppId))) + //公共参数中的随机数和生成签名的随机数要一致 + authParams.Set("SignatureNonce", hexNonce) + authParams.Set("SignatureVersion", "2.0") + //公共参数中的时间戳和生成签名的时间戳要一致 + authParams.Set("Timestamp", fmt.Sprintf("%d", timestamp)) + authParams.Set("Signature", signature) + + //authParams.Set("IsTest", "true") + // rtc-api.zego.im 表示使用的产品是云通讯产品,包括了实时音视频(Express Video)、实时音频(Express Audio)、低延迟直播(L3) + addr := fmt.Sprintf("https://rtc-api.zego.im/?Action=%s&%s&%s", Action, authParams.Encode(), queryParams.Encode()) + + logger.Logger.Tracef("ZegoRTCStreamAction Get addr: %+v", addr) + + rsp, err := http.Get(addr) + if err != nil { + logger.Logger.Errorf("ZegoRTCStreamAction Get err: %v", err) + return zegoForbidRTCResp + } + defer rsp.Body.Close() + body, err := ioutil.ReadAll(rsp.Body) + if err != nil { + logger.Logger.Errorf("ZegoRTCStreamAction ioutil.ReadAll err: %v", err) + return zegoForbidRTCResp + } + logger.Logger.Tracef("ZegoRTCStreamAction Action: %+v, body: %+v", Action, string(body)) + + err = json.Unmarshal(body, &zegoForbidRTCResp) + if err != nil { + zegoForbidRTCResp.Error = 5 + logger.Logger.Errorf("ZegoRTCStreamAction %v %v", zegoForbidRTCResp, err.Error()) + return zegoForbidRTCResp + } + + zegoForbidRTCResp.Error = 0 + + return zegoForbidRTCResp +} + +// 生成签名 +// Signature=md5(AppId + SignatureNonce + ServerSecret + Timestamp) +func generateSignature(appId uint32, serverSecret, signatureNonce string, timeStamp int64) string { + data := fmt.Sprintf("%d%s%s%d", appId, signatureNonce, serverSecret, timeStamp) + + h := md5.New() + h.Write([]byte(data)) + return hex.EncodeToString(h.Sum(nil)) +} diff --git a/gamesrv/clawdoll/scenepolicy_clawdoll.go b/gamesrv/clawdoll/scenepolicy_clawdoll.go index f2c46e0..f00ad1f 100644 --- a/gamesrv/clawdoll/scenepolicy_clawdoll.go +++ b/gamesrv/clawdoll/scenepolicy_clawdoll.go @@ -102,10 +102,7 @@ func (this *PolicyClawdoll) OnPlayerEnter(s *base.Scene, p *base.Player) { baseScore := sceneEx.GetBaseScore() p.ExtraData = playerEx playerEx.Clear(baseScore) - - if sceneEx.playingSnid == 0 { - //sceneEx.playingSnid = p.GetSnId() - } + //playerEx.clawDollState = rule.ClawDollPlayerAudience p.MarkFlag(base.PlayerState_WaitNext) p.UnmarkFlag(base.PlayerState_Ready) @@ -113,7 +110,7 @@ func (this *PolicyClawdoll) OnPlayerEnter(s *base.Scene, p *base.Player) { //给自己发送房间信息 this.SendRoomInfo(s, p, sceneEx) - ClawdollBroadcastRoomWaitPlayers(s) + ClawdollSendRoomWaitPlayers(s, p) ClawdollBroadcastPlayingInfo(s) // 玩家数据发送 @@ -174,7 +171,7 @@ func (this *PolicyClawdoll) OnPlayerRehold(s *base.Scene, p *base.Player) { p.MarkFlag(base.PlayerState_Ready) } this.SendRoomInfo(s, p, sceneEx) - ClawdollBroadcastRoomWaitPlayers(s) + ClawdollSendRoomWaitPlayers(s, p) ClawdollBroadcastPlayingInfo(s) this.SendGetVideoToken(s, p, sceneEx) @@ -195,7 +192,7 @@ func (this *PolicyClawdoll) OnPlayerReturn(s *base.Scene, p *base.Player) { p.MarkFlag(base.PlayerState_Ready) } this.SendRoomInfo(s, p, sceneEx) - ClawdollBroadcastRoomWaitPlayers(s) + ClawdollSendRoomWaitPlayers(s, p) ClawdollBroadcastPlayingInfo(s) this.SendGetVideoToken(s, p, sceneEx) @@ -328,7 +325,7 @@ func ClawdollSendPlayerInfo(s *base.Scene) { } // 广播房间里所有等待玩家信息 -func ClawdollBroadcastRoomWaitPlayers(s *base.Scene) { +func ClawdollSendRoomWaitPlayers(s *base.Scene, p *base.Player) { pack := &clawdoll.CLAWDOLLWaitPlayers{} if sceneEx, ok := s.ExtraData.(*SceneEx); ok { @@ -340,13 +337,14 @@ func ClawdollBroadcastRoomWaitPlayers(s *base.Scene) { Head: proto.Int32(playerEx.Head), HeadUrl: proto.String(playerEx.HeadUrl), Name: proto.String(playerEx.Name), + Stat: proto.Int32(playerEx.clawDollState), } pack.WaitPlayersInfo = append(pack.WaitPlayersInfo, pd) } } - s.Broadcast(int(clawdoll.CLAWDOLLPacketID_PACKET_SC_WAITPLAYERS), pack, 0) + p.SendToClient(int(clawdoll.CLAWDOLLPacketID_PACKET_SC_WAITPLAYERS), pack) } } diff --git a/protocol/clawdoll/clawdoll.pb.go b/protocol/clawdoll/clawdoll.pb.go index 098f4ca..7f6bfba 100644 --- a/protocol/clawdoll/clawdoll.pb.go +++ b/protocol/clawdoll/clawdoll.pb.go @@ -1004,6 +1004,7 @@ type CLAWDOLLPlayerDigestInfo struct { Head int32 `protobuf:"varint,2,opt,name=Head,proto3" json:"Head,omitempty"` //头像 HeadUrl string `protobuf:"bytes,3,opt,name=HeadUrl,proto3" json:"HeadUrl,omitempty"` //头像 Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` //名字 + Stat int32 `protobuf:"varint,5,opt,name=Stat,proto3" json:"Stat,omitempty"` //玩家状态 0:排队状态 5:大厅观众状态 } func (x *CLAWDOLLPlayerDigestInfo) Reset() { @@ -1066,6 +1067,13 @@ func (x *CLAWDOLLPlayerDigestInfo) GetName() string { return "" } +func (x *CLAWDOLLPlayerDigestInfo) GetStat() int32 { + if x != nil { + return x.Stat + } + return 0 +} + var File_clawdoll_proto protoreflect.FileDescriptor var file_clawdoll_proto_rawDesc = []byte{ @@ -1167,47 +1175,48 @@ var file_clawdoll_proto_rawDesc = []byte{ 0x6c, 0x61, 0x77, 0x64, 0x6f, 0x6c, 0x6c, 0x2e, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x70, 0x0a, 0x18, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x2a, 0xfd, 0x02, 0x0a, 0x10, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, - 0xe1, 0x2b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0xe2, 0x2b, 0x12, 0x17, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, - 0x50, 0x10, 0xe3, 0x2b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xe4, 0x2b, 0x12, 0x19, - 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, - 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0xe5, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x10, 0xe6, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xe7, - 0x2b, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe8, 0x2b, 0x12, 0x17, 0x0a, 0x12, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x4f, 0x4b, - 0x45, 0x4e, 0x10, 0xe9, 0x2b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xea, 0x2b, 0x12, - 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x41, 0x49, - 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x10, 0xeb, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x50, 0x4c, 0x41, - 0x59, 0x45, 0x52, 0x53, 0x10, 0xec, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x49, 0x4e, 0x47, 0x49, 0x4e, 0x46, 0x4f, - 0x10, 0xed, 0x2b, 0x2a, 0x64, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, - 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x1a, 0x0a, - 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x6f, 0x73, 0x41, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, - 0x50, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x10, 0x03, 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, 0x63, 0x6c, 0x61, 0x77, 0x64, - 0x6f, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x18, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, + 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x74, 0x2a, 0xfd, 0x02, 0x0a, 0x10, 0x43, 0x4c, 0x41, + 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x0f, 0x0a, + 0x0b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, + 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe1, 0x2b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0xe2, 0x2b, + 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, + 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0xe3, 0x2b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x10, 0xe4, 0x2b, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0xe5, 0x2b, 0x12, 0x1a, + 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xe6, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x10, 0xe7, 0x2b, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe8, + 0x2b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, + 0x45, 0x54, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0xe9, 0x2b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x54, 0x4f, 0x4b, 0x45, + 0x4e, 0x10, 0xea, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x10, 0xeb, 0x2b, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x41, + 0x49, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x10, 0xec, 0x2b, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x49, 0x4e, + 0x47, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xed, 0x2b, 0x2a, 0x64, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x6f, 0x73, 0x41, 0x6c, + 0x52, 0x65, 0x61, 0x64, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x10, 0x03, 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, + 0x63, 0x6c, 0x61, 0x77, 0x64, 0x6f, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/clawdoll/clawdoll.proto b/protocol/clawdoll/clawdoll.proto index 2dea4f0..b8dd5c9 100644 --- a/protocol/clawdoll/clawdoll.proto +++ b/protocol/clawdoll/clawdoll.proto @@ -130,4 +130,5 @@ message CLAWDOLLPlayerDigestInfo { int32 Head = 2; //头像 string HeadUrl = 3; //头像 string Name = 4; //名字 + int32 Stat = 5; //玩家状态 0:排队状态 5:大厅观众状态 } From a126fb81aeafa0c2abeccd70920102626bb6bbb4 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 5 Sep 2024 14:31:12 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=92=E4=BD=8D?= =?UTF-8?q?=E8=B5=9B=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_RankReward.dat | 15 ++++++++------- data/DB_RankReward.json | 14 +++++++------- data/DB_Task.dat | Bin 5299 -> 5299 bytes xlsx/DB_RankReward.xlsx | Bin 10986 -> 11053 bytes 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 90627e23e7ffb7a0a0572e799000ac27ec367e02..eab78e7297231cf3a52b2e8368d3632ac62bb02e 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!(#8y?uR`f-Q2IKQz6_$3I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUweP%^|`*{N{3k-O;f25eru=2MgFCFbBgl-hny2i-EQf0Au1jH2?qr literal 384 zcmd-w<6snElw#w!+Qtl~uR-bSQ2H{Iz5=3^I5-yevI!h$vE|a^U;?YZ36;MErEf#& z8))joIUweP%>mknZVy;JP#oPnnEf#Kfz4Oq1iPbQ?IRYhSPmAjLtqBO6v7;I2kIc0 Z!7vBH494mZC3cQQK#zW5=3<~N1OR1nJT(9S diff --git a/data/DB_RankReward.dat b/data/DB_RankReward.dat index 403ebd4..db7321a 100644 --- a/data/DB_RankReward.dat +++ b/data/DB_RankReward.dat @@ -1,8 +1,9 @@ -$08@H -08@H -08@H -08@H0 -08@H - 08d@H -082@H \ No newline at end of file +$08@H +08d@H +08<@H +08(@H0 +08@H + 08@H +08 +@H \ No newline at end of file diff --git a/data/DB_RankReward.json b/data/DB_RankReward.json index 3e27f5f..6de6430 100644 --- a/data/DB_RankReward.json +++ b/data/DB_RankReward.json @@ -5,7 +5,7 @@ "RankType": 1, "Level": 36, "Award2Id": 2, - "Award2Num": 1000, + "Award2Num": 200, "Award3Id": 1, "Award3Num": 30000000 }, @@ -14,7 +14,7 @@ "RankType": 1, "Level": 31, "Award2Id": 2, - "Award2Num": 500, + "Award2Num": 100, "Award3Id": 1, "Award3Num": 20000000 }, @@ -23,7 +23,7 @@ "RankType": 1, "Level": 26, "Award2Id": 2, - "Award2Num": 300, + "Award2Num": 60, "Award3Id": 1, "Award3Num": 10000000 }, @@ -32,7 +32,7 @@ "RankType": 1, "Level": 21, "Award2Id": 2, - "Award2Num": 200, + "Award2Num": 40, "Award3Id": 1, "Award3Num": 800000 }, @@ -41,7 +41,7 @@ "RankType": 1, "Level": 16, "Award2Id": 2, - "Award2Num": 150, + "Award2Num": 30, "Award3Id": 1, "Award3Num": 500000 }, @@ -50,7 +50,7 @@ "RankType": 1, "Level": 11, "Award2Id": 2, - "Award2Num": 100, + "Award2Num": 20, "Award3Id": 1, "Award3Num": 300000 }, @@ -59,7 +59,7 @@ "RankType": 1, "Level": 6, "Award2Id": 2, - "Award2Num": 50, + "Award2Num": 10, "Award3Id": 1, "Award3Num": 200000 } diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 37be7cc6d639fd24f92901313d11b2a8366d1255..ec74cdafd8493c72f3f5010721a7e2cc12d529f8 100644 GIT binary patch delta 253 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 VI8h`(2ni!F$xm@BisyIze*m9+>%ss4 delta 3729 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 From 3b15a84df3ca5643facf1746e4e1ff016dcfae5e Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 5 Sep 2024 14:46:43 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/transact/trascate_gamesrv.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gamesrv/transact/trascate_gamesrv.go b/gamesrv/transact/trascate_gamesrv.go index 1149976..1cdca9d 100644 --- a/gamesrv/transact/trascate_gamesrv.go +++ b/gamesrv/transact/trascate_gamesrv.go @@ -118,7 +118,7 @@ func init() { } switch d := scene.ExtraData.(type) { - case tienlen.TienLenSceneData: + case *tienlen.TienLenSceneData: for k := range d.BilledList { pack.SnId = append(pack.SnId, k) }