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,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
@@ -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++