消耗资源接口调用

This commit is contained in:
meixiongfeng 2022-07-04 19:24:21 +08:00
parent 8e08ebf663
commit 0234d141e7
4 changed files with 16 additions and 84 deletions

View File

@ -24,11 +24,7 @@ func (this *apiComp) AwakenCheck(session comm.IUserSession, req *pb.HeroAwakenRe
func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (code pb.ErrorCode, data proto.Message) { func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (code pb.ErrorCode, data proto.Message) {
var ( var (
awakenData *cfg.Game_heroAwakenData awakenData *cfg.Game_heroAwakenData
bCheckOk bool
costRes map[string]int32
) )
costRes = make(map[string]int32, 0)
bCheckOk = true
_hero, err := this.module.GetHero(session.GetUserId(), req.HeroObjID) _hero, err := this.module.GetHero(session.GetUserId(), req.HeroObjID)
if err != pb.ErrorCode_Success { if err != pb.ErrorCode_Success {
@ -59,58 +55,20 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
// 参数校验
for _, v := range awakenData.Phaseneed {
if v.A == "attr" { // 消耗玩家身上资源
curGold := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T)
if curGold < v.N {
bCheckOk = false
break
}
costRes[v.T] = v.N
} else if v.A == "item" { //消耗道具
itemid, err := strconv.Atoi(v.T)
if err != nil {
curCount := this.module.items.QueryItemAmount(nil, session.GetUserId(), int32(itemid))
if curCount < uint32(v.N) {
bCheckOk = false
break
}
}
}
}
if !bCheckOk {
code = pb.ErrorCode_GoldNoEnough
return
}
if _hero == nil || awakenData == nil { if _hero == nil || awakenData == nil {
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroNoExist
return return
} }
for _, v := range awakenData.Phaseneed {
if v.A == "attr" { // 消耗玩家身上资源
if _data, ok := costRes[v.T]; ok {
code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), v.T, _data)
if code != pb.ErrorCode_Success {
return
}
}
} else if v.A == "item" { //消耗道具
itemid, err := strconv.Atoi(v.T)
if err != nil {
code = this.module.items.AddItem(nil, session.GetUserId(), int32(itemid), -v.N)
if code != pb.ErrorCode_Success {
return
}
}
}
}
if len(awakenData.Phasebonus) < 2 { if len(awakenData.Phasebonus) < 2 {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
// 消耗校验
code = this.module.CheckConsumeRes(session.GetUserId(), awakenData.Phaseneed)
if code != pb.ErrorCode_Success {
return
}
// 加属性 awakenData // 加属性 awakenData
_value, ok := strconv.Atoi(awakenData.Phasebonus[0]) _value, ok := strconv.Atoi(awakenData.Phasebonus[0])
if ok == nil { // 升级技能 if ok == nil { // 升级技能

View File

@ -62,16 +62,6 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
} }
} }
} }
// 金币校验
for _, v := range resonConfig.Need {
if v.A == "attr" { // 查询玩家身上资源是否满足
value := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T)
if value < v.N {
code = pb.ErrorCode_ResNoEnough
return
}
}
}
code = this.module.DelCard(req.CostObjID, req.Amount) // 删除材料卡 code = this.module.DelCard(req.CostObjID, req.Amount) // 删除材料卡
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
@ -84,18 +74,12 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
for _, v := range resonConfig.Need { // 消耗校验
if v.A == "attr" { // 查询玩家身上资源是否满足 code = this.module.CheckConsumeRes(session.GetUserId(), resonConfig.Need)
value := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T) if code != pb.ErrorCode_Success {
if value >= v.N { // 直接删除财富 return
code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), v.T, value-v.N) // 扣除资源
break
} else {
code = pb.ErrorCode_ResNoEnough
return
}
}
} }
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{
"resonateNum": _hero.ResonateNum + resonConfig.Energy, "resonateNum": _hero.ResonateNum + resonConfig.Energy,
} }

View File

@ -54,20 +54,10 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
code = pb.ErrorCode_ConfigNoFound // 没找到配置消耗 code = pb.ErrorCode_ConfigNoFound // 没找到配置消耗
return return
} }
for _, v := range _costConfig.Var { // 消耗校验
if v.A == "attr" { code = this.module.CheckConsumeRes(session.GetUserId(), _costConfig.Var)
value := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T) if code != pb.ErrorCode_Success {
if value < v.N { return
code = pb.ErrorCode_ResNoEnough // 资源不足
return
}
}
}
for _, v := range _costConfig.Var {
if v.A == "attr" {
code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), v.T, -v.N) // 扣资源
}
} }
property := make(map[string]int32, 0) property := make(map[string]int32, 0)
property[comm.HpPro] -= _hero.AddProperty[comm.HpPro] property[comm.HpPro] -= _hero.AddProperty[comm.HpPro]

View File

@ -129,12 +129,12 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
} }
// 消耗道具 // 消耗道具
for k, v := range costRes { for k, v := range costRes {
code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), k, int32(curRes[k]-v)) // 减少金币 code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), k, int32(curRes[k]-v)) // 减少金币
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
} }
// 删除经验卡 // 删除经验卡
err1 := this.module.modelHero.consumeOneHeroCard(session.GetUserId(), req.ExpCardID, req.Amount) err1 := this.module.modelHero.consumeOneHeroCard(session.GetUserId(), req.ExpCardID, req.Amount)
if err1 != nil { if err1 != nil {