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 {
return
}
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID)
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success {
return
}

View File

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

View File

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

View File

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

View File

@ -39,11 +39,11 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
return
}
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success {
return
}
_costHero, code = this.module.GetHero(session.GetUserId(), req.CostCardObj) // 查询消耗卡是否存在
_costHero, code = this.module.GetHeroByObjID(session.GetUserId(), req.CostCardObj) // 查询消耗卡是否存在
if code != pb.ErrorCode_Success {
return
}
@ -125,12 +125,12 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
return
}
// 扣除材料
delcard, c := this.module.DelCard(session.GetUserId(), req.CostCardObj, 1)
c := this.module.DelCard(session.GetUserId(), _costHero, 1)
if c != pb.ErrorCode_Success {
code = pb.ErrorCode_DBError
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) // 推送属性变化
if err1 != nil {
this.module.Errorf("PushHeroProperty err!")

View File

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

View File

@ -33,12 +33,13 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
addExp int32 // 需要增加的经验
costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄
_expHero *pb.DBHero // 消耗英雄
_costExpHero map[string]*pb.DBHero // 消耗英雄
minAddExp int32
_changeHero []*pb.DBHero // 变化的英雄
iLvUp int32 // 当前升级次数
_mapCost map[string]int32
_mapCost map[string]int32 //
)
_costExpHero = make(map[string]*pb.DBHero, 0)
_mapCost = make(map[string]int32, 0)
for _, v := range req.ExpCards { // 数组转map
_mapCost[v.Key] += v.Value
@ -47,7 +48,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if code != pb.ErrorCode_Success {
return
}
_hero, code = this.module.GetHero(session.GetUserId(), req.HeroObjID)
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success {
return
}
@ -57,7 +58,8 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
return
}
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 {
return
}
@ -85,6 +87,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
} else if minAddExp > expConf.Heroexp {
minAddExp = expConf.Heroexp // 取出最小的经验卡
}
_costExpHero[k] = _expHero
}
if addExp == 0 {
code = pb.ErrorCode_HeroExpTypeErr
@ -164,14 +167,15 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
return
}
// 删除经验卡
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 {
code = pb.ErrorCode_HeroNoEnough
this.module.Errorf("delete err failed err:%T!", err1)
return
}
_changeHero = append(_changeHero, costHero)
_changeHero = append(_changeHero, _costExpHero[k])
}
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即可)
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 {
return
}
hero = this.getOneHero(uid, heroId)
if hero == nil {
err = errors.New("hero no exist")
return
@ -224,18 +223,18 @@ func (this *ModelHero) consumeHeroCard(uid, heroId string, count int32) (hero *p
err = errors.New("hero card no enough")
return
}
hero.SameCount -= count
hero.SameCount -= count // 数量-1
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)
}
} else {
update := map[string]interface{}{
"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
}

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)
if hero == nil {
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 (
err error
)
hero, err = this.modelHero.consumeHeroCard(udi, cardid, amount)
err = this.modelHero.consumeHeroCard(udi, hero, amount)
if err != nil {
code = pb.ErrorCode_DBError
return