Commit 92256e324771fac8fc6a43b486706237e425a755
1 parent
8db23cb6
fix: 结束战斗的协议加上队伍id
Showing
6 changed files
with
117 additions
and
26 deletions
Show diff stats
cmd/gameserver/action/RoleAction.go
@@ -221,6 +221,13 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i | @@ -221,6 +221,13 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i | ||
221 | return 2, nil | 221 | return 2, nil |
222 | } | 222 | } |
223 | 223 | ||
224 | + //team | ||
225 | + team, ok := role.Teams[req.TeamId] | ||
226 | + if !ok { | ||
227 | + logger.Error("team not exists") | ||
228 | + return 3, nil | ||
229 | + } | ||
230 | + | ||
224 | reward := make(common.IMapStringNum) | 231 | reward := make(common.IMapStringNum) |
225 | if !first { | 232 | if !first { |
226 | role.Role.PassChapters[req.ChapterId] = 1 | 233 | role.Role.PassChapters[req.ChapterId] = 1 |
@@ -252,12 +259,40 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i | @@ -252,12 +259,40 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i | ||
252 | level, exp := role.UpLevel(amount) | 259 | level, exp := role.UpLevel(amount) |
253 | role.UpdateProperties(map[string]interface{}{"level": level, "exp": exp}, true) | 260 | role.UpdateProperties(map[string]interface{}{"level": level, "exp": exp}, true) |
254 | 261 | ||
262 | + //team exp | ||
263 | + heros := make([]*pb.Hero, 4) | ||
264 | + t := team.(*models.TeamModel).Team | ||
265 | + h1, ok := role.Heros[t.HeroId1] | ||
266 | + if ok { | ||
267 | + level, exp := h1.(*models.HeroModel).UpLevel(amount) | ||
268 | + h1.SetProperty("level", level) | ||
269 | + h1.SetProperty("exp", exp) | ||
270 | + heros = append(heros, h1.(*models.HeroModel).Hero) | ||
271 | + } | ||
272 | + | ||
273 | + h2, ok := role.Heros[t.HeroId2] | ||
274 | + if ok { | ||
275 | + level, exp := h2.(*models.HeroModel).UpLevel(amount) | ||
276 | + h2.SetProperty("level", level) | ||
277 | + h2.SetProperty("exp", exp) | ||
278 | + heros = append(heros, h2.(*models.HeroModel).Hero) | ||
279 | + } | ||
280 | + | ||
281 | + h3, ok := role.Heros[t.HeroId3] | ||
282 | + if ok { | ||
283 | + level, exp := h3.(*models.HeroModel).UpLevel(amount) | ||
284 | + h3.SetProperty("level", level) | ||
285 | + h3.SetProperty("exp", exp) | ||
286 | + heros = append(heros, h3.(*models.HeroModel).Hero) | ||
287 | + } | ||
288 | + | ||
255 | rsp := &pb.RoleEndBattleRsp{ | 289 | rsp := &pb.RoleEndBattleRsp{ |
256 | RoleLevel: level, | 290 | RoleLevel: level, |
257 | RoleExp: exp, | 291 | RoleExp: exp, |
258 | RoleExpamount: amount, | 292 | RoleExpamount: amount, |
259 | Pass: req.Pass, | 293 | Pass: req.Pass, |
260 | Reward: common.MapNumToString(reward), | 294 | Reward: common.MapNumToString(reward), |
295 | + Hero: heros, | ||
261 | } | 296 | } |
262 | return 0, rsp | 297 | return 0, rsp |
263 | } | 298 | } |
cmd/gameserver/action/protocode.go
@@ -18,4 +18,4 @@ func GetActionMap() map[interface{}]interface{} { | @@ -18,4 +18,4 @@ func GetActionMap() map[interface{}]interface{} { | ||
18 | am[uint32(pb.ProtoCode_EquipmentDelReq)] = EquipmentDelRpc | 18 | am[uint32(pb.ProtoCode_EquipmentDelReq)] = EquipmentDelRpc |
19 | 19 | ||
20 | return am | 20 | return am |
21 | -} | 21 | -} |
22 | +} | ||
22 | \ No newline at end of file | 23 | \ No newline at end of file |
models/hero.go
@@ -3,6 +3,7 @@ package models | @@ -3,6 +3,7 @@ package models | ||
3 | import ( | 3 | import ( |
4 | "pro2d/common" | 4 | "pro2d/common" |
5 | "pro2d/common/components" | 5 | "pro2d/common/components" |
6 | + "pro2d/csvdata" | ||
6 | "pro2d/pb" | 7 | "pro2d/pb" |
7 | ) | 8 | ) |
8 | 9 | ||
@@ -30,3 +31,33 @@ func (m *HeroModel) UpdateEquipment(key string, typ string) { | @@ -30,3 +31,33 @@ func (m *HeroModel) UpdateEquipment(key string, typ string) { | ||
30 | 31 | ||
31 | m.SetProperty("equipments", common.MapToString(m.Equipments)) | 32 | m.SetProperty("equipments", common.MapToString(m.Equipments)) |
32 | } | 33 | } |
34 | +func (m *HeroModel) UpLevel(exp int32) (int32, int32) { | ||
35 | + level := m.Hero.Level | ||
36 | + oldLevelExp := csvdata.Get().TbHeroLevelExp.Get(level) | ||
37 | + if oldLevelExp == nil { | ||
38 | + return level, m.Hero.Exp | ||
39 | + } | ||
40 | + if exp >= oldLevelExp.NeedExp-m.Hero.Exp { | ||
41 | + exp = exp - (oldLevelExp.NeedExp - m.Hero.Exp) | ||
42 | + level++ | ||
43 | + | ||
44 | + for exp > 0 { | ||
45 | + oldLevelExp = csvdata.Get().TbHeroLevelExp.Get(level) | ||
46 | + if oldLevelExp == nil { | ||
47 | + return level, exp | ||
48 | + } | ||
49 | + | ||
50 | + if exp >= oldLevelExp.NeedExp { | ||
51 | + exp = exp - oldLevelExp.NeedExp | ||
52 | + level++ | ||
53 | + } else { | ||
54 | + exp = exp + m.Hero.Exp | ||
55 | + break | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + } else { | ||
60 | + exp = exp + m.Hero.Exp | ||
61 | + } | ||
62 | + return level, exp | ||
63 | +} |
models/rolePlugin.go
@@ -161,7 +161,6 @@ func (m *RoleModel) UpLevel(exp int32) (int32, int32) { | @@ -161,7 +161,6 @@ func (m *RoleModel) UpLevel(exp int32) (int32, int32) { | ||
161 | exp = exp + m.Role.Exp | 161 | exp = exp + m.Role.Exp |
162 | } | 162 | } |
163 | return level, exp | 163 | return level, exp |
164 | - | ||
165 | } | 164 | } |
166 | 165 | ||
167 | func (m *RoleModel) Award(award common.IMapStringNum) common.IMapStringNum { | 166 | func (m *RoleModel) Award(award common.IMapStringNum) common.IMapStringNum { |
models/team.go
@@ -2,6 +2,8 @@ package models | @@ -2,6 +2,8 @@ package models | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "pro2d/common/components" | 4 | "pro2d/common/components" |
5 | + "pro2d/common/db/mongoproxy" | ||
6 | + "pro2d/common/logger" | ||
5 | "pro2d/pb" | 7 | "pro2d/pb" |
6 | ) | 8 | ) |
7 | 9 | ||
@@ -19,3 +21,16 @@ func NewTeam(data *pb.Team) *TeamModel { | @@ -19,3 +21,16 @@ func NewTeam(data *pb.Team) *TeamModel { | ||
19 | 21 | ||
20 | return m | 22 | return m |
21 | } | 23 | } |
24 | + | ||
25 | +func TeamExistsByID(id string) *TeamModel { | ||
26 | + data := &pb.Team{Id: id} | ||
27 | + if err := mongoproxy.FindOne(mongoproxy.GetCollName(data), mongoproxy.GetBsonM("id", id), data); err != nil { | ||
28 | + logger.Error("Role not exist err: %v", err) | ||
29 | + return nil | ||
30 | + } | ||
31 | + r := &TeamModel{ | ||
32 | + ISchema: NewSchema(data.Id, data), | ||
33 | + Team: data, | ||
34 | + } | ||
35 | + return r | ||
36 | +} |
pb/game.pb.go
@@ -661,9 +661,10 @@ type RoleEndBattleReq struct { | @@ -661,9 +661,10 @@ type RoleEndBattleReq struct { | ||
661 | sizeCache protoimpl.SizeCache | 661 | sizeCache protoimpl.SizeCache |
662 | unknownFields protoimpl.UnknownFields | 662 | unknownFields protoimpl.UnknownFields |
663 | 663 | ||
664 | - ChapterId int32 `protobuf:"varint,1,opt,name=chapter_id,json=chapterId,proto3" json:"chapter_id,omitempty"` | ||
665 | - CarbonId int32 `protobuf:"varint,2,opt,name=carbon_id,json=carbonId,proto3" json:"carbon_id,omitempty"` | ||
666 | - Pass bool `protobuf:"varint,3,opt,name=pass,proto3" json:"pass,omitempty"` | 664 | + ChapterId int32 `protobuf:"varint,1,opt,name=chapter_id,json=chapterId,proto3" json:"chapter_id,omitempty"` |
665 | + CarbonId int32 `protobuf:"varint,2,opt,name=carbon_id,json=carbonId,proto3" json:"carbon_id,omitempty"` | ||
666 | + Pass bool `protobuf:"varint,3,opt,name=pass,proto3" json:"pass,omitempty"` | ||
667 | + TeamId string `protobuf:"bytes,4,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` | ||
667 | } | 668 | } |
668 | 669 | ||
669 | func (x *RoleEndBattleReq) Reset() { | 670 | func (x *RoleEndBattleReq) Reset() { |
@@ -719,6 +720,14 @@ func (x *RoleEndBattleReq) GetPass() bool { | @@ -719,6 +720,14 @@ func (x *RoleEndBattleReq) GetPass() bool { | ||
719 | return false | 720 | return false |
720 | } | 721 | } |
721 | 722 | ||
723 | +func (x *RoleEndBattleReq) GetTeamId() string { | ||
724 | + if x != nil { | ||
725 | + return x.TeamId | ||
726 | + } | ||
727 | + return "" | ||
728 | +} | ||
729 | + | ||
730 | +//ResponseCmd RoleEndBattleRsp | ||
722 | type RoleEndBattleRsp struct { | 731 | type RoleEndBattleRsp struct { |
723 | state protoimpl.MessageState | 732 | state protoimpl.MessageState |
724 | sizeCache protoimpl.SizeCache | 733 | sizeCache protoimpl.SizeCache |
@@ -954,32 +963,34 @@ var file_game_proto_rawDesc = []byte{ | @@ -954,32 +963,34 @@ var file_game_proto_rawDesc = []byte{ | ||
954 | 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, | 963 | 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, |
955 | 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64, | 964 | 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64, |
956 | 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64, | 965 | 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64, |
957 | - 0x22, 0x62, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, | 966 | + 0x22, 0x7b, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, |
958 | 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f, | 967 | 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f, |
959 | 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, | 968 | 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, |
960 | 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64, | 969 | 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64, |
961 | 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64, | 970 | 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64, |
962 | 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, | 971 | 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, |
963 | - 0x70, 0x61, 0x73, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, | ||
964 | - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, | ||
965 | - 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, | ||
966 | - 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, | ||
967 | - 0x5f, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, | ||
968 | - 0x45, 0x78, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, | ||
969 | - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6c, | ||
970 | - 0x65, 0x45, 0x78, 0x70, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, | ||
971 | - 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, | ||
972 | - 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, | ||
973 | - 0x52, 0x04, 0x70, 0x61, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x06, | ||
974 | - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, | ||
975 | - 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, | ||
976 | - 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, | ||
977 | - 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, | ||
978 | - 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, | ||
979 | - 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, | ||
980 | - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, | ||
981 | - 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, | ||
982 | - 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | 972 | + 0x70, 0x61, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, |
973 | + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0xc1, 0x01, | ||
974 | + 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, | ||
975 | + 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, | ||
976 | + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, | ||
977 | + 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, | ||
978 | + 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x12, 0x25, 0x0a, 0x0e, | ||
979 | + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, | ||
980 | + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x61, 0x6d, 0x6f, | ||
981 | + 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, | ||
982 | + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, | ||
983 | + 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x70, 0x61, 0x73, 0x73, 0x12, | ||
984 | + 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, | ||
985 | + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, | ||
986 | + 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, | ||
987 | + 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, | ||
988 | + 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, | ||
989 | + 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, | ||
990 | + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, | ||
991 | + 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, | ||
992 | + 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, | ||
993 | + 0x6f, 0x74, 0x6f, 0x33, | ||
983 | } | 994 | } |
984 | 995 | ||
985 | var ( | 996 | var ( |