diff --git a/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php b/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php index 09826e2b..48a9b7b6 100644 --- a/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php +++ b/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php @@ -1352,11 +1352,6 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model */ private function adjustGiftProbabilities(array $gifts, $user_id = 0) { - // 如果没有指定用户或该用户没有特殊概率调整,则直接返回原数组 - if ($user_id <= 0 || !isset($probability_adjustments[$user_id])) { - return $gifts; - } - $ext = $this->getCachedGiftBag(13); //获取转盘信息 $selected_gift_id = $ext['locking_condition']['selected_gift_id']; // 定义需要降低概率的用户和礼物组合 @@ -1367,13 +1362,18 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model // 1001 => [2001 => 0.5], //测试数据 - 20060 => [$selected_gift_id => 0.1], + 20060 => [$selected_gift_id => 2], // 在这里可以添加更多规则 【正式规则】 -// 21222 => [$selected_gift_id => 0.3], -// 21259 => [$selected_gift_id => 0.3], + 21222 => [$selected_gift_id => 6], + 21259 => [$selected_gift_id => 6], ]; + // 如果没有指定用户或该用户没有特殊概率调整,则直接返回原数组 + if ($user_id <= 0 || !isset($probability_adjustments[$user_id])) { + return $gifts; + } + $adjusted_gifts = []; foreach ($gifts as $gift) { $adjusted_gift = $gift; @@ -1381,7 +1381,15 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model if (isset($probability_adjustments[$user_id][$gift['foreign_id']])) { // 降低该礼物的剩余数量权重(相当于降低被抽中的概率) $reduction_factor = $probability_adjustments[$user_id][$gift['foreign_id']]; - $adjusted_gift['remaining_number'] = max(1, intval($gift['remaining_number'] * $reduction_factor)); +// $adjusted_gift['remaining_number'] = max(1, intval($gift['remaining_number'] * $reduction_factor)); + //从数组中随机取出一个数 + //概率数组 + $pros[0] = 1; + for ($i = 1; $i <= $reduction_factor; $i++) { + $pros[$i] = 0; + } + $prosandomKey = array_rand($pros); + $adjusted_gift['remaining_number'] = $pros[$prosandomKey]; } $adjusted_gifts[] = $adjusted_gift; }