diff --git a/modules/equipment/module.go b/modules/equipment/module.go index 2e8ea1545..61dc79778 100644 --- a/modules/equipment/module.go +++ b/modules/equipment/module.go @@ -1,6 +1,7 @@ package equipment import ( + "crypto/rand" "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/core" @@ -10,8 +11,7 @@ import ( cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" "math" - "math/rand" - "time" + "math/big" "github.com/go-redis/redis/v8" ) @@ -589,8 +589,8 @@ func (this *Equipment) GetForgeEquip(session comm.IUserSession, num int32, suite } return } - if pos == -1 { + lvs = make([]*cfg.GameEquipData, 0) for _, v := range configures { if v.Color == lv { @@ -622,22 +622,19 @@ func (this *Equipment) GetForgeEquip(session comm.IUserSession, num int32, suite eruips = make([]*pb.DB_Equipment, num) for i := 0; i < int(num); i++ { if pos != -1 { - for _, v := range configures { - if v.Pos == pos && v.Color == lv { - if eruips[i], err = this.modelEquipment.newEquipment(session.GetUserId(), v, dyweight, isepic); err != nil { - this.Errorf("err%v", err) - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_SystemError, - Title: pb.ErrorCode_SystemError.ToString(), - Message: err.Error(), - } - return - } + if eruips[i], err = this.modelEquipment.newEquipment(session.GetUserId(), configure, dyweight, isepic); err != nil { + this.Errorf("err%v", err) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + Message: err.Error(), } + return + } } else { - r := rand.New(rand.NewSource(time.Now().Unix())) - index := r.Perm(len(lvs))[0] + n, _ := rand.Int(rand.Reader, big.NewInt(int64(len(lvs)))) + index := n.Int64() if eruips[i], err = this.modelEquipment.newEquipment(session.GetUserId(), lvs[index], dyweight, isepic); err != nil { this.Errorf("err%v", err) errdata = &pb.ErrorData{