Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
09572897b6
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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!")
|
||||
|
@ -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{}{
|
||||
|
@ -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) // 推送属性变化
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user