This commit is contained in:
meixiongfeng 2024-01-18 11:56:10 +08:00
commit e26be8d16f
6 changed files with 192 additions and 58 deletions

View File

@ -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)
}
//任务

View File

@ -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
}

View File

@ -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) {

View File

@ -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]},

View File

@ -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)

View File

@ -47,7 +47,6 @@ func (this *ModelExpand) GetUserExpand(uid string) (result *pb.DBUserExpand, err
globalConf := this.module.ModuleTools.GetGlobalConf()
initUpdate := map[string]interface{}{
"uid": uid,
//"modifynameCount": 1, //修改名称1次
"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
// }