Commit a2d4f770378e7a075f13d2bd8d4addd0fb483078

Authored by zhangqijia
1 parent 4e75670c

fix: 首次通关记录到数据库

cmd/gameserver/action/RoleAction.go
@@ -186,7 +186,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i @@ -186,7 +186,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i
186 return 1, nil 186 return 1, nil
187 } 187 }
188 chapterInfo := csvdata.Get().TbRogueChapter.Get(req.ChapterId) 188 chapterInfo := csvdata.Get().TbRogueChapter.Get(req.ChapterId)
189 - chapterCount, first := role.Role.PassChapters[req.ChapterId] 189 + chapterCount, first := role.Role.Passchapters[req.ChapterId]
190 carbonInfo, ok := chapterInfo.Carbons[req.CarbonId] 190 carbonInfo, ok := chapterInfo.Carbons[req.CarbonId]
191 if !ok { 191 if !ok {
192 logger.Error("carbonInfo not exists") 192 logger.Error("carbonInfo not exists")
@@ -202,14 +202,14 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i @@ -202,14 +202,14 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i
202 202
203 reward := make(common.IMapStringNum) 203 reward := make(common.IMapStringNum)
204 if !first { 204 if !first {
205 - role.Role.PassChapters[req.ChapterId] = 1 205 + role.Role.Passchapters[req.ChapterId] = 1
206 for k, v := range common.StringToMapNum(carbonInfo.FirstAward) { 206 for k, v := range common.StringToMapNum(carbonInfo.FirstAward) {
207 reward[k] = v 207 reward[k] = v
208 } 208 }
209 } else { 209 } else {
210 - role.Role.PassChapters[req.ChapterId] = chapterCount + 1  
211 - role.UpdateProperty("pass_chapters", role.Role.PassChapters, false) 210 + role.Role.Passchapters[req.ChapterId] = chapterCount + 1
212 } 211 }
  212 + role.SetProperty("passchapters", role.Role.Passchapters)
213 213
214 for k, v := range common.StringToMapNum(carbonInfo.NormalAward) { 214 for k, v := range common.StringToMapNum(carbonInfo.NormalAward) {
215 rv, ok := reward[k] 215 rv, ok := reward[k]
@@ -232,15 +232,20 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i @@ -232,15 +232,20 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i
232 level, exp := role.UpLevel(amount) 232 level, exp := role.UpLevel(amount)
233 role.UpdateProperties(map[string]interface{}{"level": level, "exp": exp}, true) 233 role.UpdateProperties(map[string]interface{}{"level": level, "exp": exp}, true)
234 234
  235 + rsp := &pb.RoleEndBattleRsp{
  236 + RoleLevel: level,
  237 + RoleExp: exp,
  238 + }
  239 +
235 //team exp 240 //team exp
236 - heros := make([]*pb.Hero, 4) 241 + heros := make([]*pb.Hero, 3)
237 t := team.(*models.TeamModel).Team 242 t := team.(*models.TeamModel).Team
238 h1, ok := role.Heros[t.HeroId1] 243 h1, ok := role.Heros[t.HeroId1]
239 if ok { 244 if ok {
240 level, exp = h1.(*models.HeroModel).UpLevel(amount) 245 level, exp = h1.(*models.HeroModel).UpLevel(amount)
241 h1.SetProperty("level", level) 246 h1.SetProperty("level", level)
242 h1.SetProperty("exp", exp) 247 h1.SetProperty("exp", exp)
243 - heros = append(heros, h1.(*models.HeroModel).Hero) 248 + heros[0] = h1.(*models.HeroModel).Hero
244 } 249 }
245 250
246 h2, ok := role.Heros[t.HeroId2] 251 h2, ok := role.Heros[t.HeroId2]
@@ -248,7 +253,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i @@ -248,7 +253,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i
248 level, exp = h2.(*models.HeroModel).UpLevel(amount) 253 level, exp = h2.(*models.HeroModel).UpLevel(amount)
249 h2.SetProperty("level", level) 254 h2.SetProperty("level", level)
250 h2.SetProperty("exp", exp) 255 h2.SetProperty("exp", exp)
251 - heros = append(heros, h2.(*models.HeroModel).Hero) 256 + heros[1] = h2.(*models.HeroModel).Hero
252 } 257 }
253 258
254 h3, ok := role.Heros[t.HeroId3] 259 h3, ok := role.Heros[t.HeroId3]
@@ -256,16 +261,12 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i @@ -256,16 +261,12 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i
256 level, exp = h3.(*models.HeroModel).UpLevel(amount) 261 level, exp = h3.(*models.HeroModel).UpLevel(amount)
257 h3.SetProperty("level", level) 262 h3.SetProperty("level", level)
258 h3.SetProperty("exp", exp) 263 h3.SetProperty("exp", exp)
259 - heros = append(heros, h3.(*models.HeroModel).Hero) 264 + heros[2] = h3.(*models.HeroModel).Hero
260 } 265 }
261 266
262 - rsp := &pb.RoleEndBattleRsp{  
263 - RoleLevel: level,  
264 - RoleExp: exp,  
265 - RoleExpamount: amount,  
266 - Pass: req.Pass,  
267 - Reward: common.MapNumToString(reward),  
268 - Hero: heros,  
269 - } 267 + rsp.RoleExpamount = amount
  268 + rsp.Pass = req.Pass
  269 + rsp.Reward = common.MapNumToString(reward)
  270 + rsp.Hero = heros
