_rspData(array( 'pre_battle_payload' => '' )); } public function battleReport() { $userInfo = $this->_getOrmUserInfo(); if (!$userInfo) { $this->_rspErr(1, 'Without this player1'); return; } $battleDataService = new services\BattleDataService(); $battleDataService->updateBattleData(); SqlHelper::insert( $this->_getSelfMysql(), 't_battle_record', array( 'account_id' => $this->_getAccountId(), 'request' => json_encode($_REQUEST), 'createtime' => $this->_getNowTime(), 'modifytime' => $this->_getNowTime(), ) ); $this->_rspOk(); } public function battleReportNew() { return; /* */ $battleReward = array( 'hero' => array(), 'weapon1' => array(), 'weapon2' => array(), 'items' => array() ); $onlineNum = 0; { //pve $instanceLevel = 0; $heroQuality = 0; $instanceRank = 0; $bossReward = 0; $todayPveBattleTimes = 0; $todayPveGetFragmentNum = 0; $heroFragment = array( 0 => array( 1001 => 10 + 1, //当前时间段 + 上一时间段剩余 1002 => 10 + 1, //当前时间段 + 上一时间段剩余 9999 => 3 + 1, //当前时间段 + 上一时间段剩余, 特殊碎片,指定合成 ), 1 => array( ), ); $gunFragment = array( 0 => array( 2001 => 10 + 1, //当前时间段 + 上一时间段剩余 2002 => 10 + 1, //当前时间段 + 上一时间段剩余 9998 => 3 + 1, //当前时间段 + 上一时间段剩余, 特殊碎片,指定合成 ), 1 => array( ), ); $dropRate = max(1.15 - ($heroQuality - $instanceLevel) * 0.25, 0); $dropMul = 0.8 - ($instancRank - 1) * 0.25 + $bossReward * 0.2; $instackRankRate = 0.8; //0.8 0.55 0.3; $heroProbability = min($heroFragment[$now].total / $onlineNum * $dropRate * ($instanceRankRate + $bossReward*0.2) * pow(2, $todayPveBattleTimes - $todayPveGetFragmentNum -1), 1); $gunProbability = min($gunFragment[$now].total / $onlineNum * $dropRate * ($instanceRankRate + $bossReward*0.2) * pow(2, $todayPveBattleTimes - $todayPveGetFragmentNum -1), 1); $emptyProbability = max(1 - $heroProbability - $gunProbability, 0); //对3者取权重 //对堕落的碎片做随机 } { //pvp } $this->_rspData($battleReward); } public function getBattleData() { $mode = getReqVal('mode', ''); $members = json_decode(getReqVal('members', ''), true); $data = array( 'members' => array() ); error_log(json_encode($_REQUEST)); error_log(json_encode($members)); foreach ($members as $member) { $info = array( 'account_id' => $member['account_id'], 'session_id' => $member['session_id'], 'hero_uniid' => $member['hero_uniid'], 'weapon_uuid1' => $member['weapon_uuid1'], 'weapon_uuid2' => $member['weapon_uuid2'], 'battle_uuid' => $member['battle_uuid'], 'hero_dto' => '', 'weapon_dto1' => '', 'weapon_dto2' => '', 'is_valid_battle' => 0, 'payload' => json_encode($member['cmjoin']), 'errcode' => 0, 'errmsg' => '', ); if (!phpcommon\isValidSessionId($member['account_id'], $member['session_id'])) { $info['errcode'] = 50; $info['errmsg'] = 'invalid session_id'; } else { { $heroDb = Hero::findByAccountId($member['account_id'], $member['hero_uniid']); if ($heroDb) { $info['is_valid_battle'] = 1; $info['hero_dto'] = Hero::toDto($heroDb); } else { $info['errcode'] = 51; $info['errmsg'] = 'paramater error'; } } { for ($i = 1; $i <= 2; ++$i) { $gunDb = Gun::findByAccountId($member['account_id'], $member['weapon_uuid' . $i]); if ($gunDb) { $info['weapon_dto' . $i] = Gun::toDto($gunDb); } } } } array_push($data['members'], $info); } error_log(json_encode($data)); myself()->_rspData($data); } public function getBattleDataNew() { $members = json_decode(getReqVal('members', ''), true); $data = array( 'members' => array() ); foreach ($members as $member) { $info = array( 'account_id' => $member['account_id'], 'session_id' => $member['session_id'], 'hero_uniid' => $member['hero_uniid'], 'weapon_uniid1' => $member['weapon_uniid1'], 'weapon_uniid2' => $member['weapon_uniid2'], 'battle_uuid' => $member['battle_uuid'], 'hero_dto' => '', 'weapon_dto1' => '', 'weapon_dto2' => '', 'is_valid_battle' => 0, 'payload' => json_encode($member['cmjoin']), 'errcode' => 0, 'errmsg' => '', ); if (!phpcommon\isValidSessionId($member['account_id'], $member['session_id'])) { $info['errcode'] = 50; $info['errmsg'] = 'invalid session_id'; }else{ { $heroDb = Hero::findByAccountId($member['account_id'], $member['hero_uniid']); if ($heroDb) { $info['is_valid_battle'] = 1; $info['hero_dto'] = Hero::toDto($heroDb); } else { $info['errcode'] = 51; $info['errmsg'] = 'paramater error'; } } { for ($i = 1; $i <= 2; ++$i) { $gunDb = Gun::findByAccountId($member['account_id'], $member['weapon_uniid' . $i]); if ($gunDb) { $info['weapon_dto' . $i] = Gun::toDto($gunDb); } } } } array_push($data['members'], $info); } // $attr = Hero::getChipAttr($info['hero_dto']['chip_ids']); myself()->_rspData($data); } }