public function handleTroopBack() { $qstr = ""; $fromVillageId = 0; $toVillageId = 0; $action = 0; if (isset($_GET['d1'])) { $action = 1; $qstr = "d1=" . intval($_GET['d1']); if (isset($_GET['o'])) { $qstr .= "&o=" . intval($_GET['o']); $fromVillageId = intval($_GET['o']); } else { $fromVillageId = $this->data['selected_village_id']; } $toVillageId = intval($_GET['d1']); } else { if (isset($_GET['d2'])) { $action = 2; $qstr = "d2=" . intval($_GET['d2']); $fromVillageId = $this->data['selected_village_id']; $toVillageId = intval($_GET['d2']); } else { if (isset($_GET['d3'])) { $action = 3; $qstr = "d3=" . intval($_GET['d3']); $fromVillageId = intval($_GET['d3']); $toVillageId = $this->data['selected_village_id']; } else { $this->redirect("build.php?id=39"); return; } } } $this->backTroopsProperty['queryString'] = $qstr; $m = new WarModel(); $fromVillageData = $m->getVillageData2ById($fromVillageId); $toVillageData = $m->getVillageData2ById($toVillageId); if ($fromVillageData == NULL || $toVillageData == NULL) { $m->dispose(); $this->redirect("build.php?id=39"); } else { $vid = $toVillageId; $_backTroopsStr = ""; $this->backTroopsProperty['headerText'] = v2v_p_backtroops; $this->backTroopsProperty['action1'] = "<a href=\"village3.php?id=" . $fromVillageData['id'] . "\">" . $fromVillageData['village_name'] . "</a>"; $this->backTroopsProperty['action2'] = "<a href=\"profile.php?uid=" . $fromVillageData['player_id'] . "\">" . v2v_p_troopsinvillagenow . "</a>"; $column1 = ""; $column2 = ""; if ($action == 1) { $_backTroopsStr = $fromVillageData['troops_num']; $column1 = "troops_num"; $column2 = "troops_out_num"; } else { if ($action == 2) { $this->backTroopsProperty['headerText'] = v2v_p_backcaptivitytroops; $_backTroopsStr = $fromVillageData['troops_intrap_num']; $column1 = "troops_intrap_num"; $column2 = "troops_out_intrap_num"; } else { if ($action == 3) { $_backTroopsStr = $toVillageData['troops_out_num']; $vid = $fromVillageId; $column1 = "troops_num"; $column2 = "troops_out_num"; } } } $this->backTroopsProperty['backTroops'] = $this->_getTroopsForVillage($_backTroopsStr, $vid); if ($this->backTroopsProperty['backTroops'] == NULL) { $m->dispose(); $this->redirect("build.php?id=39"); } else { $distance = WebHelper::getdistance($fromVillageData['rel_x'], $fromVillageData['rel_y'], $toVillageData['rel_x'], $toVillageData['rel_y'], $this->setupMetadata['map_size'] / 2); if ($this->isPost()) { $canSend = FALSE; $troopsGoBack = array(); foreach ($this->backTroopsProperty['backTroops']['troops'] as $tid => $tnum) { if (isset($_POST['t'], $_POST['t'][$tid])) { $selNum = intval($_POST['t'][$tid]); if ($selNum < 0) { $selNum = 0; } if ($tnum < $selNum) { $selNum = $tnum; } $troopsGoBack[$tid] = $selNum; if (0 < $selNum) { $canSend = TRUE; } } else { $troopsGoBack[$tid] = 0; } } $sendTroopsArray = array("troops" => $troopsGoBack, "hasHero" => FALSE, "heroTroopId" => 0); $hasHeroTroop = $this->backTroopsProperty['backTroops']['hasHero'] && isset($_POST['_t']) && intval($_POST['_t']) == 1; if ($hasHeroTroop) { $sendTroopsArray['hasHero'] = TRUE; $sendTroopsArray['heroTroopId'] = $this->backTroopsProperty['backTroops']['heroTroopId']; $canSend = TRUE; } if (!$canSend) { $m->dispose(); $this->redirect("build.php?id=39"); } else { if (!$this->isGameTransientStopped() && !$this->isGameOver()) { $troops1 = $this->_getTroopsAfterReduction($fromVillageData[$column1], $toVillageId, $sendTroopsArray); $troops2 = $this->_getTroopsAfterReduction($toVillageData[$column2], $fromVillageId, $sendTroopsArray); $m->backTroopsFrom($fromVillageId, $column1, $troops1, $toVillageId, $column2, $troops2); $timeInSeconds = intval($distance / $this->_getTheSlowestTroopSpeed2($sendTroopsArray) * 3600); $procParams = $this->_getTroopAsString($sendTroopsArray) . "|0||||||1"; $newTask = new QueueTask(QS_WAR_REINFORCE, intval($fromVillageData['player_id']), $timeInSeconds); $newTask->villageId = $fromVillageId; $newTask->toPlayerId = intval($toVillageData['player_id']); $newTask->toVillageId = $toVillageId; $newTask->procParams = $procParams; $newTask->tag = array("troops" => NULL, "hasHero" => FALSE, "resources" => NULL); $affectCropConsumption = TRUE; if ($fromVillageData['is_oasis'] && trim($toVillageData['village_oases_id']) != "") { $oArr = explode(",", trim($toVillageData['village_oases_id'])); foreach ($oArr as $oid) { if (!($oid == $fromVillageData['id'])) { continue; } $affectCropConsumption = FALSE; break; break; } } if ($affectCropConsumption) { $newTask->tag['troopsCropConsume'] = $this->_getTroopCropConsumption($sendTroopsArray); } $this->queueModel->addTask($newTask); $m->dispose(); $this->redirect("build.php?id=39"); return; } } } else { $this->backTroopsProperty['time'] = intval($distance / $this->_getTheSlowestTroopSpeed2($this->backTroopsProperty['backTroops']) * 3600); } $m->dispose(); } } }
function handleTroopBack() { $qstr = ''; $fromVillageId = 0; $toVillageId = 0; $action = 0; if (isset($_GET['d1'])) { $action = 1; $qstr = 'd1=' . intval($_GET['d1']); if (isset($_GET['o'])) { $qstr .= '&o=' . intval($_GET['o']); $fromVillageId = intval($_GET['o']); } else { $fromVillageId = $this->data['selected_village_id']; } $toVillageId = intval($_GET['d1']); } else { if (isset($_GET['d2'])) { $action = 2; $qstr = 'd2=' . intval($_GET['d2']); $fromVillageId = $this->data['selected_village_id']; $toVillageId = intval($_GET['d2']); } else { if (isset($_GET['d3'])) { $action = 3; $qstr = 'd3=' . intval($_GET['d3']); $fromVillageId = intval($_GET['d3']); $toVillageId = $this->data['selected_village_id']; } else { $this->redirect('build.php?id=39'); //return null; } } } $this->backTroopsProperty['queryString'] = $qstr; $m = new WarModel(); $fromVillageData = $m->getVillageData2ById($fromVillageId); $toVillageData = $m->getVillageData2ById($toVillageId); if ($fromVillageData == NULL or $toVillageData == NULL) { $m->dispose(); $this->redirect('build.php?id=39'); //return null; } $vid = $toVillageId; $_backTroopsStr = ''; $this->backTroopsProperty['headerText'] = v2v_p_backtroops; $this->backTroopsProperty['action1'] = '<a href="village3.php?id=' . $fromVillageData['id'] . '">' . $fromVillageData['village_name'] . '</a>'; $this->backTroopsProperty['action2'] = '<a href="profile.php?uid=' . $fromVillageData['player_id'] . '">' . v2v_p_troopsinvillagenow . '</a>'; $column1 = ''; $column2 = ''; if ($action == 1) { $_backTroopsStr = $fromVillageData['troops_num']; $column1 = 'troops_num'; $column2 = 'troops_out_num'; } else { if ($action == 2) { $this->backTroopsProperty['headerText'] = v2v_p_backcaptivitytroops; $_backTroopsStr = $fromVillageData['troops_intrap_num']; $column1 = 'troops_intrap_num'; $column2 = 'troops_out_intrap_num'; } else { if ($action == 3) { $_backTroopsStr = $toVillageData['troops_out_num']; $vid = $fromVillageId; $column1 = 'troops_num'; $column2 = 'troops_out_num'; } } } $this->backTroopsProperty['backTroops'] = $this->_getTroopsForVillage($_backTroopsStr, $vid); if ($this->backTroopsProperty['backTroops'] == NULL) { $m->dispose(); $this->redirect('build.php?id=39'); //return null; } $distance = WebHelper::getdistance($fromVillageData['rel_x'], $fromVillageData['rel_y'], $toVillageData['rel_x'], $toVillageData['rel_y'], $this->setupMetadata['map_size'] / 2); if ($this->isPost()) { $canSend = FALSE; $troopsGoBack = array(); foreach ($this->backTroopsProperty['backTroops']['troops'] as $tid => $tnum) { if (isset($_POST['t']) and isset($_POST['t'][$tid])) { $selNum = intval($_POST['t'][$tid]); if ($selNum < 0) { $selNum = 0; } if ($tnum < $selNum) { $selNum = $tnum; } $troopsGoBack[$tid] = $selNum; if (0 < $selNum) { $canSend = TRUE; continue; } continue; } else { $troopsGoBack[$tid] = 0; continue; } } $sendTroopsArray = array('troops' => $troopsGoBack, 'hasHero' => FALSE, 'heroTroopId' => 0); $hasHeroTroop = ($this->backTroopsProperty['backTroops']['hasHero'] and isset($_POST['_t']) and intval($_POST['_t']) == 1); if ($hasHeroTroop) { $sendTroopsArray['hasHero'] = TRUE; $sendTroopsArray['heroTroopId'] = $this->backTroopsProperty['backTroops']['heroTroopId']; $canSend = TRUE; } if (!$canSend) { $m->dispose(); $this->redirect('build.php?id=39'); //return null; } if (!$this->isGameTransientStopped() and !$this->isGameOver()) { $troops1 = $this->_getTroopsAfterReduction($fromVillageData[$column1], $toVillageId, $sendTroopsArray); $troops2 = $this->_getTroopsAfterReduction($toVillageData[$column2], $fromVillageId, $sendTroopsArray); $m->backTroopsFrom($fromVillageId, $column1, $troops1, $toVillageId, $column2, $troops2); $timeInSeconds = intval($distance / $this->_getTheSlowestTroopSpeed2($sendTroopsArray) * 3600); $procParams = $this->_getTroopAsString($sendTroopsArray) . '|0||||||1'; $newTask = new QueueTask(QS_WAR_REINFORCE, intval($fromVillageData['player_id']), $timeInSeconds); $newTask->villageId = $fromVillageId; $newTask->toPlayerId = intval($toVillageData['player_id']); $newTask->toVillageId = $toVillageId; $newTask->procParams = $procParams; $newTask->tag = array('troops' => NULL, 'hasHero' => FALSE, 'resources' => NULL, 'troopsCropConsume' => $this->_getTroopCropConsumption($sendTroopsArray)); $this->queueModel->addTask($newTask); $m->dispose(); $this->redirect('build.php?id=39'); //return null; } } else { $this->backTroopsProperty['time'] = intval($distance / $this->_getTheSlowestTroopSpeed2($this->backTroopsProperty['backTroops']) * 3600); } $m->dispose(); }