mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-13 16:16:07 +00:00
301 lines
9.0 KiB
Smarty
301 lines
9.0 KiB
Smarty
<?php
|
|
|
|
$eid = isset($_GET['eid']) ? (int)$_GET['eid'] : 0;
|
|
$action = $_GET['action'] ?? null;
|
|
|
|
$errormsg = $errormsg ?? null;
|
|
|
|
/* =====================================================
|
|
LOAD SLOT DATA (EDIT MODE)
|
|
===================================================== */
|
|
if ($action === 'editSlot' && $eid) {
|
|
|
|
$eiddata = $database->getRaidList($eid);
|
|
|
|
if (!$eiddata) {
|
|
header("Location: build.php?id=39&t=99");
|
|
exit;
|
|
}
|
|
|
|
$x = $eiddata['x'];
|
|
$y = $eiddata['y'];
|
|
|
|
for ($i = 1; $i <= 6; $i++) {
|
|
${'t'.$i} = $eiddata['t'.$i];
|
|
}
|
|
|
|
$FLData = $database->getFLData($eiddata['lid']);
|
|
|
|
if ($FLData['owner'] != $session->uid) {
|
|
header("Location: build.php?id=39&t=99");
|
|
exit;
|
|
}
|
|
}
|
|
|
|
/* =====================================================
|
|
HANDLE EDIT SUBMIT
|
|
===================================================== */
|
|
$postAction = $_POST['action'] ?? null;
|
|
|
|
if (
|
|
$postAction === 'editSlot' &&
|
|
$eid &&
|
|
!empty($_POST['lid'])
|
|
) {
|
|
|
|
$FLData = $database->getFLData((int)$_POST['lid']);
|
|
|
|
/* ======================
|
|
TARGET RESOLVE
|
|
====================== */
|
|
$Wref = null;
|
|
$WrefX = null;
|
|
$WrefY = null;
|
|
$vdata = null;
|
|
$oasistype = null;
|
|
|
|
$targetId = $_POST['target_id'] ?? '';
|
|
$px = $_POST['x'] ?? '';
|
|
$py = $_POST['y'] ?? '';
|
|
|
|
if (!empty($targetId)) {
|
|
|
|
$Wref = (int)$targetId;
|
|
$coor = $database->getCoor($Wref);
|
|
|
|
$WrefX = $coor['x'];
|
|
$WrefY = $coor['y'];
|
|
|
|
} elseif ($px !== '' && $py !== '' && is_numeric($px) && is_numeric($py)) {
|
|
|
|
$Wref = $database->getVilWref($px, $py);
|
|
$WrefX = (int)$px;
|
|
$WrefY = (int)$py;
|
|
}
|
|
|
|
if ($Wref) {
|
|
$oasistype = $database->getVillageType2($Wref);
|
|
$vdata = $database->getVillage($Wref);
|
|
}
|
|
|
|
/* ======================
|
|
TROOP COUNT
|
|
====================== */
|
|
$troops = 0;
|
|
for ($i = 1; $i <= 6; $i++) {
|
|
$unitId = $i + ($session->tribe - 1) * 10;
|
|
|
|
if (!in_array($unitId, [4, 14, 23])) {
|
|
$troops += (int)($_POST['t'.$i] ?? 0);
|
|
}
|
|
}
|
|
|
|
/* ======================
|
|
VALIDATION
|
|
====================== */
|
|
if (empty($px) && empty($py) && empty($targetId)) {
|
|
$errormsg = "Enter coordinates.";
|
|
|
|
} elseif (($px === '' || $py === '') && empty($targetId)) {
|
|
$errormsg = "Enter the correct coordinates.";
|
|
|
|
} elseif ($oasistype == 0 && !$vdata) {
|
|
$errormsg = "There is no village on those coordinates.";
|
|
|
|
} elseif ($troops == 0) {
|
|
$errormsg = "No troops has been selected.";
|
|
|
|
} elseif ($database->hasBeginnerProtection($Wref)) {
|
|
$errormsg = "Player under protection.";
|
|
|
|
} elseif (
|
|
$Wref == $FLData['wref'] ||
|
|
($vdata['wref'] ?? null) == $FLData['wref']
|
|
) {
|
|
$errormsg = "You can't attack the same village you're sending troops from.";
|
|
|
|
} else {
|
|
|
|
/* ======================
|
|
UPDATE SLOT
|
|
====================== */
|
|
$coor = $database->getCoor($village->wid);
|
|
$distance = $database->getDistance($coor['x'], $coor['y'], $WrefX, $WrefY);
|
|
|
|
$oldLid = $database->getRaidList($eid)['lid'];
|
|
|
|
$database->editSlotFarm(
|
|
$eid,
|
|
(int)$_POST['lid'],
|
|
$oldLid,
|
|
$session->uid,
|
|
$Wref,
|
|
$WrefX,
|
|
$WrefY,
|
|
$distance,
|
|
(int)($_POST['t1'] ?? 0),
|
|
(int)($_POST['t2'] ?? 0),
|
|
(int)($_POST['t3'] ?? 0),
|
|
(int)($_POST['t4'] ?? 0),
|
|
(int)($_POST['t5'] ?? 0),
|
|
(int)($_POST['t6'] ?? 0)
|
|
);
|
|
|
|
header("Location: build.php?id=39&t=99");
|
|
exit;
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
<div id="raidListSlot">
|
|
<h4><?php echo TZ_EDIT_SLOT; ?></h4>
|
|
|
|
<font color="#FF0000"><b><?php echo $errormsg; ?></b></font>
|
|
|
|
<form id="edit_form" action="build.php?id=39&t=99&action=showSlot&eid=<?php echo $eid; ?>" method="post">
|
|
|
|
<div class="boxes boxesColor gray">
|
|
<div class="boxes-tl"></div>
|
|
<div class="boxes-tr"></div>
|
|
<div class="boxes-tc"></div>
|
|
<div class="boxes-ml"></div>
|
|
<div class="boxes-mr"></div>
|
|
<div class="boxes-mc"></div>
|
|
<div class="boxes-bl"></div>
|
|
<div class="boxes-br"></div>
|
|
<div class="boxes-bc"></div>
|
|
|
|
<div class="boxes-contents cf">
|
|
|
|
<input type="hidden" name="action" value="editSlot">
|
|
|
|
<table cellpadding="1" cellspacing="1" class="transparent" id="raidList">
|
|
|
|
<tr>
|
|
<th><?php echo TZ_LIST_NAME; ?></th>
|
|
<td>
|
|
<select onchange="getTargetsByLid();" id="lid" name="lid">
|
|
|
|
<?php
|
|
$sql = mysqli_query(
|
|
$database->dblink,
|
|
"SELECT id, name, wref
|
|
FROM ".TB_PREFIX."farmlist
|
|
WHERE owner = ".(int)$session->uid."
|
|
ORDER BY name ASC"
|
|
);
|
|
|
|
while ($row = mysqli_fetch_array($sql)) {
|
|
|
|
$lid = $row["id"];
|
|
$lname = $row["name"];
|
|
$lvname = $database->getVillageField($row["wref"], 'name');
|
|
|
|
$selected = ($lid == $lid2) ? 'selected' : '';
|
|
|
|
echo '<option value="'.$lid.'" '.$selected.'>'
|
|
.$lvname.' - '.$lname.
|
|
'</option>';
|
|
}
|
|
?>
|
|
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th><?php echo TZ_TARGET_VILLAGE; ?></th>
|
|
|
|
<td class="target">
|
|
|
|
<div class="coordinatesInput">
|
|
|
|
<div class="xCoord">
|
|
<label for="xCoordInput">X:</label>
|
|
<input value="<?php echo $x; ?>" name="x" id="xCoordInput" class="text coordinates x">
|
|
</div>
|
|
|
|
<br />
|
|
|
|
<div class="yCoord">
|
|
<label for="yCoordInput">Y:</label>
|
|
<input value="<?php echo $y; ?>" name="y" id="yCoordInput" class="text coordinates y">
|
|
</div>
|
|
|
|
<div class="clear"></div>
|
|
|
|
</div>
|
|
|
|
<br />
|
|
|
|
<div class="targetSelect">
|
|
|
|
<label class="lastTargets"><?php echo TZ_LAST_TARGETS; ?></label>
|
|
|
|
<select name="target_id">
|
|
|
|
<?php
|
|
$getwref = "SELECT movement.to, movement.ref, attacks.*
|
|
FROM ".TB_PREFIX."movement movement
|
|
INNER JOIN ".TB_PREFIX."attacks attacks
|
|
ON attacks.id = movement.ref
|
|
WHERE attacks.attack_type = 4
|
|
AND movement.proc = 1
|
|
AND movement.from = ".$village->wid;
|
|
|
|
$arraywref = $database->query_return($getwref);
|
|
|
|
echo '<option value="">Select village</option>';
|
|
|
|
if (mysqli_num_rows(mysqli_query($database->dblink, $getwref)) != 0) {
|
|
|
|
foreach ($arraywref as $row) {
|
|
|
|
$towref = $row["to"];
|
|
$vilInfo = $database->getVillageByWorldID($towref);
|
|
|
|
if ($vilInfo['fieldtype'] > 0 && !$vilInfo['occupied']) {
|
|
continue;
|
|
}
|
|
|
|
$tocoor = $database->getCoor($towref);
|
|
|
|
if ($vilInfo['oasistype'] == 0) {
|
|
$tovname = $database->getVillageField($towref, 'name');
|
|
} else {
|
|
$tovname = $database->getOasisField($towref, 'name');
|
|
}
|
|
|
|
echo '<option value="'.$towref.'">'
|
|
.$tovname.' ('.$tocoor['x'].'|'.$tocoor['y'].')'
|
|
.'</option>';
|
|
}
|
|
}
|
|
?>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
<div class="clear"></div>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<?php include "Templates/goldClub/trooplist.tpl"; ?>
|
|
|
|
<button type="submit" class="trav_buttons"><?php echo SAVE; ?></button>
|
|
<button type="button"
|
|
class="trav_buttons"
|
|
onclick="window.location.href='?gid=16&t=99&action=deleteSlot&eid=<?php echo $eid; ?>&lid=<?php echo $eiddata['lid']; ?>';">
|
|
Delete
|
|
</button>
|
|
|
|
</form>
|
|
</div> |