增加额外的经验条

This commit is contained in:
hahwu 2025-05-29 18:09:02 +08:00
parent 5341353003
commit 42e9b73764
5 changed files with 27 additions and 9 deletions

View File

@ -238,6 +238,14 @@ func GetInteractPhysiology(Id int) (int, int) {
return gamedata.GetIntValue(data, "PType"), gamedata.GetIntValue(data, "PEffect")
}
func GetInteractPExp(Id int) int {
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_MOOD, Id)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "PExp")
}
func GetInitDecorate() []int {
r := make([]int, 0)
data, err := gamedata.GetData(CFG_PLAYROOM_DECORATE)

View File

@ -52,13 +52,13 @@ func GetOrderNByLv(lv int) (int, error) {
}
// 获取升级经验
func GetLevUpExp(lv int) int {
func GetLevUpExp(lv int) (int, int) {
data, err := gamedata.GetDataByIntKey(CFG_NAME, lv)
if err != nil {
log.Debug("UserDataCfg GetLevUpExp lv:%v not found", lv)
return 0
return 0, 0
}
return gamedata.GetIntValue(data, "Exp")
return gamedata.GetIntValue(data, "Exp"), gamedata.GetIntValue(data, "PExp")
}
// 获取能量回复时间

View File

@ -483,21 +483,22 @@ func (p *PlayerBaseData) AddDiamond(cnt int) error {
}
// 增加经验
func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) {
func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error) {
BaseMod := player.PlayMod.getBaseMod()
BaseMod.Exp += exp
BaseMod.PExp += pexp
upLv := 0
upExp := userCfg.GetLevUpExp(BaseMod.Level)
upExp, upPExp := userCfg.GetLevUpExp(BaseMod.Level)
Num := 0
UpLevelItem := make([]*item.Item, 0)
for BaseMod.Exp >= upExp {
for BaseMod.Exp >= upExp && BaseMod.PExp >= upPExp {
if Num > 100 {
break
}
Num++
BaseMod.Level++
BaseMod.Exp -= upExp
upExp = userCfg.GetLevUpExp(BaseMod.Level)
upExp, upPExp = userCfg.GetLevUpExp(BaseMod.Level)
// 日常任务解锁
DailyTaskMod := player.PlayMod.getDailyTaskMod()
DecorateMod := player.PlayMod.getDecorateMod()

View File

@ -440,7 +440,7 @@ func ReqDecorate(player *Player, buf []byte) error {
return err
}
_, err = player.GetPlayerBaseMod().AddExp(player, 10)
_, err = player.GetPlayerBaseMod().AddExp(player, 10, 0)
if err != nil {
player.SendErrClienRes(&msg.ResDecorate{
Code: msg.RES_CODE_FAIL,
@ -507,7 +507,7 @@ func ReqDecorateAll(player *Player, buf []byte) error {
return err
}
_, err = player.GetPlayerBaseMod().AddExp(player, 10*DecorateNum)
_, err = player.GetPlayerBaseMod().AddExp(player, 10*DecorateNum, 0)
if err != nil {
player.SendErrClienRes(&msg.ResDecorateAll{
Code: msg.RES_CODE_FAIL,
@ -3152,6 +3152,14 @@ func ReqPlayroomInteract(player *Player, buf []byte) error {
if GoUtil.InArray(int(req.Id), playroomCfg.GetInteractIdBath()) {
G_GameLogicPtr.SetUserData(int(req.Id), VAR_OP_KISS, 0)
}
PExp := playroomCfg.GetInteractPExp(int(req.Id))
_, err = player.GetPlayerBaseMod().AddExp(player, 0, PExp)
if err != nil {
player.SendErrClienRes(&msg.ResPlayroomInteract{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
}
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_INTERACT, A: []interface{}{int(req.Id)}})
player.PlayMod.save()
G_GameLogicPtr.SetUserData(int(req.Id), VAR_OP_KISS, 0)

View File

@ -17,6 +17,7 @@ type Base struct {
Uid int64
Level int
Exp int
PExp int
Energy int
Star int
Diamond int