diff --git a/comm/imodule.go b/comm/imodule.go index 63b7321e5..08b7913e7 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -663,5 +663,8 @@ type ( // 跨服接口 通过 服务器标签和唯一id 获取坐骑信息 QueryDragonByTagAndOid(tag string, objId []string) (dragon []*pb.DBDragon, err error) + + // Gm 调整龙的等级 + GMModifyDragonLv(uid string, cid string, lv int32) (dragon *pb.DBDragon, err error) } ) diff --git a/modules/dragon/module.go b/modules/dragon/module.go index 8c55c2311..bd1459aef 100644 --- a/modules/dragon/module.go +++ b/modules/dragon/module.go @@ -165,3 +165,35 @@ func (this *Dragon) QueryDragonByTagAndOid(tag string, objId []string) (dragon [ } return } + +// gm 修改龙等级 +func (this *Dragon) GMModifyDragonLv(uid string, cid string, lv int32) (dragon *pb.DBDragon, err error) { + dragons, _ := this.modelDragon.GetDragonList(uid) + for _, v := range dragons { + if v.Dragonid == cid { + update := make(map[string]interface{}, 0) + v.Lv = lv + if conf, err := this.configure.GetDragonConfById(cid, lv); err == nil { + if c, err := this.configure.GetDragonMount(cid, conf.Type); err == nil { + dragon.Property["stime"] = c.Stime + dragon.Property["etime"] = c.Etime + dragon.Property["hp"] = c.Hp + dragon.Property["moderate"] = c.Moderate + dragon.Property["sprint"] = c.Sprint + dragon.Property["acceleration"] = c.Acceleration + dragon.Property["deceleration"] = c.Deceleration + dragon.Property["caddtime"] = c.Caddtime + dragon.Property["csubtime"] = c.Csubtime + update["property"] = dragon.Property + } + } + update["lv"] = lv + this.modelDragon.UpdateDragonData(uid, v.Id, update) + dragon = v + return + } + + } + err = fmt.Errorf("not found config:%s", cid) + return +} diff --git a/modules/gm/module.go b/modules/gm/module.go index 8fee0ca02..8928304eb 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -723,6 +723,35 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (errdata *pb.Er log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "0", Value: datas[0]}, ) + + } else if len(datas) == 3 && (datas[0] == "changedragonlv") { + var ( + err error + lv int + ) + + lv, err = strconv.Atoi(datas[2]) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + module1, err := this.service.GetModule(comm.ModuleDragon) + if err != nil { + return + } + + if _, err = module1.(comm.IDragon).GMModifyDragonLv(session.GetUserId(), datas[1], int32(lv)); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: err.Error(), + } + return + } + } else if len(datas) == 2 && (datas[0] == "sociatylv") { var ( lv int