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++ | ... | ... |