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 {
|
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
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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,17 +56,12 @@ 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
|
if code != pb.ErrorCode_Success { // 英雄被锁不能消耗
|
||||||
// return
|
|
||||||
// }
|
|
||||||
_costHero, code = this.module.GetHero(session.GetUserId(), k) // 查询消耗卡是否存在
|
|
||||||
if code != pb.ErrorCode_Success { // 英雄被锁不能消耗
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if _costHero.Block {
|
if _costHero.Block {
|
||||||
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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!")
|
||||||
|
@ -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{}{
|
||||||
|
@ -28,17 +28,18 @@ func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.Hero
|
|||||||
func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode, data proto.Message) {
|
func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode, data proto.Message) {
|
||||||
|
|
||||||
var (
|
var (
|
||||||
curLv int32
|
curLv int32
|
||||||
curExp int32 // 当前英雄的经验
|
curExp int32 // 当前英雄的经验
|
||||||
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) // 推送属性变化
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user