Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev

This commit is contained in:
meixiongfeng 2022-07-25 15:55:56 +08:00
commit 09572897b6
10 changed files with 50 additions and 46 deletions

View File

@ -29,7 +29,7 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }

View File

@ -27,7 +27,7 @@ func (this *apiComp) Lock(session comm.IUserSession, req *pb.HeroLockReq) (code
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.Heroid) _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.Heroid)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }

View File

@ -25,15 +25,17 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
_hero *pb.DBHero _hero *pb.DBHero
_costHero *pb.DBHero _costHero *pb.DBHero
changeHero []*pb.DBHero // 变化的英雄数据 changeHero []*pb.DBHero // 变化的英雄数据
_costMaphero map[string]*pb.DBHero
) )
changeHero = make([]*pb.DBHero, 0) changeHero = make([]*pb.DBHero, 0)
szCostHero = make(map[string]int32, 0) szCostHero = make(map[string]int32, 0)
_costMaphero = make(map[string]*pb.DBHero, 0)
code = this.ResonanceCheck(session, req) // check code = this.ResonanceCheck(session, req) // check
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在 _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
@ -54,16 +56,11 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
for k, v := range szCostHero { for k, v := range szCostHero {
for _, v1 := range resonConfig.Heroneed { for _, v1 := range resonConfig.Heroneed {
if v1.A == comm.HeroType { if v1.A == comm.HeroType {
totalCostCard += 1 totalCostCard += 1
} }
//value, err := strconv.Atoi(v1.T)
// if err != nil { // 不能转成英雄配置ID 说明配置出错 _costHero, code = this.module.GetHeroByObjID(session.GetUserId(), k) // 查询消耗卡是否存在
// code = pb.ErrorCode_ConfigurationException
// return
// }
_costHero, code = this.module.GetHero(session.GetUserId(), k) // 查询消耗卡是否存在
if code != pb.ErrorCode_Success { // 英雄被锁不能消耗 if code != pb.ErrorCode_Success { // 英雄被锁不能消耗
return return
} }
@ -74,6 +71,7 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
code = pb.ErrorCode_HeroNoEnough code = pb.ErrorCode_HeroNoEnough
return return
} }
_costMaphero[k] = _costHero
} }
} }
@ -82,12 +80,12 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
return return
} }
for k, v := range szCostHero { for k, v := range szCostHero {
_delhero, c := this.module.DelCard(session.GetUserId(), k, v) c := this.module.DelCard(session.GetUserId(), _costMaphero[k], v)
if c != pb.ErrorCode_Success { if c != pb.ErrorCode_Success {
code = c code = c
return return
} }
changeHero = append(changeHero, _delhero) changeHero = append(changeHero, _costMaphero[k])
} }
resonConfig, err1 := this.module.configure.GetHeroResonanceConfig(_hero.HeroID) resonConfig, err1 := this.module.configure.GetHeroResonanceConfig(_hero.HeroID)

View File

@ -27,7 +27,7 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在 _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroNoExist
return return

View File

@ -26,7 +26,7 @@ func (this *apiComp) ResonanceUseEnergy(session comm.IUserSession, req *pb.HeroR
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在 _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }

View File

