Commit 8f6d9ea97a78f89cd5acb33c878e5a1e542e2a67

Authored by zhangqijia
1 parent 4e56b6c4

fix: UpLevel

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
... ... @@ -256,7 +256,6 @@ func (c *Connection) quitting() {
256 256 }
257 257 atomic.StoreUint32(&c.Status, 0)
258 258  
259   - logger.Debug("ID: %d close", c.Id)
260 259 close(c.WBuffer)
261 260 close(c.Quit)
262 261  
... ...
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++
... ...