From 85a115809c9243225d50aecf605c3182962310d9 Mon Sep 17 00:00:00 2001 From: kxdd Date: Tue, 3 Sep 2024 16:48:21 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A8=83=E5=A8=83?= =?UTF-8?q?=E6=9C=BA=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public b/public index d789cca..fd8bef9 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit d789cca81a36ddbaf30e5414b6c4fe530e0631f6 +Subproject commit fd8bef907ea15489504529da70f72038444b54e0 From c4d58262de8010f6fb3d5dd9a73285513a7453a7 Mon Sep 17 00:00:00 2001 From: kxdd Date: Tue, 3 Sep 2024 17:50:19 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A8=83=E5=A8=83=E6=9C=BA=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B5=81ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/scene.go | 9 +- gamesrv/clawdoll/action_clawdoll.go | 20 ++-- gamesrv/clawdoll/scenepolicy_clawdoll.go | 12 ++- machine/action/action_server.go | 1 + protocol/clawdoll/clawdoll.pb.go | 112 ++++++++++++----------- protocol/clawdoll/clawdoll.proto | 1 + protocol/machine/machine.pb.go | 86 ++++++++++------- protocol/machine/machine.proto | 2 + 8 files changed, 142 insertions(+), 101 deletions(-) diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index bec0917..91d8a24 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -4,6 +4,7 @@ import ( "fmt" "math" "math/rand" + "mongo.games.com/game/protocol/webapi" "strconv" "time" @@ -2551,15 +2552,15 @@ func (this *Scene) TryRelease() { this.Destroy(true) } } -func (this *Scene) GetMachineServerSecret(MachineId int32, platform string) (AppId int64, ServerSecret string) { +func (this *Scene) GetMachineServerInfo(MachineId int32, platform string) *webapi.MachineInfo { config := ConfigMgrInst.GetConfig(platform).MachineConfig if config == nil { - return 0, "" + return nil } for _, info := range config.Info { if info.MachineId == MachineId { - return info.AppId, info.ServerSecret + return info } } - return 0, "" + return nil } diff --git a/gamesrv/clawdoll/action_clawdoll.go b/gamesrv/clawdoll/action_clawdoll.go index 11fddd2..75e5fd2 100644 --- a/gamesrv/clawdoll/action_clawdoll.go +++ b/gamesrv/clawdoll/action_clawdoll.go @@ -127,14 +127,17 @@ func (h *CSGetTokenHandler) Process(s *netlib.Session, packetid int, data interf } machineId := scene.GetDBGameFree().GetId() % 6080000 - appId, serverSecret := sceneEx.GetMachineServerSecret(machineId, p.Platform) - logger.Logger.Tracef("获取娃娃机 appId = %v, serverSecret = %v", appId, serverSecret) - if serverSecret == "" || appId == 0 { + machineInfo := sceneEx.GetMachineServerInfo(machineId, p.Platform) + if machineInfo == nil { return nil } - pack.ServerSecret = serverSecret - pack.AppId = appId + logger.Logger.Tracef("获取娃娃机 appId = %v, serverSecret = %v, streamId = %v", machineInfo.AppId, machineInfo.ServerSecret, machineInfo.StreamId) + + pack.ServerSecret = machineInfo.ServerSecret + pack.AppId = machineInfo.AppId + pack.StreamId = machineInfo.StreamId + sceneEx.SendToMachine(int(machine.DollMachinePacketID_PACKET_SMGetToken), pack) } return nil @@ -158,9 +161,10 @@ func MSSendTokenHandler(session *netlib.Session, packetId int, data interface{}) } pack := &clawdoll.SCCLAWDOLLSendToken{ - LogicId: scene.DBGameFree.GetId(), - Appid: msg.Appid, - Token: token, + LogicId: scene.DBGameFree.GetId(), + Appid: msg.Appid, + Token: token, + StreamId: msg.StreamId, } p.SendToClient(int(clawdoll.CLAWDOLLPacketID_PACKET_SC_SENDTOKEN), pack) } diff --git a/gamesrv/clawdoll/scenepolicy_clawdoll.go b/gamesrv/clawdoll/scenepolicy_clawdoll.go index 713da22..8d56913 100644 --- a/gamesrv/clawdoll/scenepolicy_clawdoll.go +++ b/gamesrv/clawdoll/scenepolicy_clawdoll.go @@ -285,14 +285,16 @@ func (this *PolicyClawdoll) SendGetVideoToken(s *base.Scene, p *base.Player, sce pack.Snid = p.SnId machineId := s.DBGameFree.GetId() % 6080000 - appId, serverSecret := sceneEx.GetMachineServerSecret(machineId, p.Platform) - logger.Logger.Tracef("获取娃娃机 appId = %v, serverSecret = %v", appId, serverSecret) - if serverSecret == "" || appId == 0 { + machineinfo := sceneEx.GetMachineServerInfo(machineId, p.Platform) + if machineinfo == nil { return } - pack.ServerSecret = serverSecret - pack.AppId = appId + logger.Logger.Tracef("获取娃娃机 appId = %v, serverSecret = %v, streamId = %v", machineinfo.AppId, machineinfo.ServerSecret, machineinfo.StreamId) + + pack.ServerSecret = machineinfo.ServerSecret + pack.AppId = machineinfo.AppId + pack.StreamId = machineinfo.StreamId sceneEx.SendToMachine(int(machine.DollMachinePacketID_PACKET_SMGetToken), pack) } diff --git a/machine/action/action_server.go b/machine/action/action_server.go index 6138a53..48252c6 100644 --- a/machine/action/action_server.go +++ b/machine/action/action_server.go @@ -300,6 +300,7 @@ func SMGetTokenHandler(session *netlib.Session, packetId int, data interface{}) info.Snid = msg.Snid info.Token = token info.Appid = msg.AppId + info.StreamId = msg.StreamId session.Send(int(machine.DollMachinePacketID_PACKET_MSSendToken), info) logger.Logger.Tracef("向游戏服务器发送娃娃机token:%v", info) diff --git a/protocol/clawdoll/clawdoll.pb.go b/protocol/clawdoll/clawdoll.pb.go index 010b9fb..098f4ca 100644 --- a/protocol/clawdoll/clawdoll.pb.go +++ b/protocol/clawdoll/clawdoll.pb.go @@ -881,9 +881,10 @@ type SCCLAWDOLLSendToken struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LogicId int32 `protobuf:"varint,1,opt,name=LogicId,proto3" json:"LogicId,omitempty"` - Appid int64 `protobuf:"varint,2,opt,name=Appid,proto3" json:"Appid,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + LogicId int32 `protobuf:"varint,1,opt,name=LogicId,proto3" json:"LogicId,omitempty"` + Appid int64 `protobuf:"varint,2,opt,name=Appid,proto3" json:"Appid,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + StreamId string `protobuf:"bytes,4,opt,name=StreamId,proto3" json:"StreamId,omitempty"` } func (x *SCCLAWDOLLSendToken) Reset() { @@ -939,6 +940,13 @@ func (x *SCCLAWDOLLSendToken) GetToken() string { return "" } +func (x *SCCLAWDOLLSendToken) GetStreamId() string { + if x != nil { + return x.StreamId + } + return "" +} + type CLAWDOLLWaitPlayers struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1145,59 +1153,61 @@ var file_clawdoll_proto_rawDesc = []byte{ 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x53, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x47, 0x65, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x5b, 0x0a, 0x13, 0x53, 0x43, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, + 0x6b, 0x65, 0x6e, 0x22, 0x77, 0x0a, 0x13, 0x53, 0x43, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x63, 0x0a, 0x13, 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x57, 0x61, 0x69, 0x74, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x63, 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, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x13, + 0x43, 0x4c, 0x41, 0x57, 0x44, 0x4f, 0x4c, 0x4c, 0x57, 0x61, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, + 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, } var ( diff --git a/protocol/clawdoll/clawdoll.proto b/protocol/clawdoll/clawdoll.proto index a3f075b..2dea4f0 100644 --- a/protocol/clawdoll/clawdoll.proto +++ b/protocol/clawdoll/clawdoll.proto @@ -117,6 +117,7 @@ message SCCLAWDOLLSendToken { int32 LogicId = 1; int64 Appid = 2; string Token = 3; + string StreamId = 4; } message CLAWDOLLWaitPlayers { diff --git a/protocol/machine/machine.pb.go b/protocol/machine/machine.pb.go index 464b384..e3cc943 100644 --- a/protocol/machine/machine.pb.go +++ b/protocol/machine/machine.pb.go @@ -505,6 +505,7 @@ type SMGetToken struct { Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` AppId int64 `protobuf:"varint,2,opt,name=AppId,proto3" json:"AppId,omitempty"` ServerSecret string `protobuf:"bytes,3,opt,name=ServerSecret,proto3" json:"ServerSecret,omitempty"` + StreamId string `protobuf:"bytes,4,opt,name=StreamId,proto3" json:"StreamId,omitempty"` } func (x *SMGetToken) Reset() { @@ -560,15 +561,23 @@ func (x *SMGetToken) GetServerSecret() string { return "" } +func (x *SMGetToken) GetStreamId() string { + if x != nil { + return x.StreamId + } + return "" +} + //返回token type MSSendToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` - Appid int64 `protobuf:"varint,2,opt,name=Appid,proto3" json:"Appid,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` + Appid int64 `protobuf:"varint,2,opt,name=Appid,proto3" json:"Appid,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + StreamId string `protobuf:"bytes,4,opt,name=StreamId,proto3" json:"StreamId,omitempty"` } func (x *MSSendToken) Reset() { @@ -624,6 +633,13 @@ func (x *MSSendToken) GetToken() string { return "" } +func (x *MSSendToken) GetStreamId() string { + if x != nil { + return x.StreamId + } + return "" +} + var File_machine_proto protoreflect.FileDescriptor var file_machine_proto_rawDesc = []byte{ @@ -661,40 +677,44 @@ var file_machine_proto_rawDesc = []byte{ 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, - 0x64, 0x64, 0x72, 0x22, 0x5a, 0x0a, 0x0a, 0x53, 0x4d, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x64, 0x64, 0x72, 0x22, 0x76, 0x0a, 0x0a, 0x53, 0x4d, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, - 0x4d, 0x0a, 0x0b, 0x4d, 0x53, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, - 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0xb9, - 0x02, 0x0a, 0x13, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x4d, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5a, 0x65, - 0x72, 0x6f, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x4d, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, - 0x10, 0xa0, 0x9c, 0x01, 0x12, 0x20, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x4d, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x10, 0xa1, 0x9c, 0x01, 0x12, 0x1e, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x4d, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x47, 0x72, - 0x61, 0x62, 0x10, 0xa2, 0x9c, 0x01, 0x12, 0x1e, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x4d, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x10, 0xa3, 0x9c, 0x01, 0x12, 0x26, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x4d, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xa4, 0x9c, 0x01, 0x12, 0x27, - 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x6f, 0x50, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x10, 0xa5, 0x9c, 0x01, 0x12, 0x17, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x4d, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xa6, 0x9c, 0x01, - 0x12, 0x18, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x53, 0x65, 0x6e, - 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xa7, 0x9c, 0x01, 0x42, 0x27, 0x5a, 0x25, 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, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x09, 0x52, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x0b, 0x4d, + 0x53, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x41, + 0x70, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x2a, 0xb9, 0x02, 0x0a, 0x13, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x4d, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5a, 0x65, 0x72, 0x6f, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x18, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x4d, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x6e, + 0x6b, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x10, 0xa0, 0x9c, 0x01, 0x12, 0x20, 0x0a, 0x1a, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x4d, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x61, 0x74, 0x65, 0x10, 0xa1, 0x9c, 0x01, 0x12, 0x1e, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x4d, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x62, 0x10, 0xa2, 0x9c, 0x01, 0x12, 0x1e, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xa3, 0x9c, 0x01, 0x12, 0x26, + 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x10, 0xa4, 0x9c, 0x01, 0x12, 0x27, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x4d, 0x53, 0x44, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x6f, 0x50, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, 0xa5, 0x9c, 0x01, 0x12, + 0x17, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x4d, 0x47, 0x65, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xa6, 0x9c, 0x01, 0x12, 0x18, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xa7, + 0x9c, 0x01, 0x42, 0x27, 0x5a, 0x25, 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, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/machine/machine.proto b/protocol/machine/machine.proto index 472cb4b..a109267 100644 --- a/protocol/machine/machine.proto +++ b/protocol/machine/machine.proto @@ -64,10 +64,12 @@ message SMGetToken{ int32 Snid = 1; int64 AppId = 2; string ServerSecret = 3; + string StreamId = 4; } //返回token message MSSendToken{ int32 Snid = 1; int64 Appid = 2; string Token = 3; + string StreamId = 4; } \ No newline at end of file From 27eb944329cde8a3cd05511c26d90bf07f6a930a Mon Sep 17 00:00:00 2001 From: kxdd Date: Wed, 4 Sep 2024 10:49:16 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A8=83=E5=A8=83=E6=9C=BA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GameFree.dat | Bin 24124 -> 24124 bytes data/DB_GameFree.json | 8 ++++---- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 5299 -> 5299 bytes gamesrv/clawdoll/scene_clawdoll.go | 23 +++++++++++++++++++++++ xlsx/DB_GameFree.xlsx | Bin 65652 -> 65617 bytes 6 files changed, 27 insertions(+), 4 deletions(-) diff --git a/data/DB_GameFree.dat b/data/DB_GameFree.dat index 10d42c96c3bcf614300371a1a122b24f45367bd7..93a0b0dac5767b64a722fe8e0c39d8872bfd7cab 100644 GIT binary patch delta 41 pcmdn9hjGsy#tj={CZCDsp1eCI8%irp4vzJlydg$+@<}kQ1puW<6FmR` delta 41 pcmdn9hjGsy#tj={CeMl0oqRXO6HEukdNMLi-Wa1Z`6QI32>_085nliR diff --git a/data/DB_GameFree.json b/data/DB_GameFree.json index 564a1f9..b08696a 100644 --- a/data/DB_GameFree.json +++ b/data/DB_GameFree.json @@ -6674,7 +6674,7 @@ 0 ], "OtherIntParams": [ - 1 + 0 ], "RobotNumRng": [ 0 @@ -6707,7 +6707,7 @@ 0 ], "OtherIntParams": [ - 1 + 0 ], "RobotNumRng": [ 0 @@ -6740,7 +6740,7 @@ 0 ], "OtherIntParams": [ - 2 + 1 ], "RobotNumRng": [ 0 @@ -6773,7 +6773,7 @@ 0 ], "OtherIntParams": [ - 2 + 1 ], "RobotNumRng": [ 0 diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 12cce5f4165edd740dfa268af25289251ffeba4c..3094b57366ddb3f45bda1c2b49ca90dda8ad3167 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!(#8y?uR`f-Q2IKQz6_$3I5-yevI!h$vE|a^U;?YZ1(m-IrEfs# zn`r98IUwf4?17mJRtK~nrXOq%kdN*Tn7Ls4lsLieXjuD*g)5eW1?&)*Mwr844!Z+& d5X@qj!7vBF3`TK?5;IZ(|9n+LQPrXQvc<_>iGVdg{3EhutQ)5;Pn8Kg(wCB#qU5J U4t9VNJI5lRN53$0G0+wQ0AwmWH2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index f5a92be4c65bea8e256c4b0c15ec32c4d5e978b2..fb5fdb1771a150efb4d85f47e36048d82637a53a 100644 GIT binary patch delta 451 zcmdn2xmk09p&%Q_l3q3eRxb{Yg+O}2A-Rc8rh-sTFPj%cT4Z8JBUJE08#7dpYqAuh z1ysKrOn)!i=43_zrpYB7B9q&hcLAj@wlNDZL8T`w zS%8si@(UhYOyee-@xGBobsI2DqnH>Oxg0pI0)s+!vIDR98rdodqe;L delta 381 zcmdn2xmk09p&$px!d^Ck1&8Fk*f^E|S*#PCOa&oK5ih7@FWbb9MyMbcRPaI@^JFPT z3z+_1HmH8N&B=@cOp{AEL?*X0?}AECSjZ2QzSzbLlnG)nfN26-3KC_RJekE3Q|;!v zEE0^9uk#2nGEHV6_x;Ag*XJQ2a@j`2= diff --git a/gamesrv/clawdoll/scene_clawdoll.go b/gamesrv/clawdoll/scene_clawdoll.go index 3347ea6..f87890b 100644 --- a/gamesrv/clawdoll/scene_clawdoll.go +++ b/gamesrv/clawdoll/scene_clawdoll.go @@ -102,12 +102,35 @@ func (this *SceneEx) BroadcastPlayerLeave(p *base.Player, reason int) { // 玩家进入事件 func (this *SceneEx) OnPlayerEnter(p *base.Player, reason int) { this.BroadcastPlayerEnter(p, reason) + + machineId := this.GetDBGameFree().GetId() % 6080000 + machineInfo := this.GetMachineServerInfo(machineId, p.Platform) + if machineInfo == nil { + return + } + + if this.GetPlayerNum() > 0 { + // 发送http Get请求 打开直播间流 + + } } // 玩家离开事件 func (this *SceneEx) OnPlayerLeave(p *base.Player, reason int) { this.delPlayer(p) this.BroadcastPlayerLeave(p, reason) + + machineId := this.GetDBGameFree().GetId() % 6080000 + machineInfo := this.GetMachineServerInfo(machineId, p.Platform) + if machineInfo == nil { + return + } + + if this.GetPlayerNum() <= 0 { + // 发送http Get请求 关闭直播间流 + + } + } func (this *SceneEx) SceneDestroy(force bool) { //销毁房间 diff --git a/xlsx/DB_GameFree.xlsx b/xlsx/DB_GameFree.xlsx index f1116a6e4687dddf5b27d2f87645226c5d2e981c..5e2e2f1ccfa03ed71c1b3ad54ff6cd182224331f 100644 GIT binary patch delta 49272 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
    x(}vD93OQ?D}O0i`+jBQ7S9IBj5v= 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 W`zLw)!~?JPi4L9v#ryU--~R{PC5Czc From 9cdc0f24c7f2e8f61862cd0432b52b62faddbf7e Mon Sep 17 00:00:00 2001 From: kxdd Date: Wed, 4 Sep 2024 10:49:37 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=A8=83=E5=A8=83=E6=9C=BA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public b/public index fd8bef9..00b9fce 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit fd8bef907ea15489504529da70f72038444b54e0 +Subproject commit 00b9fce886af5b6a926aa804d3cad33be9ea0793 From 8514f22fc6e8c94005cdd8b31149c11599b4e79d Mon Sep 17 00:00:00 2001 From: kxdd Date: Wed, 4 Sep 2024 11:18:04 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=A8=83=E5=A8=83=E6=9C=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/clawdoll/action_clawdoll.go | 17 ----------------- gamesrv/clawdoll/scene_clawdoll.go | 8 ++++++-- gamesrv/clawdoll/scenepolicy_clawdoll.go | 11 +++++++++++ 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/gamesrv/clawdoll/action_clawdoll.go b/gamesrv/clawdoll/action_clawdoll.go index 75e5fd2..bd83ddc 100644 --- a/gamesrv/clawdoll/action_clawdoll.go +++ b/gamesrv/clawdoll/action_clawdoll.go @@ -2,7 +2,6 @@ package clawdoll import ( "mongo.games.com/game/common" - rule "mongo.games.com/game/gamerule/clawdoll" "mongo.games.com/game/gamesrv/base" "mongo.games.com/game/protocol/clawdoll" "mongo.games.com/game/protocol/machine" @@ -60,15 +59,6 @@ func MSDollMachineoCoinResultHandler(session *netlib.Session, packetId int, data return nil } - scene := p.GetScene() - if scene == nil { - return nil - } - sceneEx, ok := scene.ExtraData.(*SceneEx) - if !ok { - return nil - } - switch msg.TypeId { case 1: if msg.Result == 1 { @@ -82,13 +72,6 @@ func MSDollMachineoCoinResultHandler(session *netlib.Session, packetId int, data } else { logger.Logger.Tracef("下抓失败!!!!!!!!!!!!snid = ", msg.Snid) } - - scene.ChangeSceneState(rule.ClawDollSceneStateBilled) - - sceneEx.SetPlayingState(int32(rule.ClawDollSceneStateBilled)) - - ClawdollBroadcastRoomState(scene) - ClawdollSendPlayerInfo(scene) } } return nil diff --git a/gamesrv/clawdoll/scene_clawdoll.go b/gamesrv/clawdoll/scene_clawdoll.go index f87890b..8c3070d 100644 --- a/gamesrv/clawdoll/scene_clawdoll.go +++ b/gamesrv/clawdoll/scene_clawdoll.go @@ -311,7 +311,7 @@ func (this *SceneEx) GetPlayGrabType(player *PlayerEx) int32 { return rule.ClawWeak } - if this.RoundId%100 == 0 && this.RoundId != 0 { + if this.RoundId/2 == 0 && this.RoundId != 0 { return rule.ClawStrong } @@ -371,7 +371,11 @@ func (this *SceneEx) SetPlayingState(state int32) { // 时间到 系统开始下抓 func (this *SceneEx) TimeOutPlayGrab() bool { - this.OnPlayerSMGrabOp(this.playingSnid, int32(this.machineId), rule.ClawWeak) + playerEx := this.players[this.playingSnid] + if playerEx != nil { + grapType := this.GetPlayGrabType(playerEx) + this.OnPlayerSMGrabOp(this.playingSnid, int32(this.machineId), grapType) + } return true } diff --git a/gamesrv/clawdoll/scenepolicy_clawdoll.go b/gamesrv/clawdoll/scenepolicy_clawdoll.go index 8d56913..f2c46e0 100644 --- a/gamesrv/clawdoll/scenepolicy_clawdoll.go +++ b/gamesrv/clawdoll/scenepolicy_clawdoll.go @@ -668,6 +668,12 @@ func (this *PlayGame) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, para //1-弱力抓 2 -强力抓 sceneEx.OnPlayerSMGrabOp(p.SnId, int32(sceneEx.machineId), grapType) + s.ChangeSceneState(rule.ClawDollSceneStateBilled) + sceneEx.SetPlayingState(int32(rule.ClawDollSceneStateBilled)) + + ClawdollBroadcastRoomState(s) + ClawdollSendPlayerInfo(s) + case rule.ClawDollPlayerOpMove: if !sceneEx.CheckMoveOp(playerEx) { @@ -698,6 +704,11 @@ func (this *PlayGame) OnTick(s *base.Scene) { logger.Logger.Trace("PlayGame OnTick TimeOutPlayGrab SnId", sceneEx.playingSnid, " machineId:", sceneEx.machineId) } + s.ChangeSceneState(rule.ClawDollSceneStateBilled) + sceneEx.SetPlayingState(int32(rule.ClawDollSceneStateBilled)) + + ClawdollBroadcastRoomState(s) + ClawdollSendPlayerInfo(s) return } }