@ -39,11 +39,11 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在 _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_costHero, code = this.module.GetHero(session.GetUserId(), req.CostCardObj) // 查询消耗卡是否存在 _costHero, code = this.module.GetHeroByObjID(session.GetUserId(), req.CostCardObj) // 查询消耗卡是否存在
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
@ -125,12 +125,12 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
return return
} }
// 扣除材料 // 扣除材料
delcard, c := this.module.DelCard(session.GetUserId(), req.CostCardObj, 1) c := this.module.DelCard(session.GetUserId(), _costHero, 1)
if c != pb.ErrorCode_Success { if c != pb.ErrorCode_Success {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{delcard}}) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_costHero}})
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 m, err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
if err1 != nil { if err1 != nil {
this.module.Errorf("PushHeroProperty err!") this.module.Errorf("PushHeroProperty err!")

View File

@ -42,8 +42,10 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
bCheckNeedhero bool // 指定英雄校验 bCheckNeedhero bool // 指定英雄校验
bCheckRacehero bool // 种族英雄校验 bCheckRacehero bool // 种族英雄校验
chanegCard []*pb.DBHero // 变化的英雄数据 chanegCard []*pb.DBHero // 变化的英雄数据
CostHeroObj map[string]*pb.DBHero // 所有消耗英雄分类
) )
mapCostHero = make(map[string]int32, 0) mapCostHero = make(map[string]int32, 0)
CostHeroObj = make(map[string]*pb.DBHero, 0)
for _, v := range req.Hero { for _, v := range req.Hero {
mapCostHero[v.CostCardObj] += v.Amount mapCostHero[v.CostCardObj] += v.Amount
costNeedHeroCount += v.Amount costNeedHeroCount += v.Amount
@ -57,7 +59,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
@ -95,7 +97,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
} }
// 遍历所有消耗英雄 // 遍历所有消耗英雄
for k, v := range mapCostHero { for k, v := range mapCostHero {
if tagHero, code = this.module.GetHero(session.GetUserId(), k); code != pb.ErrorCode_Success { // 没有这个英雄 if tagHero, code = this.module.GetHeroByObjID(session.GetUserId(), k); code != pb.ErrorCode_Success { // 没有这个英雄
return return
} else { } else {
if tagHero.Block { // 锁定的卡不允许被消耗 if tagHero.Block { // 锁定的卡不允许被消耗
@ -123,6 +125,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
} }
this.module.Debugf("指定英雄校验结果:%b,种族英雄校验结果:%b", bCheckNeedhero, bCheckRacehero) this.module.Debugf("指定英雄校验结果:%b,种族英雄校验结果:%b", bCheckNeedhero, bCheckRacehero)
} }
CostHeroObj[k] = tagHero
} }
if !bCheckRacehero || !bCheckNeedhero { if !bCheckRacehero || !bCheckNeedhero {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
@ -144,13 +147,13 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
return return
} }
for k, v := range mapCostHero { for k, v := range mapCostHero {
_delcard, c := this.module.DelCard(session.GetUserId(), k, v) c := this.module.DelCard(session.GetUserId(), CostHeroObj[k], v)
if c != pb.ErrorCode_Success { if c != pb.ErrorCode_Success {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
this.module.Errorf("del hero err card:%s,count = %d", k, v) this.module.Errorf("del hero err card:%s,count = %d", k, v)
return return
} }
chanegCard = append(chanegCard, _delcard) chanegCard = append(chanegCard, CostHeroObj[k])
} }
_hero.Star += 1 _hero.Star += 1
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{

View File

@ -33,12 +33,13 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
addExp int32 // 需要增加的经验 addExp int32 // 需要增加的经验
costGold int32 // 需要消耗的资源 costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄 _hero *pb.DBHero // 目标英雄
_expHero *pb.DBHero // 消耗英雄 _costExpHero map[string]*pb.DBHero // 消耗英雄
minAddExp int32 minAddExp int32
_changeHero []*pb.DBHero // 变化的英雄 _changeHero []*pb.DBHero // 变化的英雄
iLvUp int32 // 当前升级次数 iLvUp int32 // 当前升级次数
_mapCost map[string]int32 _mapCost map[string]int32 //
) )
_costExpHero = make(map[string]*pb.DBHero, 0)
_mapCost = make(map[string]int32, 0) _mapCost = make(map[string]int32, 0)
for _, v := range req.ExpCards { // 数组转map for _, v := range req.ExpCards { // 数组转map
_mapCost[v.Key] += v.Value _mapCost[v.Key] += v.Value
@ -47,7 +48,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
@ -57,7 +58,8 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
return return
} }
for k, v := range _mapCost { for k, v := range _mapCost {
_expHero, code = this.module.GetHero(session.GetUserId(), k) // 校验需要消耗经验卡牌的对象是否存在 _expHero, c := this.module.GetHeroByObjID(session.GetUserId(), k) // 校验需要消耗经验卡牌的对象是否存在
code = c
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
@ -85,6 +87,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
} else if minAddExp > expConf.Heroexp { } else if minAddExp > expConf.Heroexp {
minAddExp = expConf.Heroexp // 取出最小的经验卡 minAddExp = expConf.Heroexp // 取出最小的经验卡
} }
_costExpHero[k] = _expHero
} }
if addExp == 0 { if addExp == 0 {
code = pb.ErrorCode_HeroExpTypeErr code = pb.ErrorCode_HeroExpTypeErr
@ -164,14 +167,15 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
return return
} }
// 删除经验卡 // 删除经验卡
for k, v := range _mapCost { for k, v := range _mapCost {
costHero, err1 := this.module.modelHero.consumeHeroCard(session.GetUserId(), k, v) err1 := this.module.modelHero.consumeHeroCard(session.GetUserId(), _costExpHero[k], v)
if err1 != nil { if err1 != nil {
code = pb.ErrorCode_HeroNoEnough code = pb.ErrorCode_HeroNoEnough
this.module.Errorf("delete err failed err:%T!", err1) this.module.Errorf("delete err failed err:%T!", err1)
return return
} }
_changeHero = append(_changeHero, costHero) _changeHero = append(_changeHero, _costExpHero[k])
} }
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 m, err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化

