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() { $characterId = $this->getParam('heroid', 'int'); $clanID = $this->getParam('clanId', 'int'); $userClanMgr = new UserClanManager(); $userclaninfo = $userClanMgr->getUserClanInfo($characterId); if (empty($userclaninfo) || $userclaninfo['bossTime'] > time()) { $this->throwException("hero has attack boss today "); } $bossMgr = new ClanBossManager(); $boosInfo = $bossMgr->getCurClanBoss(); $curTime = $boosInfo['Date']; //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']); $rateMgr = new RatingClanManager(); $clanRateInfo = $rateMgr->getClanRate($clanID); if (empty($clanRateInfo)) { $newclanRate = array('id' => $clanID, 'date' => $curTime, 'level' => 1, 'kills' => 0); $rateMgr->addNewClanRate($clanID, $newclanRate); } else { if ($clanRateInfo['date'] == $curTime) { $newclanRate = $clanRateInfo; } else { $newclanRate = array('id' => $clanID, 'date' => $curTime, 'level' => 1, 'kills' => 0); $rateMgr->updateClanRate($clanID, $newclanRate); } } $battleMgr = new BattleManager(); $battleMgr->setBattleCache($characterId, $curTime, 1, 0); $hero_mgr->updateUserStatus($characterId, $heroChange); //bossTime $userclaninfo['bossTime'] = strtotime("next day"); $userClanMgr->updateUserClan($userclaninfo); $heroChange['clanRateInfo'] = $newclanRate; $heroChange['bossData'] = $boosInfo; return $heroChange; } }
protected function _exec() { $enemyId = $this->getParam('enemyId', 'string'); $characterId = $this->getParam('heroid', 'int'); $hero_mgr = new CharacterAccountManager(); $hero_info = $hero_mgr->getCharacterAccount($characterId); $vipLevel = StaticFunction::expToVip($hero_info['vip']); $vipDATA = StaticFunction::$VipList[$vipLevel]; $maxPkCOUNT = $vipDATA['pkAddCount']; $cacheInfo = $hero_mgr->getVipCache($characterId); $usedCount = 0; if (!empty($cacheInfo) && $cacheInfo['time'] > time()) { $usedCount = $cacheInfo['pkAddCount']; $newCacheInfo = $cacheInfo; } else { $newCacheInfo['time'] = strtotime(date("Y-m-d", strtotime("+1 day"))); } $newCacheInfo['pkAddCount'] = $usedCount + 1; if ($maxPkCOUNT <= $usedCount) { $this->throwException("pk too much used {$usedCount} , total = {$maxPkCOUNT}"); } else { $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); $hero_mgr->setVipCache($characterId, $newCacheInfo); $battleMgr = new BattleManager(); $battleMgr->setBattleCache($characterId, $enemyId, 2, 0); $heroChange['vipCache'] = $newCacheInfo; return $heroChange; } } }