/** * */ public function actionIsInCombat() { $output = array('errno' => 1, 'html' => '', 'isInCombat' => false, 'combat_id' => null); if (isset($_GET['sir']) && preg_match(Knights::PATTERN_FOR_NAME, $_GET['sir'])) { //if( $knight = Knights::model()->find('name = :name', array(':name'=>$_GET['sir'])) ){ if ($combat = Combats::model()->with('fromKnight', 'toKnight')->find('t.status = :status AND (fromKnight.name = :name1 OR toKnight.name = :name2)', array(':status' => Combats::STATUS_ENABLE, ':name1' => $_GET['sir'], ':name2' => $_GET['sir']))) { $output['errno'] = 0; $output['isInCombat'] = true; $output['combat_id'] = $combat->id; } else { $output['errno'] = 0; } } else { $output['html'] = '<p>El nombre del caballero no es correcto.</p>'; } echo CJSON::encode($output); }
public function actionShowPostcombat() { $output = array('errno' => 1, 'html' => ''); //Valid input if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0) { //Load combat if ($combat = Combats::model()->with('fromKnight', 'toKnight')->findByPk($_GET['id'])) { //Check if precombat exit $postcombats = CombatsPostcombat::model()->findAll('combats_id = :combats_id', array(':combats_id' => $_GET['id'])); if (count($postcombats) == 2) { //Set data from knight and to knight if ($combat->from_knight == $postcombats[0]->knights_id) { $data = array('combat' => $combat, 'from_knight_postcombat' => &$postcombats[0], 'from_knight_automatic_object_repairs' => array(), 'from_knight_downgrades' => array(), 'to_knight_postcombat' => &$postcombats[1], 'to_knight_automatic_object_repairs' => array(), 'to_knight_downgrades' => array(), 'injuryLabels' => Constants::getLabelsTypeInjuries(), 'knight_card_labels' => array()); } else { $data = array('combat' => $combat, 'from_knight_postcombat' => &$postcombats[1], 'from_knight_automatic_object_repairs' => array(), 'from_knight_downgrades' => array(), 'to_knight_postcombat' => &$postcombats[0], 'to_knight_automatic_object_repairs' => array(), 'to_knight_downgrades' => array(), 'injuryLabels' => Constants::getLabelsTypeInjuries(), 'knight_card_labels' => array()); } //Load repairs $result = ObjectRepairs::model()->findAll('combats_id = :combats_id', array(':combats_id' => $combat->id)); //sort result by knight if (count($result)) { foreach ($result as $repair) { if ($repair['knights_id'] == $combat->from_knight) { //Add to from knight array_push($data['from_knight_automatic_object_repairs'], $repair); } else { array_push($data['to_knight_automatic_object_repairs'], $repair); } } } //Load downgrades!! $downgrades = KnightsEvolution::model()->findAll('combats_id = :combats_id', array(':combats_id' => $combat->id)); //sort result by knight if (count($downgrades)) { foreach ($downgrades as $downgrade) { if ($downgrade->knights_id == $combat->from_knight) { array_push($data['from_knight_downgrades'], $downgrade); } else { array_push($data['to_knight_downgrades'], $downgrade); } } //Load knight card labels $data['knight_card_labels'] = KnightsCard::model()->attributeLabelsById(); } // var_dump($data);die; $output['html'] = $this->renderFile(Yii::app()->basePath . '/views/character/dialog_post_combat.php', $data, true); $output['errno'] = 0; } else { $output['html'] = 'Se ha producido un error al cargar el postcombate ' . count($postcombats); } } else { $output['html'] = 'No se ha encontrado al combate.'; } } else { $output['html'] = 'El identificador del combate no es válido.'; } echo CJSON::encode($output); }