View File

@ -209,12 +209,11 @@ func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero {
} }
//消耗英雄卡 (只需要传heroid即可) //消耗英雄卡 (只需要传heroid即可)
func (this *ModelHero) consumeHeroCard(uid, heroId string, count int32) (hero *pb.DBHero, err error) { func (this *ModelHero) consumeHeroCard(uid string, hero *pb.DBHero, count int32) (err error) {
if count == 0 { if count == 0 {
return return
} }
hero = this.getOneHero(uid, heroId)
if hero == nil { if hero == nil {
err = errors.New("hero no exist") err = errors.New("hero no exist")
return return
@ -224,18 +223,18 @@ func (this *ModelHero) consumeHeroCard(uid, heroId string, count int32) (hero *p
err = errors.New("hero card no enough") err = errors.New("hero card no enough")
return return
} }
hero.SameCount -= count hero.SameCount -= count // 数量-1
if hero.SameCount == 0 { if hero.SameCount == 0 {
if err := this.moduleHero.modelHero.DelListlds(uid, heroId); err != nil { if err := this.moduleHero.modelHero.DelListlds(uid, hero.Id); err != nil {
this.moduleHero.Errorf("%v", err) this.moduleHero.Errorf("%v", err)
} }
} else { } else {
update := map[string]interface{}{ update := map[string]interface{}{
"sameCount": hero.SameCount, "sameCount": hero.SameCount,
} }
err = this.modifyHeroData(uid, heroId, update) err = this.modifyHeroData(uid, hero.Id, update)
} }
this.moduleHero.Debugf("删除一张卡牌uid:%s,卡牌ID:%s", uid, heroId) this.moduleHero.Debugf("删除一张卡牌uid:%s,卡牌ID:%s", uid, hero.Id)
return return
} }

View File

@ -49,7 +49,7 @@ func (this *Hero) CreateRepeatHero(uid string, heroCfgId string, num int32) (*pb
} }
//获取英雄 //获取英雄
func (this *Hero) GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode) { func (this *Hero) GetHeroByObjID(uid, heroId string) (*pb.DBHero, pb.ErrorCode) {
hero := this.modelHero.getOneHero(uid, heroId) hero := this.modelHero.getOneHero(uid, heroId)
if hero == nil { if hero == nil {
return nil, pb.ErrorCode_HeroNoExist return nil, pb.ErrorCode_HeroNoExist
@ -203,11 +203,11 @@ func (this *Hero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhero *p
} }
// 删除指定卡牌 // 删除指定卡牌
func (this *Hero) DelCard(udi string, cardid string, amount int32) (hero *pb.DBHero, code pb.ErrorCode) { func (this *Hero) DelCard(udi string, hero *pb.DBHero, amount int32) (code pb.ErrorCode) {
var ( var (
err error err error
) )
hero, err = this.modelHero.consumeHeroCard(udi, cardid, amount) err = this.modelHero.consumeHeroCard(udi, hero, amount)
if err != nil { if err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return