Commit 495e91422f95cee75b0cce25194f935654fe5f2a

Authored by zhangqijia
1 parent 8f6d9ea9

fix: 增加DisConnectRsp协议。增加测试工具

1 -Subproject commit 3b86cdcde67acc5d79e9bcd51bde67c667f69613 1 +Subproject commit 5048930a93ad2f32939c0bfd14d83a87ffd816bb
@@ -49,6 +49,8 @@ excel: @@ -49,6 +49,8 @@ excel:
49 -s all 49 -s all
50 50
51 gen:proto excel 51 gen:proto excel
  52 +pull:
  53 + git submodule update --remote
52 54
53 55
54 -.PHONY: all build protos test cert plugin doc proto  
55 \ No newline at end of file 56 \ No newline at end of file
  57 +.PHONY: all build protos test cert plugin doc proto pull
56 \ No newline at end of file 58 \ No newline at end of file
cmd/gameserver/action/RoleAction.go
@@ -198,14 +198,8 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i @@ -198,14 +198,8 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i
198 logger.Error("loginRpc err: %v", err) 198 logger.Error("loginRpc err: %v", err)
199 return 1, nil 199 return 1, nil
200 } 200 }
201 -  
202 - //find chapter from table config  
203 chapterInfo := csvdata.Get().TbRogueChapter.Get(req.ChapterId) 201 chapterInfo := csvdata.Get().TbRogueChapter.Get(req.ChapterId)
204 -  
205 - //find chapter from role pass  
206 chapterCount, first := role.Role.PassChapters[req.ChapterId] 202 chapterCount, first := role.Role.PassChapters[req.ChapterId]
207 -  
208 - //find carbon  
209 carbonInfo, ok := chapterInfo.Carbons[req.CarbonId] 203 carbonInfo, ok := chapterInfo.Carbons[req.CarbonId]
210 if !ok { 204 if !ok {
211 logger.Error("carbonInfo not exists") 205 logger.Error("carbonInfo not exists")
cmd/gameserver/main.go
@@ -26,7 +26,7 @@ func main() { @@ -26,7 +26,7 @@ func main() {
26 return 26 return
27 } 27 }
28 go func() { 28 go func() {
29 - err <- http.ListenAndServe(fmt.Sprintf("localhost:%d", common.GlobalSconf.DebugPort), nil) 29 + err <- http.ListenAndServe(fmt.Sprintf(":%d", common.GlobalSconf.DebugPort), nil)
30 }() 30 }()
31 31
32 gm := service.NewGmServer(s, fmt.Sprintf(":%d", common.GlobalSconf.GMPort)) 32 gm := service.NewGmServer(s, fmt.Sprintf(":%d", common.GlobalSconf.GMPort))
cmd/gameserver/service/agent.go
1 package service 1 package service
2 2
3 import ( 3 import (
  4 + "fmt"
4 "github.com/golang/protobuf/proto" 5 "github.com/golang/protobuf/proto"
5 "math" 6 "math"
6 "pro2d/common" 7 "pro2d/common"
@@ -40,6 +41,7 @@ func (c *Agent) SetSchema(schema components.ISchema) { @@ -40,6 +41,7 @@ func (c *Agent) SetSchema(schema components.ISchema) {
40 c.Role.SetConn(c) 41 c.Role.SetConn(c)
41 42
42 c.Server.GetConnManage().AddRID(c.Role.Role.Id, c.IConnection.GetID()) 43 c.Server.GetConnManage().AddRID(c.Role.Role.Id, c.IConnection.GetID())
  44 + c.Server.GetConnManage().AddUID(c.Role.Role.Uid, c.IConnection.GetID())
43 } 45 }
44 46
45 func (c *Agent) GetSchema() components.ISchema { 47 func (c *Agent) GetSchema() components.ISchema {
@@ -69,7 +71,18 @@ func (c *Agent) OnLoginQuery(msg components.IMessage) (int32, proto.Message) { @@ -69,7 +71,18 @@ func (c *Agent) OnLoginQuery(msg components.IMessage) (int32, proto.Message) {
69 return 1, nil 71 return 1, nil
70 } 72 }
71 73
72 - role := models.RoleExistByUid(req.Token) 74 + uid := req.Token
  75 +
  76 + // 判断是否已经登录 ,挤掉,断开连接
  77 + conn := c.Server.GetConnManage().GetConnByUID(uid)
  78 + logger.Debug(conn)
  79 + if conn != nil {
  80 + logger.Debug("挤掉。。。。。。。。")
  81 + conn.SendSuccess(uint32(pb.ProtoCode_DisConnectRsp), nil)
  82 + conn.Stop()
  83 + }
  84 +
  85 + role := models.RoleExistByUid(uid)
73 if role == nil { 86 if role == nil {
74 return 2, nil 87 return 2, nil
75 } 88 }
@@ -85,50 +98,46 @@ func (c *Agent) OnLoginQuery(msg components.IMessage) (int32, proto.Message) { @@ -85,50 +98,46 @@ func (c *Agent) OnLoginQuery(msg components.IMessage) (int32, proto.Message) {
85 return 0, protoMsg 98 return 0, protoMsg
86 } 99 }
87 100
88 -func (c *Agent) SendMsg(errCode int32, cmd uint32, msg interface{}) { 101 +func (c *Agent) SendMsg(errCode int32, cmd uint32, msg interface{}) error {
89 if msg == nil || errCode != 0 { 102 if msg == nil || errCode != 0 {
90 - c.Send(errCode, cmd, nil)  
91 - return 103 + return c.Send(errCode, cmd, nil)
92 } 104 }
93 rsp, err := proto.Marshal(msg.(proto.Message)) 105 rsp, err := proto.Marshal(msg.(proto.Message))
94 if err != nil { 106 if err != nil {
95 - c.Send(-100, cmd, nil)  
96 - return 107 + return c.Send(-100, cmd, nil)
97 } 108 }
98 - c.Send(errCode, cmd, rsp) 109 + return c.Send(errCode, cmd, rsp)
99 } 110 }
100 111
101 -func (c *Agent) OnMessage(msg components.IMessage) { 112 +func (c *Agent) OnMessage(msg components.IMessage) error {
102 atomic.StoreInt64(&c.lastHeartCheckTime, common.Timex()) 113 atomic.StoreInt64(&c.lastHeartCheckTime, common.Timex())
103 - logger.Debug("protocolID: %d", msg.GetHeader().GetMsgID()) 114 + logger.Debug("req protocolID: %d", msg.GetHeader().GetMsgID())
104 //heart 115 //heart
105 if msg.GetHeader().GetMsgID() == uint32(pb.ProtoCode_HeartReq) { 116 if msg.GetHeader().GetMsgID() == uint32(pb.ProtoCode_HeartReq) {
106 - return 117 + return nil
107 } 118 }
108 119
109 //login 120 //login
110 if msg.GetHeader().GetMsgID() == uint32(pb.ProtoCode_LoginReq) { 121 if msg.GetHeader().GetMsgID() == uint32(pb.ProtoCode_LoginReq) {
111 code, protoMsg := c.OnLoginQuery(msg) 122 code, protoMsg := c.OnLoginQuery(msg)
112 - c.SendMsg(code, msg.GetHeader().GetMsgID(), protoMsg)  
113 - return 123 + return c.SendMsg(code, msg.GetHeader().GetMsgID(), protoMsg)
114 } 124 }
115 125
116 //get handler by msgid 126 //get handler by msgid
117 md := c.Server.GetAction(msg.GetHeader().GetMsgID()) 127 md := c.Server.GetAction(msg.GetHeader().GetMsgID())
118 if md == nil { 128 if md == nil {
119 - logger.Debug("cmd: %d, handler is nil", msg.GetHeader().GetMsgID())  
120 - return 129 + return fmt.Errorf("cmd: %d, handler is nil", msg.GetHeader().GetMsgID())
121 } 130 }
122 131
123 if msg.GetHeader().GetMsgID() != uint32(pb.ProtoCode_CreateReq) && c.Role == nil { 132 if msg.GetHeader().GetMsgID() != uint32(pb.ProtoCode_CreateReq) && c.Role == nil {
124 - c.Send(-101, msg.GetHeader().GetMsgID(), nil)  
125 - return 133 + return c.Send(-101, msg.GetHeader().GetMsgID(), nil)
126 } 134 }
127 135
128 //调用协议号对应的逻辑函数 136 //调用协议号对应的逻辑函数
129 f := md.(func(role *models.RoleModel, msg components.IMessage) (int32, interface{})) 137 f := md.(func(role *models.RoleModel, msg components.IMessage) (int32, interface{}))
130 errCode, protoMsg := f(c.Role, msg) 138 errCode, protoMsg := f(c.Role, msg)
131 - c.SendMsg(errCode, msg.GetHeader().GetMsgID(), protoMsg) 139 + logger.Debug("rsp errcode: %d, protocode: %d", errCode, msg.GetHeader().GetMsgID())
  140 + return c.SendMsg(errCode, msg.GetHeader().GetMsgID(), protoMsg)
132 } 141 }
133 142
134 func (c *Agent) OnTimer() { 143 func (c *Agent) OnTimer() {
@@ -158,6 +167,7 @@ func (c *Agent) OnClose() { @@ -158,6 +167,7 @@ func (c *Agent) OnClose() {
158 167
159 logger.Debug("ID: %d close, roleid", c.IConnection.GetID(), c.Role.Role.Id) 168 logger.Debug("ID: %d close, roleid", c.IConnection.GetID(), c.Role.Role.Id)
160 c.Server.GetConnManage().DelRID(c.Role.Role.Id) 169 c.Server.GetConnManage().DelRID(c.Role.Role.Id)
  170 + c.Server.GetConnManage().DelUID(c.Role.Role.Uid)
161 c.Role.OnOfflineEvent() 171 c.Role.OnOfflineEvent()
162 } 172 }
163 173
cmd/gameserver/service/game.go
@@ -106,7 +106,11 @@ func (s *GameServer) OnMessage(msg components.IMessage) { @@ -106,7 +106,11 @@ func (s *GameServer) OnMessage(msg components.IMessage) {
106 if agent == nil { 106 if agent == nil {
107 return 107 return
108 } 108 }
109 - agent.(*Agent).OnMessage(msg) 109 + err := agent.(*Agent).OnMessage(msg)
  110 + if err != nil {
  111 + logger.Error("%d, onmessage err: %s", agent.GetID(), err.Error())
  112 + s.OnClose(agent)
  113 + }
110 } 114 }
111 115
112 func (s *GameServer) OnTimer(conn components.IConnection) { 116 func (s *GameServer) OnTimer(conn components.IConnection) {
cmd/test/action/TestAction.go 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +package action
  2 +
  3 +import (
  4 + "github.com/golang/protobuf/proto"
  5 + "pro2d/common/components"
  6 + "pro2d/common/logger"
  7 + "pro2d/models"
  8 + "pro2d/pb"
  9 +)
  10 +
  11 +func HeartReq(role *models.RoleTestModel, msg components.IMessage) {
  12 +}
  13 +
  14 +func CreateReq(role *models.RoleTestModel, msg components.IMessage) {
  15 +}
  16 +func ChangeTeamReq(role *models.RoleTestModel, msg components.IMessage) {
  17 +}
  18 +func HeroEquipReferReq(role *models.RoleTestModel, msg components.IMessage) {
  19 +}
  20 +func RoleClearItemsReq(role *models.RoleTestModel, msg components.IMessage) {
  21 +}
  22 +func RoleStartBattleReq(role *models.RoleTestModel, msg components.IMessage) {
  23 +}
  24 +func RoleEndBattleReq(role *models.RoleTestModel, msg components.IMessage) {
  25 + rsp := pb.RoleEndBattleRsp{}
  26 + if err := proto.Unmarshal(msg.GetData(), &rsp); err != nil {
  27 + logger.Error("rsp err: %v", err)
  28 + return
  29 + }
  30 + logger.Debug(rsp)
  31 +}
  32 +func EquipmentDelReq(role *models.RoleTestModel, msg components.IMessage) {
  33 +}
cmd/test/action/protocode.go 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +package action
  2 +
  3 +import (
  4 + "pro2d/pb"
  5 +)
  6 +
  7 +func GetTestActionMap() map[interface{}]interface{} {
  8 + am := make(map[interface{}]interface{})
  9 + am[uint32(pb.ProtoCode_HeartReq)] = HeartReq
  10 + am[uint32(pb.ProtoCode_CreateReq)] = CreateReq
  11 + am[uint32(pb.ProtoCode_ChangeTeamReq)] = ChangeTeamReq
  12 + am[uint32(pb.ProtoCode_HeroEquipReferReq)] = HeroEquipReferReq
  13 + am[uint32(pb.ProtoCode_RoleClearItemsReq)] = RoleClearItemsReq
  14 + am[uint32(pb.ProtoCode_RoleStartBattleReq)] = RoleStartBattleReq
  15 + am[uint32(pb.ProtoCode_RoleEndBattleReq)] = RoleEndBattleReq
  16 + am[uint32(pb.ProtoCode_EquipmentDelReq)] = EquipmentDelReq
  17 +
  18 + return am
  19 +}
cmd/test/client.go deleted
@@ -1,42 +0,0 @@ @@ -1,42 +0,0 @@
1 -package main  
2 -  
3 -import (  
4 - "github.com/golang/protobuf/proto"  
5 - "pro2d/common"  
6 - "pro2d/common/components"  
7 - "pro2d/common/logger"  
8 - "pro2d/pb"  
9 - "time"  
10 -)  
11 -  
12 -func main() {  
13 -  
14 - head := &components.PBHead{  
15 - Length: 0,  
16 - Cmd: uint32(pb.ProtoCode_LoginReq),  
17 - ErrCode: 0,  
18 - PreField: 0,  
19 - }  
20 -  
21 - loginReq := &pb.LoginReq{  
22 - Token: "141815055745814528",  
23 - Device: "123123",  
24 - }  
25 - l, _ := proto.Marshal(loginReq)  
26 -  
27 - options := []components.ConnectorOption{  
28 - components.WithCtorCount(common.GlobalConf.TestClient.Count),  
29 - components.WithCtorSplitter(components.NewPBSplitter(nil)),  
30 - }  
31 -  
32 - client := components.NewConnector(common.GlobalConf.TestClient.Ip, common.GlobalConf.TestClient.Port, options...)  
33 - if err := client.Connect(); err != nil {  
34 - logger.Error(err)  
35 - return  
36 - }  
37 -  
38 - for {  
39 - client.Send(head.Cmd, l)  
40 - time.Sleep(1 * time.Second)  
41 - }  
42 -}  
cmd/test/client_test.go deleted
@@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
1 -package main  
2 -  
3 -import (  
4 - "testing"  
5 -)  
6 -  
7 -type Error struct {  
8 - errCode uint8  
9 -}  
10 -func (e *Error) Error() string {  
11 - switch e.errCode {  
12 - case 1:  
13 - return "file not found"  
14 - case 2:  
15 - return "time out"  
16 - case 3:  
17 - return "permission denied"  
18 - default:  
19 - return "unknown error"  
20 - }  
21 -}  
22 -  
23 -func checkError(err error) {  
24 - if err != nil {  
25 - panic(err)  
26 - }  
27 -}  
28 -  
29 -func TestStart( t *testing.T) {  
30 - var e *Error  
31 - checkError(e)  
32 -}  
33 \ No newline at end of file 0 \ No newline at end of file
cmd/test/main.go 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +package main
  2 +
  3 +import (
  4 + "pro2d/cmd/test/service"
  5 + "pro2d/pb"
  6 + "time"
  7 +)
  8 +
  9 +func main() {
  10 + tc := service.NewTestClient()
  11 + if tc == nil {
  12 + return
  13 + }
  14 +
  15 + tc.Login("1")
  16 +
  17 + pp := &pb.RoleEndBattleReq{
  18 + ChapterId: 1,
  19 + CarbonId: 1,
  20 + Pass: true,
  21 + }
  22 +
  23 + time.Sleep(2 * time.Second)
  24 + for {
  25 + //tc.SendPB(pb.ProtoCode_HeartReq, nil)
  26 + tc.SendPB(pb.ProtoCode_RoleEndBattleReq, pp)
  27 + time.Sleep(5 * time.Second)
  28 + }
  29 +
  30 +}
cmd/test/service/TestClient.go 0 → 100644
@@ -0,0 +1,119 @@ @@ -0,0 +1,119 @@
  1 +package service
  2 +
  3 +import (
  4 + "fmt"
  5 + "github.com/golang/protobuf/proto"
  6 + "pro2d/cmd/test/action"
  7 + "pro2d/common"
  8 + "pro2d/common/components"
  9 + "pro2d/common/logger"
  10 + "pro2d/models"
  11 + "pro2d/pb"
  12 + "sync/atomic"
  13 +)
  14 +
  15 +type TestClient struct {
  16 + components.IConnector
  17 +
  18 + Token string
  19 + RoleTest *models.RoleTestModel
  20 + lastHeartCheckTime int64
  21 +}
  22 +
  23 +func NewTestClient() *TestClient {
  24 + options := []components.ConnectorOption{
  25 + components.WithCtorCount(common.GlobalConf.TestClient.Count),
  26 + components.WithCtorSplitter(components.NewPBSplitter(nil)),
  27 + }
  28 +
  29 + client := components.NewConnector(common.GlobalConf.TestClient.Ip, common.GlobalConf.TestClient.Port, options...)
  30 + if err := client.Connect(); err != nil {
  31 + logger.Error(err)
  32 + return nil
  33 + }
  34 + t := &TestClient{IConnector: client}
  35 +
  36 + client.GetConn().SetConnectionCallback(t.OnConn)
  37 + client.GetConn().SetMessageCallback(t.OnMessage)
  38 + client.GetConn().SetCloseCallback(t.OnClose)
  39 + client.GetConn().SetTimerCallback(t.OnTimer)
  40 + client.GetConn().Start()
  41 + return t
  42 +}
  43 +
  44 +func (t *TestClient) OnConn(conn components.IConnection) {
  45 +}
  46 +
  47 +func (t *TestClient) OnLoginQuery(msg components.IMessage) {
  48 + errCode := msg.GetHeader().GetErrCode()
  49 + if errCode != 0 {
  50 + logger.Error("Login errcode: %d", errCode)
  51 +
  52 + if errCode == 2 {
  53 + req := &pb.CreateReq{
  54 + Token: t.Token,
  55 + Device: "test-create",
  56 + }
  57 + r, _ := proto.Marshal(req)
  58 + t.GetConn().SendSuccess(uint32(pb.ProtoCode_CreateReq), r)
  59 + return
  60 + }
  61 + }
  62 +
  63 + req := pb.RoleRsp{}
  64 + if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
  65 + logger.Error("loginRpc err: %v", err)
  66 + return
  67 + }
  68 +
  69 + t.RoleTest = models.NewRoleTestModel(req)
  70 +}
  71 +
  72 +func (t *TestClient) OnMessage(msg components.IMessage) {
  73 + atomic.StoreInt64(&t.lastHeartCheckTime, common.Timex())
  74 + logger.Debug("rsp errCode:%d, protocolID: %d", msg.GetHeader().GetErrCode(), msg.GetHeader().GetMsgID())
  75 +
  76 + //login rsp
  77 + if msg.GetHeader().GetMsgID() == uint32(pb.ProtoCode_LoginReq) {
  78 + t.OnLoginQuery(msg)
  79 + return
  80 + }
  81 +
  82 + errCode := msg.GetHeader().GetErrCode()
  83 + if errCode != 0 {
  84 + logger.Error("protocolID: %d, errCode %d", msg.GetHeader().GetMsgID(), errCode)
  85 + return
  86 + }
  87 +
  88 + //get handler by msgid
  89 + md, ok := action.GetTestActionMap()[msg.GetHeader().GetMsgID()]
  90 + if !ok {
  91 + fmt.Errorf("cmd: %d, handler is nil", msg.GetHeader().GetMsgID())
  92 + return
  93 + }
  94 +
  95 + //调用协议号对应的逻辑函数
  96 + f := md.(func(role *models.RoleTestModel, msg components.IMessage))
  97 + f(t.RoleTest, msg)
  98 +}
  99 +
  100 +func (t *TestClient) OnClose(conn components.IConnection) {
  101 +}
  102 +func (t *TestClient) OnTimer(conn components.IConnection) {
  103 +}
  104 +
  105 +func (t *TestClient) Login(token string) {
  106 + t.Token = token
  107 + head := &components.PBHead{
  108 + Length: 0,
  109 + Cmd: uint32(pb.ProtoCode_LoginReq),
  110 + ErrCode: 0,
  111 + PreField: 0,
  112 + }
  113 + loginReq := &pb.LoginReq{
  114 + Token: token,
  115 + Device: "test-login",
  116 + }
  117 + l, _ := proto.Marshal(loginReq)
  118 + t.Send(head.Cmd, l)
  119 +}
common/components/conn.go
@@ -39,8 +39,8 @@ var connectionPool = &amp;sync.Pool{ @@ -39,8 +39,8 @@ var connectionPool = &amp;sync.Pool{
39 39
40 func NewConn(id int, conn net.Conn, splitter ISplitter) IConnection { 40 func NewConn(id int, conn net.Conn, splitter ISplitter) IConnection {
41 c := connectionPool.Get().(*Connection) 41 c := connectionPool.Get().(*Connection)
42 - closed := atomic.LoadUint32(&c.Status)  
43 - if closed != 0 { 42 + status := atomic.LoadUint32(&c.Status)
  43 + if status != 0 {
44 connectionPool.Put(c) 44 connectionPool.Put(c)
45 c = new(Connection) 45 c = new(Connection)
46 } 46 }
common/components/connector.go
@@ -2,8 +2,10 @@ package components @@ -2,8 +2,10 @@ package components
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
  5 + "github.com/golang/protobuf/proto"
5 "net" 6 "net"
6 "pro2d/common/logger" 7 "pro2d/common/logger"
  8 + "pro2d/pb"
7 ) 9 )
8 10
9 type ConnectorOption func(*Connector) 11 type ConnectorOption func(*Connector)
@@ -22,22 +24,19 @@ func WithCtorCount(count int) ConnectorOption { @@ -22,22 +24,19 @@ func WithCtorCount(count int) ConnectorOption {
22 24
23 type Connector struct { 25 type Connector struct {
24 IConnector 26 IConnector
  27 + IConnection
25 IServer 28 IServer
  29 + Id int
26 splitter ISplitter 30 splitter ISplitter
27 ip string 31 ip string
28 port int 32 port int
29 sum int 33 sum int
30 -  
31 - Conns IConnManage  
32 - ids uint32  
33 } 34 }
34 35
35 func NewConnector(ip string, port int, options ...ConnectorOption) IConnector { 36 func NewConnector(ip string, port int, options ...ConnectorOption) IConnector {
36 c := &Connector{ 37 c := &Connector{
37 - ids: 0,  
38 - ip: ip,  
39 - port: port,  
40 - Conns: NewConnManage(), 38 + ip: ip,
  39 + port: port,
41 } 40 }
42 for _, option := range options { 41 for _, option := range options {
43 option(c) 42 option(c)
@@ -45,50 +44,51 @@ func NewConnector(ip string, port int, options ...ConnectorOption) IConnector { @@ -45,50 +44,51 @@ func NewConnector(ip string, port int, options ...ConnectorOption) IConnector {
45 return c 44 return c
46 } 45 }
47 46
  47 +func (c *Connector) GetConn() IConnection {
  48 + return c.IConnection
  49 +}
  50 +
48 func (c *Connector) Connect() error { 51 func (c *Connector) Connect() error {
49 - if c.sum == 0 {  
50 - c.sum = 1  
51 - }  
52 - for i := 0; i < c.sum; i++ {  
53 - conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", c.ip, c.port))  
54 - if err != nil {  
55 - return err  
56 - }  
57 - c.ids++  
58 - cli := NewConn(int(c.ids), conn, c.splitter)  
59 - cli.SetConnectionCallback(c.OnConnect)  
60 - cli.SetMessageCallback(c.OnMessage)  
61 - cli.SetCloseCallback(c.OnClose)  
62 - cli.SetTimerCallback(c.OnTimer)  
63 -  
64 - cli.Start() 52 + conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", c.ip, c.port))
  53 + if err != nil {
  54 + return err
65 } 55 }
  56 + cli := NewConn(c.Id, conn, c.splitter)
  57 + cli.SetMessageCallback(c.OnMessage)
  58 + cli.SetCloseCallback(c.OnClose)
  59 + cli.SetTimerCallback(c.OnTimer)
  60 + c.IConnection = cli
66 61
67 return nil 62 return nil
68 } 63 }
69 64
70 func (c *Connector) DisConnect() { 65 func (c *Connector) DisConnect() {
71 - c.Conns.StopAllConns() 66 + c.IConnection.Stop()
72 } 67 }
73 68
74 -func (c *Connector) Send(cmd uint32, b []byte) {  
75 - c.Conns.Range(func(key interface{}, value interface{}) bool {  
76 - conn := value.(IConnection)  
77 - conn.Send(0, cmd, b)  
78 - return true  
79 - }) 69 +func (c *Connector) Send(cmd uint32, b []byte) error {
  70 + logger.Debug("connector send cmd: %d, msg: %s", cmd, b)
  71 + return c.IConnection.Send(0, cmd, b)
80 } 72 }
81 73
82 -func (c *Connector) GetSplitter() ISplitter {  
83 - return c.splitter 74 +func (c *Connector) SendPB(cmd pb.ProtoCode, b proto.Message) error {
  75 + if b == nil {
  76 + return c.Send(uint32(cmd), nil)
  77 + }
  78 +
  79 + l, err := proto.Marshal(b)
  80 + if err != nil {
  81 + return err
  82 + }
  83 + return c.Send(uint32(cmd), l)
84 } 84 }
85 85
86 -func (c *Connector) OnConnect(conn IConnection) {  
87 - c.Conns.AddConn(conn.GetID(), conn) 86 +func (c *Connector) GetSplitter() ISplitter {
  87 + return c.splitter
88 } 88 }
89 89
90 func (c *Connector) OnMessage(msg IMessage) { 90 func (c *Connector) OnMessage(msg IMessage) {
91 - logger.Debug("recv msg cmd: %d, conn: %d data: %s", msg.GetHeader().GetMsgID(), msg.GetSID(), msg.GetData()) 91 + logger.Debug("recv msg errorCode: %d cmd: %d, conn: %d data: %s", msg.GetHeader().GetErrCode(), msg.GetHeader().GetMsgID(), msg.GetSID(), msg.GetData())
92 } 92 }
93 93
94 func (c *Connector) OnClose(conn IConnection) { 94 func (c *Connector) OnClose(conn IConnection) {
@@ -96,5 +96,5 @@ func (c *Connector) OnClose(conn IConnection) { @@ -96,5 +96,5 @@ func (c *Connector) OnClose(conn IConnection) {
96 } 96 }
97 97
98 func (c *Connector) OnTimer(conn IConnection) { 98 func (c *Connector) OnTimer(conn IConnection) {
99 - logger.Debug("ontimer id: %d", conn.GetID()) 99 + //logger.Debug("ontimer id: %d", conn.GetID())
100 } 100 }
common/components/connmanage.go
@@ -8,6 +8,9 @@ type ConnManage struct { @@ -8,6 +8,9 @@ type ConnManage struct {
8 8
9 r2cRW sync.RWMutex 9 r2cRW sync.RWMutex
10 r2c map[string]uint32 // role to connID 10 r2c map[string]uint32 // role to connID
  11 +
  12 + u2cRW sync.RWMutex
  13 + u2c map[string]uint32 // uid to connID
11 } 14 }
12 15
13 func NewConnManage() *ConnManage { 16 func NewConnManage() *ConnManage {
@@ -17,6 +20,9 @@ func NewConnManage() *ConnManage { @@ -17,6 +20,9 @@ func NewConnManage() *ConnManage {
17 20
18 r2cRW: sync.RWMutex{}, 21 r2cRW: sync.RWMutex{},
19 r2c: make(map[string]uint32), 22 r2c: make(map[string]uint32),
  23 +
  24 + u2cRW: sync.RWMutex{},
  25 + u2c: make(map[string]uint32),
20 } 26 }
21 } 27 }
22 28
@@ -76,3 +82,22 @@ func (c *ConnManage) GetConnByRID(rid string) IConnection { @@ -76,3 +82,22 @@ func (c *ConnManage) GetConnByRID(rid string) IConnection {
76 cid := c.r2c[rid] 82 cid := c.r2c[rid]
77 return c.GetConn(cid) 83 return c.GetConn(cid)
78 } 84 }
  85 +
  86 +func (c *ConnManage) AddUID(uid string, id uint32) {
  87 + c.u2cRW.Lock()
  88 + defer c.u2cRW.Unlock()
  89 + c.u2c[uid] = id
  90 +}
  91 +
  92 +func (c *ConnManage) DelUID(uid string) {
  93 + c.r2cRW.Lock()
  94 + defer c.r2cRW.Unlock()
  95 + delete(c.r2c, uid)
  96 +}
  97 +
  98 +func (c *ConnManage) GetConnByUID(uid string) IConnection {
  99 + c.u2cRW.RLock()
  100 + defer c.u2cRW.RUnlock()
  101 + cid := c.u2c[uid]
  102 + return c.GetConn(cid)
  103 +}
common/components/icompontents.go
@@ -4,6 +4,7 @@ import ( @@ -4,6 +4,7 @@ import (
4 "github.com/gin-gonic/gin" 4 "github.com/gin-gonic/gin"
5 "github.com/golang/protobuf/proto" 5 "github.com/golang/protobuf/proto"
6 "google.golang.org/protobuf/reflect/protoreflect" 6 "google.golang.org/protobuf/reflect/protoreflect"
  7 + "pro2d/pb"
7 "reflect" 8 "reflect"
8 ) 9 )
9 10
@@ -71,6 +72,10 @@ type ( @@ -71,6 +72,10 @@ type (
71 AddRID(rid string, id uint32) 72 AddRID(rid string, id uint32)
72 DelRID(rid string) 73 DelRID(rid string)
73 GetConnByRID(rid string) IConnection 74 GetConnByRID(rid string) IConnection
  75 +
  76 + AddUID(uid string, id uint32)
  77 + DelUID(uid string)
  78 + GetConnByUID(uid string) IConnection
74 } 79 }
75 //server 80 //server
76 IServer interface { 81 IServer interface {
@@ -102,7 +107,9 @@ type ( @@ -102,7 +107,9 @@ type (
102 Connect() error 107 Connect() error
103 DisConnect() 108 DisConnect()
104 109
105 - Send(cmd uint32, b []byte) 110 + GetConn() IConnection
  111 + Send(cmd uint32, b []byte) error
  112 + SendPB(cmd pb.ProtoCode, b proto.Message) error
106 } 113 }
107 114
108 //httpserver 115 //httpserver
@@ -69,8 +69,8 @@ server_game1: @@ -69,8 +69,8 @@ server_game1:
69 db: 0 69 db: 0
70 test_client: 70 test_client:
71 ip: "127.0.0.1" 71 ip: "127.0.0.1"
72 - port: 8850  
73 - count: 10 72 + port: 8849
  73 + count: 1
74 74
75 logconf: 75 logconf:
76 TimeFormat: "2006-01-02 15:04:05" 76 TimeFormat: "2006-01-02 15:04:05"
@@ -133,7 +133,8 @@ func (m *RoleModel) InitRole() { @@ -133,7 +133,8 @@ func (m *RoleModel) InitRole() {
133 m.AddTeam(&t4) 133 m.AddTeam(&t4)
134 134
135 //init limit 135 //init limit
136 - m.UpdateProperties(map[string]interface{}{"clotheslimit": 100, "weaponslimit": 100, "otherlimit": 100}, false) 136 + var limit uint32 = 50
  137 + m.UpdateProperties(map[string]interface{}{"clotheslimit": limit, "weaponslimit": limit, "otherlimit": limit, "jewelrylimit": limit, "materiallimit": limit}, false)
137 138
138 m.Update() 139 m.Update()
139 } 140 }
models/roleTest.go 0 → 100644
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
  1 +package models
  2 +
  3 +import (
  4 + "github.com/golang/protobuf/proto"
  5 + "pro2d/pb"
  6 +)
  7 +
  8 +type ProtoMap map[string]proto.Message
  9 +
  10 +type RoleTestModel struct {
  11 + Role *pb.Role
  12 + Hero ProtoMap
  13 + Team ProtoMap
  14 + Equipment ProtoMap
  15 +}
  16 +
  17 +func NewRoleTestModel(rsp pb.RoleRsp) *RoleTestModel {
  18 + data := &RoleTestModel{
  19 + Role: rsp.Role,
  20 + Hero: make(ProtoMap),
  21 + Team: make(ProtoMap),
  22 + Equipment: make(ProtoMap),
  23 + }
  24 +
  25 + for _, hero := range rsp.Hero {
  26 + data.Hero[hero.Id] = hero
  27 + }
  28 +
  29 + for _, team := range rsp.Team {
  30 + data.Team[team.Id] = team
  31 + }
  32 + for _, equip := range rsp.Equipments {
  33 + data.Equipment[equip.Id] = equip
  34 + }
  35 +
  36 + return data
  37 +}
@@ -227,6 +227,44 @@ func (x *CreateReq) GetDevice() string { @@ -227,6 +227,44 @@ func (x *CreateReq) GetDevice() string {
227 return "" 227 return ""
228 } 228 }
229 229
  230 +type DisConnectRsp struct {
  231 + state protoimpl.MessageState
  232 + sizeCache protoimpl.SizeCache
  233 + unknownFields protoimpl.UnknownFields
  234 +}
  235 +
  236 +func (x *DisConnectRsp) Reset() {
  237 + *x = DisConnectRsp{}
  238 + if protoimpl.UnsafeEnabled {
  239 + mi := &file_game_proto_msgTypes[4]
  240 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  241 + ms.StoreMessageInfo(mi)
  242 + }
  243 +}
  244 +
  245 +func (x *DisConnectRsp) String() string {
  246 + return protoimpl.X.MessageStringOf(x)
  247 +}
  248 +
  249 +func (*DisConnectRsp) ProtoMessage() {}
  250 +
  251 +func (x *DisConnectRsp) ProtoReflect() protoreflect.Message {
  252 + mi := &file_game_proto_msgTypes[4]
  253 + if protoimpl.UnsafeEnabled && x != nil {
  254 + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  255 + if ms.LoadMessageInfo() == nil {
  256 + ms.StoreMessageInfo(mi)
  257 + }
  258 + return ms
  259 + }
  260 + return mi.MessageOf(x)
  261 +}
  262 +
  263 +// Deprecated: Use DisConnectRsp.ProtoReflect.Descriptor instead.
  264 +func (*DisConnectRsp) Descriptor() ([]byte, []int) {
  265 + return file_game_proto_rawDescGZIP(), []int{4}
  266 +}
  267 +
230 //ResponseCmd ChangeTeamReq 268 //ResponseCmd ChangeTeamReq
231 type ChangeTeamReq struct { 269 type ChangeTeamReq struct {
232 state protoimpl.MessageState 270 state protoimpl.MessageState
@@ -239,7 +277,7 @@ type ChangeTeamReq struct { @@ -239,7 +277,7 @@ type ChangeTeamReq struct {
239 func (x *ChangeTeamReq) Reset() { 277 func (x *ChangeTeamReq) Reset() {
240 *x = ChangeTeamReq{} 278 *x = ChangeTeamReq{}
241 if protoimpl.UnsafeEnabled { 279 if protoimpl.UnsafeEnabled {
242 - mi := &file_game_proto_msgTypes[4] 280 + mi := &file_game_proto_msgTypes[5]
243 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 281 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
244 ms.StoreMessageInfo(mi) 282 ms.StoreMessageInfo(mi)
245 } 283 }
@@ -252,7 +290,7 @@ func (x *ChangeTeamReq) String() string { @@ -252,7 +290,7 @@ func (x *ChangeTeamReq) String() string {
252 func (*ChangeTeamReq) ProtoMessage() {} 290 func (*ChangeTeamReq) ProtoMessage() {}
253 291
254 func (x *ChangeTeamReq) ProtoReflect() protoreflect.Message { 292 func (x *ChangeTeamReq) ProtoReflect() protoreflect.Message {
255 - mi := &file_game_proto_msgTypes[4] 293 + mi := &file_game_proto_msgTypes[5]
256 if protoimpl.UnsafeEnabled && x != nil { 294 if protoimpl.UnsafeEnabled && x != nil {
257 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 295 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
258 if ms.LoadMessageInfo() == nil { 296 if ms.LoadMessageInfo() == nil {
@@ -265,7 +303,7 @@ func (x *ChangeTeamReq) ProtoReflect() protoreflect.Message { @@ -265,7 +303,7 @@ func (x *ChangeTeamReq) ProtoReflect() protoreflect.Message {
265 303
266 // Deprecated: Use ChangeTeamReq.ProtoReflect.Descriptor instead. 304 // Deprecated: Use ChangeTeamReq.ProtoReflect.Descriptor instead.
267 func (*ChangeTeamReq) Descriptor() ([]byte, []int) { 305 func (*ChangeTeamReq) Descriptor() ([]byte, []int) {
268 - return file_game_proto_rawDescGZIP(), []int{4} 306 + return file_game_proto_rawDescGZIP(), []int{5}
269 } 307 }
270 308
271 func (x *ChangeTeamReq) GetTeam() []*Team { 309 func (x *ChangeTeamReq) GetTeam() []*Team {
@@ -289,7 +327,7 @@ type HeroEquipReferReq struct { @@ -289,7 +327,7 @@ type HeroEquipReferReq struct {
289 func (x *HeroEquipReferReq) Reset() { 327 func (x *HeroEquipReferReq) Reset() {
290 *x = HeroEquipReferReq{} 328 *x = HeroEquipReferReq{}
291 if protoimpl.UnsafeEnabled { 329 if protoimpl.UnsafeEnabled {
292 - mi := &file_game_proto_msgTypes[5] 330 + mi := &file_game_proto_msgTypes[6]
293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 331 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
294 ms.StoreMessageInfo(mi) 332 ms.StoreMessageInfo(mi)
295 } 333 }
@@ -302,7 +340,7 @@ func (x *HeroEquipReferReq) String() string { @@ -302,7 +340,7 @@ func (x *HeroEquipReferReq) String() string {
302 func (*HeroEquipReferReq) ProtoMessage() {} 340 func (*HeroEquipReferReq) ProtoMessage() {}
303 341
304 func (x *HeroEquipReferReq) ProtoReflect() protoreflect.Message { 342 func (x *HeroEquipReferReq) ProtoReflect() protoreflect.Message {
305 - mi := &file_game_proto_msgTypes[5] 343 + mi := &file_game_proto_msgTypes[6]
306 if protoimpl.UnsafeEnabled && x != nil { 344 if protoimpl.UnsafeEnabled && x != nil {
307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 345 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
308 if ms.LoadMessageInfo() == nil { 346 if ms.LoadMessageInfo() == nil {
@@ -315,7 +353,7 @@ func (x *HeroEquipReferReq) ProtoReflect() protoreflect.Message { @@ -315,7 +353,7 @@ func (x *HeroEquipReferReq) ProtoReflect() protoreflect.Message {
315 353
316 // Deprecated: Use HeroEquipReferReq.ProtoReflect.Descriptor instead. 354 // Deprecated: Use HeroEquipReferReq.ProtoReflect.Descriptor instead.
317 func (*HeroEquipReferReq) Descriptor() ([]byte, []int) { 355 func (*HeroEquipReferReq) Descriptor() ([]byte, []int) {
318 - return file_game_proto_rawDescGZIP(), []int{5} 356 + return file_game_proto_rawDescGZIP(), []int{6}
319 } 357 }
320 358
321 func (x *HeroEquipReferReq) GetEquipId() string { 359 func (x *HeroEquipReferReq) GetEquipId() string {
@@ -353,7 +391,7 @@ type RoleRsp struct { @@ -353,7 +391,7 @@ type RoleRsp struct {
353 func (x *RoleRsp) Reset() { 391 func (x *RoleRsp) Reset() {
354 *x = RoleRsp{} 392 *x = RoleRsp{}
355 if protoimpl.UnsafeEnabled { 393 if protoimpl.UnsafeEnabled {
356 - mi := &file_game_proto_msgTypes[6] 394 + mi := &file_game_proto_msgTypes[7]
357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 395 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
358 ms.StoreMessageInfo(mi) 396 ms.StoreMessageInfo(mi)
359 } 397 }
@@ -366,7 +404,7 @@ func (x *RoleRsp) String() string { @@ -366,7 +404,7 @@ func (x *RoleRsp) String() string {
366 func (*RoleRsp) ProtoMessage() {} 404 func (*RoleRsp) ProtoMessage() {}
367 405
368 func (x *RoleRsp) ProtoReflect() protoreflect.Message { 406 func (x *RoleRsp) ProtoReflect() protoreflect.Message {
369 - mi := &file_game_proto_msgTypes[6] 407 + mi := &file_game_proto_msgTypes[7]
370 if protoimpl.UnsafeEnabled && x != nil { 408 if protoimpl.UnsafeEnabled && x != nil {
371 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 409 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
372 if ms.LoadMessageInfo() == nil { 410 if ms.LoadMessageInfo() == nil {
@@ -379,7 +417,7 @@ func (x *RoleRsp) ProtoReflect() protoreflect.Message { @@ -379,7 +417,7 @@ func (x *RoleRsp) ProtoReflect() protoreflect.Message {
379 417
380 // Deprecated: Use RoleRsp.ProtoReflect.Descriptor instead. 418 // Deprecated: Use RoleRsp.ProtoReflect.Descriptor instead.
381 func (*RoleRsp) Descriptor() ([]byte, []int) { 419 func (*RoleRsp) Descriptor() ([]byte, []int) {
382 - return file_game_proto_rawDescGZIP(), []int{6} 420 + return file_game_proto_rawDescGZIP(), []int{7}
383 } 421 }
384 422
385 func (x *RoleRsp) GetRole() *Role { 423 func (x *RoleRsp) GetRole() *Role {
@@ -423,7 +461,7 @@ type RoleUpdatePropertyRsp struct { @@ -423,7 +461,7 @@ type RoleUpdatePropertyRsp struct {
423 func (x *RoleUpdatePropertyRsp) Reset() { 461 func (x *RoleUpdatePropertyRsp) Reset() {
424 *x = RoleUpdatePropertyRsp{} 462 *x = RoleUpdatePropertyRsp{}
425 if protoimpl.UnsafeEnabled { 463 if protoimpl.UnsafeEnabled {
426 - mi := &file_game_proto_msgTypes[7] 464 + mi := &file_game_proto_msgTypes[8]
427 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 465 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
428 ms.StoreMessageInfo(mi) 466 ms.StoreMessageInfo(mi)
429 } 467 }
@@ -436,7 +474,7 @@ func (x *RoleUpdatePropertyRsp) String() string { @@ -436,7 +474,7 @@ func (x *RoleUpdatePropertyRsp) String() string {
436 func (*RoleUpdatePropertyRsp) ProtoMessage() {} 474 func (*RoleUpdatePropertyRsp) ProtoMessage() {}
437 475
438 func (x *RoleUpdatePropertyRsp) ProtoReflect() protoreflect.Message { 476 func (x *RoleUpdatePropertyRsp) ProtoReflect() protoreflect.Message {
439 - mi := &file_game_proto_msgTypes[7] 477 + mi := &file_game_proto_msgTypes[8]
440 if protoimpl.UnsafeEnabled && x != nil { 478 if protoimpl.UnsafeEnabled && x != nil {
441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 479 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
442 if ms.LoadMessageInfo() == nil { 480 if ms.LoadMessageInfo() == nil {
@@ -449,7 +487,7 @@ func (x *RoleUpdatePropertyRsp) ProtoReflect() protoreflect.Message { @@ -449,7 +487,7 @@ func (x *RoleUpdatePropertyRsp) ProtoReflect() protoreflect.Message {
449 487
450 // Deprecated: Use RoleUpdatePropertyRsp.ProtoReflect.Descriptor instead. 488 // Deprecated: Use RoleUpdatePropertyRsp.ProtoReflect.Descriptor instead.
451 func (*RoleUpdatePropertyRsp) Descriptor() ([]byte, []int) { 489 func (*RoleUpdatePropertyRsp) Descriptor() ([]byte, []int) {
452 - return file_game_proto_rawDescGZIP(), []int{7} 490 + return file_game_proto_rawDescGZIP(), []int{8}
453 } 491 }
454 492
455 func (x *RoleUpdatePropertyRsp) GetId() []int32 { 493 func (x *RoleUpdatePropertyRsp) GetId() []int32 {
@@ -478,7 +516,7 @@ type RoleUpdateItemsRsp struct { @@ -478,7 +516,7 @@ type RoleUpdateItemsRsp struct {
478 func (x *RoleUpdateItemsRsp) Reset() { 516 func (x *RoleUpdateItemsRsp) Reset() {
479 *x = RoleUpdateItemsRsp{} 517 *x = RoleUpdateItemsRsp{}
480 if protoimpl.UnsafeEnabled { 518 if protoimpl.UnsafeEnabled {
481 - mi := &file_game_proto_msgTypes[8] 519 + mi := &file_game_proto_msgTypes[9]
482 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 520 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
483 ms.StoreMessageInfo(mi) 521 ms.StoreMessageInfo(mi)
484 } 522 }
@@ -491,7 +529,7 @@ func (x *RoleUpdateItemsRsp) String() string { @@ -491,7 +529,7 @@ func (x *RoleUpdateItemsRsp) String() string {
491 func (*RoleUpdateItemsRsp) ProtoMessage() {} 529 func (*RoleUpdateItemsRsp) ProtoMessage() {}
492 530
493 func (x *RoleUpdateItemsRsp) ProtoReflect() protoreflect.Message { 531 func (x *RoleUpdateItemsRsp) ProtoReflect() protoreflect.Message {
494 - mi := &file_game_proto_msgTypes[8] 532 + mi := &file_game_proto_msgTypes[9]
495 if protoimpl.UnsafeEnabled && x != nil { 533 if protoimpl.UnsafeEnabled && x != nil {
496 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 534 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
497 if ms.LoadMessageInfo() == nil { 535 if ms.LoadMessageInfo() == nil {
@@ -504,7 +542,7 @@ func (x *RoleUpdateItemsRsp) ProtoReflect() protoreflect.Message { @@ -504,7 +542,7 @@ func (x *RoleUpdateItemsRsp) ProtoReflect() protoreflect.Message {
504 542
505 // Deprecated: Use RoleUpdateItemsRsp.ProtoReflect.Descriptor instead. 543 // Deprecated: Use RoleUpdateItemsRsp.ProtoReflect.Descriptor instead.
506 func (*RoleUpdateItemsRsp) Descriptor() ([]byte, []int) { 544 func (*RoleUpdateItemsRsp) Descriptor() ([]byte, []int) {
507 - return file_game_proto_rawDescGZIP(), []int{8} 545 + return file_game_proto_rawDescGZIP(), []int{9}
508 } 546 }
509 547
510 func (x *RoleUpdateItemsRsp) GetItems() string { 548 func (x *RoleUpdateItemsRsp) GetItems() string {
@@ -527,7 +565,7 @@ type RoleClearItemsReq struct { @@ -527,7 +565,7 @@ type RoleClearItemsReq struct {
527 func (x *RoleClearItemsReq) Reset() { 565 func (x *RoleClearItemsReq) Reset() {
528 *x = RoleClearItemsReq{} 566 *x = RoleClearItemsReq{}
529 if protoimpl.UnsafeEnabled { 567 if protoimpl.UnsafeEnabled {
530 - mi := &file_game_proto_msgTypes[9] 568 + mi := &file_game_proto_msgTypes[10]
531 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 569 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
532 ms.StoreMessageInfo(mi) 570 ms.StoreMessageInfo(mi)
533 } 571 }
@@ -540,7 +578,7 @@ func (x *RoleClearItemsReq) String() string { @@ -540,7 +578,7 @@ func (x *RoleClearItemsReq) String() string {
540 func (*RoleClearItemsReq) ProtoMessage() {} 578 func (*RoleClearItemsReq) ProtoMessage() {}
541 579
542 func (x *RoleClearItemsReq) ProtoReflect() protoreflect.Message { 580 func (x *RoleClearItemsReq) ProtoReflect() protoreflect.Message {
543 - mi := &file_game_proto_msgTypes[9] 581 + mi := &file_game_proto_msgTypes[10]
544 if protoimpl.UnsafeEnabled && x != nil { 582 if protoimpl.UnsafeEnabled && x != nil {
545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 583 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
546 if ms.LoadMessageInfo() == nil { 584 if ms.LoadMessageInfo() == nil {
@@ -553,7 +591,7 @@ func (x *RoleClearItemsReq) ProtoReflect() protoreflect.Message { @@ -553,7 +591,7 @@ func (x *RoleClearItemsReq) ProtoReflect() protoreflect.Message {
553 591
554 // Deprecated: Use RoleClearItemsReq.ProtoReflect.Descriptor instead. 592 // Deprecated: Use RoleClearItemsReq.ProtoReflect.Descriptor instead.
555 func (*RoleClearItemsReq) Descriptor() ([]byte, []int) { 593 func (*RoleClearItemsReq) Descriptor() ([]byte, []int) {
556 - return file_game_proto_rawDescGZIP(), []int{9} 594 + return file_game_proto_rawDescGZIP(), []int{10}
557 } 595 }
558 596
559 func (x *RoleClearItemsReq) GetId() string { 597 func (x *RoleClearItemsReq) GetId() string {
@@ -582,7 +620,7 @@ type RoleStartBattleReq struct { @@ -582,7 +620,7 @@ type RoleStartBattleReq struct {
582 func (x *RoleStartBattleReq) Reset() { 620 func (x *RoleStartBattleReq) Reset() {
583 *x = RoleStartBattleReq{} 621 *x = RoleStartBattleReq{}
584 if protoimpl.UnsafeEnabled { 622 if protoimpl.UnsafeEnabled {
585 - mi := &file_game_proto_msgTypes[10] 623 + mi := &file_game_proto_msgTypes[11]
586 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 624 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
587 ms.StoreMessageInfo(mi) 625 ms.StoreMessageInfo(mi)
588 } 626 }
@@ -595,7 +633,7 @@ func (x *RoleStartBattleReq) String() string { @@ -595,7 +633,7 @@ func (x *RoleStartBattleReq) String() string {
595 func (*RoleStartBattleReq) ProtoMessage() {} 633 func (*RoleStartBattleReq) ProtoMessage() {}
596 634
597 func (x *RoleStartBattleReq) ProtoReflect() protoreflect.Message { 635 func (x *RoleStartBattleReq) ProtoReflect() protoreflect.Message {
598 - mi := &file_game_proto_msgTypes[10] 636 + mi := &file_game_proto_msgTypes[11]
599 if protoimpl.UnsafeEnabled && x != nil { 637 if protoimpl.UnsafeEnabled && x != nil {
600 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 638 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
601 if ms.LoadMessageInfo() == nil { 639 if ms.LoadMessageInfo() == nil {
@@ -608,7 +646,7 @@ func (x *RoleStartBattleReq) ProtoReflect() protoreflect.Message { @@ -608,7 +646,7 @@ func (x *RoleStartBattleReq) ProtoReflect() protoreflect.Message {
608 646
609 // Deprecated: Use RoleStartBattleReq.ProtoReflect.Descriptor instead. 647 // Deprecated: Use RoleStartBattleReq.ProtoReflect.Descriptor instead.
610 func (*RoleStartBattleReq) Descriptor() ([]byte, []int) { 648 func (*RoleStartBattleReq) Descriptor() ([]byte, []int) {
611 - return file_game_proto_rawDescGZIP(), []int{10} 649 + return file_game_proto_rawDescGZIP(), []int{11}
612 } 650 }
613 651
614 func (x *RoleStartBattleReq) GetChapterId() int32 { 652 func (x *RoleStartBattleReq) GetChapterId() int32 {
@@ -625,6 +663,7 @@ func (x *RoleStartBattleReq) GetCarbonId() int32 { @@ -625,6 +663,7 @@ func (x *RoleStartBattleReq) GetCarbonId() int32 {
625 return 0 663 return 0
626 } 664 }
627 665
  666 +//ResponseCmd RoleEndBattleRsp
628 type RoleEndBattleReq struct { 667 type RoleEndBattleReq struct {
629 state protoimpl.MessageState 668 state protoimpl.MessageState
630 sizeCache protoimpl.SizeCache 669 sizeCache protoimpl.SizeCache
@@ -638,7 +677,7 @@ type RoleEndBattleReq struct { @@ -638,7 +677,7 @@ type RoleEndBattleReq struct {
638 func (x *RoleEndBattleReq) Reset() { 677 func (x *RoleEndBattleReq) Reset() {
639 *x = RoleEndBattleReq{} 678 *x = RoleEndBattleReq{}
640 if protoimpl.UnsafeEnabled { 679 if protoimpl.UnsafeEnabled {
641 - mi := &file_game_proto_msgTypes[11] 680 + mi := &file_game_proto_msgTypes[12]
642 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 681 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
643 ms.StoreMessageInfo(mi) 682 ms.StoreMessageInfo(mi)
644 } 683 }
@@ -651,7 +690,7 @@ func (x *RoleEndBattleReq) String() string { @@ -651,7 +690,7 @@ func (x *RoleEndBattleReq) String() string {
651 func (*RoleEndBattleReq) ProtoMessage() {} 690 func (*RoleEndBattleReq) ProtoMessage() {}
652 691
653 func (x *RoleEndBattleReq) ProtoReflect() protoreflect.Message { 692 func (x *RoleEndBattleReq) ProtoReflect() protoreflect.Message {
654 - mi := &file_game_proto_msgTypes[11] 693 + mi := &file_game_proto_msgTypes[12]
655 if protoimpl.UnsafeEnabled && x != nil { 694 if protoimpl.UnsafeEnabled && x != nil {
656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 695 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
657 if ms.LoadMessageInfo() == nil { 696 if ms.LoadMessageInfo() == nil {
@@ -664,7 +703,7 @@ func (x *RoleEndBattleReq) ProtoReflect() protoreflect.Message { @@ -664,7 +703,7 @@ func (x *RoleEndBattleReq) ProtoReflect() protoreflect.Message {
664 703
665 // Deprecated: Use RoleEndBattleReq.ProtoReflect.Descriptor instead. 704 // Deprecated: Use RoleEndBattleReq.ProtoReflect.Descriptor instead.
666 func (*RoleEndBattleReq) Descriptor() ([]byte, []int) { 705 func (*RoleEndBattleReq) Descriptor() ([]byte, []int) {
667 - return file_game_proto_rawDescGZIP(), []int{11} 706 + return file_game_proto_rawDescGZIP(), []int{12}
668 } 707 }
669 708
670 func (x *RoleEndBattleReq) GetChapterId() int32 { 709 func (x *RoleEndBattleReq) GetChapterId() int32 {
@@ -704,7 +743,7 @@ type RoleEndBattleRsp struct { @@ -704,7 +743,7 @@ type RoleEndBattleRsp struct {
704 func (x *RoleEndBattleRsp) Reset() { 743 func (x *RoleEndBattleRsp) Reset() {
705 *x = RoleEndBattleRsp{} 744 *x = RoleEndBattleRsp{}
706 if protoimpl.UnsafeEnabled { 745 if protoimpl.UnsafeEnabled {
707 - mi := &file_game_proto_msgTypes[12] 746 + mi := &file_game_proto_msgTypes[13]
708 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
709 ms.StoreMessageInfo(mi) 748 ms.StoreMessageInfo(mi)
710 } 749 }
@@ -717,7 +756,7 @@ func (x *RoleEndBattleRsp) String() string { @@ -717,7 +756,7 @@ func (x *RoleEndBattleRsp) String() string {
717 func (*RoleEndBattleRsp) ProtoMessage() {} 756 func (*RoleEndBattleRsp) ProtoMessage() {}
718 757
719 func (x *RoleEndBattleRsp) ProtoReflect() protoreflect.Message { 758 func (x *RoleEndBattleRsp) ProtoReflect() protoreflect.Message {
720 - mi := &file_game_proto_msgTypes[12] 759 + mi := &file_game_proto_msgTypes[13]
721 if protoimpl.UnsafeEnabled && x != nil { 760 if protoimpl.UnsafeEnabled && x != nil {
722 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 761 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
723 if ms.LoadMessageInfo() == nil { 762 if ms.LoadMessageInfo() == nil {
@@ -730,7 +769,7 @@ func (x *RoleEndBattleRsp) ProtoReflect() protoreflect.Message { @@ -730,7 +769,7 @@ func (x *RoleEndBattleRsp) ProtoReflect() protoreflect.Message {
730 769
731 // Deprecated: Use RoleEndBattleRsp.ProtoReflect.Descriptor instead. 770 // Deprecated: Use RoleEndBattleRsp.ProtoReflect.Descriptor instead.
732 func (*RoleEndBattleRsp) Descriptor() ([]byte, []int) { 771 func (*RoleEndBattleRsp) Descriptor() ([]byte, []int) {
733 - return file_game_proto_rawDescGZIP(), []int{12} 772 + return file_game_proto_rawDescGZIP(), []int{13}
734 } 773 }
735 774
736 func (x *RoleEndBattleRsp) GetRoleLevel() int32 { 775 func (x *RoleEndBattleRsp) GetRoleLevel() int32 {
@@ -787,7 +826,7 @@ type EquipmentDelReq struct { @@ -787,7 +826,7 @@ type EquipmentDelReq struct {
787 func (x *EquipmentDelReq) Reset() { 826 func (x *EquipmentDelReq) Reset() {
788 *x = EquipmentDelReq{} 827 *x = EquipmentDelReq{}
789 if protoimpl.UnsafeEnabled { 828 if protoimpl.UnsafeEnabled {
790 - mi := &file_game_proto_msgTypes[13] 829 + mi := &file_game_proto_msgTypes[14]
791 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 830 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
792 ms.StoreMessageInfo(mi) 831 ms.StoreMessageInfo(mi)
793 } 832 }
@@ -800,7 +839,7 @@ func (x *EquipmentDelReq) String() string { @@ -800,7 +839,7 @@ func (x *EquipmentDelReq) String() string {
800 func (*EquipmentDelReq) ProtoMessage() {} 839 func (*EquipmentDelReq) ProtoMessage() {}
801 840
802 func (x *EquipmentDelReq) ProtoReflect() protoreflect.Message { 841 func (x *EquipmentDelReq) ProtoReflect() protoreflect.Message {
803 - mi := &file_game_proto_msgTypes[13] 842 + mi := &file_game_proto_msgTypes[14]
804 if protoimpl.UnsafeEnabled && x != nil { 843 if protoimpl.UnsafeEnabled && x != nil {
805 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 844 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
806 if ms.LoadMessageInfo() == nil { 845 if ms.LoadMessageInfo() == nil {
@@ -813,7 +852,7 @@ func (x *EquipmentDelReq) ProtoReflect() protoreflect.Message { @@ -813,7 +852,7 @@ func (x *EquipmentDelReq) ProtoReflect() protoreflect.Message {
813 852
814 // Deprecated: Use EquipmentDelReq.ProtoReflect.Descriptor instead. 853 // Deprecated: Use EquipmentDelReq.ProtoReflect.Descriptor instead.
815 func (*EquipmentDelReq) Descriptor() ([]byte, []int) { 854 func (*EquipmentDelReq) Descriptor() ([]byte, []int) {
816 - return file_game_proto_rawDescGZIP(), []int{13} 855 + return file_game_proto_rawDescGZIP(), []int{14}
817 } 856 }
818 857
819 func (x *EquipmentDelReq) GetId() string { 858 func (x *EquipmentDelReq) GetId() string {
@@ -835,7 +874,7 @@ type EquipmentAddRsp struct { @@ -835,7 +874,7 @@ type EquipmentAddRsp struct {
835 func (x *EquipmentAddRsp) Reset() { 874 func (x *EquipmentAddRsp) Reset() {
836 *x = EquipmentAddRsp{} 875 *x = EquipmentAddRsp{}
837 if protoimpl.UnsafeEnabled { 876 if protoimpl.UnsafeEnabled {
838 - mi := &file_game_proto_msgTypes[14] 877 + mi := &file_game_proto_msgTypes[15]
839 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 878 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
840 ms.StoreMessageInfo(mi) 879 ms.StoreMessageInfo(mi)
841 } 880 }
@@ -848,7 +887,7 @@ func (x *EquipmentAddRsp) String() string { @@ -848,7 +887,7 @@ func (x *EquipmentAddRsp) String() string {
848 func (*EquipmentAddRsp) ProtoMessage() {} 887 func (*EquipmentAddRsp) ProtoMessage() {}
849 888
850 func (x *EquipmentAddRsp) ProtoReflect() protoreflect.Message { 889 func (x *EquipmentAddRsp) ProtoReflect() protoreflect.Message {
851 - mi := &file_game_proto_msgTypes[14] 890 + mi := &file_game_proto_msgTypes[15]
852 if protoimpl.UnsafeEnabled && x != nil { 891 if protoimpl.UnsafeEnabled && x != nil {
853 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 892 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
854 if ms.LoadMessageInfo() == nil { 893 if ms.LoadMessageInfo() == nil {
@@ -861,7 +900,7 @@ func (x *EquipmentAddRsp) ProtoReflect() protoreflect.Message { @@ -861,7 +900,7 @@ func (x *EquipmentAddRsp) ProtoReflect() protoreflect.Message {
861 900
862 // Deprecated: Use EquipmentAddRsp.ProtoReflect.Descriptor instead. 901 // Deprecated: Use EquipmentAddRsp.ProtoReflect.Descriptor instead.
863 func (*EquipmentAddRsp) Descriptor() ([]byte, []int) { 902 func (*EquipmentAddRsp) Descriptor() ([]byte, []int) {
864 - return file_game_proto_rawDescGZIP(), []int{14} 903 + return file_game_proto_rawDescGZIP(), []int{15}
865 } 904 }
866 905
867 func (x *EquipmentAddRsp) GetEquip() *Equipment { 906 func (x *EquipmentAddRsp) GetEquip() *Equipment {
@@ -887,68 +926,69 @@ var file_game_proto_rawDesc = []byte{ @@ -887,68 +926,69 @@ var file_game_proto_rawDesc = []byte{
887 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 926 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
888 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 927 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a,
889 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 928 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
890 - 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x31, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54,  
891 - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01,  
892 - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x65,  
893 - 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x5c, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f,  
894 - 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a,  
895 - 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,  
896 - 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f,  
897 - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64,  
898 - 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,  
899 - 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x07, 0x52, 0x6f, 0x6c, 0x65, 0x52,  
900 - 0x73, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,  
901 - 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04,  
902 - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x03, 0x20, 0x03,  
903 - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 0x6f,  
904 - 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x04,  
905 - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x65,  
906 - 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x31, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69,  
907 - 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d,  
908 - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52,  
909 - 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x15, 0x52,  
910 - 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,  
911 - 0x79, 0x52, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05,  
912 - 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,  
913 - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65,  
914 - 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70,  
915 - 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05,  
916 - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65,  
917 - 0x6d, 0x73, 0x22, 0x39, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49,  
918 - 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,  
919 - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,  
920 - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x50, 0x0a,  
921 - 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,  
922 - 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f, 0x69,  
923 - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72,  
924 - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,  
925 - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64, 0x22,  
926 - 0x62, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,  
927 - 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f, 0x69,  
928 - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72,  
929 - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,  
930 - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64, 0x12,  
931 - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x70,  
932 - 0x61, 0x73, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42,  
933 - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65,  
934 - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f,  
935 - 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f,  
936 - 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x45,  
937 - 0x78, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6d,  
938 - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x65,  
939 - 0x45, 0x78, 0x70, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77,  
940 - 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72,  
941 - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,  
942 - 0x04, 0x70, 0x61, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x06, 0x20, 929 + 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x6e,
  930 + 0x65, 0x63, 0x74, 0x52, 0x73, 0x70, 0x22, 0x31, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
  931 + 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18,
  932 + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54,
  933 + 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x5c, 0x0a, 0x11, 0x48, 0x65, 0x72,
  934 + 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18,
  935 + 0x0a, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
  936 + 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f,
  937 + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49,
  938 + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
  939 + 0x52, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x07, 0x52, 0x6f, 0x6c, 0x65,
  940 + 0x52, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
  941 + 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52,
  942 + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x03, 0x20,
943 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 943 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72,
944 - 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70,  
945 - 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,  
946 - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71,  
947 - 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a,  
948 - 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d,  
949 - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52,  
950 - 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b,  
951 - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 944 + 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18,
  945 + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54,
  946 + 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x31, 0x0a, 0x0a, 0x65, 0x71, 0x75,
  947 + 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
  948 + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
  949 + 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x15,
  950 + 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
  951 + 0x74, 0x79, 0x52, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28,
  952 + 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20,
  953 + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c,
  954 + 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55,
  955 + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x12, 0x14, 0x0a,
  956 + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74,
  957 + 0x65, 0x6d, 0x73, 0x22, 0x39, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72,
  958 + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
  959 + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
  960 + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x50,
  961 + 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c,
  962 + 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f,
  963 + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
  964 + 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
  965 + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64,
  966 + 0x22, 0x62, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c,
  967 + 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f,
  968 + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
  969 + 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
  970 + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64,
  971 + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
  972 + 0x70, 0x61, 0x73, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64,
  973 + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c,
  974 + 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72,
  975 + 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65,
  976 + 0x5f, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65,
  977 + 0x45, 0x78, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61,
  978 + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6c,
  979 + 0x65, 0x45, 0x78, 0x70, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
  980 + 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61,
  981 + 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
  982 + 0x52, 0x04, 0x70, 0x61, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x06,
  983 + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65,
  984 + 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69,
  985 + 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69,
  986 + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45,
  987 + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27,
  988 + 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
  989 + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
  990 + 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62,
  991 + 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
952 } 992 }
953 993
954 var ( 994 var (
@@ -963,37 +1003,38 @@ func file_game_proto_rawDescGZIP() []byte { @@ -963,37 +1003,38 @@ func file_game_proto_rawDescGZIP() []byte {
963 return file_game_proto_rawDescData 1003 return file_game_proto_rawDescData
964 } 1004 }
965 1005
966 -var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 15) 1006 +var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
967 var file_game_proto_goTypes = []interface{}{ 1007 var file_game_proto_goTypes = []interface{}{
968 (*HeartReq)(nil), // 0: game.HeartReq 1008 (*HeartReq)(nil), // 0: game.HeartReq
969 (*HeartRsp)(nil), // 1: game.HeartRsp 1009 (*HeartRsp)(nil), // 1: game.HeartRsp
970 (*LoginReq)(nil), // 2: game.LoginReq 1010 (*LoginReq)(nil), // 2: game.LoginReq
971 (*CreateReq)(nil), // 3: game.CreateReq 1011 (*CreateReq)(nil), // 3: game.CreateReq
972 - (*ChangeTeamReq)(nil), // 4: game.ChangeTeamReq  
973 - (*HeroEquipReferReq)(nil), // 5: game.HeroEquipReferReq  
974 - (*RoleRsp)(nil), // 6: game.RoleRsp  
975 - (*RoleUpdatePropertyRsp)(nil), // 7: game.RoleUpdatePropertyRsp  
976 - (*RoleUpdateItemsRsp)(nil), // 8: game.RoleUpdateItemsRsp  
977 - (*RoleClearItemsReq)(nil), // 9: game.RoleClearItemsReq  
978 - (*RoleStartBattleReq)(nil), // 10: game.RoleStartBattleReq  
979 - (*RoleEndBattleReq)(nil), // 11: game.RoleEndBattleReq  
980 - (*RoleEndBattleRsp)(nil), // 12: game.RoleEndBattleRsp  
981 - (*EquipmentDelReq)(nil), // 13: game.EquipmentDelReq  
982 - (*EquipmentAddRsp)(nil), // 14: game.EquipmentAddRsp  
983 - (*Team)(nil), // 15: models.Team  
984 - (*Role)(nil), // 16: models.Role  
985 - (*Hero)(nil), // 17: models.Hero  
986 - (*Equipment)(nil), // 18: models.Equipment 1012 + (*DisConnectRsp)(nil), // 4: game.DisConnectRsp
  1013 + (*ChangeTeamReq)(nil), // 5: game.ChangeTeamReq
  1014 + (*HeroEquipReferReq)(nil), // 6: game.HeroEquipReferReq
  1015 + (*RoleRsp)(nil), // 7: game.RoleRsp
  1016 + (*RoleUpdatePropertyRsp)(nil), // 8: game.RoleUpdatePropertyRsp
  1017 + (*RoleUpdateItemsRsp)(nil), // 9: game.RoleUpdateItemsRsp
  1018 + (*RoleClearItemsReq)(nil), // 10: game.RoleClearItemsReq
  1019 + (*RoleStartBattleReq)(nil), // 11: game.RoleStartBattleReq
  1020 + (*RoleEndBattleReq)(nil), // 12: game.RoleEndBattleReq
  1021 + (*RoleEndBattleRsp)(nil), // 13: game.RoleEndBattleRsp
  1022 + (*EquipmentDelReq)(nil), // 14: game.EquipmentDelReq
  1023 + (*EquipmentAddRsp)(nil), // 15: game.EquipmentAddRsp
  1024 + (*Team)(nil), // 16: models.Team
  1025 + (*Role)(nil), // 17: models.Role
  1026 + (*Hero)(nil), // 18: models.Hero
  1027 + (*Equipment)(nil), // 19: models.Equipment
987 } 1028 }
988 var file_game_proto_depIdxs = []int32{ 1029 var file_game_proto_depIdxs = []int32{
989 - 15, // 0: game.ChangeTeamReq.team:type_name -> models.Team  
990 - 16, // 1: game.RoleRsp.role:type_name -> models.Role  
991 - 17, // 2: game.RoleRsp.hero:type_name -> models.Hero  
992 - 15, // 3: game.RoleRsp.team:type_name -> models.Team  
993 - 18, // 4: game.RoleRsp.equipments:type_name -> models.Equipment  
994 - 16, // 5: game.RoleUpdatePropertyRsp.role:type_name -> models.Role  
995 - 17, // 6: game.RoleEndBattleRsp.hero:type_name -> models.Hero  
996 - 18, // 7: game.EquipmentAddRsp.equip:type_name -> models.Equipment 1030 + 16, // 0: game.ChangeTeamReq.team:type_name -> models.Team
  1031 + 17, // 1: game.RoleRsp.role:type_name -> models.Role
  1032 + 18, // 2: game.RoleRsp.hero:type_name -> models.Hero
  1033 + 16, // 3: game.RoleRsp.team:type_name -> models.Team
  1034 + 19, // 4: game.RoleRsp.equipments:type_name -> models.Equipment
  1035 + 17, // 5: game.RoleUpdatePropertyRsp.role:type_name -> models.Role
  1036 + 18, // 6: game.RoleEndBattleRsp.hero:type_name -> models.Hero
  1037 + 19, // 7: game.EquipmentAddRsp.equip:type_name -> models.Equipment
997 8, // [8:8] is the sub-list for method output_type 1038 8, // [8:8] is the sub-list for method output_type
998 8, // [8:8] is the sub-list for method input_type 1039 8, // [8:8] is the sub-list for method input_type
999 8, // [8:8] is the sub-list for extension type_name 1040 8, // [8:8] is the sub-list for extension type_name
@@ -1057,7 +1098,7 @@ func file_game_proto_init() { @@ -1057,7 +1098,7 @@ func file_game_proto_init() {
1057 } 1098 }
1058 } 1099 }
1059 file_game_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1100 file_game_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1060 - switch v := v.(*ChangeTeamReq); i { 1101 + switch v := v.(*DisConnectRsp); i {
1061 case 0: 1102 case 0:
1062 return &v.state 1103 return &v.state
1063 case 1: 1104 case 1:
@@ -1069,7 +1110,7 @@ func file_game_proto_init() { @@ -1069,7 +1110,7 @@ func file_game_proto_init() {
1069 } 1110 }
1070 } 1111 }
1071 file_game_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1112 file_game_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1072 - switch v := v.(*HeroEquipReferReq); i { 1113 + switch v := v.(*ChangeTeamReq); i {
1073 case 0: 1114 case 0:
1074 return &v.state 1115 return &v.state
1075 case 1: 1116 case 1:
@@ -1081,7 +1122,7 @@ func file_game_proto_init() { @@ -1081,7 +1122,7 @@ func file_game_proto_init() {
1081 } 1122 }
1082 } 1123 }
1083 file_game_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1124 file_game_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1084 - switch v := v.(*RoleRsp); i { 1125 + switch v := v.(*HeroEquipReferReq); i {
1085 case 0: 1126 case 0:
1086 return &v.state 1127 return &v.state
1087 case 1: 1128 case 1:
@@ -1093,7 +1134,7 @@ func file_game_proto_init() { @@ -1093,7 +1134,7 @@ func file_game_proto_init() {
1093 } 1134 }
1094 } 1135 }
1095 file_game_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1136 file_game_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1096 - switch v := v.(*RoleUpdatePropertyRsp); i { 1137 + switch v := v.(*RoleRsp); i {
1097 case 0: 1138 case 0:
1098 return &v.state 1139 return &v.state
1099 case 1: 1140 case 1:
@@ -1105,7 +1146,7 @@ func file_game_proto_init() { @@ -1105,7 +1146,7 @@ func file_game_proto_init() {
1105 } 1146 }
1106 } 1147 }
1107 file_game_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1148 file_game_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1108 - switch v := v.(*RoleUpdateItemsRsp); i { 1149 + switch v := v.(*RoleUpdatePropertyRsp); i {
1109 case 0: 1150 case 0:
1110 return &v.state 1151 return &v.state
1111 case 1: 1152 case 1:
@@ -1117,7 +1158,7 @@ func file_game_proto_init() { @@ -1117,7 +1158,7 @@ func file_game_proto_init() {
1117 } 1158 }
1118 } 1159 }
1119 file_game_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1160 file_game_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1120 - switch v := v.(*RoleClearItemsReq); i { 1161 + switch v := v.(*RoleUpdateItemsRsp); i {
1121 case 0: 1162 case 0:
1122 return &v.state 1163 return &v.state
1123 case 1: 1164 case 1:
@@ -1129,7 +1170,7 @@ func file_game_proto_init() { @@ -1129,7 +1170,7 @@ func file_game_proto_init() {
1129 } 1170 }
1130 } 1171 }
1131 file_game_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1172 file_game_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
1132 - switch v := v.(*RoleStartBattleReq); i { 1173 + switch v := v.(*RoleClearItemsReq); i {
1133 case 0: 1174 case 0:
1134 return &v.state 1175 return &v.state
1135 case 1: 1176 case 1:
@@ -1141,7 +1182,7 @@ func file_game_proto_init() { @@ -1141,7 +1182,7 @@ func file_game_proto_init() {
1141 } 1182 }
1142 } 1183 }
1143 file_game_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 1184 file_game_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
1144 - switch v := v.(*RoleEndBattleReq); i { 1185 + switch v := v.(*RoleStartBattleReq); i {
1145 case 0: 1186 case 0:
1146 return &v.state 1187 return &v.state
1147 case 1: 1188 case 1:
@@ -1153,7 +1194,7 @@ func file_game_proto_init() { @@ -1153,7 +1194,7 @@ func file_game_proto_init() {
1153 } 1194 }
1154 } 1195 }
1155 file_game_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 1196 file_game_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
1156 - switch v := v.(*RoleEndBattleRsp); i { 1197 + switch v := v.(*RoleEndBattleReq); i {
1157 case 0: 1198 case 0:
1158 return &v.state 1199 return &v.state
1159 case 1: 1200 case 1:
@@ -1165,7 +1206,7 @@ func file_game_proto_init() { @@ -1165,7 +1206,7 @@ func file_game_proto_init() {
1165 } 1206 }
1166 } 1207 }
1167 file_game_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 1208 file_game_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
1168 - switch v := v.(*EquipmentDelReq); i { 1209 + switch v := v.(*RoleEndBattleRsp); i {
1169 case 0: 1210 case 0:
1170 return &v.state 1211 return &v.state
1171 case 1: 1212 case 1:
@@ -1177,6 +1218,18 @@ func file_game_proto_init() { @@ -1177,6 +1218,18 @@ func file_game_proto_init() {
1177 } 1218 }
1178 } 1219 }
1179 file_game_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 1220 file_game_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  1221 + switch v := v.(*EquipmentDelReq); i {
  1222 + case 0:
  1223 + return &v.state
  1224 + case 1:
  1225 + return &v.sizeCache
  1226 + case 2:
  1227 + return &v.unknownFields
  1228 + default:
  1229 + return nil
  1230 + }
  1231 + }
  1232 + file_game_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
1180 switch v := v.(*EquipmentAddRsp); i { 1233 switch v := v.(*EquipmentAddRsp); i {
1181 case 0: 1234 case 0:
1182 return &v.state 1235 return &v.state
@@ -1195,7 +1248,7 @@ func file_game_proto_init() { @@ -1195,7 +1248,7 @@ func file_game_proto_init() {
1195 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1248 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1196 RawDescriptor: file_game_proto_rawDesc, 1249 RawDescriptor: file_game_proto_rawDesc,
1197 NumEnums: 0, 1250 NumEnums: 0,
1198 - NumMessages: 15, 1251 + NumMessages: 16,
1199 NumExtensions: 0, 1252 NumExtensions: 0,
1200 NumServices: 0, 1253 NumServices: 0,
1201 }, 1254 },
@@ -95,7 +95,7 @@ type Hero struct { @@ -95,7 +95,7 @@ type Hero struct {
95 ReinCount int32 `protobuf:"varint,5,opt,name=rein_count,json=reinCount,proto3" json:"rein_count,omitempty"` 95 ReinCount int32 `protobuf:"varint,5,opt,name=rein_count,json=reinCount,proto3" json:"rein_count,omitempty"`
96 ReinPoint int32 `protobuf:"varint,6,opt,name=rein_point,json=reinPoint,proto3" json:"rein_point,omitempty"` 96 ReinPoint int32 `protobuf:"varint,6,opt,name=rein_point,json=reinPoint,proto3" json:"rein_point,omitempty"`
97 Equipments string `protobuf:"bytes,7,opt,name=equipments,proto3" json:"equipments,omitempty"` //"id=type id1=type1" 97 Equipments string `protobuf:"bytes,7,opt,name=equipments,proto3" json:"equipments,omitempty"` //"id=type id1=type1"
98 - Exp int64 `protobuf:"varint,8,opt,name=exp,proto3" json:"exp,omitempty"` 98 + Exp int32 `protobuf:"varint,8,opt,name=exp,proto3" json:"exp,omitempty"`
99 } 99 }
100 100
101 func (x *Hero) Reset() { 101 func (x *Hero) Reset() {
@@ -179,7 +179,7 @@ func (x *Hero) GetEquipments() string { @@ -179,7 +179,7 @@ func (x *Hero) GetEquipments() string {
179 return "" 179 return ""
180 } 180 }
181 181
182 -func (x *Hero) GetExp() int64 { 182 +func (x *Hero) GetExp() int32 {
183 if x != nil { 183 if x != nil {
184 return x.Exp 184 return x.Exp
185 } 185 }
@@ -674,7 +674,7 @@ var file_models_proto_rawDesc = []byte{ @@ -674,7 +674,7 @@ var file_models_proto_rawDesc = []byte{
674 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 674 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12,
675 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 675 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20,
676 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 676 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
677 - 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 677 + 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78,
678 0x70, 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12, 678 0x70, 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12,
679 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 679 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
680 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 680 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
pb/protocode.pb.go
@@ -29,17 +29,18 @@ const ( @@ -29,17 +29,18 @@ const (
29 ProtoCode_HeartRsp ProtoCode = 3 29 ProtoCode_HeartRsp ProtoCode = 3
30 ProtoCode_LoginReq ProtoCode = 4 30 ProtoCode_LoginReq ProtoCode = 4
31 ProtoCode_CreateReq ProtoCode = 5 31 ProtoCode_CreateReq ProtoCode = 5
32 - ProtoCode_ChangeTeamReq ProtoCode = 6  
33 - ProtoCode_HeroEquipReferReq ProtoCode = 7  
34 - ProtoCode_RoleRsp ProtoCode = 8  
35 - ProtoCode_RoleUpdatePropertyRsp ProtoCode = 9  
36 - ProtoCode_RoleUpdateItemsRsp ProtoCode = 10  
37 - ProtoCode_RoleClearItemsReq ProtoCode = 11  
38 - ProtoCode_RoleStartBattleReq ProtoCode = 12  
39 - ProtoCode_RoleEndBattleReq ProtoCode = 13  
40 - ProtoCode_RoleEndBattleRsp ProtoCode = 14  
41 - ProtoCode_EquipmentDelReq ProtoCode = 15  
42 - ProtoCode_EquipmentAddRsp ProtoCode = 16 32 + ProtoCode_DisConnectRsp ProtoCode = 6
  33 + ProtoCode_ChangeTeamReq ProtoCode = 7
  34 + ProtoCode_HeroEquipReferReq ProtoCode = 8
  35 + ProtoCode_RoleRsp ProtoCode = 9
  36 + ProtoCode_RoleUpdatePropertyRsp ProtoCode = 10
  37 + ProtoCode_RoleUpdateItemsRsp ProtoCode = 11
  38 + ProtoCode_RoleClearItemsReq ProtoCode = 12
  39 + ProtoCode_RoleStartBattleReq ProtoCode = 13
  40 + ProtoCode_RoleEndBattleReq ProtoCode = 14
  41 + ProtoCode_RoleEndBattleRsp ProtoCode = 15
  42 + ProtoCode_EquipmentDelReq ProtoCode = 16
  43 + ProtoCode_EquipmentAddRsp ProtoCode = 17
43 ) 44 )
44 45
45 // Enum value maps for ProtoCode. 46 // Enum value maps for ProtoCode.
@@ -51,17 +52,18 @@ var ( @@ -51,17 +52,18 @@ var (
51 3: "HeartRsp", 52 3: "HeartRsp",
52 4: "LoginReq", 53 4: "LoginReq",
53 5: "CreateReq", 54 5: "CreateReq",
54 - 6: "ChangeTeamReq",  
55 - 7: "HeroEquipReferReq",  
56 - 8: "RoleRsp",  
57 - 9: "RoleUpdatePropertyRsp",  
58 - 10: "RoleUpdateItemsRsp",  
59 - 11: "RoleClearItemsReq",  
60 - 12: "RoleStartBattleReq",  
61 - 13: "RoleEndBattleReq",  
62 - 14: "RoleEndBattleRsp",  
63 - 15: "EquipmentDelReq",  
64 - 16: "EquipmentAddRsp", 55 + 6: "DisConnectRsp",
  56 + 7: "ChangeTeamReq",
  57 + 8: "HeroEquipReferReq",
  58 + 9: "RoleRsp",
  59 + 10: "RoleUpdatePropertyRsp",
  60 + 11: "RoleUpdateItemsRsp",
  61 + 12: "RoleClearItemsReq",
  62 + 13: "RoleStartBattleReq",
  63 + 14: "RoleEndBattleReq",
  64 + 15: "RoleEndBattleRsp",
  65 + 16: "EquipmentDelReq",
  66 + 17: "EquipmentAddRsp",
65 } 67 }
66 ProtoCode_value = map[string]int32{ 68 ProtoCode_value = map[string]int32{
67 "UNKNOWN": 0, 69 "UNKNOWN": 0,
@@ -70,17 +72,18 @@ var ( @@ -70,17 +72,18 @@ var (
70 "HeartRsp": 3, 72 "HeartRsp": 3,
71 "LoginReq": 4, 73 "LoginReq": 4,
72 "CreateReq": 5, 74 "CreateReq": 5,
73 - "ChangeTeamReq": 6,  
74 - "HeroEquipReferReq": 7,  
75 - "RoleRsp": 8,  
76 - "RoleUpdatePropertyRsp": 9,  
77 - "RoleUpdateItemsRsp": 10,  
78 - "RoleClearItemsReq": 11,  
79 - "RoleStartBattleReq": 12,  
80 - "RoleEndBattleReq": 13,  
81 - "RoleEndBattleRsp": 14,  
82 - "EquipmentDelReq": 15,  
83 - "EquipmentAddRsp": 16, 75 + "DisConnectRsp": 6,
  76 + "ChangeTeamReq": 7,
  77 + "HeroEquipReferReq": 8,
  78 + "RoleRsp": 9,
  79 + "RoleUpdatePropertyRsp": 10,
  80 + "RoleUpdateItemsRsp": 11,
  81 + "RoleClearItemsReq": 12,
  82 + "RoleStartBattleReq": 13,
  83 + "RoleEndBattleReq": 14,
  84 + "RoleEndBattleRsp": 15,
  85 + "EquipmentDelReq": 16,
  86 + "EquipmentAddRsp": 17,
84 } 87 }
85 ) 88 )
86 89
@@ -115,30 +118,31 @@ var File_protocode_proto protoreflect.FileDescriptor @@ -115,30 +118,31 @@ var File_protocode_proto protoreflect.FileDescriptor
115 118
116 var file_protocode_proto_rawDesc = []byte{ 119 var file_protocode_proto_rawDesc = []byte{
117 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 120 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
118 - 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xce, 0x02, 0x0a, 121 + 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xe1, 0x02, 0x0a,
119 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 122 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
120 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 123 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
121 0x52, 0x73, 0x70, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74, 0x52, 0x65, 124 0x52, 0x73, 0x70, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74, 0x52, 0x65,
122 0x71, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74, 0x52, 0x73, 0x70, 0x10, 125 0x71, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74, 0x52, 0x73, 0x70, 0x10,
123 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x10, 0x04, 0x12, 126 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x10, 0x04, 0x12,
124 0x0d, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x10, 0x05, 0x12, 0x11, 127 0x0d, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x10, 0x05, 0x12, 0x11,
125 - 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x10,  
126 - 0x06, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65,  
127 - 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x6f, 0x6c, 0x65,  
128 - 0x52, 0x73, 0x70, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64,  
129 - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x73, 0x70, 0x10, 0x09,  
130 - 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74,  
131 - 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65,  
132 - 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x10, 0x0b, 0x12,  
133 - 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74,  
134 - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45,  
135 - 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x10, 0x0d, 0x12, 0x14, 0x0a,  
136 - 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x73,  
137 - 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,  
138 - 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69,  
139 - 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x10, 0x10, 0x42, 0x0a, 0x5a,  
140 - 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,  
141 - 0x33, 128 + 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x73, 0x70, 0x10,
  129 + 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x52,
  130 + 0x65, 0x71, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69,
  131 + 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x52,
  132 + 0x6f, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x10, 0x09, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x6f, 0x6c, 0x65,
  133 + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x73,
  134 + 0x70, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74,
  135 + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x52,
  136 + 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71,
  137 + 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42,
  138 + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x6f,
  139 + 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x10, 0x0e,
  140 + 0x12, 0x14, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c,
  141 + 0x65, 0x52, 0x73, 0x70, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d,
  142 + 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x45,
  143 + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x10, 0x11,
  144 + 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
  145 + 0x6f, 0x74, 0x6f, 0x33,
142 } 146 }
143 147
144 var ( 148 var (
1 -Subproject commit aac4a98512069d7ea74a88fd61637b59e7345bff 1 +Subproject commit 015742626c9deaa014003202fa6981a3fa9f9df9