Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
f7736b4491
@ -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" //合区模块
|
||||||
)
|
)
|
||||||
|
|
||||||
// 数据表名定义处
|
// 数据表名定义处
|
||||||
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自定义装备
|
// 自定义装备
|
||||||
|
26
modules/expedition/module.go
Normal file
26
modules/expedition/module.go
Normal 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
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user