From 540d932e22090dfd8d0e5d62c724ffc01dfc9684 Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Thu, 1 Dec 2022 20:33:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_playerlv.json | 116 ++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/bin/json/game_playerlv.json b/bin/json/game_playerlv.json index 0d745c3ec..15cbef796 100644 --- a/bin/json/game_playerlv.json +++ b/bin/json/game_playerlv.json @@ -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", From a2b0a2505a378c677927257f0512bc9aa4906905 Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Thu, 1 Dec 2022 23:35:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E7=BB=8F=E9=AA=8C=E5=8F=98=E6=9B=B4=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/user/model_user.go | 54 +++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/modules/user/model_user.go b/modules/user/model_user.go index 2e50439ce..cf145d411 100644 --- a/modules/user/model_user.go +++ b/modules/user/model_user.go @@ -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}) + } } - } }