This commit is contained in:
meixiongfeng 2022-12-02 10:07:32 +08:00
commit 1045cca0f0
2 changed files with 102 additions and 68 deletions

View File

@ -17,7 +17,7 @@
},
{
"lv": 3,
"exp": 2000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -28,7 +28,7 @@
},
{
"lv": 4,
"exp": 3000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -39,7 +39,7 @@
},
{
"lv": 5,
"exp": 4000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -50,7 +50,7 @@
},
{
"lv": 6,
"exp": 5000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -61,7 +61,7 @@
},
{
"lv": 7,
"exp": 6000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -72,7 +72,7 @@
},
{
"lv": 8,
"exp": 7000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -83,7 +83,7 @@
},
{
"lv": 9,
"exp": 8000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -94,7 +94,7 @@
},
{
"lv": 10,
"exp": 9000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -105,7 +105,7 @@
},
{
"lv": 11,
"exp": 10000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -116,7 +116,7 @@
},
{
"lv": 12,
"exp": 11000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -127,7 +127,7 @@
},
{
"lv": 13,
"exp": 12000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -138,7 +138,7 @@
},
{
"lv": 14,
"exp": 13000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -149,7 +149,7 @@
},
{
"lv": 15,
"exp": 14000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -160,7 +160,7 @@
},
{
"lv": 16,
"exp": 15000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -171,7 +171,7 @@
},
{
"lv": 17,
"exp": 16000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -182,7 +182,7 @@
},
{
"lv": 18,
"exp": 17000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -193,7 +193,7 @@
},
{
"lv": 19,
"exp": 18000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -204,7 +204,7 @@
},
{
"lv": 20,
"exp": 19000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -215,7 +215,7 @@
},
{
"lv": 21,
"exp": 20000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -226,7 +226,7 @@
},
{
"lv": 22,
"exp": 21000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -237,7 +237,7 @@
},
{
"lv": 23,
"exp": 22000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -248,7 +248,7 @@
},
{
"lv": 24,
"exp": 23000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -259,7 +259,7 @@
},
{
"lv": 25,
"exp": 24000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -270,7 +270,7 @@
},
{
"lv": 26,
"exp": 25000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -281,7 +281,7 @@
},
{
"lv": 27,
"exp": 26000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -292,7 +292,7 @@
},
{
"lv": 28,
"exp": 27000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -303,7 +303,7 @@
},
{
"lv": 29,
"exp": 28000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -314,7 +314,7 @@
},
{
"lv": 30,
"exp": 29000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -325,7 +325,7 @@
},
{
"lv": 31,
"exp": 30000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -336,7 +336,7 @@
},
{
"lv": 32,
"exp": 31000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -347,7 +347,7 @@
},
{
"lv": 33,
"exp": 32000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -358,7 +358,7 @@
},
{
"lv": 34,
"exp": 33000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -369,7 +369,7 @@
},
{
"lv": 35,
"exp": 34000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -380,7 +380,7 @@
},
{
"lv": 36,
"exp": 35000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -391,7 +391,7 @@
},
{
"lv": 37,
"exp": 36000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -402,7 +402,7 @@
},
{
"lv": 38,
"exp": 37000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -413,7 +413,7 @@
},
{
"lv": 39,
"exp": 38000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -424,7 +424,7 @@
},
{
"lv": 40,
"exp": 39000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -435,7 +435,7 @@
},
{
"lv": 41,
"exp": 40000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -446,7 +446,7 @@
},
{
"lv": 42,
"exp": 41000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -457,7 +457,7 @@
},
{
"lv": 43,
"exp": 42000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -468,7 +468,7 @@
},
{
"lv": 44,
"exp": 43000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -479,7 +479,7 @@
},
{
"lv": 45,
"exp": 44000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -490,7 +490,7 @@
},
{
"lv": 46,
"exp": 45000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -501,7 +501,7 @@
},
{
"lv": 47,
"exp": 46000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -512,7 +512,7 @@
},
{
"lv": 48,
"exp": 47000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -523,7 +523,7 @@
},
{
"lv": 49,
"exp": 48000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -534,7 +534,7 @@
},
{
"lv": 50,
"exp": 49000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -545,7 +545,7 @@
},
{
"lv": 51,
"exp": 50000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -556,7 +556,7 @@
},
{
"lv": 52,
"exp": 51000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -567,7 +567,7 @@
},
{
"lv": 53,
"exp": 52000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -578,7 +578,7 @@
},
{
"lv": 54,
"exp": 53000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -589,7 +589,7 @@
},
{
"lv": 55,
"exp": 54000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -600,7 +600,7 @@
},
{
"lv": 56,
"exp": 55000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -611,7 +611,7 @@
},
{
"lv": 57,
"exp": 56000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -622,7 +622,7 @@
},
{
"lv": 58,
"exp": 57000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -633,7 +633,7 @@
},
{
"lv": 59,
"exp": 58000,
"exp": 1000,
"reward": [
{
"a": "attr",
@ -644,7 +644,7 @@
},
{
"lv": 60,
"exp": 59000,
"exp": 1000,
"reward": [
{
"a": "attr",

View File

@ -174,33 +174,67 @@ func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{
curLv := ul.lv
//下一等级配置
nextLvConf := this.module.configure.GetPlayerlvConf(curLv + 1)
var rewards []*cfg.Gameatn
for nextLvConf != nil && ul.exp >= int64(nextLvConf.Exp) {
var (
rewards []*cfg.Gameatn
curExp int64
)
curExp = ul.exp
for nextLvConf != nil && curExp >= int64(nextLvConf.Exp) {
curExp = curExp - int64(nextLvConf.Exp)
curLv++
//叠加奖励
rewards = append(rewards, nextLvConf.Reward...)
nextLvConf = this.module.configure.GetPlayerlvConf(curLv + 1)
}
// 最大等级经验封顶
curLvConf := this.module.configure.GetPlayerlvConf(curLv)
if curExp > int64(curLvConf.Exp) {
if nextLvConf == nil {
curExp = int64(curLvConf.Exp)
}
}
// 等级有递增时再更新
if curLv > ul.lv {
ul.lv = curLv
update := map[string]interface{}{
"lv": ul.lv,
"lv": curLv,
"exp": curExp,
}
if err := this.module.modelUser.Change(ul.session.GetUserId(), update); err != nil {
this.module.Error("玩家等级经验更新", log.Fields{"uid": ul.session.GetUserId(), "exp": curExp, "lv": curLv})
return
}
if err := ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush,
&pb.UserLvChangedPush{Uid: ul.session.GetUserId(), Exp: curExp, Lv: curLv}); err != nil {
this.module.Error("玩家等级变化 UserSubTypeLvChangedPush推送失败", log.Fields{"uid": ul.session.GetUserId(), "exp": curExp, "lv": curLv})
}
if code := this.module.DispenseRes(ul.session, rewards, true); code != pb.ErrorCode_Success {
this.module.Error("资源发放", log.Fields{"uid": ul.session.GetUserId(), "rewards": rewards})
}
this.module.modelUser.Change(ul.session.GetUserId(), update)
ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush,
&pb.UserLvChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv})
this.module.DispenseRes(ul.session, rewards, true)
mc, err := this.module.service.GetModule(comm.ModuleChat)
if err != nil {
return
}
if chat, ok := mc.(comm.IChat); ok {
chat.SendSysChatToUser(ul.session, comm.ChatSystem12, ul.lv, 0, ul.name)
chat.SendSysChatToUser(ul.session, comm.ChatSystem12, curLv, 0, ul.name)
}
} else {
if nextLvConf == nil {
update := map[string]interface{}{
"exp": curExp,
}
if err := this.module.modelUser.Change(ul.session.GetUserId(), update); err != nil {
this.module.Error("玩家经验更新", log.Fields{"uid": ul.session.GetUserId(), "exp": curExp, "lv": curLv})
return
}
if err := ul.session.SendMsg(string(this.module.GetType()), "reschanged",
&pb.UserResChangedPush{Exp: curExp}); err != nil {
this.module.Error("玩家经验变化 UserResChangedPush推送失败", log.Fields{"uid": ul.session.GetUserId(), "exp": curExp, "lv": curLv})
}
}
}
}