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,6 +63,7 @@ func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interfa | ||
| 63 | 63 | ||
| 64 | role = models.NewRole(roleId) | 64 | role = models.NewRole(roleId) |
| 65 | role.Role.Uid = req.Token | 65 | role.Role.Uid = req.Token |
| 66 | + role.Role.Level = 1 | ||
| 66 | role.Role.Nick = getRandomName() | 67 | role.Role.Nick = getRandomName() |
| 67 | if err := role.Create(); err != nil { | 68 | if err := role.Create(); err != nil { |
| 68 | logger.Error("CreateRpc role create err: %v", err) | 69 | logger.Error("CreateRpc role create err: %v", err) |
| @@ -139,7 +140,7 @@ RoleClearItemsRpc 删除物品 | @@ -139,7 +140,7 @@ RoleClearItemsRpc 删除物品 | ||
| 139 | func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { | 140 | func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { |
| 140 | req := pb.RoleClearItemsReq{} | 141 | req := pb.RoleClearItemsReq{} |
| 141 | if err := proto.Unmarshal(msg.GetData(), &req); err != nil { | 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 | return 1, nil | 144 | return 1, nil |
| 144 | } | 145 | } |
| 145 | 146 | ||
| @@ -241,7 +242,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i | @@ -241,7 +242,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i | ||
| 241 | } | 242 | } |
| 242 | level, exp := role.UpLevel(amount) | 243 | level, exp := role.UpLevel(amount) |
| 243 | 244 | ||
| 244 | - rsp := pb.RoleEndBattleRsp{ | 245 | + rsp := &pb.RoleEndBattleRsp{ |
| 245 | RoleLevel: level, | 246 | RoleLevel: level, |
| 246 | RoleExp: exp, | 247 | RoleExp: exp, |
| 247 | RoleExpamount: amount, | 248 | RoleExpamount: amount, |
cmd/gameserver/service/agent.go
| @@ -156,6 +156,7 @@ func (c *Agent) OnClose() { | @@ -156,6 +156,7 @@ func (c *Agent) OnClose() { | ||
| 156 | return | 156 | return |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | + logger.Debug("ID: %d close, roleid", c.IConnection.GetID(), c.Role.Role.Id) | ||
| 159 | c.Server.GetConnManage().DelRID(c.Role.Role.Id) | 160 | c.Server.GetConnManage().DelRID(c.Role.Role.Id) |
| 160 | c.Role.OnOfflineEvent() | 161 | c.Role.OnOfflineEvent() |
| 161 | } | 162 | } |
| @@ -169,7 +170,7 @@ func (c *Agent) checkHeartBeat(now int64) { | @@ -169,7 +170,7 @@ func (c *Agent) checkHeartBeat(now int64) { | ||
| 169 | c.Stop() | 170 | c.Stop() |
| 170 | return | 171 | return |
| 171 | } | 172 | } |
| 172 | - logger.Debug("timeout count: %d", c.heartTimeoutCount) | 173 | + //logger.Debug("timeout count: %d", c.heartTimeoutCount) |
| 173 | } else { | 174 | } else { |
| 174 | c.heartTimeoutCount = 0 | 175 | c.heartTimeoutCount = 0 |
| 175 | } | 176 | } |
common/components/conn.go
| @@ -256,7 +256,6 @@ func (c *Connection) quitting() { | @@ -256,7 +256,6 @@ func (c *Connection) quitting() { | ||
| 256 | } | 256 | } |
| 257 | atomic.StoreUint32(&c.Status, 0) | 257 | atomic.StoreUint32(&c.Status, 0) |
| 258 | 258 | ||
| 259 | - logger.Debug("ID: %d close", c.Id) | ||
| 260 | close(c.WBuffer) | 259 | close(c.WBuffer) |
| 261 | close(c.Quit) | 260 | close(c.Quit) |
| 262 | 261 |
models/role.go
| @@ -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)} | 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)} | 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/rolePlugin.go
| @@ -133,12 +133,19 @@ func (m *RoleModel) EquipmentAddNotify(equip *pb.Equipment) { | @@ -133,12 +133,19 @@ func (m *RoleModel) EquipmentAddNotify(equip *pb.Equipment) { | ||
| 133 | func (m *RoleModel) UpLevel(exp int32) (int32, int32) { | 133 | func (m *RoleModel) UpLevel(exp int32) (int32, int32) { |
| 134 | level := m.Role.Level | 134 | level := m.Role.Level |
| 135 | oldLevelExp := csvdata.Get().TbAccountLevelExp.Get(level) | 135 | oldLevelExp := csvdata.Get().TbAccountLevelExp.Get(level) |
| 136 | + if oldLevelExp == nil { | ||
| 137 | + return level, m.Role.Level | ||
| 138 | + } | ||
| 136 | if exp >= oldLevelExp.NeedExp-m.Role.Exp { | 139 | if exp >= oldLevelExp.NeedExp-m.Role.Exp { |
| 137 | exp = exp - (oldLevelExp.NeedExp - m.Role.Exp) | 140 | exp = exp - (oldLevelExp.NeedExp - m.Role.Exp) |
| 138 | level++ | 141 | level++ |
| 139 | 142 | ||
| 140 | for exp > 0 { | 143 | for exp > 0 { |
| 141 | oldLevelExp = csvdata.Get().TbAccountLevelExp.Get(level) | 144 | oldLevelExp = csvdata.Get().TbAccountLevelExp.Get(level) |
| 145 | + if oldLevelExp == nil { | ||
| 146 | + return level, exp | ||
| 147 | + } | ||
| 148 | + | ||
| 142 | if exp >= oldLevelExp.NeedExp { | 149 | if exp >= oldLevelExp.NeedExp { |
| 143 | exp = exp - oldLevelExp.NeedExp | 150 | exp = exp - oldLevelExp.NeedExp |
| 144 | level++ | 151 | level++ |