装饰增加宠物经验
This commit is contained in:
parent
4e50670358
commit
af29896e76
@ -116,3 +116,18 @@ func GetAreaPerPExp(AreaId int) int {
|
|||||||
}
|
}
|
||||||
return gamedata.ParseInt(data["PerPExp"])
|
return gamedata.ParseInt(data["PerPExp"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetDecoratePExp(AreaId, SortId int) int {
|
||||||
|
data, err := gamedata.GetData(DECORATE_AREA)
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("DecorateArea GetDecoratePExp not found")
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
for _, v := range data {
|
||||||
|
v1 := v.(map[string]interface{})
|
||||||
|
if gamedata.ParseInt(v1["AreaId"]) == AreaId && gamedata.ParseInt(v1["SortId"]) == SortId {
|
||||||
|
return gamedata.GetIntValue(v1, "PetExp")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|||||||
@ -405,7 +405,7 @@ func ReqDecorate(player *Player, buf []byte) error {
|
|||||||
DecorateMod := player.PlayMod.getDecorateMod()
|
DecorateMod := player.PlayMod.getDecorateMod()
|
||||||
DecorateId := int(req.DecorateId)
|
DecorateId := int(req.DecorateId)
|
||||||
AreaId := int(req.AreaId)
|
AreaId := int(req.AreaId)
|
||||||
CostItem := DecorateMod.GetDecorateCostItem(AreaId, DecorateId)
|
CostItem, PetExp := DecorateMod.GetDecorateCostItem(AreaId, DecorateId)
|
||||||
err := player.HandleItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具
|
err := player.HandleItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResDecorate{
|
player.SendErrClienRes(&msg.ResDecorate{
|
||||||
@ -431,8 +431,7 @@ func ReqDecorate(player *Player, buf []byte) error {
|
|||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
_, err = player.GetPlayerBaseMod().AddExp(player, 10, PetExp)
|
||||||
_, err = player.GetPlayerBaseMod().AddExp(player, 10, 0)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResDecorate{
|
player.SendErrClienRes(&msg.ResDecorate{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
@ -480,7 +479,7 @@ func ReqDecorateAll(player *Player, buf []byte) error {
|
|||||||
return errors.New("等级不足")
|
return errors.New("等级不足")
|
||||||
}
|
}
|
||||||
PlayerBaseMod := player.GetPlayerBaseMod()
|
PlayerBaseMod := player.GetPlayerBaseMod()
|
||||||
CostItem, AddItem, DecorateNum, DecorateList, Log := DecorateMod.DecorateAll(PlayerBaseMod.GetStar())
|
CostItem, AddItem, DecorateNum, DecorateList, Log, PetExp := DecorateMod.DecorateAll(PlayerBaseMod.GetStar())
|
||||||
err := player.HandleItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具
|
err := player.HandleItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResDecorateAll{
|
player.SendErrClienRes(&msg.ResDecorateAll{
|
||||||
@ -499,7 +498,7 @@ func ReqDecorateAll(player *Player, buf []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = player.GetPlayerBaseMod().AddExp(player, 10*DecorateNum, 0)
|
_, err = player.GetPlayerBaseMod().AddExp(player, 10*DecorateNum, PetExp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResDecorateAll{
|
player.SendErrClienRes(&msg.ResDecorateAll{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
|||||||
@ -48,12 +48,13 @@ func (d *Decorate) Decorate(areaId int, decorateId int) ([]*item.Item, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取装饰消耗
|
// 获取装饰消耗
|
||||||
func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int) []*item.Item {
|
func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int) ([]*item.Item, int) {
|
||||||
Item := decorateCfg.GetStarCost(AreaId, DecorateId)
|
Item := decorateCfg.GetStarCost(AreaId, DecorateId)
|
||||||
return []*item.Item{item.NewItem(item.ITEM_STAR_ID, -Item)}
|
PetExp := decorateCfg.GetDecoratePExp(AreaId, DecorateId)
|
||||||
|
return []*item.Item{item.NewItem(item.ITEM_STAR_ID, -Item)}, PetExp
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Decorate) DecorateAll(Star int) ([]*item.Item, []*item.Item, int, []int, []interface{}) {
|
func (d *Decorate) DecorateAll(Star int) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) {
|
||||||
DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId)
|
DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId)
|
||||||
SubAlice := GoUtil.SubSlices(DecorateAll, GoUtil.MapIntToIntSlice(d.FinishList))
|
SubAlice := GoUtil.SubSlices(DecorateAll, GoUtil.MapIntToIntSlice(d.FinishList))
|
||||||
sort.Ints(SubAlice)
|
sort.Ints(SubAlice)
|
||||||
@ -62,8 +63,8 @@ func (d *Decorate) DecorateAll(Star int) ([]*item.Item, []*item.Item, int, []int
|
|||||||
DecorateList := make([]int, 0)
|
DecorateList := make([]int, 0)
|
||||||
Log := make([]interface{}, 0)
|
Log := make([]interface{}, 0)
|
||||||
Num := 0
|
Num := 0
|
||||||
|
PetExp := 0
|
||||||
for _, v := range SubAlice {
|
for _, v := range SubAlice {
|
||||||
|
|
||||||
NeedStar := decorateCfg.GetStarCost(d.AreaId, v)
|
NeedStar := decorateCfg.GetStarCost(d.AreaId, v)
|
||||||
if Star < NeedStar {
|
if Star < NeedStar {
|
||||||
break
|
break
|
||||||
@ -89,6 +90,7 @@ func (d *Decorate) DecorateAll(Star int) ([]*item.Item, []*item.Item, int, []int
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
PetExp += decorateCfg.GetDecoratePExp(d.AreaId, v)
|
||||||
AddItem = append(AddItem, Item...)
|
AddItem = append(AddItem, Item...)
|
||||||
DecorateList = append(DecorateList, v)
|
DecorateList = append(DecorateList, v)
|
||||||
}
|
}
|
||||||
@ -99,7 +101,7 @@ func (d *Decorate) DecorateAll(Star int) ([]*item.Item, []*item.Item, int, []int
|
|||||||
d.FinishList = make(map[int]struct{})
|
d.FinishList = make(map[int]struct{})
|
||||||
}
|
}
|
||||||
|
|
||||||
return []*item.Item{item.NewItem(item.ITEM_STAR_ID, -SubItem)}, AddItem, Num, DecorateList, Log
|
return []*item.Item{item.NewItem(item.ITEM_STAR_ID, -SubItem)}, AddItem, Num, DecorateList, Log, PetExp
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取装饰信息
|
// 获取装饰信息
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user