Commit 8f6d9ea97a78f89cd5acb33c878e5a1e542e2a67
1 parent
4e56b6c4
fix: UpLevel
Showing
5 changed files
with
14 additions
and
6 deletions
Show diff stats
cmd/gameserver/action/RoleAction.go
... | ... | @@ -63,6 +63,7 @@ func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interfa |
63 | 63 | |
64 | 64 | role = models.NewRole(roleId) |
65 | 65 | role.Role.Uid = req.Token |
66 | + role.Role.Level = 1 | |
66 | 67 | role.Role.Nick = getRandomName() |
67 | 68 | if err := role.Create(); err != nil { |
68 | 69 | logger.Error("CreateRpc role create err: %v", err) |
... | ... | @@ -139,7 +140,7 @@ RoleClearItemsRpc 删除物品 |
139 | 140 | func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
140 | 141 | req := pb.RoleClearItemsReq{} |
141 | 142 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { |
142 | - logger.Error("loginRpc err: %v", err) | |
143 | + logger.Error("proto rpc err: %v", err) | |
143 | 144 | return 1, nil |
144 | 145 | } |
145 | 146 | |
... | ... | @@ -241,7 +242,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i |
241 | 242 | } |
242 | 243 | level, exp := role.UpLevel(amount) |
243 | 244 | |
244 | - rsp := pb.RoleEndBattleRsp{ | |
245 | + rsp := &pb.RoleEndBattleRsp{ | |
245 | 246 | RoleLevel: level, |
246 | 247 | RoleExp: exp, |
247 | 248 | RoleExpamount: amount, | ... | ... |
cmd/gameserver/service/agent.go
... | ... | @@ -156,6 +156,7 @@ func (c *Agent) OnClose() { |
156 | 156 | return |
157 | 157 | } |
158 | 158 | |
159 | + logger.Debug("ID: %d close, roleid", c.IConnection.GetID(), c.Role.Role.Id) | |
159 | 160 | c.Server.GetConnManage().DelRID(c.Role.Role.Id) |
160 | 161 | c.Role.OnOfflineEvent() |
161 | 162 | } |
... | ... | @@ -169,7 +170,7 @@ func (c *Agent) checkHeartBeat(now int64) { |
169 | 170 | c.Stop() |
170 | 171 | return |
171 | 172 | } |
172 | - logger.Debug("timeout count: %d", c.heartTimeoutCount) | |
173 | + //logger.Debug("timeout count: %d", c.heartTimeoutCount) | |
173 | 174 | } else { |
174 | 175 | c.heartTimeoutCount = 0 |
175 | 176 | } | ... | ... |
common/components/conn.go
models/role.go
... | ... | @@ -24,7 +24,7 @@ type RoleModel struct { |
24 | 24 | } |
25 | 25 | |
26 | 26 | func RoleExistByUid(uid string) *RoleModel { |
27 | - data := &pb.Role{Uid: uid, Incres: make(map[string]uint32)} | |
27 | + data := &pb.Role{Uid: uid, Incres: make(map[string]uint32), PassChapters: make(map[int32]int32)} | |
28 | 28 | |
29 | 29 | if err := mongoproxy.FindOne(mongoproxy.GetCollName(data), mongoproxy.GetBsonM("uid", uid), data); err != nil { |
30 | 30 | logger.Error("Role not exist err: %v", err) |
... | ... | @@ -46,7 +46,7 @@ func RoleExistByUid(uid string) *RoleModel { |
46 | 46 | } |
47 | 47 | |
48 | 48 | func NewRole(id string) *RoleModel { |
49 | - data := &pb.Role{Id: id, Incres: make(map[string]uint32)} | |
49 | + data := &pb.Role{Id: id, Incres: make(map[string]uint32), PassChapters: make(map[int32]int32)} | |
50 | 50 | m := &RoleModel{ |
51 | 51 | ISchema: NewSchema(id, data), |
52 | 52 | Role: data, | ... | ... |
models/rolePlugin.go
... | ... | @@ -133,12 +133,19 @@ func (m *RoleModel) EquipmentAddNotify(equip *pb.Equipment) { |
133 | 133 | func (m *RoleModel) UpLevel(exp int32) (int32, int32) { |
134 | 134 | level := m.Role.Level |
135 | 135 | oldLevelExp := csvdata.Get().TbAccountLevelExp.Get(level) |
136 | + if oldLevelExp == nil { | |
137 | + return level, m.Role.Level | |
138 | + } | |
136 | 139 | if exp >= oldLevelExp.NeedExp-m.Role.Exp { |
137 | 140 | exp = exp - (oldLevelExp.NeedExp - m.Role.Exp) |
138 | 141 | level++ |
139 | 142 | |
140 | 143 | for exp > 0 { |
141 | 144 | oldLevelExp = csvdata.Get().TbAccountLevelExp.Get(level) |
145 | + if oldLevelExp == nil { | |
146 | + return level, exp | |
147 | + } | |
148 | + | |
142 | 149 | if exp >= oldLevelExp.NeedExp { |
143 | 150 | exp = exp - oldLevelExp.NeedExp |
144 | 151 | level++ | ... | ... |