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