protected function _exec() { $specId = $this->getParam('specId', 'string'); $battletype = $this->getParam('battletype', 'string'); $characterId = $this->getParam('heroid', 'int'); $isHelp = $this->getParam('isHelp', 'bool'); //power $hero_mgr = new CharacterAccountManager(); $hero_info = $hero_mgr->getCharacterAccount($characterId); $new_hero_info = StaticFunction::resetCurPower($hero_info); $cur_power = $new_hero_info['power']; if ($cur_power < StaticFunction::$power_battle_cost) { $this->throwException("power is not enough ,cur power = {$cur_power} "); } else { $heroChange = array('power' => $cur_power - StaticFunction::$power_battle_cost, 'powertime' => $new_hero_info['powertime']); $hero_mgr->updateUserStatus($characterId, $heroChange); $battleMgr = new BattleManager(); $battleMgr->setBattleCache($characterId, $specId, $battletype, 0); if ($isHelp === TRUE) { $item_mgr = new UserGameItemManager($characterId); $item_mgr->subItem("80002", 1); $item_mgr->checkReduceItemCount(); $item_mgr->commitToDB(); } return $heroChange; } }
protected function _exec() { $itemId = $this->getParam('itemId', 'int'); $characterId = $this->getParam('heroid', 'int'); $itemDef = get_xml_def($itemId); if (empty($itemDef)) { $this->throwException("itemId is not item {$itemId}"); } $itemMgr = new UserGameItemManager($characterId); $itemMgr->subItem($itemId, 1); $hero_mgr = new CharacterAccountManager(); $hero_account = $hero_mgr->getCharacterAccount($characterId); $new_hero_info = StaticFunction::resetCurPower($hero_account); $cur_power = $new_hero_info['power']; if ($itemId == "80000") { $heroChange = array('power' => $cur_power + 50, 'powertime' => $new_hero_info['powertime']); } else { if ($itemId == "80001") { $heroChange = array('power' => StaticFunction::getTotalPower(StaticFunction::expToGrade($new_hero_info['exp']), StaticFunction::expToVip($new_hero_info['vip'])), 'powertime' => $new_hero_info['powertime']); } } $hero_mgr->updateUserStatus($characterId, $heroChange); $itemMgr->commitToDB(); $heroChange['item_id'] = $itemId; return $heroChange; }
protected function _exec() { $gameuid = $this->getParam('gameuid', 'int'); $specId = $this->getParam('specId', 'string'); $battletype = $this->getParam('battletype', 'string'); $heroId = $this->getParam('heroid', 'int'); $rewards = $this->getParam('battlerewards', 'array'); $itemMgr = new UserGameItemManager($heroId); $hero_mgr = new CharacterAccountManager(); $hero_info = $hero_mgr->getCharacterAccount($heroId); $new_hero_info = StaticFunction::resetCurPower($hero_info); $totalPower = StaticFunction::getTotalPower(StaticFunction::expToGrade($hero_info['exp']), StaticFunction::expToVip($hero_info['vip'])); $cur_power = $new_hero_info['power']; if ($cur_power < StaticFunction::$power_battle_cost) { $this->throwException("power is not enough ,cur power = {$cur_power} , totalpower = {$totalPower} , oldpower = {$heroId}"); } else { $heroChange = array('power' => $cur_power - StaticFunction::$power_battle_cost, 'powertime' => $new_hero_info['powertime']); if ($battletype == "Ordinary") { $newItemId = $specId; } else { $newItemId = 100000 + intval($specId); } $itemInfo = $itemMgr->getItem($newItemId); if ($itemInfo['count'] < 3) { $this->throwException("this battle spec id {$newItemId} do not have 3 star"); } $itemMgr->subItem("80003", 1); foreach ($rewards as $oneReward) { if ($oneReward['item_id'] == 'coin') { $userMgr = new UserAccountManager(); $userMgr->updateUserCoin($gameuid, $oneReward['count']); } else { if ($oneReward['item_id'] == 'exp') { $heroChange['exp'] = $oneReward['count']; } else { $itemMgr->addItem($oneReward['item_id'], $oneReward['count']); } } } $itemMgr->commitToDB(); $hero_mgr->updateUserStatus($heroId, $heroChange); return TRUE; } return FALSE; }
protected function _exec() { $gameuid = $this->getParam('gameuid', 'int'); $characterId = $this->getParam('heroid', 'int'); $pieceItemId = $this->getParam('pieceItemId', 'int'); $pieceitemDef = get_xml_def($pieceItemId); if (empty($pieceitemDef)) { $this->throwException("itemId is not item {$pieceItemId}"); } $composeId = $pieceitemDef['boundItem']; $composeDef = get_xml_def($composeId); if (empty($composeDef)) { $this->throwException("composeitemId is not item {$composeId}"); } $itemMgr = new UserGameItemManager($characterId); $composeOwnItem = $itemMgr->getItem($composeId); $pieceOwnItem = $itemMgr->getItem($pieceItemId); $curLevel = 0; if (!empty($composeOwnItem)) { $curLevel = $composeOwnItem['count']; } $pieceArr = explode(",", $composeDef['upCount']); $needPiece = $pieceArr[$curLevel]; if ($pieceitemDef['type'] == "skill") { $needCoin = StaticFunction::getUpSkillCoin($curLevel); } else { if ($pieceitemDef['type'] == "soldier") { $needCoin = StaticFunction::getUpSoldierCoin($curLevel); } } if (empty($pieceOwnItem) || $pieceOwnItem['count'] < $needPiece) { $this->throwException("composeitemId piece is not enough {$pieceItemId}"); } $user_mgr = new UserAccountManager(); $user_account = $user_mgr->getUserAccount($gameuid); if ($user_account['coin'] < $needCoin) { $this->throwException("character {$gameuid} not enough coin {$needCoin} "); } $itemMgr->addItem($composeId, 1); $itemMgr->subItem($pieceItemId, $needPiece); $user_mgr->updateUserCoin($gameuid, -$needCoin); $itemMgr->commitToDB(); return array("state" => TRUE); }