上传装备初始化动态权重参数添加
This commit is contained in:
parent
6d297358e4
commit
d2a3af4dac
@ -159,7 +159,7 @@ type (
|
|||||||
pos: 位置(-1 表示随机位置 大于0 表示获得指定位置 )
|
pos: 位置(-1 表示随机位置 大于0 表示获得指定位置 )
|
||||||
lv: 装备等级
|
lv: 装备等级
|
||||||
*/
|
*/
|
||||||
GetForgeEquip(session IUserSession, suiteId int32, pos int32, lv int32) (eruip *pb.DB_Equipment, code pb.ErrorCode)
|
GetForgeEquip(session IUserSession, suiteId int32, pos int32, lv int32, dyweight []int32) (eruip *pb.DB_Equipment, code pb.ErrorCode)
|
||||||
}
|
}
|
||||||
IMainline interface {
|
IMainline interface {
|
||||||
ModifyMainlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode)
|
ModifyMainlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode)
|
||||||
|
@ -106,7 +106,7 @@ func (this *modelEquipmentComp) AddEquipments(session comm.IUserSession, cIds ma
|
|||||||
for k, v := range cIds {
|
for k, v := range cIds {
|
||||||
if c, ok := configure.GetDataMap()[k]; ok {
|
if c, ok := configure.GetDataMap()[k]; ok {
|
||||||
for i := uint32(0); i < v; i++ {
|
for i := uint32(0); i < v; i++ {
|
||||||
if equipment, err := this.newEquipment(uId, c); err != nil {
|
if equipment, err := this.newEquipment(uId, c, nil); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
} else {
|
} else {
|
||||||
//随机任务
|
//随机任务
|
||||||
@ -242,11 +242,12 @@ func (this *modelEquipmentComp) UpdateByHeroId(uid string, equipments ...*pb.DB_
|
|||||||
}
|
}
|
||||||
|
|
||||||
//创建新的武器对象
|
//创建新的武器对象
|
||||||
func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData) (equipment *pb.DB_Equipment, err error) {
|
func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData, dyweight []int32) (equipment *pb.DB_Equipment, err error) {
|
||||||
var (
|
var (
|
||||||
mattr []*cfg.GameEquipAttrlibraryData
|
mattr []*cfg.GameEquipAttrlibraryData
|
||||||
sattr []*cfg.GameEquipAttrlibraryData
|
sattr []*cfg.GameEquipAttrlibraryData
|
||||||
equipatt *cfg.GameEquipAttributeData
|
equipatt *cfg.GameEquipAttributeData
|
||||||
|
weight []int32
|
||||||
total int
|
total int
|
||||||
satterNum int32
|
satterNum int32
|
||||||
)
|
)
|
||||||
@ -281,12 +282,22 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
weight = make([]int32, len(conf.Addattrnump))
|
||||||
|
for i, v := range conf.Addattrnump {
|
||||||
|
weight[i] = v
|
||||||
|
}
|
||||||
|
if dyweight != nil && len(dyweight) >= len(weight) {
|
||||||
|
for i, _ := range weight {
|
||||||
|
weight[i] += dyweight[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, v := range conf.Addattrnump {
|
for _, v := range weight {
|
||||||
total += int(v)
|
total += int(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
n := rand.Intn(total)
|
n := rand.Intn(total)
|
||||||
for i, v := range conf.Addattrnump {
|
for i, v := range weight {
|
||||||
if int32(n) <= v {
|
if int32(n) <= v {
|
||||||
satterNum = conf.Addattrnum[i]
|
satterNum = conf.Addattrnum[i]
|
||||||
break
|
break
|
||||||
|
@ -158,7 +158,7 @@ func (this *Equipment) NewEquipment(uid, cid string) (code pb.ErrorCode, equip *
|
|||||||
code = pb.ErrorCode_ConfigNoFound
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if equip, err = this.modelEquipment.newEquipment(uid, conf); err != nil {
|
if equip, err = this.modelEquipment.newEquipment(uid, conf, nil); err != nil {
|
||||||
code = pb.ErrorCode_ConfigNoFound
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -332,11 +332,10 @@ func (this *Equipment) GetActionableSuit(uid string) (code pb.ErrorCode, Suit []
|
|||||||
pos: 位置(-1 表示随机位置 大于0 表示获得指定位置 )
|
pos: 位置(-1 表示随机位置 大于0 表示获得指定位置 )
|
||||||
lv: 装备等级
|
lv: 装备等级
|
||||||
*/
|
*/
|
||||||
func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, pos int32, lv int32) (eruip *pb.DB_Equipment, code pb.ErrorCode) {
|
func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, pos int32, lv int32, dyweight []int32) (eruip *pb.DB_Equipment, code pb.ErrorCode) {
|
||||||
var (
|
var (
|
||||||
configures []*cfg.GameEquipData
|
configures []*cfg.GameEquipData
|
||||||
lvs []*cfg.GameEquipData
|
lvs []*cfg.GameEquipData
|
||||||
change []*pb.DB_Equipment
|
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
if configures, err = this.configure.GetSuitEquipmentConfigure(suiteId); err != nil {
|
if configures, err = this.configure.GetSuitEquipmentConfigure(suiteId); err != nil {
|
||||||
@ -346,10 +345,14 @@ func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, p
|
|||||||
if pos != -1 {
|
if pos != -1 {
|
||||||
for _, v := range configures {
|
for _, v := range configures {
|
||||||
if v.Pos == pos && v.Star == lv {
|
if v.Pos == pos && v.Star == lv {
|
||||||
if change, code = this.AddNewEquipments(session, map[string]uint32{v.Id: 1}, true); code == pb.ErrorCode_Success {
|
if eruip, err = this.modelEquipment.newEquipment(session.GetUserId(), v, dyweight); err == nil {
|
||||||
eruip = change[0]
|
code = pb.ErrorCode_Success
|
||||||
|
this.equipmentsChangePush(session, []*pb.DB_Equipment{eruip})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
this.Errorf("err%v", err)
|
||||||
|
code = pb.ErrorCode_SystemError
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
code = pb.ErrorCode_ConfigNoFound
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
@ -363,14 +366,15 @@ func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, p
|
|||||||
}
|
}
|
||||||
r := rand.New(rand.NewSource(time.Now().Unix()))
|
r := rand.New(rand.NewSource(time.Now().Unix()))
|
||||||
index := r.Perm(len(lvs))[0]
|
index := r.Perm(len(lvs))[0]
|
||||||
|
if eruip, err = this.modelEquipment.newEquipment(session.GetUserId(), lvs[index], dyweight); err == nil {
|
||||||
if change, code = this.AddNewEquipments(session, map[string]uint32{lvs[index].Id: 1}, true); code == pb.ErrorCode_Success {
|
code = pb.ErrorCode_Success
|
||||||
eruip = change[0]
|
this.equipmentsChangePush(session, []*pb.DB_Equipment{eruip})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
this.Errorf("err%v", err)
|
||||||
|
code = pb.ErrorCode_SystemError
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Evens--------------------------------------------------------------------------------------------------------------------------------
|
//Evens--------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user