上传装备打造代码

This commit is contained in:
liwei1dao 2023-06-08 14:57:57 +08:00
parent da9192d356
commit 1d00476d2f
3 changed files with 13321 additions and 6327 deletions

File diff suppressed because it is too large Load Diff

View File

@ -107,7 +107,7 @@ func (this *modelEquipmentComp) AddEquipments(session comm.IUserSession, cIds ma
for k, v := range cIds {
if c, ok := configure.GetDataMap()[k]; ok {
for i := uint32(0); i < v; i++ {
if equipment, err := this.newEquipment(uId, c, nil); err != nil {
if equipment, err := this.newEquipment(uId, c, nil, false); err != nil {
return nil, err
} else {
//随机任务
@ -247,13 +247,14 @@ func (this *modelEquipmentComp) UpdateByHeroId(uid string, equipments ...*pb.DB_
}
//创建新的武器对象
func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData, dyweight []int32) (equipment *pb.DB_Equipment, err error) {
func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData, dyweight []int32, isepic bool) (equipment *pb.DB_Equipment, err error) {
var (
mattr []*cfg.GameEquipAttrlibrarySData
sattr []*cfg.GameEquipAttrlibrarySData
equipatt *cfg.GameEquipAttributeData
weight []int32
total int
maxindex int
satterNum int32
)
equipment = &pb.DB_Equipment{
@ -287,29 +288,41 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData
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 weight {
total += int(v)
}
n := rand.Intn(total)
for i, v := range weight {
if int32(n) <= v {
satterNum = conf.Addattrnum[i]
break
if !isepic {
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 weight {
total += int(v)
}
n := rand.Intn(total)
for i, v := range weight {
if int32(n) <= v {
satterNum = conf.Addattrnum[i]
break
}
}
if satterNum > int32(len(sattr)) {
satterNum = int32(len(sattr))
}
} else {
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 > int32(len(sattr)) {
satterNum = int32(len(sattr))
}
if satterNum > 0 && satterNum <= 4 {

View File

@ -210,7 +210,7 @@ func (this *Equipment) NewEquipment(uid, cid string) (errdata *pb.ErrorData, equ
}
return
}
if equip, err = this.modelEquipment.newEquipment(uid, conf, nil); err != nil {
if equip, err = this.modelEquipment.newEquipment(uid, conf, nil, false); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(),
@ -455,8 +455,10 @@ func (this *Equipment) GetActionableSuit(uid string) (errdata *pb.ErrorData, Sui
suiteId: 套装id
pos: 位置(-1 表示随机位置 大于0 表示获得指定位置 )
lv: 装备等级
dyweight: 动态权重
isepic:是否史诗 动态权重互斥
*/
func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, pos int32, lv int32, dyweight []int32) (eruip *pb.DB_Equipment, errdata *pb.ErrorData) {
func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, pos int32, lv int32, dyweight []int32, isepic bool) (eruip *pb.DB_Equipment, errdata *pb.ErrorData) {
var (
configures []*cfg.GameEquipData
lvs []*cfg.GameEquipData
@ -473,7 +475,7 @@ func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, p
if pos != -1 {
for _, v := range configures {
if v.Pos == pos && v.Color == lv {
if eruip, err = this.modelEquipment.newEquipment(session.GetUserId(), v, dyweight); err == nil {
if eruip, err = this.modelEquipment.newEquipment(session.GetUserId(), v, dyweight, isepic); err == nil {
this.equipmentsChangePush(session, []*pb.DB_Equipment{eruip})
return
}
@ -508,7 +510,7 @@ func (this *Equipment) GetForgeEquip(session comm.IUserSession, suiteId int32, p
}
r := rand.New(rand.NewSource(time.Now().Unix()))
index := r.Perm(len(lvs))[0]
if eruip, err = this.modelEquipment.newEquipment(session.GetUserId(), lvs[index], dyweight); err == nil {
if eruip, err = this.modelEquipment.newEquipment(session.GetUserId(), lvs[index], dyweight, isepic); err == nil {
this.equipmentsChangePush(session, []*pb.DB_Equipment{eruip})
return
}