mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-04 11:54:25 +00:00
fixes for marketplace
This commit is contained in:
+344
-250
@@ -1,264 +1,358 @@
|
||||
<?php
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename Market.php ##
|
||||
## Developed by: Dzoki ##
|
||||
## License: TravianX Project ##
|
||||
## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
|
||||
## ##
|
||||
#################################################################################
|
||||
class Market {
|
||||
<?php
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename Market.php ##
|
||||
## Developed by: Dzoki ##
|
||||
## Some fixes: aggenkeech ##
|
||||
## License: TravianX Project ##
|
||||
## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
|
||||
## ##
|
||||
#################################################################################
|
||||
|
||||
public $onsale,$onmarket,$sending,$recieving,$return = array();
|
||||
public $maxcarry,$merchant,$used;
|
||||
class Market
|
||||
{
|
||||
public $onsale,$onmarket,$sending,$recieving,$return = array();
|
||||
public $maxcarry,$merchant,$used;
|
||||
|
||||
public function procMarket($post) {
|
||||
$this->loadMarket();
|
||||
if(isset($_SESSION['loadMarket'])) {
|
||||
$this->loadOnsale();
|
||||
unset($_SESSION['loadMarket']);
|
||||
}
|
||||
if(isset($post['ft'])) {
|
||||
switch($post['ft']) {
|
||||
case "mk1":
|
||||
$this->sendResource($post);
|
||||
break;
|
||||
case "mk2":
|
||||
$this->addOffer($post);
|
||||
break;
|
||||
case "mk3":
|
||||
$this->tradeResource($post);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
public function procMarket($post)
|
||||
{
|
||||
$this->loadMarket();
|
||||
if(isset($_SESSION['loadMarket']))
|
||||
{
|
||||
$this->loadOnsale();
|
||||
unset($_SESSION['loadMarket']);
|
||||
}
|
||||
if(isset($post['ft']))
|
||||
{
|
||||
switch($post['ft'])
|
||||
{
|
||||
case "mk1": $this->sendResource($post); break;
|
||||
case "mk2": $this->addOffer($post); break;
|
||||
case "mk3": $this->tradeResource($post); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function procRemove($get) {
|
||||
global $database,$village,$session;
|
||||
if(isset($get['t']) && $get['t'] == 1) {
|
||||
$this->filterNeed($get);
|
||||
}
|
||||
else if(isset($get['t']) && $get['t'] ==2 && isset($get['a']) && $get['a'] == 5 && isset($get['del'])) {
|
||||
//GET ALL FIELDS FROM MARKET
|
||||
$type = $database->getMarketField($village->wid,"gtype");
|
||||
$amt = $database->getMarketField($village->wid,"gamt");
|
||||
$vref = $village->wid;
|
||||
$database->getResourcesBack($vref,$type,$amt);
|
||||
$database->addMarket($village->wid,$get['del'],0,0,0,0,0,0,1);
|
||||
header("Location: build.php?id=".$get['id']."&t=2");
|
||||
}
|
||||
if(isset($get['t']) && $get['t'] == 1 && isset($get['a']) && $get['a'] == $session->mchecker && !isset($get['del'])) {
|
||||
$session->changeChecker();
|
||||
$this->acceptOffer($get);
|
||||
}
|
||||
}
|
||||
public function procRemove($get)
|
||||
{
|
||||
global $database,$village,$session;
|
||||
|
||||
if(isset($get['t']) && $get['t'] == 1)
|
||||
{
|
||||
$this->filterNeed($get);
|
||||
}
|
||||
else if(isset($get['t']) && $get['t'] ==2 && isset($get['a']) && $get['a'] == 5 && isset($get['del']))
|
||||
{
|
||||
//GET ALL FIELDS FROM MARKET
|
||||
$type = $database->getMarketField($village->wid,"gtype");
|
||||
$amt = $database->getMarketField($village->wid,"gamt");
|
||||
$vref = $village->wid;
|
||||
$database->getResourcesBack($vref,$type,$amt);
|
||||
$database->addMarket($village->wid,$get['del'],0,0,0,0,0,0,1);
|
||||
header("Location: build.php?id=".$get['id']."&t=2");
|
||||
}
|
||||
if(isset($get['t']) && $get['t'] == 1 && isset($get['a']) && $get['a'] == $session->mchecker && !isset($get['del']))
|
||||
{
|
||||
$session->changeChecker();
|
||||
$this->acceptOffer($get);
|
||||
}
|
||||
}
|
||||
|
||||
public function merchantAvail() {
|
||||
return $this->merchant - $this->used;
|
||||
}
|
||||
public function merchantAvail()
|
||||
{
|
||||
return $this->merchant - $this->used;
|
||||
}
|
||||
|
||||
private function loadMarket() {
|
||||
global $session,$building,$bid28,$bid17,$database,$village;
|
||||
$this->recieving = $database->getMovement(0,$village->wid,1);
|
||||
$this->sending = $database->getMovement(0,$village->wid,0);
|
||||
$this->return = $database->getMovement(2,$village->wid,1);
|
||||
$this->merchant = ($building->getTypeLevel(17) > 0)? $bid17[$building->getTypeLevel(17)]['attri'] : 0;
|
||||
$this->used = $database->totalMerchantUsed($village->wid);
|
||||
$this->onmarket = $database->getMarket($village->wid,0);
|
||||
$this->maxcarry = ($session->tribe == 1)? 500 : (($session->tribe == 2)? 1000 : 750);
|
||||
$this->maxcarry *= TRADER_CAPACITY;
|
||||
if($building->getTypeLevel(28) != 0) {
|
||||
$this->maxcarry *= $bid28[$building->getTypeLevel(28)]['attri'] / 100;
|
||||
}
|
||||
}
|
||||
private function loadMarket()
|
||||
{
|
||||
global $session,$building,$bid28,$bid17,$database,$village;
|
||||
|
||||
$this->recieving = $database->getMovement(0,$village->wid,1);
|
||||
$this->sending = $database->getMovement(0,$village->wid,0);
|
||||
$this->return = $database->getMovement(2,$village->wid,1);
|
||||
$this->merchant = ($building->getTypeLevel(17) > 0)? $bid17[$building->getTypeLevel(17)]['attri'] : 0;
|
||||
$this->used = $database->totalMerchantUsed($village->wid);
|
||||
$this->onmarket = $database->getMarket($village->wid,0);
|
||||
$this->maxcarry = ($session->tribe == 1)? 500 : (($session->tribe == 2)? 1000 : 750);
|
||||
$this->maxcarry *= TRADER_CAPACITY;
|
||||
if($building->getTypeLevel(28) != 0)
|
||||
{
|
||||
$this->maxcarry *= $bid28[$building->getTypeLevel(28)]['attri'] / 100;
|
||||
}
|
||||
}
|
||||
|
||||
private function sendResource($post) {
|
||||
global $database,$village,$session,$generator,$logging;
|
||||
$wtrans = (isset($post['r1']) && $post['r1'] != "")? $post['r1'] : 0;
|
||||
$ctrans = (isset($post['r2']) && $post['r2'] != "")? $post['r2'] : 0;
|
||||
$itrans = (isset($post['r3']) && $post['r3'] != "")? $post['r3'] : 0;
|
||||
$crtrans = (isset($post['r4']) && $post['r4'] != "")? $post['r4'] : 0;
|
||||
$wtrans = str_replace("-", "", $wtrans);
|
||||
$ctrans = str_replace("-", "", $ctrans);
|
||||
$itrans = str_replace("-", "", $itrans);
|
||||
$crtrans = str_replace("-", "", $crtrans);
|
||||
$availableWood = $database->getWoodAvailable($village->wid);
|
||||
$availableClay = $database->getClayAvailable($village->wid);
|
||||
$availableIron = $database->getIronAvailable($village->wid);
|
||||
$availableCrop = $database->getCropAvailable($village->wid);
|
||||
if($session->access == BANNED){
|
||||
header("Location: banned.php");
|
||||
}else if($availableWood >= $post['r1'] AND $availableClay >= $post['r2'] AND $availableIron >= $post['r3'] AND $availableCrop >= $post['r4']){
|
||||
private function sendResource($post)
|
||||
{
|
||||
global $database,$village,$session,$generator,$logging;
|
||||
|
||||
$wtrans = (isset($post['r1']) && $post['r1'] != "")? $post['r1'] : 0;
|
||||
$ctrans = (isset($post['r2']) && $post['r2'] != "")? $post['r2'] : 0;
|
||||
$itrans = (isset($post['r3']) && $post['r3'] != "")? $post['r3'] : 0;
|
||||
$crtrans = (isset($post['r4']) && $post['r4'] != "")? $post['r4'] : 0;
|
||||
$wtrans = str_replace("-", "", $wtrans);
|
||||
$ctrans = str_replace("-", "", $ctrans);
|
||||
$itrans = str_replace("-", "", $itrans);
|
||||
$crtrans = str_replace("-", "", $crtrans);
|
||||
$availableWood = $database->getWoodAvailable($village->wid);
|
||||
$availableClay = $database->getClayAvailable($village->wid);
|
||||
$availableIron = $database->getIronAvailable($village->wid);
|
||||
$availableCrop = $database->getCropAvailable($village->wid);
|
||||
if($session->access == BANNED)
|
||||
{
|
||||
header("Location: banned.php");
|
||||
}
|
||||
else if($availableWood >= $post['r1'] AND $availableClay >= $post['r2'] AND $availableIron >= $post['r3'] AND $availableCrop >= $post['r4'])
|
||||
{
|
||||
$resource = array($wtrans,$ctrans,$itrans,$crtrans);
|
||||
$reqMerc = ceil((array_sum($resource)-0.1)/$this->maxcarry);
|
||||
|
||||
$resource = array($wtrans,$ctrans,$itrans,$crtrans);
|
||||
$reqMerc = ceil((array_sum($resource)-0.1)/$this->maxcarry);
|
||||
if($this->merchantAvail() != 0 && $reqMerc <= $this->merchantAvail())
|
||||
{
|
||||
$id = $post['getwref'];
|
||||
$coor = $database->getCoor($id);
|
||||
if($database->getVillageState($id))
|
||||
{
|
||||
$timetaken = $generator->procDistanceTime($coor,$village->coor,$session->tribe,0);
|
||||
$res = $resource[0]+$resource[1]+$resource[2]+$resource[3];
|
||||
if($res!=0)
|
||||
{
|
||||
$reference = $database->sendResource($resource[0],$resource[1],$resource[2],$resource[3],$reqMerc,0);
|
||||
$database->modifyResource($village->wid,$resource[0],$resource[1],$resource[2],$resource[3],0);
|
||||
$database->addMovement(0,$village->wid,$id,$reference,time(),time()+$timetaken,$post['send3']);
|
||||
$logging->addMarketLog($village->wid,1,array($resource[0],$resource[1],$resource[2],$resource[3],$id));
|
||||
}
|
||||
}
|
||||
}
|
||||
header("Location: build.php?id=".$post['id']);
|
||||
}
|
||||
else
|
||||
{
|
||||
// something
|
||||
}
|
||||
}
|
||||
|
||||
if($this->merchantAvail() != 0 && $reqMerc <= $this->merchantAvail()) {
|
||||
$id = $post['getwref'];
|
||||
$coor = $database->getCoor($id);
|
||||
if($database->getVillageState($id)) {
|
||||
$timetaken = $generator->procDistanceTime($coor,$village->coor,$session->tribe,0);
|
||||
$res = $resource[0]+$resource[1]+$resource[2]+$resource[3];
|
||||
if($res!=0){
|
||||
$reference = $database->sendResource($resource[0],$resource[1],$resource[2],$resource[3],$reqMerc,0);
|
||||
$database->modifyResource($village->wid,$resource[0],$resource[1],$resource[2],$resource[3],0);
|
||||
$database->addMovement(0,$village->wid,$id,$reference,time(),time()+$timetaken,$post['send3']);
|
||||
$logging->addMarketLog($village->wid,1,array($resource[0],$resource[1],$resource[2],$resource[3],$id));
|
||||
}
|
||||
}
|
||||
}
|
||||
header("Location: build.php?id=".$post['id']);
|
||||
} else {}
|
||||
}
|
||||
private function addOffer($post)
|
||||
{
|
||||
global $database,$village,$session;
|
||||
|
||||
|
||||
if($post['rid1'] == $post['rid2'])
|
||||
{
|
||||
// Trading res for res of same type (invalid)
|
||||
header("Location: build.php?id=".$post['id']."&t=2&e2");
|
||||
}
|
||||
elseif($post['m1'] > (2 * $post['m2']))
|
||||
{
|
||||
// Trade is for more than 2x (invalid)
|
||||
header("Location: build.php?id=".$post['id']."&t=2&e2");
|
||||
}
|
||||
elseif($post['m2'] > (2 * $post['m1']))
|
||||
{
|
||||
// Trade is for less than 0.5x (invalid)
|
||||
header("Location: build.php?id=".$post['id']."&t=2&e2");
|
||||
}
|
||||
else
|
||||
{
|
||||
$wood = ($post['rid1'] == 1)? $post['m1'] : 0;
|
||||
$clay = ($post['rid1'] == 2)? $post['m1'] : 0;
|
||||
$iron = ($post['rid1'] == 3)? $post['m1'] : 0;
|
||||
$crop = ($post['rid1'] == 4)? $post['m1'] : 0;
|
||||
$availableWood = $database->getWoodAvailable($village->wid);
|
||||
$availableClay = $database->getClayAvailable($village->wid);
|
||||
$availableIron = $database->getIronAvailable($village->wid);
|
||||
$availableCrop = $database->getCropAvailable($village->wid);
|
||||
|
||||
if($session->access == BANNED)
|
||||
{
|
||||
header("Location: banned.php");
|
||||
}
|
||||
|
||||
elseif($availableWood >= $wood AND $availableClay >= $clay AND $availableIron >= $iron AND $availableCrop >= $crop)
|
||||
{
|
||||
$reqMerc = 1;
|
||||
|
||||
if(($wood+$clay+$iron+$crop) > $this->maxcarry)
|
||||
{
|
||||
$reqMerc = round(($wood+$clay+$iron+$crop)/$this->maxcarry);
|
||||
|
||||
if(($wood+$clay+$iron+$crop) > $this->maxcarry*$reqMerc)
|
||||
{
|
||||
$reqMerc += 1;
|
||||
}
|
||||
}
|
||||
if($this->merchantAvail() != 0 && $reqMerc <= $this->merchantAvail())
|
||||
{
|
||||
if($database->modifyResource($village->wid,$wood,$clay,$iron,$crop,0))
|
||||
{
|
||||
$time = 0;
|
||||
if(isset($_POST['d1']))
|
||||
{
|
||||
$time = $_POST['d2'] * 3600;
|
||||
}
|
||||
$alliance = (isset($post['ally']) && $post['ally'] == 1)? $session->userinfo['alliance'] : 0;
|
||||
$database->addMarket($village->wid,$post['rid1'],$post['m1'],$post['rid2'],$post['m2'],$time,$alliance,$reqMerc,0);
|
||||
}
|
||||
// Enough merchants
|
||||
header("Location: build.php?id=".$post['id']."&t=2");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not enough merchants
|
||||
header("Location: build.php?id=".$post['id']."&t=2&e3");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// not enough resources
|
||||
header("Location: build.php?id=".$post['id']."&t=2&e1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function addOffer($post) {
|
||||
global $database,$village,$session;
|
||||
$wood = ($post['rid1'] == 1)? $post['m1'] : 0;
|
||||
$clay = ($post['rid1'] == 2)? $post['m1'] : 0;
|
||||
$iron = ($post['rid1'] == 3)? $post['m1'] : 0;
|
||||
$crop = ($post['rid1'] == 4)? $post['m1'] : 0;
|
||||
$availableWood = $database->getWoodAvailable($village->wid);
|
||||
$availableClay = $database->getClayAvailable($village->wid);
|
||||
$availableIron = $database->getIronAvailable($village->wid);
|
||||
$availableCrop = $database->getCropAvailable($village->wid);
|
||||
if($session->access == BANNED){
|
||||
header("Location: banned.php");
|
||||
}else if($availableWood >= $wood AND $availableClay >= $clay AND $availableIron >= $iron AND $availableCrop >= $crop){
|
||||
private function acceptOffer($get)
|
||||
{
|
||||
global $database,$village,$session,$logging,$generator;
|
||||
|
||||
$infoarray = $database->getMarketInfo($get['g']);
|
||||
$reqMerc = 1;
|
||||
if($infoarray['wamt'] > $this->maxcarry)
|
||||
{
|
||||
$reqMerc = round($infoarray['wamt']/$this->maxcarry);
|
||||
if($infoarray['wamt'] > $this->maxcarry*$reqMerc)
|
||||
{
|
||||
$reqMerc += 1;
|
||||
}
|
||||
}
|
||||
$myresource = $hisresource = array(1=>0,0,0,0);
|
||||
$myresource[$infoarray['wtype']] = $infoarray['wamt'];
|
||||
$mysendid = $database->sendResource($myresource[1],$myresource[2],$myresource[3],$myresource[4],$reqMerc,0);
|
||||
$hisresource[$infoarray['gtype']] = $infoarray['gamt'];
|
||||
$hissendid = $database->sendResource($hisresource[1],$hisresource[2],$hisresource[3],$hisresource[4],$infoarray['merchant'],0);
|
||||
$hiscoor = $database->getCoor($infoarray['vref']);
|
||||
$mytime = $generator->procDistanceTime($hiscoor,$village->coor,$session->tribe,0);
|
||||
$targettribe = $database->getUserField($database->getVillageField($infoarray['vref'],"owner"),"tribe",0);
|
||||
$histime = $generator->procDistanceTime($village->coor,$hiscoor,$targettribe,0);
|
||||
$database->addMovement(0,$village->wid,$infoarray['vref'],$mysendid,time(),$mytime+time());
|
||||
$database->addMovement(0,$infoarray['vref'],$village->wid,$hissendid,time(),$histime+time());
|
||||
$resource = array(1=>0,0,0,0);
|
||||
$resource[$infoarray['wtype']] = $infoarray['wamt'];
|
||||
$database->modifyResource($village->wid,$resource[1],$resource[2],$resource[3],$resource[4],0);
|
||||
$database->setMarketAcc($get['g']);
|
||||
$database->removeAcceptedOffer($get['g']);
|
||||
$logging->addMarketLog($village->wid,2,array($infoarray['vref'],$get['g']));
|
||||
header("Location: build.php?id=".$get['id']);
|
||||
}
|
||||
|
||||
$reqMerc = 1;
|
||||
if(($wood+$clay+$iron+$crop) > $this->maxcarry) {
|
||||
$reqMerc = round(($wood+$clay+$iron+$crop)/$this->maxcarry);
|
||||
if(($wood+$clay+$iron+$crop) > $this->maxcarry*$reqMerc) {
|
||||
$reqMerc += 1;
|
||||
}
|
||||
}
|
||||
if($this->merchantAvail() != 0 && $reqMerc <= $this->merchantAvail()) {
|
||||
if ($database->modifyResource($village->wid,$wood,$clay,$iron,$crop,0)) {
|
||||
$time = 0;
|
||||
if(isset($_POST['d1'])) {
|
||||
$time = $_POST['d2'] * 3600;
|
||||
}
|
||||
$alliance = (isset($post['ally']) && $post['ally'] == 1)? $session->userinfo['alliance'] : 0;
|
||||
$database->addMarket($village->wid,$post['rid1'],$post['m1'],$post['rid2'],$post['m2'],$time,$alliance,$reqMerc,0);
|
||||
}
|
||||
}
|
||||
header("Location: build.php?id=".$post['id']."&t=2");
|
||||
} else {}
|
||||
}
|
||||
private function loadOnsale()
|
||||
{
|
||||
global $database,$village,$session,$multisort,$generator;
|
||||
|
||||
$displayarray = $database->getMarket($village->wid,1);
|
||||
$holderarray = array();
|
||||
foreach($displayarray as $value)
|
||||
{
|
||||
$targetcoor = $database->getCoor($value['vref']);
|
||||
$duration = $generator->procDistanceTime($targetcoor,$village->coor,$session->tribe,0);
|
||||
if($duration <= $value['maxtime'] || $value['maxtime'] == 0)
|
||||
{
|
||||
$value['duration'] = $duration;
|
||||
array_push($holderarray,$value);
|
||||
}
|
||||
}
|
||||
$this->onsale = $multisort->sorte($holderarray, "'duration'", true, 2);
|
||||
}
|
||||
|
||||
private function acceptOffer($get) {
|
||||
global $database,$village,$session,$logging,$generator;
|
||||
$infoarray = $database->getMarketInfo($get['g']);
|
||||
$reqMerc = 1;
|
||||
if($infoarray['wamt'] > $this->maxcarry) {
|
||||
$reqMerc = round($infoarray['wamt']/$this->maxcarry);
|
||||
if($infoarray['wamt'] > $this->maxcarry*$reqMerc) {
|
||||
$reqMerc += 1;
|
||||
}
|
||||
}
|
||||
$myresource = $hisresource = array(1=>0,0,0,0);
|
||||
$myresource[$infoarray['wtype']] = $infoarray['wamt'];
|
||||
$mysendid = $database->sendResource($myresource[1],$myresource[2],$myresource[3],$myresource[4],$reqMerc,0);
|
||||
$hisresource[$infoarray['gtype']] = $infoarray['gamt'];
|
||||
$hissendid = $database->sendResource($hisresource[1],$hisresource[2],$hisresource[3],$hisresource[4],$infoarray['merchant'],0);
|
||||
$hiscoor = $database->getCoor($infoarray['vref']);
|
||||
$mytime = $generator->procDistanceTime($hiscoor,$village->coor,$session->tribe,0);
|
||||
$targettribe = $database->getUserField($database->getVillageField($infoarray['vref'],"owner"),"tribe",0);
|
||||
$histime = $generator->procDistanceTime($village->coor,$hiscoor,$targettribe,0);
|
||||
$database->addMovement(0,$village->wid,$infoarray['vref'],$mysendid,time(),$mytime+time());
|
||||
$database->addMovement(0,$infoarray['vref'],$village->wid,$hissendid,time(),$histime+time());
|
||||
$resource = array(1=>0,0,0,0);
|
||||
$resource[$infoarray['wtype']] = $infoarray['wamt'];
|
||||
$database->modifyResource($village->wid,$resource[1],$resource[2],$resource[3],$resource[4],0);
|
||||
$database->setMarketAcc($get['g']);
|
||||
private function filterNeed($get)
|
||||
{
|
||||
if(isset($get['v']) || isset($get['s']) || isset($get['b']))
|
||||
{
|
||||
$holder = $holder2 = array();
|
||||
if(isset($get['v']) && $get['v'] == "1:1")
|
||||
{
|
||||
foreach($this->onsale as $equal)
|
||||
{
|
||||
if($equal['wamt'] <= $equal['gamt'])
|
||||
{
|
||||
array_push($holder,$equal);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$holder = $this->onsale;
|
||||
}
|
||||
foreach($holder as $sale)
|
||||
{
|
||||
if(isset($get['s']) && isset($get['b']))
|
||||
{
|
||||
if($sale['gtype'] == $get['s'] && $sale['wtype'] == $get['b'])
|
||||
{
|
||||
array_push($holder2,$sale);
|
||||
}
|
||||
}
|
||||
else if(isset($get['s']) && !isset($get['b']))
|
||||
{
|
||||
if($sale['gtype'] == $get['s'])
|
||||
{
|
||||
array_push($holder2,$sale);
|
||||
}
|
||||
}
|
||||
else if(isset($get['b']) && !isset($get['s']))
|
||||
{
|
||||
if($sale['wtype'] == $get['b'])
|
||||
{
|
||||
array_push($holder2,$sale);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$holder2 = $holder;
|
||||
}
|
||||
}
|
||||
$this->onsale = $holder2;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->loadOnsale();
|
||||
}
|
||||
}
|
||||
|
||||
$database->removeAcceptedOffer($get['g']);
|
||||
$logging->addMarketLog($village->wid,2,array($infoarray['vref'],$get['g']));
|
||||
private function tradeResource($post)
|
||||
{
|
||||
global $session,$database,$village;
|
||||
|
||||
$wwvillage = $database->getResourceLevel($village->wid);
|
||||
if($wwvillage['f99t']!=40)
|
||||
{
|
||||
if($session->userinfo['gold'] >= 3)
|
||||
{
|
||||
//kijken of ze niet meer gs invoeren dan ze hebben
|
||||
if($session->access == BANNED)
|
||||
{
|
||||
header("Location: banned.php");
|
||||
}
|
||||
else if (($post['m2'][0]+$post['m2'][1]+$post['m2'][2]+$post['m2'][3])<=(round($village->awood)+round($village->aclay)+round($village->airon)+round($village->acrop)))
|
||||
{
|
||||
$database->setVillageField($village->wid,"wood",$post['m2'][0]);
|
||||
$database->setVillageField($village->wid,"clay",$post['m2'][1]);
|
||||
$database->setVillageField($village->wid,"iron",$post['m2'][2]);
|
||||
$database->setVillageField($village->wid,"crop",$post['m2'][3]);
|
||||
$database->modifyGold($session->uid,3,0);
|
||||
header("Location: build.php?id=".$post['id']."&t=3&c");;
|
||||
}
|
||||
else
|
||||
{
|
||||
header("Location: build.php?id=".$post['id']."&t=3");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
header("Location: build.php?id=".$post['id']."&t=3");
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
header("Location: build.php?id=".$get['id']);
|
||||
}
|
||||
|
||||
private function loadOnsale() {
|
||||
global $database,$village,$session,$multisort,$generator;
|
||||
$displayarray = $database->getMarket($village->wid,1);
|
||||
$holderarray = array();
|
||||
foreach($displayarray as $value) {
|
||||
$targetcoor = $database->getCoor($value['vref']);
|
||||
$duration = $generator->procDistanceTime($targetcoor,$village->coor,$session->tribe,0);
|
||||
if($duration <= $value['maxtime'] || $value['maxtime'] == 0) {
|
||||
$value['duration'] = $duration;
|
||||
array_push($holderarray,$value);
|
||||
}
|
||||
}
|
||||
$this->onsale = $multisort->sorte($holderarray, "'duration'", true, 2);
|
||||
}
|
||||
|
||||
private function filterNeed($get) {
|
||||
if(isset($get['v']) || isset($get['s']) || isset($get['b'])) {
|
||||
$holder = $holder2 = array();
|
||||
if(isset($get['v']) && $get['v'] == "1:1") {
|
||||
foreach($this->onsale as $equal) {
|
||||
if($equal['wamt'] <= $equal['gamt']) {
|
||||
array_push($holder,$equal);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$holder = $this->onsale;
|
||||
}
|
||||
foreach($holder as $sale) {
|
||||
if(isset($get['s']) && isset($get['b'])) {
|
||||
if($sale['gtype'] == $get['s'] && $sale['wtype'] == $get['b']) {
|
||||
array_push($holder2,$sale);
|
||||
}
|
||||
}
|
||||
else if(isset($get['s']) && !isset($get['b'])) {
|
||||
if($sale['gtype'] == $get['s']) {
|
||||
array_push($holder2,$sale);
|
||||
}
|
||||
}
|
||||
else if(isset($get['b']) && !isset($get['s'])) {
|
||||
if($sale['wtype'] == $get['b']) {
|
||||
array_push($holder2,$sale);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$holder2 = $holder;
|
||||
}
|
||||
}
|
||||
$this->onsale = $holder2;
|
||||
}
|
||||
else {
|
||||
$this->loadOnsale();
|
||||
}
|
||||
}
|
||||
|
||||
private function tradeResource($post) {
|
||||
global $session,$database,$village;
|
||||
$wwvillage = $database->getResourceLevel($village->wid);
|
||||
if($wwvillage['f99t']!=40){
|
||||
if($session->userinfo['gold'] >= 3) {
|
||||
//kijken of ze niet meer gs invoeren dan ze hebben
|
||||
if($session->access == BANNED){
|
||||
header("Location: banned.php");
|
||||
}else if (($post['m2'][0]+$post['m2'][1]+$post['m2'][2]+$post['m2'][3])<=(round($village->awood)+round($village->aclay)+round($village->airon)+round($village->acrop))){
|
||||
$database->setVillageField($village->wid,"wood",$post['m2'][0]);
|
||||
$database->setVillageField($village->wid,"clay",$post['m2'][1]);
|
||||
$database->setVillageField($village->wid,"iron",$post['m2'][2]);
|
||||
$database->setVillageField($village->wid,"crop",$post['m2'][3]);
|
||||
$database->modifyGold($session->uid,3,0);
|
||||
header("Location: build.php?id=".$post['id']."&t=3&c");;
|
||||
} else {
|
||||
header("Location: build.php?id=".$post['id']."&t=3");
|
||||
}
|
||||
} else {
|
||||
header("Location: build.php?id=".$post['id']."&t=3");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
$market = new Market;
|
||||
$market = new Market;
|
||||
?>
|
||||
+116
-87
@@ -1,89 +1,118 @@
|
||||
<div id="build" class="gid17"><a href="#" onClick="return Popup(17,4);" class="build_logo">
|
||||
<img class="building g17" src="img/x.gif" alt="Marketplace" title="Marketplace" />
|
||||
</a>
|
||||
<h1>Marketplace <span class="level">level <?php echo $village->resarray['f'.$id]; ?></span></h1>
|
||||
<p class="build_desc">At the Marketplace you can trade resources with other players. The higher its level, the more resources can be transported at the same time.
|
||||
</p>
|
||||
|
||||
<?php include("17_menu.tpl"); ?>
|
||||
<form method="POST" action="build.php">
|
||||
<input type="hidden" name="id" value="<?php echo $id; ?>" />
|
||||
<input type="hidden" name="ft" value="mk2" />
|
||||
|
||||
<table id="sell" cellpadding="1" cellspacing="1">
|
||||
<tr>
|
||||
<th>Offering</th>
|
||||
<td class="val"><input class="text" tabindex="1" name="m1" value="" maxlength="6" /></td>
|
||||
<td class="res">
|
||||
<select name="rid1" tabindex="2" class="dropdown">
|
||||
<option value="1" selected="selected">Lumber</option>
|
||||
<option value="2">Clay</option>
|
||||
<option value="3">Iron</option>
|
||||
<option value="4">Crop</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="tra"><input class="check" type="checkbox" tabindex="5" name="d1" value="1" /> max. time of transport: <input class="text" tabindex="6" name="d2" value="2" maxlength="2" /> hours</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Searching</th>
|
||||
<td class="val"><input class="text" tabindex="3" name="m2" value="" maxlength="6" /></td>
|
||||
<td class="res">
|
||||
<select name="rid2" tabindex="4" class="dropdown">
|
||||
<option value="1">Lumber</option>
|
||||
<option value="2" selected="selected">Clay</option>
|
||||
<option value="3">Iron</option>
|
||||
<option value="4">Crop</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="al">
|
||||
<div id="build" class="gid17"><a href="#" onClick="return Popup(17,4);" class="build_logo">
|
||||
<img class="building g17" src="img/x.gif" alt="Marketplace" title="Marketplace" />
|
||||
</a>
|
||||
<h1>Marketplace <span class="level">level <?php echo $village->resarray['f'.$id]; ?></span></h1>
|
||||
<p class="build_desc">At the Marketplace you can trade resources with other players. The higher its level, the more resources can be transported at the same time.</p>
|
||||
|
||||
<?php include("17_menu.tpl"); ?>
|
||||
<form method="POST" action="build.php">
|
||||
<input type="hidden" name="id" value="<?php echo $id; ?>" />
|
||||
<input type="hidden" name="ft" value="mk2" />
|
||||
|
||||
<table id="sell" cellpadding="1" cellspacing="1">
|
||||
<tr>
|
||||
<th>Offering</th>
|
||||
<td class="val"><input class="text" tabindex="1" name="m1" value="" maxlength="6" /></td>
|
||||
<td class="res">
|
||||
<select name="rid1" tabindex="2" class="dropdown">
|
||||
<option value="1" selected="selected">Lumber</option>
|
||||
<option value="2">Clay</option>
|
||||
<option value="3">Iron</option>
|
||||
<option value="4">Crop</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="tra"><input class="check" type="checkbox" tabindex="5" name="d1" value="1" /> max. time of transport: <input class="text" tabindex="6" name="d2" value="2" maxlength="2" /> hours</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Searching</th>
|
||||
<td class="val"><input class="text" tabindex="3" name="m2" value="" maxlength="6" /></td>
|
||||
<td class="res">
|
||||
<select name="rid2" tabindex="4" class="dropdown">
|
||||
<option value="1">Lumber</option>
|
||||
<option value="2" selected="selected">Clay</option>
|
||||
<option value="3">Iron</option>
|
||||
<option value="4">Crop</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="al">
|
||||
<?php
|
||||
if($session->userinfo['alliance'] != 0)
|
||||
{
|
||||
echo "<input class=\"check\" type=\"checkbox\" tabindex=\"7\" name=\"ally\" value=\"1\" /> own alliance only";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
if($session->userinfo['alliance'] != 0) {
|
||||
echo "<input class=\"check\" type=\"checkbox\" tabindex=\"7\" name=\"ally\" value=\"1\" /> own alliance only";
|
||||
}
|
||||
if(isset($_GET['e1']))
|
||||
{
|
||||
echo "<p class=\"error2\">Not enough resources</p>";
|
||||
}
|
||||
elseif(isset($_GET['e2']))
|
||||
{
|
||||
echo "<p class=\"error2\">Invalid offer</p>";
|
||||
}
|
||||
elseif(isset($_GET['e3']))
|
||||
{
|
||||
echo "<p class=\"error2\">Not enough merchants</p>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<p>Merchants: ".$market->merchantAvail()."/".$market->merchant."</p>";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</table><p>Merchants: <?php echo $market->merchantAvail(); ?>/<?php echo $market->merchant; ?><p><input type="image" tabindex="8" value="ok" name="s1" id="btn_ok" class="dynamic_img" src="img/x.gif" alt="OK" <?php if(!$market->merchantAvail()) { echo "DISABLED"; }?>/></p></form>
|
||||
<?php
|
||||
if(count($market->onmarket) > 0) {
|
||||
echo "<table id=\"sell_overview\" cellpadding=\"1\" cellspacing=\"1\"><thead><tr><th colspan=\"6\">Own offers</th></tr><tr><td> </td><td>Offer</td>
|
||||
<td>Search</td><td>Merchants</td><td>Alliance</td><td>Duration</td></tr></thead><tbody>";
|
||||
foreach($market->onmarket as $offer) {
|
||||
if($session->access != BANNED){
|
||||
echo "<tr><td class=\"abo\"><a href=\"build.php?id=$id&t=2&a=5&del=".$offer['id']."\"><img class=\"del\"src=\"img/x.gif\" alt=\"Delete\" title=\"Delete\" /></a></td>";
|
||||
echo "<td class=\"val\">";
|
||||
}else{
|
||||
echo "<tr><td class=\"abo\"><a href=\"banned.php\"><img class=\"del\"src=\"img/x.gif\" alt=\"Delete\" title=\"Delete\" /></a></td>";
|
||||
echo "<td class=\"val\">";
|
||||
}
|
||||
switch($offer['gtype']) {
|
||||
case 1: echo "<img src=\"img/x.gif\" class=\"r1\" alt=\"Wood\" title=\"Wood\" />"; break;
|
||||
case 2: echo "<img src=\"img/x.gif\" class=\"r2\" alt=\"Clay\" title=\"Clay\" />"; break;
|
||||
case 3: echo "<img src=\"img/x.gif\" class=\"r3\" alt=\"Iron\" title=\"Iron\" />"; break;
|
||||
case 4: echo "<img src=\"img/x.gif\" class=\"r4\" alt=\"Crop\" title=\"Crop\" />"; break;
|
||||
}
|
||||
echo $offer['gamt'];
|
||||
echo "</td><td class=\"val\">";
|
||||
switch($offer['wtype']) {
|
||||
case 1: echo "<img src=\"img/x.gif\" class=\"r1\" alt=\"Wood\" title=\"Wood\" />"; break;
|
||||
case 2: echo "<img src=\"img/x.gif\" class=\"r2\" alt=\"Clay\" title=\"Clay\" />"; break;
|
||||
case 3: echo "<img src=\"img/x.gif\" class=\"r3\" alt=\"Iron\" title=\"Iron\" />"; break;
|
||||
case 4: echo "<img src=\"img/x.gif\" class=\"r4\" alt=\"Crop\" title=\"Crop\" />"; break;
|
||||
}
|
||||
echo $offer['wamt'];
|
||||
echo "</td><td class=\"tra\">1</td><td class=\"al\">";
|
||||
echo ($offer['alliance'] == 0)? 'No' : 'Yes';
|
||||
echo "</td><td class=\"dur\">";
|
||||
if($offer['maxtime'] != 0) {
|
||||
echo $offer['maxtime']/3600;
|
||||
echo " hrs.";
|
||||
}
|
||||
else {
|
||||
echo "All";
|
||||
}
|
||||
echo "</td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<input type="image" tabindex="8" value="ok" name="s1" id="btn_ok" class="dynamic_img" src="img/x.gif" alt="OK" <?php //if(!$market->merchantAvail()) { echo "DISABLED"; }?>/></p>
|
||||
</form>
|
||||
<?php
|
||||
if(count($market->onmarket) > 0)
|
||||
{
|
||||
echo "<table id=\"sell_overview\" cellpadding=\"1\" cellspacing=\"1\"><thead><tr><th colspan=\"6\">Own offers</th></tr><tr><td> </td><td>Offer</td><td>Search</td><td>Merchants</td><td>Alliance</td><td>Duration</td></tr></thead><tbody>";
|
||||
foreach($market->onmarket as $offer)
|
||||
{
|
||||
if($session->access != BANNED)
|
||||
{
|
||||
echo "<tr><td class=\"abo\"><a href=\"build.php?id=$id&t=2&a=5&del=".$offer['id']."\"><img class=\"del\"src=\"img/x.gif\" alt=\"Delete\" title=\"Delete\" /></a></td>";
|
||||
echo "<td class=\"val\">";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<tr><td class=\"abo\"><a href=\"banned.php\"><img class=\"del\"src=\"img/x.gif\" alt=\"Delete\" title=\"Delete\" /></a></td>";
|
||||
echo "<td class=\"val\">";
|
||||
}
|
||||
switch($offer['gtype'])
|
||||
{
|
||||
case 1: echo "<img src=\"img/x.gif\" class=\"r1\" alt=\"Wood\" title=\"Wood\" />"; break;
|
||||
case 2: echo "<img src=\"img/x.gif\" class=\"r2\" alt=\"Clay\" title=\"Clay\" />"; break;
|
||||
case 3: echo "<img src=\"img/x.gif\" class=\"r3\" alt=\"Iron\" title=\"Iron\" />"; break;
|
||||
case 4: echo "<img src=\"img/x.gif\" class=\"r4\" alt=\"Crop\" title=\"Crop\" />"; break;
|
||||
}
|
||||
echo $offer['gamt'];
|
||||
echo "</td><td class=\"val\">";
|
||||
switch($offer['wtype'])
|
||||
{
|
||||
case 1: echo "<img src=\"img/x.gif\" class=\"r1\" alt=\"Wood\" title=\"Wood\" />"; break;
|
||||
case 2: echo "<img src=\"img/x.gif\" class=\"r2\" alt=\"Clay\" title=\"Clay\" />"; break;
|
||||
case 3: echo "<img src=\"img/x.gif\" class=\"r3\" alt=\"Iron\" title=\"Iron\" />"; break;
|
||||
case 4: echo "<img src=\"img/x.gif\" class=\"r4\" alt=\"Crop\" title=\"Crop\" />"; break;
|
||||
}
|
||||
echo $offer['wamt'];
|
||||
echo "</td><td class=\"tra\">1</td><td class=\"al\">";
|
||||
echo ($offer['alliance'] == 0)? 'No' : 'Yes';
|
||||
echo "</td><td class=\"dur\">";
|
||||
if($offer['maxtime'] != 0)
|
||||
{
|
||||
echo $offer['maxtime']/3600;
|
||||
echo " hrs.";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "All";
|
||||
}
|
||||
echo "</td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
Reference in New Issue
Block a user