270 return 0, rsp 271 return 0, rsp
271 } 272 }
cmd/test/action/TestAction.go
@@ -34,6 +34,9 @@ func RoleUpdatePropertyRsp(role *models.RoleTestModel, msg components.IMessage) @@ -34,6 +34,9 @@ func RoleUpdatePropertyRsp(role *models.RoleTestModel, msg components.IMessage)
34 func RoleUpdateItemsRsp(role *models.RoleTestModel, msg components.IMessage) { 34 func RoleUpdateItemsRsp(role *models.RoleTestModel, msg components.IMessage) {
35 } 35 }
36 36
  37 +func RoleUpdateChangeRsp(role *models.RoleTestModel, msg components.IMessage) {
  38 +}
  39 +
37 func RoleClearItemsRsp(role *models.RoleTestModel, msg components.IMessage) { 40 func RoleClearItemsRsp(role *models.RoleTestModel, msg components.IMessage) {
38 } 41 }
39 42
@@ -46,6 +49,7 @@ func RoleEndBattleRsp(role *models.RoleTestModel, msg components.IMessage) { @@ -46,6 +49,7 @@ func RoleEndBattleRsp(role *models.RoleTestModel, msg components.IMessage) {
46 logger.Error("rsp err: %v", err) 49 logger.Error("rsp err: %v", err)
47 return 50 return
48 } 51 }
  52 + logger.Debug(rsp.Reward)
