diff --git a/cmd/gameserver/action/RoleAction.go b/cmd/gameserver/action/RoleAction.go index f4ed2e0..804aae3 100644 --- a/cmd/gameserver/action/RoleAction.go +++ b/cmd/gameserver/action/RoleAction.go @@ -63,6 +63,7 @@ func CreateRpc(role1 *models.RoleModel, msg components.IMessage) (int32, interfa role = models.NewRole(roleId) role.Role.Uid = req.Token + role.Role.Level = 1 role.Role.Nick = getRandomName() if err := role.Create(); err != nil { logger.Error("CreateRpc role create err: %v", err) @@ -139,7 +140,7 @@ RoleClearItemsRpc 删除物品 func RoleClearItemsRpc(role *models.RoleModel, msg components.IMessage) (int32, interface{}) { req := pb.RoleClearItemsReq{} if err := proto.Unmarshal(msg.GetData(), &req); err != nil { - logger.Error("loginRpc err: %v", err) + logger.Error("proto rpc err: %v", err) return 1, nil } @@ -241,7 +242,7 @@ func RoleEndBattleRpc(role *models.RoleModel, msg components.IMessage) (int32, i } level, exp := role.UpLevel(amount) - rsp := pb.RoleEndBattleRsp{ + rsp := &pb.RoleEndBattleRsp{ RoleLevel: level, RoleExp: exp, RoleExpamount: amount, diff --git a/cmd/gameserver/service/agent.go b/cmd/gameserver/service/agent.go index b4f6049..456f074 100644 --- a/cmd/gameserver/service/agent.go +++ b/cmd/gameserver/service/agent.go @@ -156,6 +156,7 @@ func (c *Agent) OnClose() { return } + logger.Debug("ID: %d close, roleid", c.IConnection.GetID(), c.Role.Role.Id) c.Server.GetConnManage().DelRID(c.Role.Role.Id) c.Role.OnOfflineEvent() } @@ -169,7 +170,7 @@ func (c *Agent) checkHeartBeat(now int64) { c.Stop() return } - logger.Debug("timeout count: %d", c.heartTimeoutCount) + //logger.Debug("timeout count: %d", c.heartTimeoutCount) } else { c.heartTimeoutCount = 0 } diff --git a/common/components/conn.go b/common/components/conn.go index 229b8e7..3f9710f 100644 --- a/common/components/conn.go +++ b/common/components/conn.go @@ -256,7 +256,6 @@ func (c *Connection) quitting() { } atomic.StoreUint32(&c.Status, 0) - logger.Debug("ID: %d close", c.Id) close(c.WBuffer) close(c.Quit) diff --git a/models/role.go b/models/role.go index 0e304f1..c10a2c7 100644 --- a/models/role.go +++ b/models/role.go @@ -24,7 +24,7 @@ type RoleModel struct { } func RoleExistByUid(uid string) *RoleModel { - data := &pb.Role{Uid: uid, Incres: make(map[string]uint32)} + data := &pb.Role{Uid: uid, Incres: make(map[string]uint32), PassChapters: make(map[int32]int32)} if err := mongoproxy.FindOne(mongoproxy.GetCollName(data), mongoproxy.GetBsonM("uid", uid), data); err != nil { logger.Error("Role not exist err: %v", err) @@ -46,7 +46,7 @@ func RoleExistByUid(uid string) *RoleModel { } func NewRole(id string) *RoleModel { - data := &pb.Role{Id: id, Incres: make(map[string]uint32)} + data := &pb.Role{Id: id, Incres: make(map[string]uint32), PassChapters: make(map[int32]int32)} m := &RoleModel{ ISchema: NewSchema(id, data), Role: data, diff --git a/models/rolePlugin.go b/models/rolePlugin.go index c2f4fd6..a841bd1 100644 --- a/models/rolePlugin.go +++ b/models/rolePlugin.go @@ -133,12 +133,19 @@ func (m *RoleModel) EquipmentAddNotify(equip *pb.Equipment) { func (m *RoleModel) UpLevel(exp int32) (int32, int32) { level := m.Role.Level oldLevelExp := csvdata.Get().TbAccountLevelExp.Get(level) + if oldLevelExp == nil { + return level, m.Role.Level + } if exp >= oldLevelExp.NeedExp-m.Role.Exp { exp = exp - (oldLevelExp.NeedExp - m.Role.Exp) level++ for exp > 0 { oldLevelExp = csvdata.Get().TbAccountLevelExp.Get(level) + if oldLevelExp == nil { + return level, exp + } + if exp >= oldLevelExp.NeedExp { exp = exp - oldLevelExp.NeedExp level++ -- libgit2 0.21.2