上传自定义装备接口
This commit is contained in:
parent
04af7b673b
commit
1594a61e01
@ -259,6 +259,8 @@ type (
|
|||||||
GMGetAllEquip(session IUserSession, ismaxlv bool) (errdata *pb.ErrorData)
|
GMGetAllEquip(session IUserSession, ismaxlv bool) (errdata *pb.ErrorData)
|
||||||
//创建最高名字装备
|
//创建最高名字装备
|
||||||
NewMaxQualityEquipment(session IUserSession, cid []string) (eruips []*pb.DB_Equipment, errdata *pb.ErrorData)
|
NewMaxQualityEquipment(session IUserSession, cid []string) (eruips []*pb.DB_Equipment, errdata *pb.ErrorData)
|
||||||
|
//自定义装备
|
||||||
|
GMGetCustomizeEquip(session IUserSession, id string, lv int32, attribute int32) (errdata *pb.ErrorData)
|
||||||
}
|
}
|
||||||
|
|
||||||
//任务
|
//任务
|
||||||
|
@ -313,7 +313,7 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData
|
|||||||
Value: mattr[index].Attr.N,
|
Value: mattr[index].Attr.N,
|
||||||
BaseValue: 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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -533,7 +533,101 @@ func (this *modelEquipmentComp) newMaxEquipment(uid string, conf *cfg.GameEquipD
|
|||||||
BaseValue: mattr[index].Attr.N,
|
BaseValue: mattr[index].Attr.N,
|
||||||
}
|
}
|
||||||
equipment.MainEntry.Value = equipment.MainEntry.BaseValue + int32(math.Floor(float64(equipment.MainEntry.BaseValue*intensify.Bonus)/1000.0))
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, v := range sattr { //移除主属性
|
||||||
|
if v.Attr.A == equipment.MainEntry.AttrName {
|
||||||
|
sattr = append(sattr[0:i], sattr[i+1:]...)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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] {
|
||||||
|
adverbEntry := &pb.EquipmentAttributeEntry{
|
||||||
|
Id: sattr[v].Key,
|
||||||
|
Libraryid: sattr[v].Libraryid,
|
||||||
|
Lv: 5,
|
||||||
|
AttrName: sattr[v].Attr.A,
|
||||||
|
Value: sattr[v].Attr.N,
|
||||||
|
BaseValue: sattr[v].Attr.N,
|
||||||
|
}
|
||||||
|
value := adverbEntry.BaseValue + int32(float64(sattr[v].Addition[adverbEntry.Lv-1])/1000.0*float64(adverbEntry.BaseValue))
|
||||||
|
if adverbEntry.Value < value {
|
||||||
|
adverbEntry.Value = value
|
||||||
|
}
|
||||||
|
equipment.AdverbEntry = append(equipment.AdverbEntry, adverbEntry)
|
||||||
|
}
|
||||||
|
} 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: 5,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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
|
||||||
|
satterNum int32
|
||||||
|
)
|
||||||
|
if conf, err = this.module.configure.GetEquipmentConfigureById(eid); err != nil {
|
||||||
|
err = fmt.Errorf("no found eid%s", eid)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if intensify, err = this.module.configure.GetEquipmentIntensifyConfigureById(conf.EquipId, conf.Color, lv); err != nil {
|
||||||
|
this.module.Errorln(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
equipment = &pb.DB_Equipment{
|
||||||
|
Id: primitive.NewObjectID().Hex(),
|
||||||
|
CId: eid,
|
||||||
|
Lv: intensify.Level + 1,
|
||||||
|
UId: uid,
|
||||||
|
OverlayNum: 1,
|
||||||
|
IsInitialState: false,
|
||||||
|
}
|
||||||
|
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: intensify.Level + 1,
|
||||||
|
AttrName: mattr.Attr.A,
|
||||||
|
Value: mattr.Attr.N,
|
||||||
|
BaseValue: mattr.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(sattr) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -731,6 +731,27 @@ func (this *Equipment) GMGetAllEquip(session comm.IUserSession, ismaxlv bool) (e
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GM 命令接口
|
||||||
|
获取全部装备
|
||||||
|
*/
|
||||||
|
func (this *Equipment) GMGetCustomizeEquip(session comm.IUserSession, id string, lv int32, attribute int32) (errdata *pb.ErrorData) {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
equipment *pb.DB_Equipment
|
||||||
|
)
|
||||||
|
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
|
||||||
|
}
|
||||||
|
errdata = this.AddEquipment(session, equipment)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Evens--------------------------------------------------------------------------------------------------------------------------------
|
// Evens--------------------------------------------------------------------------------------------------------------------------------
|
||||||
// 推送道具变化消息
|
// 推送道具变化消息
|
||||||
func (this *Equipment) equipmentsChangePush(session comm.IUserSession, items []*pb.DB_Equipment) (err error) {
|
func (this *Equipment) equipmentsChangePush(session comm.IUserSession, items []*pb.DB_Equipment) (err error) {
|
||||||
|
@ -413,6 +413,36 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (errdata *pb.Er
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.Debug("使用bingo命令:uid = %s ",
|
||||||
|
log.Field{Key: "uid", Value: session.GetUserId()},
|
||||||
|
log.Field{Key: "0", Value: datas[0]},
|
||||||
|
)
|
||||||
|
} else if len(datas) == 4 && (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[2])
|
||||||
|
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)); errdata != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this.Debug("使用bingo命令:uid = %s ",
|
this.Debug("使用bingo命令:uid = %s ",
|
||||||
log.Field{Key: "uid", Value: session.GetUserId()},
|
log.Field{Key: "uid", Value: session.GetUserId()},
|
||||||
log.Field{Key: "0", Value: datas[0]},
|
log.Field{Key: "0", Value: datas[0]},
|
||||||
|
Loading…
Reference in New Issue
Block a user