增加额外的经验条
This commit is contained in:
parent
5341353003
commit
42e9b73764
@ -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)
|
||||
|
||||
@ -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")
|
||||
}
|
||||
|
||||
// 获取能量回复时间
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -17,6 +17,7 @@ type Base struct {
|
||||
Uid int64
|
||||
Level int
|
||||
Exp int
|
||||
PExp int
|
||||
Energy int
|
||||
Star int
|
||||
Diamond int
|
||||
|
||||
Loading…
Reference in New Issue
Block a user