49 } 53 }
50 54
51 func EquipmentDelRsp(role *models.RoleTestModel, msg components.IMessage) { 55 func EquipmentDelRsp(role *models.RoleTestModel, msg components.IMessage) {
@@ -12,12 +12,13 @@ func main() { @@ -12,12 +12,13 @@ func main() {
12 return 12 return
13 } 13 }
14 14
15 - tc.Login("1") 15 + tc.Login("90007")
16 16
17 pp := &pb.RoleEndBattleReq{ 17 pp := &pb.RoleEndBattleReq{
18 ChapterId: 1, 18 ChapterId: 1,
19 CarbonId: 1, 19 CarbonId: 1,
20 Pass: true, 20 Pass: true,
  21 + TeamId: "10000011000002",
21 } 22 }
22 23
23 time.Sleep(2 * time.Second) 24 time.Sleep(2 * time.Second)
@@ -64,6 +64,11 @@ logconf: @@ -64,6 +64,11 @@ logconf:
64 maxdays: -1 64 maxdays: -1
65 append: true 65 append: true
66 permit: "0660" 66 permit: "0660"
  67 +
  68 +test_client:
  69 + ip: "192.168.0.100"
  70 + port: 8849
  71 + count: 1
67 # Conn: 72 # Conn:
68 # net: "tcp" 73 # net: "tcp"
69 # addr: "127.0.0.1" 74 # addr: "127.0.0.1"
models/RoleLog.go 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +package models
@@ -24,7 +24,7 @@ type RoleModel struct { @@ -24,7 +24,7 @@ type RoleModel struct {
24 } 24 }
25 25
26 func RoleExistByUid(uid string) *RoleModel { 26 func RoleExistByUid(uid string) *RoleModel {
27 - data := &pb.Role{Uid: uid, Incres: make(map[string]uint32), PassChapters: make(map[int32]int32)} 27 + data := &pb.Role{Uid: uid, Incres: make(map[string]uint32), Passchapters: make(map[int32]int32)}
28 28
29 if err := mongoproxy.FindOne(mongoproxy.GetCollName(data), mongoproxy.GetBsonM("uid", uid), data); err != nil { 29 if err := mongoproxy.FindOne(mongoproxy.GetCollName(data), mongoproxy.GetBsonM("uid", uid), data); err != nil {
30 logger.Error("Role not exist err: %v", err) 30 logger.Error("Role not exist err: %v", err)
@@ -46,7 +46,7 @@ func RoleExistByUid(uid string) *RoleModel { @@ -46,7 +46,7 @@ func RoleExistByUid(uid string) *RoleModel {
46 } 46 }
47 47
48 func NewRole(id string) *RoleModel { 48 func NewRole(id string) *RoleModel {
49 - data := &pb.Role{Id: id, Incres: make(map[string]uint32), PassChapters: make(map[int32]int32)} 49 + data := &pb.Role{Id: id, Incres: make(map[string]uint32), Passchapters: make(map[int32]int32)}
50 m := &RoleModel{ 50 m := &RoleModel{
51 ISchema: NewSchema(id, data), 51 ISchema: NewSchema(id, data),
52 Role: data, 52 Role: data,
models/role_test.go
@@ -126,3 +126,10 @@ func TestRoleModel_IncreByKey(t *testing.T) { @@ -126,3 +126,10 @@ func TestRoleModel_IncreByKey(t *testing.T) {
126 fmt.Println(ites) 126 fmt.Println(ites)
127 127
128 } 128 }
  129 +
  130 +func TestSchema_Create(t *testing.T) {
  131 + _ = mongoproxy.ConnectMongo(common.GlobalConf.GameConf.MongoConf, common.GlobalConf.GameConf.ID)
  132 + role := NewRole("")
  133 + s := role.ISchema.(*Schema)
  134 + logger.Debug(s.protoIndex)
  135 +}
@@ -493,7 +493,7 @@ type Role struct { @@ -493,7 +493,7 @@ type Role struct {
493 Otherlimit uint32 `protobuf:"varint,18,opt,name=otherlimit,proto3" json:"otherlimit,omitempty"` 493 Otherlimit uint32 `protobuf:"varint,18,opt,name=otherlimit,proto3" json:"otherlimit,omitempty"`
494 Jewelrylimit uint32 `protobuf:"varint,19,opt,name=jewelrylimit,proto3" json:"jewelrylimit,omitempty"` 494 Jewelrylimit uint32 `protobuf:"varint,19,opt,name=jewelrylimit,proto3" json:"jewelrylimit,omitempty"`
495 Materiallimit uint32 `protobuf:"varint,20,opt,name=materiallimit,proto3" json:"materiallimit,omitempty"` 495 Materiallimit uint32 `protobuf:"varint,20,opt,name=materiallimit,proto3" json:"materiallimit,omitempty"`
496 - PassChapters map[int32]int32 `protobuf:"bytes,21,rep,name=pass_chapters,json=passChapters,proto3" json:"pass_chapters,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 通关记录 496 + Passchapters map[int32]int32 `protobuf:"bytes,21,rep,name=passchapters,proto3" json:"passchapters,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 通关记录
497 } 497 }
498 498
499 func (x *Role) Reset() { 499 func (x *Role) Reset() {
@@ -654,9 +654,9 @@ func (x *Role) GetMateriallimit() uint32 { @@ -654,9 +654,9 @@ func (x *Role) GetMateriallimit() uint32 {
654 return 0 654 return 0
655 } 655 }
656 656
657 -func (x *Role) GetPassChapters() map[int32]int32 { 657 +func (x *Role) GetPasschapters() map[int32]int32 {
658 if x != nil { 658 if x != nil {
659 - return x.PassChapters 659 + return x.Passchapters
660 } 660 }
661 return nil 661 return nil
662 } 662 }
@@ -708,7 +708,7 @@ var file_models_proto_rawDesc = []byte{ @@ -708,7 +708,7 @@ var file_models_proto_rawDesc = []byte{
708 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72, 708 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72,
709 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 709 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
710 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 710 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02,
711 - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x9a, 0x05, 0x0a, 0x04, 0x52, 0x6f, 711 + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x99, 0x05, 0x0a, 0x04, 0x52, 0x6f,
712 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 712 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
713 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 713 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
714 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 714 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03,
@@ -738,20 +738,20 @@ var file_models_proto_rawDesc = []byte{ @@ -738,20 +738,20 @@ var file_models_proto_rawDesc = []byte{
738 0x0d, 0x52, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 738 0x0d, 0x52, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12,
739 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 739 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74,
740 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 740 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
741 - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x63, 0x68,  
742 - 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d,  
743 - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x43,  
744 - 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61,  
745 - 0x73, 0x73, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e,  
746 - 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,  
747 - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,  
748 - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,  
749 - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61,  
750 - 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,  
751 - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,  
752 - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,  
753 - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b,  
754 - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 741 + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x63, 0x68, 0x61,
  742 + 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x6f,
  743 + 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x63, 0x68,
  744 + 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61, 0x73,
  745 + 0x73, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x63,
  746 + 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
  747 + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
  748 + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  749 + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x63, 0x68, 0x61, 0x70,
  750 + 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
  751 + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
  752 + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
  753 + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70,
  754 + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
755 } 755 }
756 756
757 var ( 757 var (
@@ -776,11 +776,11 @@ var file_models_proto_goTypes = []interface{}{ @@ -776,11 +776,11 @@ var file_models_proto_goTypes = []interface{}{
776 (*Increment)(nil), // 5: models.Increment 776 (*Increment)(nil), // 5: models.Increment
777 (*Role)(nil), // 6: models.Role 777 (*Role)(nil), // 6: models.Role
778 nil, // 7: models.Role.IncresEntry 778 nil, // 7: models.Role.IncresEntry
779 - nil, // 8: models.Role.PassChaptersEntry 779 + nil, // 8: models.Role.PasschaptersEntry
780 } 780 }
781 var file_models_proto_depIdxs = []int32{ 781 var file_models_proto_depIdxs = []int32{
782 7, // 0: models.Role.incres:type_name -> models.Role.IncresEntry 782 7, // 0: models.Role.incres:type_name -> models.Role.IncresEntry
783 - 8, // 1: models.Role.pass_chapters:type_name -> models.Role.PassChaptersEntry 783 + 8, // 1: models.Role.passchapters:type_name -> models.Role.PasschaptersEntry
784 2, // [2:2] is the sub-list for method output_type 784 2, // [2:2] is the sub-list for method output_type
785 2, // [2:2] is the sub-list for method input_type 785 2, // [2:2] is the sub-list for method input_type
786 2, // [2:2] is the sub-list for extension type_name 786 2, // [2:2] is the sub-list for extension type_name