diff --git a/src/server/GoUtil/GoUtil.go b/src/server/GoUtil/GoUtil.go index d64463c7..0d821157 100644 --- a/src/server/GoUtil/GoUtil.go +++ b/src/server/GoUtil/GoUtil.go @@ -300,3 +300,15 @@ func Rand6DigitNumber() string { n := rand.Intn(1000000) return fmt.Sprintf("%06d", n) } + +func UniqueInts(input []int) []int { + seen := make(map[int]struct{}) + result := make([]int, 0, len(input)) + for _, v := range input { + if _, ok := seen[v]; !ok { + seen[v] = struct{}{} + result = append(result, v) + } + } + return result +} diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index d1484471..188b428c 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -3136,6 +3136,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { RandList = append(RandList, v) } } + RandList = GoUtil.UniqueInts(RandList) if len(RandList) == 0 { PlayroomMod.SetGameReward(0, 0, Star) } else if len(RandList) == 1 {