mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-09 06:06:09 +00:00
fix traps training and by this fix also the 4294966344 setler bug too
This commit is contained in:
@@ -2666,7 +2666,11 @@ $crannyimg = "<img src=\"gpack/travian_default/img/g/g23.gif\" height=\"30\" wid
|
||||
if($trained >= $train['amt']) {
|
||||
$trained = $train['amt'];
|
||||
}
|
||||
$database->modifyUnit($train['vref'],array(($train['unit']>60?$train['unit']-60:$train['unit'])),array($trained),array(1));
|
||||
if($train['unit']>60 && $train['unit']!=99){
|
||||
$database->modifyUnit($train['vref'],array($train['unit']-60),array($trained),array(1));
|
||||
}else{
|
||||
$database->modifyUnit($train['vref'],array($train['unit']),array($trained),array(1));
|
||||
}
|
||||
if($train['amt']-$trained <= 0) {
|
||||
$database->trainUnit($train['id'],0,0,0,0,1,1);
|
||||
}
|
||||
|
||||
@@ -71,6 +71,7 @@ $u57=array('atk'=>250,'di'=>140,'dc'=>200,'wood'=>250,'clay'=>220,'iron'=>135,'c
|
||||
$u58=array('atk'=>450,'di'=>380,'dc'=>240,'wood'=>125,'clay'=>250,'iron'=>300,'crop'=>65,'speed'=>3,'pop'=>3,'time'=>2000,'cap'=>0);
|
||||
$u59=array('atk'=>200,'di'=>170,'dc'=>250,'wood'=>350,'clay'=>350,'iron'=>125,'crop'=>80,'speed'=>5,'pop'=>3,'time'=>70500,'cap'=>0);
|
||||
$u60=array('atk'=>600,'di'=>440,'dc'=>520,'wood'=>350,'clay'=>250,'iron'=>135,'crop'=>100,'speed'=>5,'pop'=>5,'time'=>31000,'cap'=>3000);
|
||||
$u99=array('atk'=>0,'di'=>0,'dc'=>0,'wood'=>20,'clay'=>30,'iron'=>10,'crop'=>20,'speed'=>0,'pop'=>0,'time'=>600,'cap'=>0);
|
||||
// Hero data base values and increase per point
|
||||
$h1=array('atk'=>50,'atkp'=>54,'di'=>60,'dip'=>49,'dc'=>85,'dcp'=>62.5);
|
||||
$h2=array('atk'=>40,'atkp'=>46.5,'di'=>100,'dip'=>75.5,'dc'=>60,'dcp'=>47.5);
|
||||
|
||||
@@ -2000,10 +2000,11 @@
|
||||
$stables = array(4, 5, 6, 15, 16, 23, 24, 25, 26, 35, 36, 45, 46);
|
||||
$workshop = array(7, 8, 17, 18, 27, 28, 37, 38, 47, 48);
|
||||
$residence = array(9, 10, 19, 20, 29, 30, 39, 40, 49, 50);
|
||||
$greatstables = array(64,65,66,75,76,83,84,85,86,95,96,105,106,);
|
||||
$greatbarracks = array(61,62,63,71,72,73,84,81,82,91,92,93,94,101,102,103,104,111,112,113,114);
|
||||
$greatworkshop = array(67,68,77,78,87,88,97,98,107,108);
|
||||
|
||||
$greatstables = array(64,65,66,75,76,83,84,85,86,95,96,105,106,);
|
||||
$greatbarracks = array(61,62,63,71,72,73,84,81,82,91,92,93,94,101,102,103,104,111,112,113,114);
|
||||
$greatworkshop = array(67,68,77,78,87,88,97,98,107,108);
|
||||
$trapper = array(99);
|
||||
|
||||
if(in_array($unit, $barracks)) {
|
||||
$queued = $technology->getTrainingList(1);
|
||||
} elseif(in_array($unit, $stables)) {
|
||||
@@ -2013,12 +2014,14 @@
|
||||
} elseif(in_array($unit, $residence)) {
|
||||
$queued = $technology->getTrainingList(4);
|
||||
} elseif(in_array($unit, $greatstables)) {
|
||||
$queued = $technology->getTrainingList(6);
|
||||
} elseif(in_array($unit, $greatbarracks)) {
|
||||
$queued = $technology->getTrainingList(5);
|
||||
} elseif(in_array($unit, $greatworkshop)) {
|
||||
$queued = $technology->getTrainingList(7);
|
||||
}
|
||||
$queued = $technology->getTrainingList(6);
|
||||
} elseif(in_array($unit, $greatbarracks)) {
|
||||
$queued = $technology->getTrainingList(5);
|
||||
} elseif(in_array($unit, $greatworkshop)) {
|
||||
$queued = $technology->getTrainingList(7);
|
||||
} elseif(in_array($unit, $trapper)) {
|
||||
$queued = $technology->getTrainingList(8);
|
||||
}
|
||||
if(count($queued) > 0) {
|
||||
$time = $queued[count($queued) - 1]['commence'] + $queued[count($queued) - 1]['eachtime'] * $queued[count($queued) - 1]['amt'];
|
||||
}
|
||||
|
||||
@@ -192,6 +192,7 @@ define("U27","Ram");
|
||||
define("U28","Trebuchet");
|
||||
define("U29","Chieftain");
|
||||
define("U30","Settler");
|
||||
define("U99","Trap");
|
||||
|
||||
//NATURE UNITS
|
||||
define("U31","Rat");
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
class Technology {
|
||||
|
||||
public $unarray = array(1=>U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U0);
|
||||
public $unarray = array(1=>U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U99,U0);
|
||||
|
||||
public function grabAcademyRes() {
|
||||
global $village;
|
||||
@@ -97,6 +97,7 @@ class Technology {
|
||||
$workshop = array(7,8,17,18,27,28,37,38,47,48);
|
||||
$greatworkshop = array(67,68,77,78,87,88,97,98,107,108);
|
||||
$residence = array(9,10,19,20,29,30,39,40,49,50);
|
||||
$trapper = array(99);
|
||||
if(count($trainingarray) > 0) {
|
||||
foreach($trainingarray as $train) {
|
||||
if($type == 1 && in_array($train['unit'],$barracks)) {
|
||||
@@ -130,6 +131,10 @@ class Technology {
|
||||
$train['unit'] -= 60;
|
||||
array_push($listarray,$train);
|
||||
}
|
||||
if($type == 8 && in_array($train['unit'],$trapper)) {
|
||||
$train['name'] = $this->unarray[$train['unit']];
|
||||
array_push($listarray,$train);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $listarray;
|
||||
@@ -210,6 +215,8 @@ class Technology {
|
||||
function getAllUnits($base,$InVillageOnly=False) {
|
||||
global $database;
|
||||
$ownunit = $database->getUnit($base);
|
||||
$ownunit['u99'] -= $ownunit['u99'];
|
||||
$ownunit['u99o'] -= $ownunit['u99o'];
|
||||
$enforcementarray = $database->getEnforceVillage($base,0);
|
||||
if(count($enforcementarray) > 0) {
|
||||
foreach($enforcementarray as $enforce) {
|
||||
@@ -330,6 +337,14 @@ class Technology {
|
||||
$this->trainUnit($i,$amt,$great);
|
||||
}
|
||||
}
|
||||
if($session->tribe == 3){
|
||||
if(isset($post['t99']) && $post['t99'] != 0) {
|
||||
$amt = $post['t99'];
|
||||
$amt = intval($amt);
|
||||
if ($amt < 0) $amt = 1;
|
||||
$this->trainUnit(99,$amt,$great);
|
||||
}
|
||||
}
|
||||
header("Location: build.php?id=".$post['id']);
|
||||
}else{
|
||||
header("Location: banned.php");
|
||||
@@ -391,13 +406,14 @@ class Technology {
|
||||
}
|
||||
|
||||
private function trainUnit($unit,$amt,$great=false) {
|
||||
global $session,$database,${'u'.$unit},$building,$village,$bid19,$bid20,$bid21,$bid25,$bid26,$bid29,$bid30,$bid41,$bid42;
|
||||
global $session,$database,${'u'.$unit},$building,$village,$bid19,$bid20,$bid21,$bid25,$bid26,$bid29,$bid30,$bid36,$bid41,$bid42;
|
||||
|
||||
if($this->getTech($unit) || $unit%10 <= 1) {
|
||||
if($this->getTech($unit) || $unit%10 <= 1 || $unit == 99) {
|
||||
$footies = array(1,2,3,11,12,13,14,21,22,31,32,33,34,41,42,43,44);
|
||||
$calvary = array(4,5,6,15,16,23,24,25,26,35,36,45,46);
|
||||
$workshop = array(7,8,17,18,27,28,37,38,47,48);
|
||||
$special = array(9,10,19,20,29,30,39,40,49,50);
|
||||
$trapper = array(99);
|
||||
if(in_array($unit,$footies)) {
|
||||
if($great) {
|
||||
$each = round(($bid29[$building->getTypeLevel(29)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED);
|
||||
@@ -426,14 +442,24 @@ private function trainUnit($unit,$amt,$great=false) {
|
||||
$each = round(($bid26[$building->getTypeLevel(26)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED);
|
||||
}
|
||||
}
|
||||
if($unit%10 == 0 || $unit%10 == 9) {
|
||||
if(in_array($unit,$trapper)) {
|
||||
$each = round(($bid19[$building->getTypeLevel(36)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED);
|
||||
}
|
||||
if($unit%10 == 0 || $unit%10 == 9 && $unit != 99) {
|
||||
$slots = $database->getAvailableExpansionTraining();
|
||||
if($unit%10 == 0 && $slots['settlers'] <= $amt) { $amt = $slots['settlers']; }
|
||||
if($unit%10 == 9 && $slots['chiefs'] <= $amt) { $amt = $slots['chiefs']; }
|
||||
} else {
|
||||
if($unit != 99){
|
||||
if($this->maxUnit($unit,$great) <= $amt) {
|
||||
$amt = $this->maxUnit($unit,$great);
|
||||
$amt = 0;
|
||||
}
|
||||
}else{
|
||||
$max = $bid36[$building->getTypeLevel(36)]['attri'] - $village->unitarray['u99'];
|
||||
if($max <= $amt) {
|
||||
$amt = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
$wood = ${'u'.$unit}['wood'] * $amt * ($great?3:1);
|
||||
$clay = ${'u'.$unit}['clay'] * $amt * ($great?3:1);
|
||||
@@ -441,7 +467,7 @@ private function trainUnit($unit,$amt,$great=false) {
|
||||
$crop = ${'u'.$unit}['crop'] * $amt * ($great?3:1);
|
||||
$each = ($each == 0) ? 1 : $each;
|
||||
|
||||
if($database->modifyResource($village->wid,$wood,$clay,$iron,$crop,0)) {
|
||||
if($database->modifyResource($village->wid,$wood,$clay,$iron,$crop,0) && $amt > 0) {
|
||||
$database->trainUnit($village->wid,$unit+($great?60:0),$amt,${'u'.$unit}['pop'],$each,time(),0);
|
||||
}
|
||||
}
|
||||
|
||||
+54
-18
@@ -37,12 +37,11 @@
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<p>Your currently have <b>0</b> traps, <b>0</b> of which are occupied.</p>
|
||||
<form method="POST" name="snd" action="build.php"><input type="hidden"
|
||||
name="id" value="22" /> <input type="hidden"
|
||||
name="z" value="17" /> <input type="hidden" name="a"
|
||||
value="2" />
|
||||
|
||||
<p>Your currently have <b><?php echo $village->unitarray['u99']; ?></b> traps, <b><?php echo $village->unitarray['u99o']; ?></b> of which are occupied.</p>
|
||||
<?php if ($building->getTypeLevel(36) > 0) { ?>
|
||||
<form method="POST" name="snd" action="build.php">
|
||||
<input type="hidden" name="id" value="<?php echo $id; ?>" />
|
||||
<input type="hidden" name="ft" value="t1" />
|
||||
<table cellpadding="1" cellspacing="1" class="build_details">
|
||||
<thead>
|
||||
|
||||
@@ -59,31 +58,68 @@
|
||||
<div class="tit"><img class="unit u99" src="img/x.gif"
|
||||
alt="Trap"
|
||||
title="Trap" /> <a href="#"
|
||||
onClick="return Popup(36,4,'gid');">Trap</a> <span class="info">(Available: 0)</span>
|
||||
onClick="return Popup(36,4,'gid');">Trap</a> <span class="info">(Available: <?php echo $village->unitarray['u99']; ?>)</span>
|
||||
</div>
|
||||
<div class="details">
|
||||
<span><img class="r1" src="img/x.gif"
|
||||
<span><img class="r1" src="img/x.gif"
|
||||
alt="Lumber" title="Lumber" />20|</span><span><img class="r2" src="img/x.gif"
|
||||
alt="Clay" title="Clay" />30|</span><span><img class="r3" src="img/x.gif"
|
||||
alt="Iron" title="Iron" />10|</span><span><img class="r4" src="img/x.gif"
|
||||
alt="Crop" title="Crop" />20|</span><span><img class="r5" src="img/x.gif" alt="Crop consumption"
|
||||
title="Crop consumption" />0|<img class="clock" src="img/x.gif"
|
||||
alt="Duration" title="Duration" />0:10:00</span>
|
||||
alt="Duration" title="Duration" /><?php $dur=$generator->getTimeFormat(round(${'u99'}['time'] * ($bid19[$village->resarray['f'.$id]]['attri'] / 100) / SPEED));
|
||||
echo ($dur=="0:00:00")? "0:00:01":$dur; ?></span>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
<td class="val"><input type="text" class="text" name="t99" value="0"
|
||||
maxlength="4"></td>
|
||||
<td class="max"><a href="#"
|
||||
onClick="document.snd.t99.value=<?php echo $bid36[$village->resarray['f'.$id]]['attri']; ?>">(<?php echo $bid36[$village->resarray['f'.$id]]['attri']; ?>)</a></td>
|
||||
<?php
|
||||
$max = $bid36[$village->resarray['f'.$id]]['attri'] - $village->unitarray['u99'];
|
||||
if($max < 0){
|
||||
$max = 0;
|
||||
}
|
||||
?>
|
||||
<td class="val"><input type="text" class="text" name="t99" value="0" maxlength="4"></td>
|
||||
<td class="max"><a href="#" onClick="document.snd.t99.value=<?php echo $max; ?>">(<?php echo $max; ?>)</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p><input type="image" value="ok" name="s1" id="btn_train"
|
||||
class="dynamic_img" src="img/x.gif" alt="train" /></p>
|
||||
</form>
|
||||
<?php
|
||||
<p><input type="image" id="btn_train" class="dynamic_img" value="ok" name="s1" src="img/x.gif" alt="train" onclick="this.disabled=true;this.form.submit();"/></form></p>
|
||||
<?php
|
||||
} else {
|
||||
echo "<b>Training can commence when trapper are completed.</b><br>\n";
|
||||
}
|
||||
$trainlist = $technology->getTrainingList(8);
|
||||
if(count($trainlist) > 0) {
|
||||
echo "
|
||||
<table cellpadding=\"1\" cellspacing=\"1\" class=\"under_progress\">
|
||||
<thead><tr>
|
||||
<td>Training</td>
|
||||
<td>Duration</td>
|
||||
<td>Finished</td>
|
||||
</tr></thead>
|
||||
<tbody>";
|
||||
$TrainCount = 0;
|
||||
foreach($trainlist as $train) {
|
||||
$TrainCount++;
|
||||
echo "<tr><td class=\"desc\">";
|
||||
echo "<img class=\"unit u".$train['unit']."\" src=\"img/x.gif\" alt=\"".U99."\" title=\"".U99."\" />";
|
||||
echo $train['amt']." ".U99."</td><td class=\"dur\">";
|
||||
if ($TrainCount == 1 ) {
|
||||
$NextFinished = $generator->getTimeFormat(($train['commence']+$train['eachtime'])-time());
|
||||
echo "<span id=timer1>".$generator->getTimeFormat(($train['commence']+($train['eachtime']*$train['amt']))-time())."</span>";
|
||||
} else {
|
||||
echo $generator->getTimeFormat($train['eachtime']*$train['amt']);
|
||||
}
|
||||
echo "</td><td class=\"fin\">";
|
||||
$time = $generator->procMTime($train['commence']+($train['eachtime']*$train['amt']));
|
||||
if($time[0] != "today") {
|
||||
echo "on ".$time[0]." at ";
|
||||
}
|
||||
echo $time[1];
|
||||
} ?>
|
||||
</tr><tr class="next"><td colspan="3">The next unit will be finished in <span id="timer2"><?php echo $NextFinished; ?></span></td></tr>
|
||||
</tbody></table>
|
||||
<?php }
|
||||
include("upgrade.tpl");
|
||||
?>
|
||||
</p></div>
|
||||
@@ -87,7 +87,7 @@ if($mainbuilding >= 10 && $village->capital == 0 && $largeA['owner'] == $session
|
||||
if($mainbuilding >= 10 && $village->capital == 0 && $largeA['owner'] == $session->uid || $normalA['vref'] == $village->wid ) {
|
||||
include("avaliable/greatgranary.tpl");
|
||||
}
|
||||
if(($trapper ==0 || $trapper == 10) && $rallypoint >= 1 && $session->tribe == 3 && $id != 39 && $id != 40) {
|
||||
if(($trapper ==0 || $trapper == 20) && $rallypoint >= 1 && $session->tribe == 3 && $id != 39 && $id != 40) {
|
||||
include("avaliable/trapper.tpl");
|
||||
}
|
||||
if($rallypoint == 0 && $id != 40) {
|
||||
|
||||
@@ -1239,6 +1239,8 @@ CREATE TABLE IF NOT EXISTS `%PREFIX%units` (
|
||||
`u48` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`u49` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`u50` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`u99` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`u99o` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`hero` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`vref`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
Reference in New Issue
Block a user