mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-30 07:07:14 +00:00
Merge pull request #501 from iopietro/master
Fixed some bugs. Fixed issues #500, #493, #486, #438.
This commit is contained in:
+16
-13
@@ -2124,19 +2124,22 @@ class Automation {
|
|||||||
$totwood = $villageData['wood'];
|
$totwood = $villageData['wood'];
|
||||||
$totcrop = $villageData['crop'];
|
$totcrop = $villageData['crop'];
|
||||||
}else{
|
}else{
|
||||||
$cranny_eff = 0;
|
$cranny_eff = 0;
|
||||||
|
|
||||||
// work out available resources.
|
|
||||||
$this->updateORes($data['to']);
|
|
||||||
$this->pruneOResource();
|
|
||||||
|
|
||||||
if ($conqureby >0) { //10% from owner proc village owner - fix by ronix
|
if ($conqureby >0) { //10% from owner proc village owner - fix by ronix
|
||||||
|
$this->updateRes($conqureby,$to['owner']);
|
||||||
|
$this->pruneResource();
|
||||||
|
|
||||||
$villageData = $database->getVillageFields($conqureby,'clay, iron, wood, crop');
|
$villageData = $database->getVillageFields($conqureby,'clay, iron, wood, crop');
|
||||||
$totclay = intval($villageData['clay']/10);
|
$totclay = intval($villageData['clay']/10);
|
||||||
$totiron = intval($villageData['iron']/10);
|
$totiron = intval($villageData['iron']/10);
|
||||||
$totwood = intval($villageData['wood']/10);
|
$totwood = intval($villageData['wood']/10);
|
||||||
$totcrop = intval($villageData['crop']/10);
|
$totcrop = intval($villageData['crop']/10);
|
||||||
}else{
|
}else{
|
||||||
|
// work out available resources.
|
||||||
|
$this->updateORes($data['to']);
|
||||||
|
$this->pruneOResource();
|
||||||
|
|
||||||
$oasisData = $database->getOasisFields($data['to'],'clay, iron, wood, crop');
|
$oasisData = $database->getOasisFields($data['to'],'clay, iron, wood, crop');
|
||||||
$totclay = $oasisData['clay'];
|
$totclay = $oasisData['clay'];
|
||||||
$totiron = $oasisData['iron'];
|
$totiron = $oasisData['iron'];
|
||||||
@@ -2250,14 +2253,9 @@ class Automation {
|
|||||||
//catapults look :D
|
//catapults look :D
|
||||||
$info_cat = $info_chief = $info_ram = $info_hero = ",";
|
$info_cat = $info_chief = $info_ram = $info_hero = ",";
|
||||||
//check to see if can destroy village
|
//check to see if can destroy village
|
||||||
$hasArtefact = false;
|
|
||||||
if (count($varray) != 1 && $to['capital'] != 1 && !$database->villageHasArtefact($DefenderWref)) {
|
if (count($varray) != 1 && $to['capital'] != 1 && !$database->villageHasArtefact($DefenderWref)) {
|
||||||
$can_destroy=1;
|
$can_destroy=1;
|
||||||
} else {
|
} else {
|
||||||
if ($database->villageHasArtefact($DefenderWref)) {
|
|
||||||
$hasArtefact = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$can_destroy=0;
|
$can_destroy=0;
|
||||||
}
|
}
|
||||||
if ($isoasis == 1) $can_destroy=0;
|
if ($isoasis == 1) $can_destroy=0;
|
||||||
@@ -2528,7 +2526,7 @@ class Automation {
|
|||||||
//$info_chief = "".$chief_pic.",You don't have enought CP to chief a village.";
|
//$info_chief = "".$chief_pic.",You don't have enought CP to chief a village.";
|
||||||
// note: at this point, we can use cache, since we've cleared it above
|
// note: at this point, we can use cache, since we've cleared it above
|
||||||
if($this->getTypeLevel(35,$data['from']) == 0){
|
if($this->getTypeLevel(35,$data['from']) == 0){
|
||||||
for ($i=0; $i<($data['t9']-$dead9); $i++){
|
for ($i=0; $i<($data['t9']-$dead9-$traped9); $i++){
|
||||||
if (!isset($rand)) {
|
if (!isset($rand)) {
|
||||||
$rand = 0;
|
$rand = 0;
|
||||||
}
|
}
|
||||||
@@ -2540,7 +2538,7 @@ class Automation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
for ($i=0; $i<($data['t9']-$dead9); $i++){
|
for ($i=0; $i<($data['t9']-$dead9-$traped9); $i++){
|
||||||
$rand+=rand(5,15);
|
$rand+=rand(5,15);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3014,7 +3012,12 @@ class Automation {
|
|||||||
if ($isoasis == 0){
|
if ($isoasis == 0){
|
||||||
$database->modifyResource($DefenderWref,$steal[0],$steal[1],$steal[2],$steal[3],0);
|
$database->modifyResource($DefenderWref,$steal[0],$steal[1],$steal[2],$steal[3],0);
|
||||||
}else{
|
}else{
|
||||||
$database->modifyOasisResource($DefenderWref,$steal[0],$steal[1],$steal[2],$steal[3],0);
|
if($conqureby > 0) //if it's an oasis but it's conquered by someone, resources must be modified in the owner village
|
||||||
|
{
|
||||||
|
$database->modifyResource($conqureby,$steal[0],$steal[1],$steal[2],$steal[3],0);
|
||||||
|
}else{
|
||||||
|
$database->modifyOasisResource($DefenderWref,$steal[0],$steal[1],$steal[2],$steal[3],0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$database->addMovement(6,$DefenderWref,$AttackerWref,$reference,$AttackArrivalTime,$endtime,1,0,0,0,0,$data['ref']);
|
$database->addMovement(6,$DefenderWref,$AttackerWref,$reference,$AttackArrivalTime,$endtime,1,0,0,0,0,$data['ref']);
|
||||||
$totalstolengain=$steal[0]+$steal[1]+$steal[2]+$steal[3];
|
$totalstolengain=$steal[0]+$steal[1]+$steal[2]+$steal[3];
|
||||||
|
|||||||
+50
-253
@@ -225,8 +225,6 @@ class Building {
|
|||||||
|
|
||||||
if(isset($get['master']) && isset($get['id']) && isset($get['time']) && $session->gold >= 1 && $session->goldclub && $village->master == 0 && (isset($get['c']) && $get['c']== $session->checker)) {
|
if(isset($get['master']) && isset($get['id']) && isset($get['time']) && $session->gold >= 1 && $session->goldclub && $village->master == 0 && (isset($get['c']) && $get['c']== $session->checker)) {
|
||||||
$this->canProcess($get['master'],$get['id']);
|
$this->canProcess($get['master'],$get['id']);
|
||||||
$m=$get['master'];
|
|
||||||
$master = $_GET;
|
|
||||||
$session->changeChecker();
|
$session->changeChecker();
|
||||||
if($session->access==BANNED){
|
if($session->access==BANNED){
|
||||||
header("Location: banned.php");
|
header("Location: banned.php");
|
||||||
@@ -643,238 +641,58 @@ class Building {
|
|||||||
|
|
||||||
private function meetRequirement($id) {
|
private function meetRequirement($id) {
|
||||||
global $village,$session,$database;
|
global $village,$session,$database;
|
||||||
|
|
||||||
switch ( $id ) {
|
$isBuilt = $this->getTypeField($id);
|
||||||
|
|
||||||
|
switch ($id) {
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
case 4:
|
case 4: return true;
|
||||||
case 11:
|
|
||||||
case 15:
|
case 5: return $this->getTypeLevel(1) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt;
|
||||||
case 16:
|
case 6: return $this->getTypeLevel(2) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt;
|
||||||
case 18:
|
case 7: return $this->getTypeLevel(3) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt;
|
||||||
case 23:
|
case 8: return $this->getTypeLevel(4) >= 5 && !$isBuilt;
|
||||||
case 31:
|
case 9: return $this->getTypeLevel(15) >= 5 && $this->getTypeLevel(4) >= 10 && $this->getTypeLevel(8) >= 5 && !$isBuilt;
|
||||||
case 32:
|
|
||||||
case 33:
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
case 20:
|
case 11: return $this->getTypeLevel(15) >= 1 && (!$isBuilt || $this->getTypeLevel($id) == 20);
|
||||||
return ( $this->getTypeLevel( 15 ) >= 1 ) ? true : false;
|
|
||||||
break;
|
case 12: return $this->getTypeLevel(22) >= 3 && $this->getTypeLevel(15) >= 3 && !$isBuilt;
|
||||||
|
case 13: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(22) >= 1 && !$isBuilt;
|
||||||
case 5:
|
case 14: return $this->getTypeLevel(16) >= 15 && !$isBuilt;
|
||||||
if ( $this->getTypeLevel( 1 ) >= 10 && $this->getTypeLevel( 15 ) >= 5 ) {
|
|
||||||
return true;
|
case 15:
|
||||||
} else {
|
case 16: return !$isBuilt;
|
||||||
return false;
|
|
||||||
}
|
case 17: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(10) >= 1 && $this->getTypeLevel(11) >= 1 && !$isBuilt;
|
||||||
break;
|
case 18: return $this->getTypeLevel(15) >= 1 && !$isBuilt;
|
||||||
|
case 19: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(16) >= 1 && !$isBuilt;
|
||||||
case 6:
|
case 20: return $this->getTypeLevel(12) >= 3 && $this->getTypeLevel(22) >= 5 && !$isBuilt;
|
||||||
if ( $this->getTypeLevel( 2 ) >= 10 && $this->getTypeLevel( 15 ) >= 5 ) {
|
case 21: return $this->getTypeLevel(22) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt;
|
||||||
return true;
|
case 22: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(19) >= 3 && !$isBuilt;
|
||||||
} else {
|
case 23: return !$isBuilt || $this->getTypeLevel($id) == 10;
|
||||||
return false;
|
case 24: return $this->getTypeLevel(22) >= 10 && $this->getTypeLevel(15) >= 10 && !$isBuilt;
|
||||||
}
|
case 25: return $this->getTypeLevel(15) >= 5 && $this->getTypeLevel(26) == 0 && !$isBuilt;
|
||||||
break;
|
case 26: return $this->getTypeLevel(18) >= 1 && $this->getTypeLevel(15) >= 5 && $this->getTypeLevel(25) == 0 && !$isBuilt;
|
||||||
|
case 27: return $this->getTypeLevel(15) >= 10 && !$isBuilt;
|
||||||
case 7:
|
case 28: return $this->getTypeLevel(17) == 20 && $this->getTypeLevel(20) >= 10 && !$isBuilt;
|
||||||
if ( $this->getTypeLevel( 3 ) >= 10 && $this->getTypeLevel( 15 ) >= 5 ) {
|
case 29: return $this->getTypeLevel(19) == 20 && $village->capital == 0 && !$isBuilt;
|
||||||
return true;
|
case 30: return $this->getTypeLevel(20) == 20 && $village->capital == 0 && !$isBuilt;
|
||||||
} else {
|
case 31: return $session->tribe == 1;
|
||||||
return false;
|
case 32: return $session->tribe == 2;
|
||||||
}
|
case 33: return $session->tribe == 3;
|
||||||
break;
|
case 34: return $this->getTypeLevel(26) >= 3 && $this->getTypeLevel(15) >= 5 && $this->getTypeLevel(25) == 0 && $village->capital != 0 && !$isBuilt;
|
||||||
|
case 35: return $this->getTypeLevel(16) >= 10 && $this->getTypeLevel(11) == 20 && $session->tribe == 2 && $village->capital != 0 && !$isBuilt;
|
||||||
case 8:
|
case 36: return $this->getTypeLevel(16) >= 1 && $session->tribe == 3 && (!$isBuilt || $this->getTypeLevel($id) == 20);
|
||||||
if ( $this->getTypeLevel( 4 ) >= 5 ) {
|
case 37: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(16) >= 1 && !$isBuilt;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 9:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 5 && $this->getTypeLevel( 4 ) >= 10 && $this->getTypeLevel( 8 ) >= 5 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 12:
|
|
||||||
if ( $this->getTypeLevel( 22 ) >= 3 && $this->getTypeLevel( 15 ) >= 3 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 13:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 3 && $this->getTypeLevel( 22 ) >= 1 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 14:
|
|
||||||
if ( $this->getTypeLevel( 16 ) >= 15 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 17:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 3 && $this->getTypeLevel( 10 ) >= 1 && $this->getTypeLevel( 11 ) >= 1 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 19:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 3 && $this->getTypeLevel( 16 ) >= 1 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 20:
|
|
||||||
if ( $this->getTypeLevel( 12 ) >= 3 && $this->getTypeLevel( 22 ) >= 5 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 21:
|
|
||||||
if ( $this->getTypeLevel( 22 ) >= 10 && $this->getTypeLevel( 15 ) >= 5 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 22:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 3 && $this->getTypeLevel( 16 ) >= 1 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 24:
|
|
||||||
if ( $this->getTypeLevel( 22 ) >= 10 && $this->getTypeLevel( 15 ) >= 10 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 25:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 5 && $this->getTypeLevel( 26 ) == 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 26:
|
|
||||||
if ( $this->getTypeLevel( 18 ) >= 1 && $this->getTypeLevel( 15 ) >= 5 && $this->getTypeLevel( 25 ) == 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 27:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 10 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 28:
|
|
||||||
if ( $this->getTypeLevel( 17 ) == 20 && $this->getTypeLevel( 20 ) >= 10 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 29:
|
|
||||||
if ( $this->getTypeLevel( 19 ) == 20 && $village->capital == 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 30:
|
|
||||||
if ( $this->getTypeLevel( 20 ) == 20 && $village->capital == 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 34:
|
|
||||||
if ( $this->getTypeLevel( 26 ) >= 3 && $this->getTypeLevel( 15 ) >= 5 && $this->getTypeLevel( 25 ) == 0 && $village->capital != 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 35:
|
|
||||||
if ( $this->getTypeLevel( 16 ) >= 10 && $this->getTypeLevel( 11 ) == 20 && $session->tribe == 2 && $village->capital != 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 36:
|
|
||||||
if ( $this->getTypeLevel( 16 ) >= 1 && $session->tribe == 3 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 37:
|
|
||||||
if ( $this->getTypeLevel( 15 ) >= 3 && $this->getTypeLevel( 16 ) >= 1 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// great warehouse can only be built with artefact or only in Natar village
|
// great warehouse can only be built with artefact or only in Natar village
|
||||||
case 38:
|
case 38: return $this->getTypeLevel(15) >= 10 && (!$isBuilt || $this->getTypeLevel($id) == 20) && ($village->natar == 1 || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 1, 0)) || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 2, 0)));
|
||||||
if ( $this->getTypeLevel( 15 ) >= 10 && ($village->natar == 1 || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 1, 0)) || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 2, 0)) ) ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// great grannary can only be built with artefact or only in Natar village
|
// great grannary can only be built with artefact or only in Natar village
|
||||||
case 39:
|
case 39: return $this->getTypeLevel(15) >= 10 && (!$isBuilt || $this->getTypeLevel($id) == 20) && ($village->natar == 1 || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 1, 0)) || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 2, 0)));
|
||||||
if ( $this->getTypeLevel( 15 ) >= 10 && ($village->natar == 1 || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 1, 0)) || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 2, 0)) ) ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 40:
|
case 40:
|
||||||
$wwlevel = $village->resarray['f99'];
|
$wwlevel = $village->resarray['f99'];
|
||||||
|
|
||||||
@@ -907,29 +725,12 @@ class Building {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $village->natar == 1 && $wwbuildingplan > $needed_plan;
|
||||||
|
|
||||||
if ( $village->natar == 1 && $wwbuildingplan > $needed_plan ) {
|
case 41: return $this->getTypeLevel(16) >= 10 && $this->getTypeLevel(20) == 20 && $session->tribe == 1 && !$isBuilt;
|
||||||
return true;
|
case 42: return GREAT_WKS && $this->getTypeLevel(21) == 20 && $village->capital == 0 && !$isBuilt;
|
||||||
} else {
|
default: return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 41:
|
|
||||||
if ( $this->getTypeLevel( 16 ) >= 10 && $this->getTypeLevel( 20 ) == 20 && $session->tribe == 1 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 42:
|
|
||||||
if ( GREAT_WKS && $this->getTypeLevel( 21 ) == 20 && $village->capital == 0 ) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -978,11 +779,7 @@ class Building {
|
|||||||
// special case for Multihunter login which mathematically (because of the resarray length)
|
// special case for Multihunter login which mathematically (because of the resarray length)
|
||||||
// allows for building resource fields above level 20
|
// allows for building resource fields above level 20
|
||||||
if ($session->tribe == 0) {
|
if ($session->tribe == 0) {
|
||||||
if ($village->resarray['f'.$field] == 20) {
|
return $village->resarray['f'.$field] == 20;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($id <= 4) {
|
if($id <= 4) {
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ class Market
|
|||||||
array_push($holderarray,$value);
|
array_push($holderarray,$value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->onsale = $multisort->sorte($holderarray, "'duration'", true, 2);
|
$this->onsale = $multisort->sorte($holderarray, "duration", true, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function filterNeed($get)
|
private function filterNeed($get)
|
||||||
|
|||||||
+24
-22
@@ -25,32 +25,34 @@ class multiSort {
|
|||||||
if($i + 2 < func_num_args())
|
if($i + 2 < func_num_args())
|
||||||
$type = func_get_arg($i + 2);
|
$type = func_get_arg($i + 2);
|
||||||
|
|
||||||
switch($type)
|
$t = function($a, $b) use ($key, $type, $order)
|
||||||
{
|
{
|
||||||
case 1: // Case insensitive natural.
|
switch($type)
|
||||||
$t = 'strcasenatcmp($a[' . $key . '], $b[' . $key . '])';
|
{
|
||||||
break;
|
case 1: // Case insensitive natural.
|
||||||
case 2: // Numeric.
|
$result = strcasenatcmp($a[$key], $b[$key]);
|
||||||
$t = '$a[' . $key . '] - $b[' . $key . ']';
|
break;
|
||||||
break;
|
case 2: // Numeric.
|
||||||
case 3: // Case sensitive string.
|
$result = $a[$key] - $b[$key];
|
||||||
$t = 'strcmp($a[' . $key . '], $b[' . $key . '])';
|
break;
|
||||||
break;
|
case 3: // Case sensitive string.
|
||||||
case 4: // Case insensitive string.
|
$result = strcmp($a[$key], $b[$key]);
|
||||||
$t = 'strcasecmp($a[' . $key . '], $b[' . $key . '])';
|
break;
|
||||||
break;
|
case 4: // Case insensitive string.
|
||||||
default: // Case sensitive natural.
|
$result = strcasecmp($a[$key], $b[$key]);
|
||||||
$t = 'strnatcmp($a[' . $key . '], $b[' . $key . '])';
|
break;
|
||||||
break;
|
default: // Case sensitive natural.
|
||||||
}
|
$result = strnatcmp($a[$key], $b[ $key]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $result*($order ? 1 : -1);
|
||||||
|
};
|
||||||
|
|
||||||
usort($array, function($a, $b) use ($order, $t) {
|
usort($array, $t);
|
||||||
return ($order ? '' : '-') . ($t);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return $array;
|
return $array;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
$multisort = new multiSort;
|
$multisort = new multiSort;
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -467,7 +467,7 @@
|
|||||||
|
|
||||||
array_push($holder, $value);
|
array_push($holder, $value);
|
||||||
}
|
}
|
||||||
$holder = $multisort->sorte($holder, "'x'", true, 2, "'y'", true, 2, "'pop'", false, 2);
|
$holder = $multisort->sorte($holder, "x", true, 2, "y", true, 2, "pop", false, 2);
|
||||||
$newholder = array("pad");
|
$newholder = array("pad");
|
||||||
foreach($holder as $key) {
|
foreach($holder as $key) {
|
||||||
array_push($newholder, $key);
|
array_push($newholder, $key);
|
||||||
@@ -506,7 +506,7 @@
|
|||||||
|
|
||||||
array_push($holder, $value);
|
array_push($holder, $value);
|
||||||
}
|
}
|
||||||
$holder = $multisort->sorte($holder, "'totalpop'", false, 2);
|
$holder = $multisort->sorte($holder, "totalpop", false, 2);
|
||||||
$newholder = array("pad");
|
$newholder = array("pad");
|
||||||
foreach($holder as $key) {
|
foreach($holder as $key) {
|
||||||
array_push($newholder, $key);
|
array_push($newholder, $key);
|
||||||
@@ -526,7 +526,7 @@
|
|||||||
|
|
||||||
array_push($holder, $value);
|
array_push($holder, $value);
|
||||||
}
|
}
|
||||||
$holder = $multisort->sorte($holder, "'experience'", false, 2);
|
$holder = $multisort->sorte($holder, "experience", false, 2);
|
||||||
$newholder = array("pad");
|
$newholder = array("pad");
|
||||||
foreach($holder as $key) {
|
foreach($holder as $key) {
|
||||||
array_push($newholder, $key);
|
array_push($newholder, $key);
|
||||||
@@ -554,7 +554,7 @@
|
|||||||
|
|
||||||
array_push($holder, $value);
|
array_push($holder, $value);
|
||||||
}
|
}
|
||||||
$holder = $multisort->sorte($holder, "'Aap'", false, 2);
|
$holder = $multisort->sorte($holder, "Aap", false, 2);
|
||||||
$newholder = array("pad");
|
$newholder = array("pad");
|
||||||
foreach($holder as $key) {
|
foreach($holder as $key) {
|
||||||
array_push($newholder, $key);
|
array_push($newholder, $key);
|
||||||
@@ -582,7 +582,7 @@
|
|||||||
|
|
||||||
array_push($holder, $value);
|
array_push($holder, $value);
|
||||||
}
|
}
|
||||||
$holder = $multisort->sorte($holder, "'Adp'", false, 2);
|
$holder = $multisort->sorte($holder, "Adp", false, 2);
|
||||||
$newholder = array("pad");
|
$newholder = array("pad");
|
||||||
foreach($holder as $key) {
|
foreach($holder as $key) {
|
||||||
array_push($newholder, $key);
|
array_push($newholder, $key);
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ echo '<div class="clear dotted"></div><div class="text">'.$bbcode_post.'</div></
|
|||||||
echo '<a href="allianz.php?s=2&fid2='.$arr['cat'].'&pid='.$arr['alliance'].'&tid='.$arr['id'].'&ac=newpost"><img id="fbtn_reply" class="dynamic_img"src="img/x.gif" alt="Replies" /></a>';
|
echo '<a href="allianz.php?s=2&fid2='.$arr['cat'].'&pid='.$arr['alliance'].'&tid='.$arr['id'].'&ac=newpost"><img id="fbtn_reply" class="dynamic_img"src="img/x.gif" alt="Replies" /></a>';
|
||||||
}
|
}
|
||||||
if($opt['opt5'] == 1){
|
if($opt['opt5'] == 1){
|
||||||
echo '<a href="allianz.php?s=2&pid='.$aid.'&tid='.$arr['id'].'&admin=switch_admin" title="Toggle Admin mode"><img class="switch_admin dynamic_img" src="img/x.gif" alt="Toggle Admin mode" /></a>';
|
echo '<a href="allianz.php?s=2&fid2='.$arr['cat'].'&pid='.$aid.'&tid='.$arr['id'].'&admin=switch_admin" title="Toggle Admin mode"><img class="switch_admin dynamic_img" src="img/x.gif" alt="Toggle Admin mode" /></a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Copyright: Travianx Project */
|
Copyright: Travianx Project */
|
||||||
|
|
||||||
$oasisarray = $database->getOasis($village->wid);
|
$oasisarray = $database->getOasis($village->wid);
|
||||||
if(isset($_GET['gid']) && $_GET['gid']==37 && isset($_GET['del'])){
|
if(isset($_GET['gid']) && $_GET['gid']==37 && isset($_GET['del']) && $database->getOasisField($_GET['del'], 'owner') == $session->uid){
|
||||||
if($session->access != BANNED){
|
if($session->access != BANNED){
|
||||||
$database->removeOases($_GET['del']);
|
$database->removeOases($_GET['del']);
|
||||||
header("Location: build.php?id=".$id."&land");
|
header("Location: build.php?id=".$id."&land");
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ include("avaliable/trapper.tpl");
|
|||||||
if($rallypoint == 0 && $rallypoint1 == 0 && $id != 40) {
|
if($rallypoint == 0 && $rallypoint1 == 0 && $id != 40) {
|
||||||
include("avaliable/rallypoint.tpl");
|
include("avaliable/rallypoint.tpl");
|
||||||
}
|
}
|
||||||
if($embassy == 0 && $embassy1 == 0 && $id != 39 && $id != 40) {
|
if($embassy == 0 && $embassy1 == 0 && $id != 39 && $id != 40 && $mainbuilding >= 1) {
|
||||||
include("avaliable/embassy.tpl");
|
include("avaliable/embassy.tpl");
|
||||||
}
|
}
|
||||||
//fix hero
|
//fix hero
|
||||||
|
|||||||
Reference in New Issue
Block a user