This commit is contained in:
meixiongfeng 2024-01-19 17:53:14 +08:00
commit f7736b4491
3 changed files with 36 additions and 84 deletions

View File

@ -129,6 +129,7 @@ const (
ModuleIntegral core.M_Modules = "integral" // 积分boss ModuleIntegral core.M_Modules = "integral" // 积分boss
ModulePlunder core.M_Modules = "plunder" //掠夺 ModulePlunder core.M_Modules = "plunder" //掠夺
ModuleMergeGroup core.M_Modules = "mergegroup" //合区模块 ModuleMergeGroup core.M_Modules = "mergegroup" //合区模块
ModuleExpedition core.M_Modules = "expedition" //合区模块
) )
// 数据表名定义处 // 数据表名定义处

View File

@ -476,100 +476,25 @@ func (this *modelEquipmentComp) upgradeEquipment(equipment *pb.DB_Equipment, equ
// 创建满级装备数据 // 创建满级装备数据
func (this *modelEquipmentComp) newMaxEquipment(uid string, conf *cfg.GameEquipData) (equipment *pb.DB_Equipment, err error) { func (this *modelEquipmentComp) newMaxEquipment(uid string, conf *cfg.GameEquipData) (equipment *pb.DB_Equipment, err error) {
var ( var (
mattr []*cfg.GameEquipAttrlibrarySData
sattr []*cfg.GameEquipAttrlibrarySData
weight []int32
index int32
equipatt *cfg.GameEquipAttributeData
intensify *cfg.GameEquipIntensifyData intensify *cfg.GameEquipIntensifyData
satterNum int32
) )
if intensify, err = this.module.configure.GetEquipmentMaxIntensifyConfigureById(conf.EquipId, conf.Color); err != nil { if equipment, err = this.newEquipment(uid, conf, nil, false); err != nil {
this.module.Errorln(err)
return return
} }
for {
equipment = &pb.DB_Equipment{ if intensify, err = this.module.configure.GetEquipmentIntensifyConfigureById(conf.EquipId, conf.Color, equipment.Lv); err != nil {
Id: primitive.NewObjectID().Hex(),
CId: conf.Id,
Lv: intensify.Level + 1,
UId: uid,
OverlayNum: 1,
IsInitialState: false,
}
if mattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Leadlibrary); err != nil || len(mattr) == 0 {
err = fmt.Errorf("no found mattr%d", conf.Leadlibrary)
this.module.Errorln(err)
return return
} }
weight = make([]int32, len(mattr)) if len(intensify.Need) > 0 {
for i, v := range mattr { if err = this.upgradeEquipment(equipment, conf, intensify); err != nil {
weight[i] = v.Probability
}
index = comm.GetRandW(weight)
equipment.MainEntry = &pb.EquipmentAttributeEntry{
Id: mattr[index].Key,
Libraryid: mattr[index].Libraryid,
Lv: intensify.Level + 1,
AttrName: mattr[index].Attr.A,
Value: 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))
if sattr, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(sattr) == 0 {
return 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 { } 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 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
} }
// 自定义装备 // 自定义装备

View File

@ -0,0 +1,26 @@
package expedition
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
/*
模块名:论坛
描述:处理跨服社交论坛相关业务
开发:李伟
*/
func NewModule() core.IModule {
m := new(Expedition)
return m
}
type Expedition struct {
modules.ModuleBase
}
//模块名
func (this *Expedition) GetType() core.M_Modules {
return comm.ModuleExpedition
}