diff --git a/comm/imodule.go b/comm/imodule.go index ef058bc18..e4163d5a0 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -171,7 +171,7 @@ type ( SetUserCaravanLvChange(session IUserSession, caravanlv int32) error //消耗体力加经验 - ConsumePsAddExp(session IUserSession, ps int) (errdata *pb.ErrorData) + ConsumePsAddExp(session IUserSession, ps int) (addExp int32, errdata *pb.ErrorData) } //武器模块 IEquipment interface { diff --git a/modules/user/module.go b/modules/user/module.go index 0beadc0e7..668a5bbde 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -1124,7 +1124,15 @@ func (this *User) SetUserCaravanLvChange(session comm.IUserSession, caravanlv in return this.modelUser.Change(session.GetUserId(), update) } -func (this *User) ConsumePsAddExp(session comm.IUserSession, ps int) (errdata *pb.ErrorData) { +func (this *User) ConsumePsAddExp(session comm.IUserSession, ps int) (addExp int32, errdata *pb.ErrorData) { + if ps <= 0 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + var ( user *pb.DBUser ) @@ -1140,10 +1148,10 @@ func (this *User) ConsumePsAddExp(session comm.IUserSession, ps int) (errdata *p return } //体力消耗,增加玩家经验 - exp := int32(math.Abs(float64(ps))) * ggd.FightPs - user.Exp += int64(exp) - + addExp = int32(math.Abs(float64(ps))) * ggd.FightPs + user.Exp += int64(addExp) + attrs := make(map[string]int32, 0) attrs["exp"] = int32(user.Exp) - return this.AddAttributeValues(session, attrs, true) + return addExp, this.AddAttributeValues(session, attrs, true) }