diff --git a/modules/robot/configure.go b/modules/robot/configure.go index 47303f61e..1f1e43969 100644 --- a/modules/robot/configure.go +++ b/modules/robot/configure.go @@ -28,6 +28,8 @@ const ( game_pagoda = "game_pagoda.json" hero_talent = "game_herotalent.json" // 天赋详细数据 game_playerlv = "game_playerlv.json" + + hero_awaken = "game_heroawaken.json" ) type configureComp struct { @@ -48,6 +50,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp configure.RegisterConfigure(equip_suit, cfg.NewGameEquipSuit, nil) configure.RegisterConfigure(hero_talent, cfg.NewGameHeroTalent, nil) configure.RegisterConfigure(game_playerlv, cfg.NewGamePlayerlv, nil) + configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, nil) // 觉醒 return } diff --git a/modules/robot/modulerobot_hero.go b/modules/robot/modulerobot_hero.go index f57ca94f7..7641d2262 100644 --- a/modules/robot/modulerobot_hero.go +++ b/modules/robot/modulerobot_hero.go @@ -179,6 +179,42 @@ func (this *ModuleRobot_Hero) DoTask(robot IRobot, taskconf *cfg.GameWorldTaskDa err = errors.New(fmt.Sprintf("code:%d message:%s", errdata.Code, errdata.Message)) return } + case comm.Rtype25: // 升星 + req := &pb.HeroStrengthenUpStarReq{} + for _, v := range this.heros { + if v.HeroID == string(condconf.Filter[0]) { // 找到指定英雄ID + req.HeroObjID = v.Id + } + break + } + + if _, errdata = robot.SendTaskMessage(taskconf.Key, condconf.Id, "hero", "strengthenupstar", req); errdata != nil { + err = errors.New(fmt.Sprintf("code:%d message:%s", errdata.Code, errdata.Message)) + return + } + case comm.Rtype34: // 觉醒 + + req := &pb.HeroAwakenReq{} + for _, v := range this.heros { + if int(v.JuexingLv) > 1 && int(v.JuexingLv) < len(this.GetHeroAwalenConf(v.HeroID)) { // 优先找觉醒大于1 并且没有满觉醒的英雄 + req.HeroObjID = v.Id + break + } + if len(this.GetHeroAwalenConf(v.HeroID)) == int(v.JuexingLv) { // 满觉醒了就找下一个 + continue + } + + req.HeroObjID = v.Id + break + } + if req.HeroObjID == "" { + err = errors.New(fmt.Sprintf("code:%d message:not found hero", errdata.Code)) + return + } + if _, errdata = robot.SendTaskMessage(taskconf.Key, condconf.Id, "hero", "awaken", req); errdata != nil { + err = errors.New(fmt.Sprintf("code:%d message:%s", errdata.Code, errdata.Message)) + return + } } return } @@ -233,7 +269,6 @@ func (this *ModuleRobot_Hero) GMGetTalentByHeroId(hid string) (data []*cfg.GameH if len(data) == 0 { err = comm.NewNotFoundConfErr("robot", hero_talent, hid) } - return } @@ -253,3 +288,16 @@ func (this *ModuleRobot_Hero) GetPlayerlvConf(lv int32) (data *cfg.GamePlayerlvD } return } +func (this *ModuleRobot_Hero) GetHeroAwalenConf(hid string) (data []*cfg.GameHeroAwakenData) { + data = make([]*cfg.GameHeroAwakenData, 0) + if v, err := configure.GetConfigure(hero_awaken); err == nil { + if _configure, ok := v.(*cfg.GameHeroAwaken); ok { + for _, v := range _configure.GetDataList() { + if v.Hid == hid { + data = append(data, v) + } + } + } + } + return +}