diff --git a/comm/imodule.go b/comm/imodule.go index 6df2d9b0a..3a5ba0001 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -259,6 +259,8 @@ type ( GMGetAllEquip(session IUserSession, ismaxlv bool) (errdata *pb.ErrorData) //创建最高名字装备 NewMaxQualityEquipment(session IUserSession, cid []string) (eruips []*pb.DB_Equipment, errdata *pb.ErrorData) + //自定义装备 + GMGetCustomizeEquip(session IUserSession, id string, lv int32, attribute int32, num int32) (errdata *pb.ErrorData) } //任务 diff --git a/modules/equipment/modelEquipment.go b/modules/equipment/modelEquipment.go index 133164946..62bc33adf 100644 --- a/modules/equipment/modelEquipment.go +++ b/modules/equipment/modelEquipment.go @@ -313,7 +313,7 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData Value: mattr[index].Attr.N, BaseValue: mattr[index].Attr.N, } - if sattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(mattr) == 0 { + if sattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(sattr) == 0 { return } @@ -334,16 +334,6 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData } } satterNum = conf.Addattrnum[comm.GetRandW(weight)] - // for _, v := range weight { - // total += int64(v) - // } - // result, _ := rand.Int(rand.Reader, big.NewInt(total)) - // for i, v := range weight { - // if int32(result.Int64()) <= v { - // satterNum = conf.Addattrnum[i] - // break - // } - // } if satterNum > int32(len(sattr)) { satterNum = int32(len(sattr)) } @@ -402,11 +392,6 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData func (this *modelEquipmentComp) upgradeEquipment(equipment *pb.DB_Equipment, equip *cfg.GameEquipData, intensify *cfg.GameEquipIntensifyData) (err error) { equipment.Lv++ equipment.MainEntry.Lv++ - // var mainconfigure *cfg.GameEquipAttrlibrarySData - // if mainconfigure, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(equipment.MainEntry.Id); err != nil { - // this.module.Errorf("升级服务错误 读取主词条配置错误!") - // return - // } equipment.MainEntry.Value = equipment.MainEntry.BaseValue + int32(math.Floor(float64(equipment.MainEntry.BaseValue*intensify.Bonus)/1000.0)) if intensify.Activation { //不触发副词条变化 if len(equipment.AdverbEntry) < 4 { //去随机副词条 @@ -533,7 +518,7 @@ func (this *modelEquipmentComp) newMaxEquipment(uid string, conf *cfg.GameEquipD BaseValue: mattr[index].Attr.N, } equipment.MainEntry.Value = equipment.MainEntry.BaseValue + int32(math.Floor(float64(equipment.MainEntry.BaseValue*intensify.Bonus)/1000.0)) - if sattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(mattr) == 0 { + if sattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(sattr) == 0 { return } @@ -586,3 +571,111 @@ func (this *modelEquipmentComp) newMaxEquipment(uid string, conf *cfg.GameEquipD } return } + +// 自定义装备 +func (this *modelEquipmentComp) newCustomizeEquipment(uid string, eid string, lv int32, attribute int32) (equipment *pb.DB_Equipment, err error) { + var ( + conf *cfg.GameEquipData + mattr *cfg.GameEquipAttrlibrarySData + sattr []*cfg.GameEquipAttrlibrarySData + equipatt *cfg.GameEquipAttributeData + intensify *cfg.GameEquipIntensifyData + maxindex int + satterNum int32 + ) + equipment = &pb.DB_Equipment{ + Id: primitive.NewObjectID().Hex(), + CId: eid, + Lv: 1, + UId: uid, + OverlayNum: 1, + IsInitialState: false, + } + if conf, err = this.module.configure.GetEquipmentConfigureById(eid); err != nil { + err = fmt.Errorf("no found eid%s", eid) + return + } + if mattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(attribute); err != nil { + err = fmt.Errorf("no found mattr%d", attribute) + this.module.Errorln(err) + return + } + + equipment.MainEntry = &pb.EquipmentAttributeEntry{ + Id: mattr.Key, + Libraryid: mattr.Libraryid, + Lv: 1, + AttrName: mattr.Attr.A, + Value: mattr.Attr.N, + BaseValue: mattr.Attr.N, + } + if sattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(sattr) == 0 { + return + } + + for i, v := range sattr { //移除主属性 + if v.Attr.A == equipment.MainEntry.AttrName { + sattr = append(sattr[0:i], sattr[i+1:]...) + break + } + } + + maxindex = 0 + for i, v := range conf.Addattrnump { + if v > 0 && i > maxindex { + maxindex = i + } + } + satterNum = conf.Addattrnum[maxindex] + if satterNum > int32(len(sattr)) { + satterNum = int32(len(sattr)) + } + + if satterNum > 0 && satterNum <= 4 { + equipment.Star = satterNum + + if conf.EquipId == 1 { + equipment.AdverbEntry = make([]*pb.EquipmentAttributeEntry, 0) + for _, v := range comm.RandShuffle(len(sattr))[:satterNum] { + equipment.AdverbEntry = append(equipment.AdverbEntry, &pb.EquipmentAttributeEntry{ + Id: sattr[v].Key, + Libraryid: sattr[v].Libraryid, + Lv: 1, + AttrName: sattr[v].Attr.A, + Value: sattr[v].Attr.N, + BaseValue: sattr[v].Attr.N, + }) + } + } else { + equipment.Adverbskill = make([]*pb.EquipmentSkillEntry, 0) + for _, v := range comm.RandShuffle(len(sattr))[:satterNum] { + if equipatt, err = this.module.configure.getEquipAttribute(sattr[v].Skill); err != nil { // 看 + return + } + if equipatt.SkillId == 0 { + err = fmt.Errorf("equipatt:%d skill is 0", sattr[v].Attr.A) + return + } + equipment.Adverbskill = append(equipment.Adverbskill, &pb.EquipmentSkillEntry{ + Id: sattr[v].Key, + Libraryid: sattr[v].Libraryid, + AttrName: sattr[v].Attr.A, + SkillId: equipatt.SkillId, + Lv: 1, + }) + } + } + } + for i := int32(0); i < lv; i++ { + if intensify, err = this.module.configure.GetEquipmentIntensifyConfigureById(conf.EquipId, conf.Color, equipment.Lv); err != nil { + this.module.Errorln(err) + return + } + if len(intensify.Need) > 0 { + if err = this.upgradeEquipment(equipment, conf, intensify); err != nil { + return + } + } + } + return +} diff --git a/modules/equipment/module.go b/modules/equipment/module.go index fe2e04c0c..da2d2244f 100644 --- a/modules/equipment/module.go +++ b/modules/equipment/module.go @@ -731,6 +731,32 @@ func (this *Equipment) GMGetAllEquip(session comm.IUserSession, ismaxlv bool) (e return } +/* +GM 命令接口 +获取全部装备 +*/ +func (this *Equipment) GMGetCustomizeEquip(session comm.IUserSession, id string, lv int32, attribute int32, num int32) (errdata *pb.ErrorData) { + var ( + err error + equipment *pb.DB_Equipment + equips []*pb.DB_Equipment + ) + for i := int32(0); i < num; i++ { + if equipment, err = this.modelEquipment.newCustomizeEquipment(session.GetUserId(), id, lv, attribute); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + equips = append(equips, equipment) + } + + errdata = this.AddEquipment(session, equips...) + return +} + // Evens-------------------------------------------------------------------------------------------------------------------------------- // 推送道具变化消息 func (this *Equipment) equipmentsChangePush(session comm.IUserSession, items []*pb.DB_Equipment) (err error) { diff --git a/modules/gm/module.go b/modules/gm/module.go index 5117149ce..3445408df 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -413,6 +413,44 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (errdata *pb.Er return } + this.Debug("使用bingo命令:uid = %s ", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "0", Value: datas[0]}, + ) + } else if len(datas) == 5 && (datas[0] == "cusequip") { // 自定义战备 + module1, err := this.service.GetModule(comm.ModuleEquipment) + if err != nil { + return + } + id := datas[1] + lv, err := strconv.Atoi(datas[2]) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + attribute, err := strconv.Atoi(datas[3]) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + num, err := strconv.Atoi(datas[4]) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + if errdata = module1.(comm.IEquipment).GMGetCustomizeEquip(session, id, int32(lv), int32(attribute), int32(num)); errdata != nil { + return + } + this.Debug("使用bingo命令:uid = %s ", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "0", Value: datas[0]}, @@ -861,6 +899,19 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (errdata *pb.Er if lv, err := strconv.Atoi(datas[1]); err == nil { module1.(comm.IMoonlv).GMCreateMoonlv(session, int32(lv)) + this.Debug("使用bingo命令", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "0", Value: datas[1]}, + ) + } + } else if len(datas) == 2 && (datas[0] == "buried") { // 完成埋点条件 + module1, err := this.service.GetModule(comm.ModuleBuried) + if err != nil { + return + } + if id, err := strconv.Atoi(datas[1]); err == nil { + module1.(comm.IBuried).CompleteCondition(session, int32(id)) + this.Debug("使用bingo命令", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "0", Value: datas[1]}, diff --git a/modules/user/api_create.go b/modules/user/api_create.go index c2c557832..d043b8446 100644 --- a/modules/user/api_create.go +++ b/modules/user/api_create.go @@ -9,28 +9,12 @@ import ( ) func (this *apiComp) CreateCheck(session comm.IUserSession, req *pb.UserCreateReq) (errdata *pb.ErrorData) { - // name := strings.TrimSpace(req.NickName) - // if name == "" || len(name) > 30 { - // errdata = &pb.ErrorData{ - // Code: pb.ErrorCode_UserNickNameEmpty, - // Title: pb.ErrorCode_UserNickNameEmpty.ToString(), - // } - // return - // } - - // if ok, _ := wordfilter.Validate(name); !ok { - // errdata = &pb.ErrorData{ - // Code: pb.ErrorCode_UserNickSensitive, - // Title: pb.ErrorCode_UserNickSensitive.ToString(), - // } - // } if req.Gender == 0 || req.Skin == "" { errdata = &pb.ErrorData{ Code: pb.ErrorCode_UserNickNameEmpty, Title: pb.ErrorCode_UserNickNameEmpty.ToString(), } } - return } @@ -114,8 +98,9 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (e for _, v := range val.GetDataList() { res = append(res, v.Var...) } - if errdata, _ := this.module.DispenseAtno(session, res, true); errdata != nil { + if errdata, _ = this.module.DispenseAtno(session, res, true); errdata != nil { this.module.Error("发放资源失败!", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "err", Value: errdata.String()}) + return } } tasks = append(tasks, comm.GetBuriedParam(comm.Rtype72, 1)) @@ -139,7 +124,6 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (e Lv: user.Lv, } for _, m := range this.module.notifyUserinfo { - i, err := this.service.GetModule(core.M_Modules(m)) if err != nil { this.module.Errorln(err) diff --git a/modules/user/model_expand.go b/modules/user/model_expand.go index d5d749094..f10430560 100644 --- a/modules/user/model_expand.go +++ b/modules/user/model_expand.go @@ -46,8 +46,7 @@ func (this *ModelExpand) GetUserExpand(uid string) (result *pb.DBUserExpand, err if err = this.Get(uid, result); err != nil && mongo.ErrNoDocuments == err { globalConf := this.module.ModuleTools.GetGlobalConf() initUpdate := map[string]interface{}{ - "uid": uid, - //"modifynameCount": 1, //修改名称1次 + "uid": uid, "sociatyTicket": globalConf.GuildBossInitialNum, //公会BOSS挑战券 "expitem": make(map[string]int32, 0), // 初始化 "mline": make(map[string]int32, 0), @@ -88,27 +87,6 @@ func (this *ModelExpand) ChangeUserExpand(uid string, value map[string]interface return err } } - return this.Change(uid, value) } - -// // 累计登录天数 和 全局buff清理 -// func (this *ModelExpand) updateLoginDay(uid string, timestamp int64) (err error) { -// var de *pb.DBUserExpand -// if de, err = this.GetUserExpand(uid); err == nil { -// count := de.LoginAddCount + 1 -// update := map[string]interface{}{ -// "loginAddCount": count, -// "globalbuff": 0, -// "consumPs": 0, // 重置每日消耗体力 -// } - -// // 更新连续等登录天数 -// if utils.IsYestoday(timestamp) { -// update["loginContinueCount"] = de.LoginContinueCount + 1 -// } -// err = this.ChangeUserExpand(uid, update) -// } -// return -// }