diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 9099c5f69..c7a3fc906 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -408,6 +408,35 @@ func (this *ModelHero) mergeAddProperty(uid string, hero *pb.DBHero, data map[st } } +func (this *ModelHero) StarAtkAddition(star int32) (addValue float32) { + for i := 1; i <= int(star); i++ { + starCfg := this.moduleHero.configure.GetHeroStar(int32(i)) + cfg := this.moduleHero.configure.GetHeroLv(starCfg.Level) + addValue += cfg.Atk * starCfg.StarupAtk / 1000.0 + } + return addValue +} + +func (this *ModelHero) StarDefAddition(star int32) (addValue float32) { + for i := 1; i <= int(star); i++ { + starCfg := this.moduleHero.configure.GetHeroStar(int32(i)) + cfg := this.moduleHero.configure.GetHeroLv(starCfg.Level) + addValue += cfg.Def * starCfg.StarupDef / 1000.0 + } + return addValue +} + +func (this *ModelHero) StarHpAddition(star int32) (addValue float32) { + for i := 1; i <= int(star); i++ { + starCfg := this.moduleHero.configure.GetHeroStar(int32(i)) + cfg := this.moduleHero.configure.GetHeroLv(starCfg.Level) + + this.moduleHero.Debugf("cfg.Atk= %f,starCfg.StarupHp = %f,addValue= %f", cfg.Atk, starCfg.StarupHp, addValue) + addValue += cfg.Hp * starCfg.StarupHp / 1000.0 + } + return addValue +} + //属性计算 基础属性 //英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数 func (this *ModelHero) PropertyCompute(hero *pb.DBHero) { @@ -419,11 +448,10 @@ func (this *ModelHero) PropertyCompute(hero *pb.DBHero) { if growCfg == nil || heroCfg == nil || lvCfg == nil || starCfg == nil || starLvfg == nil { return } - atk := (starLvfg.Atk*(1+(starCfg.StarupAtk/1000)) + lvCfg.Atk + float32(growCfg.Atk)) * (growCfg.Atkgrow / 1000) - def := (starLvfg.Def*(1+(starCfg.StarupDef/1000)) + lvCfg.Def + float32(growCfg.Def)) * (growCfg.Defgrow / 1000) - hp := (starLvfg.Hp*(1+(starCfg.StarupHp/1000)) + lvCfg.Hp + float32(growCfg.Hp)) * (growCfg.Hpgrow / 1000) + var atk = (this.StarAtkAddition(hero.Star) + lvCfg.Atk + float32(growCfg.Atk)) * (growCfg.Atkgrow / 1000.0) * 1.0 + var def = (this.StarDefAddition(hero.Star) + lvCfg.Def + float32(growCfg.Def)) * (growCfg.Defgrow / 1000.0) * 1.0 + var hp = (this.StarHpAddition(hero.Star) + lvCfg.Hp + float32(growCfg.Hp)) * (growCfg.Hpgrow / 1000.0) * 1.0 speed := growCfg.Speed - hero.Property = map[string]int32{ comm.Hp: int32(math.Floor(float64(hp))), comm.Atk: int32(math.Floor(float64(atk))), diff --git a/modules/troll/api_buyorsell.go b/modules/troll/api_buyorsell.go index 357e832ef..6b19d3fd3 100644 --- a/modules/troll/api_buyorsell.go +++ b/modules/troll/api_buyorsell.go @@ -35,7 +35,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.TrollBuyOrSell return } dayMaxCount := this.configure.GetTrollRule(comm.TrollBuyCount) - aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount) + //aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount) for k, v := range req.Items { if v == 0 { // 过滤数量为0 的消息 @@ -49,7 +49,8 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.TrollBuyOrSell if !bSell { bSell = true trolltrain.SellCount += 1 // 交易次数+1 - if trolltrain.SellCount > aiMaxCount-dayMaxCount { + if trolltrain.AiCount+trolltrain.SellCount >= dayMaxCount { + //if trolltrain.SellCount > aiMaxCount-trolltrain.AiCount { code = pb.ErrorCode_TrollMaxSellCount // 达到最大交易次数 直接返回 return } diff --git a/modules/troll/api_getlist.go b/modules/troll/api_getlist.go index 366ac92cc..235c4e4b6 100644 --- a/modules/troll/api_getlist.go +++ b/modules/troll/api_getlist.go @@ -32,9 +32,9 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq) code = pb.ErrorCode_DBError return } - dayMaxCount := this.configure.GetTrollRule(comm.TrollBuyCount) - aiCount := this.configure.GetTrollRule(comm.TrollAIBuyCount) - if trolltrain.AiCount <= aiCount-dayMaxCount { // 小于离线挂机次数可执行 + dayMaxCount := this.configure.GetTrollRule(comm.TrollBuyCount) // 8 + aiCount := this.configure.GetTrollRule(comm.TrollAIBuyCount) // 10 + if trolltrain.AiCount+trolltrain.SellCount < dayMaxCount { this.module.TrollAI(session, trolltrain, aiCount) } diff --git a/modules/troll/module.go b/modules/troll/module.go index 23067f41e..99afaf158 100644 --- a/modules/troll/module.go +++ b/modules/troll/module.go @@ -71,7 +71,6 @@ func (this *Troll) TrollAI(session comm.IUserSession, troll *pb.DBTrollTrain, ai sellPrice = make(map[int32]int32) now := time.Now().Unix() trainNum := this.configure.GetTrollMaxTraintNum() - dayMaxCount := this.configure.GetTrollRule(comm.TrollBuyCount) maxCoefficient := this.configure.GetTrollMaxCoefficientNux() // 增长幅度的最大值 if maxCoefficient == 0 { code = pb.ErrorCode_ConfigNoFound @@ -122,8 +121,8 @@ func (this *Troll) TrollAI(session comm.IUserSession, troll *pb.DBTrollTrain, ai this.SeTrollRankList(troll.TotalEarn, session.GetUserId()) // 设置排行数据 troll.AiCount++ - - if troll.AiCount > aiCount-dayMaxCount { //达到最大交易次数 + aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount) + if troll.AiCount > aiMaxCount { //达到最大交易次数 break } }