box reward

This commit is contained in:
aozhiwei 2024-07-31 15:52:18 +08:00
parent 6a8d0d5806
commit 69e67f3de6

View File

@ -127,7 +127,7 @@ class RoomBattleDataService extends BaseService {
if ($this->mapMode == mt\MapMode::TREASURE_BOX_MODE && $member['move_distance'] <= 2000 ){
error_log("金币模式:消极战斗");
}else{
$this->_getBattleRewards($userDb,$heroDb,$battleScore,$myTeamScoreAvg,$myTeamScore,$member['reward']);
$this->_getBattleRewards($userDb,$heroDb,$battleScore,$myTeamScoreAvg,$myTeamScore,$member['reward'], $member);
myself()->_addItems($member['reward'], $awardService,$propertyChgService);
if ($this->mapMode == mt\MapMode::GOLD_MODE){
$member['today_hero_battles'] = $heroDb['idx'] . '|' .myself()->_getDailyV(TN_DAILY_GOLD_MODE_BATTLE_TIMES,$heroDb['idx']);
@ -158,7 +158,7 @@ class RoomBattleDataService extends BaseService {
}
public function _getBattleRewards($userDb,$heroDb,$battleScore,$teamScoreAvg,$teamScore,&$reward){
public function _getBattleRewards($userDb,$heroDb,$battleScore,$teamScoreAvg,$teamScore,&$reward, $member){
error_log('settlementReward -> _getBattleRewards');
$mapModeMeta = mt\MapMode::findByMapMode($this->mapMode);
$teamRank = getXVal($this->teamData,'pvp_team_rank', 0);
@ -260,28 +260,30 @@ class RoomBattleDataService extends BaseService {
//宝箱掉落
$chestLootProbArr = explode(";",$rewardMeta['chestLootProb']);
$rate = isset($chestLootProbArr[$teamRank-1]) ? $chestLootProbArr[$teamRank-1] : 0;
if ($rate > 0){
$rand = $rate * 100;
$rnd = rand(1,100);
if ($rnd <= $rand){
$chestItems = LootService::dropOutItem($rewardMeta['chestLoot']);
if (count($chestItems)>0){
$event = array(
'ID' => 'Box',
'SUB_ID' => 'drop',
'SUB_KEY' => 'drop_box',
'before' =>array(
'rnd' => $rnd,
'rate' => $rate,
'rewardMeta' => $rewardMeta,
),
'result' => $chestItems,
);
LogService::burialPointEvent($event);
}
if ($rate > 0 && !empty($member['box_num'])){
for ($i = 0; i < $member['box_num']; ++$i) {
$rand = $rate * 100;
$rnd = rand(1,100);
if ($rnd <= $rand){
$chestItems = LootService::dropOutItem($rewardMeta['chestLoot']);
if (count($chestItems)>0){
$event = array(
'ID' => 'Box',
'SUB_ID' => 'drop',
'SUB_KEY' => 'drop_box',
'before' =>array(
'rnd' => $rnd,
'rate' => $rate,
'rewardMeta' => $rewardMeta,
),
'result' => $chestItems,
);
LogService::burialPointEvent($event);
}
foreach ($chestItems as $item){
array_push($reward,$item);
foreach ($chestItems as $item){
array_push($reward,$item);
}
}
}
}