英雄属性测试优化
This commit is contained in:
parent
0ba8c286ed
commit
336f252f62
@ -24,7 +24,7 @@ import (
|
||||
9、bingo:season,10 赛季塔层数
|
||||
10、bingo:viking // 解锁维京所有难度
|
||||
11、bingo:hunting // 解锁狩猎所有难度
|
||||
12、bingo:mainline,11001 // 难度 id
|
||||
12、bingo:mainline,1100104 // mainstage 关卡ID
|
||||
13、bingo:moon,1 // 触发月之秘境
|
||||
14、bingo:arena,100 // 设置竞技场用户积分
|
||||
15、bingo:sociatyexp,100 // 设置工会经验
|
||||
@ -38,7 +38,7 @@ import (
|
||||
21、bingo:allequip
|
||||
21、bingo:chat,1
|
||||
22、bingo:itemtype,1,1 // 获取某种类型所有道具(道具类型,数量)
|
||||
18、bingo:viplv,50
|
||||
23、bingo:viplv,50
|
||||
*/
|
||||
//参数校验
|
||||
func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) {
|
||||
|
@ -90,16 +90,11 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
}
|
||||
_heroMap["normalSkill"] = _hero.NormalSkill
|
||||
} else { // 加属性
|
||||
value, err := strconv.Atoi(awakenData.Phasebonus[1])
|
||||
if err == nil {
|
||||
if value > 0 {
|
||||
this.module.modelHero.setJuexingProperty(_hero, awakenData.Phasebonus[0], int32(value))
|
||||
_heroMap["juexProperty"] = _hero.JuexProperty
|
||||
}
|
||||
}
|
||||
this.module.modelHero.resetJuexingProperty(_hero)
|
||||
}
|
||||
_hero.JuexingLv += 1
|
||||
_heroMap["juexingLv"] = _hero.JuexingLv
|
||||
_heroMap["juexProperty"] = _hero.JuexProperty
|
||||
// 保存数据
|
||||
err := this.module.modelHero.ChangeList(session.GetUserId(), _hero.Id, _heroMap)
|
||||
if err != nil {
|
||||
|
@ -159,8 +159,8 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
/////
|
||||
this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
|
||||
//this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
ChangeList = append(ChangeList, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
|
||||
session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
|
||||
|
@ -13,6 +13,7 @@ import (
|
||||
"math"
|
||||
"math/big"
|
||||
"reflect"
|
||||
"strconv"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
@ -252,6 +253,41 @@ func (this *ModelHero) getHeroList(uid string) []*pb.DBHero {
|
||||
return heroes
|
||||
}
|
||||
|
||||
// 重置觉醒属性
|
||||
func (this *ModelHero) resetJuexingProperty(hero *pb.DBHero) {
|
||||
hero.JuexProperty = make(map[string]int32)
|
||||
for i := 1; i <= int(hero.JuexingLv); i++ {
|
||||
awakenData := this.moduleHero.configure.GetHeroAwakenConfig(hero.HeroID, int32(i))
|
||||
if awakenData != nil {
|
||||
if len(awakenData.Phasebonus) != 2 {
|
||||
continue
|
||||
}
|
||||
key := awakenData.Phasebonus[0]
|
||||
value, err := strconv.Atoi(awakenData.Phasebonus[1])
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
case comm.Hp:
|
||||
hero.JuexProperty[comm.Hp] += int32(value)
|
||||
case comm.Def:
|
||||
hero.JuexProperty[comm.Def] += int32(value)
|
||||
case comm.Atk:
|
||||
hero.JuexProperty[comm.Atk] += int32(value)
|
||||
case comm.Speed:
|
||||
hero.JuexProperty[comm.Speed] += int32(value)
|
||||
case comm.ResonanceHpPro:
|
||||
hero.JuexProperty[comm.Hp] += int32(math.Floor((float64(value) / 1000) * float64(hero.Property[comm.Hp])))
|
||||
case comm.ResonanceAtkPro:
|
||||
hero.JuexProperty[comm.Atk] += int32(math.Floor((float64(value) / 1000) * float64(hero.Property[comm.Atk])))
|
||||
case comm.ResonanceDefPro:
|
||||
hero.JuexProperty[comm.Def] += int32(math.Floor((float64(value) / 1000) * float64(hero.Property[comm.Def])))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 觉醒
|
||||
func (this *ModelHero) setJuexingProperty(hero *pb.DBHero, key string, value int32) {
|
||||
switch key {
|
||||
@ -474,9 +510,9 @@ func (this *ModelHero) PropertyCompute(hero *pb.DBHero) {
|
||||
if growCfg == nil || heroCfg == nil || lvCfg == nil || starCfg == nil || starLvfg == nil {
|
||||
return
|
||||
}
|
||||
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
|
||||
var atk = (this.StarAtkAddition(hero.Star) + lvCfg.Atk + float32(growCfg.Atk)) * (growCfg.Atkgrow / 1000.0)
|
||||
var def = (this.StarDefAddition(hero.Star) + lvCfg.Def + float32(growCfg.Def)) * (growCfg.Defgrow / 1000.0)
|
||||
var hp = (this.StarHpAddition(hero.Star) + lvCfg.Hp + float32(growCfg.Hp)) * (growCfg.Hpgrow / 1000.0)
|
||||
speed := growCfg.Speed
|
||||
hero.Property = map[string]int32{
|
||||
comm.Hp: int32(math.Floor(float64(hp))),
|
||||
@ -492,6 +528,7 @@ func (this *ModelHero) PropertyCompute(hero *pb.DBHero) {
|
||||
if hero.Id != "" { // objID 为空表示是怪物对象 不享受天赋属性加成
|
||||
this.resetTalentProperty(hero)
|
||||
}
|
||||
this.resetJuexingProperty(hero)
|
||||
}
|
||||
|
||||
//重新计算英雄属性
|
||||
@ -500,6 +537,7 @@ func (this *ModelHero) ChangeHeroProperty(session comm.IUserSession, hero *pb.DB
|
||||
update := map[string]interface{}{
|
||||
"property": hero.Property,
|
||||
"talentProperty": hero.TalentProperty,
|
||||
"juexProperty": hero.JuexProperty,
|
||||
}
|
||||
|
||||
if err = this.ChangeList(session.GetUserId(), hero.Id, update); err != nil {
|
||||
|
@ -175,7 +175,18 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MlineChall
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 加主角经验
|
||||
// if stageConf.Exp > 0 {
|
||||
// res := make([]*cfg.Gameatn, 0)
|
||||
// res = append(res, &cfg.Gameatn{
|
||||
// A: "attr",
|
||||
// T: "exp",
|
||||
// N: stageConf.Exp,
|
||||
// })
|
||||
// if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success {
|
||||
// this.module.Debugf("Mline Commonaward DispenseRes err:+%v", res)
|
||||
// }
|
||||
// }
|
||||
// 加英雄经验
|
||||
if stageConf.HeroExp > 0 {
|
||||
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
|
@ -92,6 +92,10 @@ func (this *Mline) CheckPoint(uid string) bool {
|
||||
// 参数 难度 + 章节id
|
||||
func (this *Mline) ModifyMlineDataByNanduID(session comm.IUserSession, id int32) (code pb.ErrorCode) {
|
||||
var del []string
|
||||
connf := this.configure.GetMainStageConf(id)
|
||||
if connf == nil {
|
||||
return
|
||||
}
|
||||
list, err := this.modelMline.getMainlineList(session.GetUserId())
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
@ -103,10 +107,6 @@ func (this *Mline) ModifyMlineDataByNanduID(session comm.IUserSession, id int32)
|
||||
// 清除
|
||||
this.modelMline.cleanChapterDataById(session.GetUserId(), del...)
|
||||
|
||||
connf := this.configure.GetMainStageConf(id)
|
||||
if connf == nil {
|
||||
return
|
||||
}
|
||||
_data := this.configure.GetAllChapterID()
|
||||
for _, v := range _data {
|
||||
if v <= connf.Chapterid {
|
||||
|
Loading…
Reference in New Issue
Block a user