Fixed a bug in the market

+ x3 orders and trade routes won't disappear anymore if the player has
less resources than required, the merchants will take all of his
resources instead
+Fixed a bug in the market that didn't permit to send x3 merchants
This commit is contained in:
iopietro
2018-04-21 21:56:33 +02:00
parent 4784e73e43
commit ec6a26acf3
2 changed files with 21 additions and 16 deletions
+14 -9
View File
@@ -950,13 +950,13 @@ class Automation {
$dataarray = $database->query_return($q); $dataarray = $database->query_return($q);
foreach($dataarray as $data) { foreach($dataarray as $data) {
$userData_from = $database->getUserFields($database->getVillageField($data['from'],"owner"),"alliance, tribe",0); $userData_from = $database->getUserFields($database->getVillageField($data['from'], "owner"), "alliance, tribe", 0);
$userData_to = $database->getUserFields($database->getVillageField($data['to'],"owner"),"alliance, tribe",0); $userData_to = $database->getUserFields($database->getVillageField($data['to'], "owner"), "alliance, tribe", 0);
if($data['wood'] >= $data['clay'] && $data['wood'] >= $data['iron'] && $data['wood'] >= $data['crop']){ $sort_type = "10"; } if($data['wood'] >= $data['clay'] && $data['wood'] >= $data['iron'] && $data['wood'] >= $data['crop']) $sort_type = 10;
elseif($data['clay'] >= $data['wood'] && $data['clay'] >= $data['iron'] && $data['clay'] >= $data['crop']){ $sort_type = "11"; } elseif($data['clay'] >= $data['wood'] && $data['clay'] >= $data['iron'] && $data['clay'] >= $data['crop']) $sort_type = 11;
elseif($data['iron'] >= $data['wood'] && $data['iron'] >= $data['clay'] && $data['iron'] >= $data['crop']){ $sort_type = "12"; } elseif($data['iron'] >= $data['wood'] && $data['iron'] >= $data['clay'] && $data['iron'] >= $data['crop']) $sort_type = 12;
elseif($data['crop'] >= $data['wood'] && $data['crop'] >= $data['clay'] && $data['crop'] >= $data['iron']){ $sort_type = "13"; } elseif($data['crop'] >= $data['wood'] && $data['crop'] >= $data['clay'] && $data['crop'] >= $data['iron']) $sort_type = 13;
$to = $database->getMInfo($data['to']); $to = $database->getMInfo($data['to']);
$from = $database->getMInfo($data['from']); $from = $database->getMInfo($data['from']);
@@ -1002,7 +1002,7 @@ class Automation {
} }
} }
private function sendResource2($wtrans,$ctrans,$itrans,$crtrans,$from,$to,$tribe,$send) { private function sendResource2($wtrans, $ctrans, $itrans, $crtrans, $from, $to, $tribe, $send) {
global $bid17,$bid28,$database,$generator,$logging; global $bid17,$bid28,$database,$generator,$logging;
$availableWood = $database->getWoodAvailable($from); $availableWood = $database->getWoodAvailable($from);
@@ -1010,7 +1010,13 @@ class Automation {
$availableIron = $database->getIronAvailable($from); $availableIron = $database->getIronAvailable($from);
$availableCrop = $database->getCropAvailable($from); $availableCrop = $database->getCropAvailable($from);
if($availableWood >= $wtrans AND $availableClay >= $ctrans AND $availableIron >= $itrans AND $availableCrop >= $crtrans){ if($availableWood + $availableClay + $availableIron + $availableCrop > 0)
{
if($availableWood < $wtrans) $wtrans = $availableWood;
if($availableClay < $ctrans) $ctrans = $availableClay;
if($availableIron < $itrans) $itrans = $availableIron;
if($availableCrop < $crtrans) $crtrans = $availableCrop;
$merchant2 = ($this->getTypeLevel(17,$from) > 0)? $this->getTypeLevel(17,$from) : 0; $merchant2 = ($this->getTypeLevel(17,$from) > 0)? $this->getTypeLevel(17,$from) : 0;
$used2 = $database->totalMerchantUsed($from, false); $used2 = $database->totalMerchantUsed($from, false);
$merchantAvail2 = $merchant2 - $used2; $merchantAvail2 = $merchant2 - $used2;
@@ -1037,7 +1043,6 @@ class Automation {
$database->addMovement(0,$from,$to,$reference,microtime(true),microtime(true)+$timetaken,$send); $database->addMovement(0,$from,$to,$reference,microtime(true),microtime(true)+$timetaken,$send);
} }
} }
} }
} }
} }
+1 -1
View File
@@ -35,7 +35,7 @@ $userID = $database->getUserField($villageOwner,'id',0);
} }
$maxcarry = $market->maxcarry; $maxcarry = $market->maxcarry;
$maxcarry *= $market->merchantAvail(); $maxcarry *= $market->merchantAvail();
if(isset($_POST['ft'])=='check' && (($_POST['send3'] > 1 && $_POST['send3'] < 3 && $session->goldclub) || $_POST['send3'] == 1) && $getwref != $village->wid && $allres!=0 && $allres <= $maxcarry && ($_POST['x']!="" && $_POST['y']!="" or $_POST['dname']!="") && $checkexist && ($userAccess == 2 || $userAccess == MULTIHUNTER || (ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == ADMIN))){ if(isset($_POST['ft'])=='check' && (($_POST['send3'] > 1 && $_POST['send3'] <= 3 && $session->goldclub) || $_POST['send3'] == 1) && $getwref != $village->wid && $allres!=0 && $allres <= $maxcarry && ($_POST['x']!="" && $_POST['y']!="" or $_POST['dname']!="") && $checkexist && ($userAccess == 2 || $userAccess == MULTIHUNTER || (ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == ADMIN))){
?> ?>
<form method="POST" name="snd" action="build.php"> <form method="POST" name="snd" action="build.php">
<input type="hidden" name="ft" value="mk1"> <input type="hidden" name="ft" value="mk1">