Re: TravianX Advocaite Revision 4.8.5 Collection
I get this in statics
Quote:
Fatal error: Call to undefined method MYSQL_DB::removeclimberrankpop() in /home/a7951509/public_html/GameEngine/Ranking.php on line 101
and in admin panel:
Quote:
Fatal error: Call to a member function CheckLogin() on a non-object in /home/a7951509/public_html/Admin/admin.php on line 1
PLEASE. help me :ehh:
Re: TravianX Advocaite Revision 4.8.5 Collection
It was not just the player top ten that was leaving out the most senior / earliest adopter players, I tracked it down further and found the GAMEENGINE/Ranking.php has the same problem over and over and over all through the file.
SO here is the file after all those many occurences of the problem have been removed:
Code:
<?php
/** --------------------------------------------------- **\
| ********* DO NOT REMOVE THIS COPYRIGHT NOTICE ********* |
+---------------------------------------------------------+
| Credits: All the developers including the leaders: |
| Advocaite & Dzoki & Donnchadh |
| |
| Copyright: TravianX Project All rights reserved |
\** --------------------------------------------------- **/
class Ranking {
private $rankarray = array();
private $rlastupdate;
public function getRank() {
return $this->rankarray;
}
public function procRankReq($get) {
global $village, $session, $database;
if(isset($get['id'])) {
switch($get['id']) {
case 1:
$this->procRankArray();
break;
case 8:
$this->procHeroRankArray();
break;
case 11:
$this->procRankRaceArray(1);
break;
case 12:
$this->procRankRaceArray(2);
break;
case 13:
$this->procRankRaceArray(3);
break;
case 31:
$this->procAttRankArray();
break;
case 32:
$this->procDefRankArray();
break;
case 2:
$this->procVRankArray();
$this->getStart($this->searchRank($village->wid, "wref"));
break;
case 4:
$this->procARankArray();
if($session->alliance == 0) {
$this->getStart(1);
} else {
$this->getStart($this->searchRank($session->alliance, "id"));
$oldrank = $this->searchRank($session->alliance, "id");
$ally = $database->getAlliance($session->alliance);
if($ally['oldrank'] > $oldrank) {
$totalpoints = $ally['oldrank'] - $oldrank;
$database->addclimberrankpopAlly($ally['id'], $totalpoints);
$database->updateoldrankAlly($ally['id'], $oldrank);
} else
if($ally['oldrank'] < $oldrank) {
$totalpoints = $oldrank - $ally['oldrank'];
$database->removeclimberrankpopAlly($ally['id'], $totalpoints);
$database->updateoldrankAlly($ally['id'], $oldrank);
}
$database->updateoldrankAlly($ally['id'], $oldrank);
}
break;
case 41:
$this->procAAttRankArray();
if($session->alliance == 0) {
$this->getStart(1);
} else {
$this->getStart($this->searchRank($session->alliance, "id"));
}
break;
case 42:
$this->procADefRankArray();
if($session->alliance == 0) {
$this->getStart(1);
} else {
$this->getStart($this->searchRank($session->alliance, "id"));
}
break;
}
} else {
$this->procRankArray();
$this->getStart($this->searchRank($session->username, "username"));
$oldrank = $this->searchRank($session->username, "username");
if($session->oldrank > $oldrank) {
$totalpoints = $session->oldrank - $oldrank;
$database->addclimberrankpop($session->uid, $totalpoints);
$database->updateoldrank($session->uid, $oldrank);
} else
if($session->oldrank < $oldrank) {
$totalpoints = $oldrank - $session->oldrank;
$database->removeclimberrankpop($session->uid, $session->oldrank);
$database->updateoldrank($session->uid, $oldrank);
}
$database->updateoldrank($session->uid, $oldrank);
}
}
public function procRank($post) {
if(isset($post['ft'])) {
switch($post['ft']) {
case "r1":
case "r31":
case "r32":
if(isset($post['rank']) && $post['rank'] != "") {
$this->getStart($post['rank']);
}
if(isset($post['name']) && $post['name'] != "") {
$this->getStart($this->searchRank($post['name'], "username"));
}
break;
case "r2":
case "r4":
case "r42":
case "r41":
if(isset($post['rank']) && $post['rank'] != "") {
$this->getStart($post['rank']);
}
if(isset($post['name']) && $post['name'] != "") {
$this->getStart($this->searchRank($post['name'], "name"));
}
break;
}
}
}
private function getStart($search) {
$multiplier = 1;
if(!is_numeric($search)) {
$_SESSION['search'] = $search;
} else {
if($search > count($this->rankarray)) {
$search = count($this->rankarray) - 1;
}
while($search > (20 * $multiplier)) {
$multiplier += 1;
}
$start = 20 * $multiplier - 19 - 1;
$_SESSION['search'] = $search;
$_SESSION['start'] = $start;
}
}
public function getAllianceRank($id) {
$this->procARankArray();
while(1) {
if(count($this->rankarray) > 1) {
$key = key($this->rankarray);
if($this->rankarray[$key]["id"] == $id) {
return $key;
break;
} else {
if(!next($this->rankarray)) {
return false;
break;
}
}
} else {
return 1;
}
}
}
public function searchRank($name, $field) {
while(1) {
$key = key($this->rankarray);
if($this->rankarray[$key][$field] == $name) {
return $key;
break;
} else {
if(!next($this->rankarray)) {
return $name;
break;
}
}
}
}
private function procRankArray() {
global $database, $multisort;
//$array = $database->getRanking();
$holder = array();
//$value['totalvillage'] = count($database->getVillagesID($value['id']));
//$value['totalvillage'] = count($database->getVillagesID($value['id']));
//$value['totalpop'] = $database->getVSumField($value['id'],"pop");
//$value['aname'] = $database->getAllianceName($value['alliance']);
$q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username," . TB_PREFIX . "users.alliance alliance, (
SELECT SUM( " . TB_PREFIX . "vdata.pop )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid
)totalpop, (
SELECT COUNT( " . TB_PREFIX . "vdata.wref )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99
)totalvillages, (
SELECT " . TB_PREFIX . "alidata.tag
FROM " . TB_PREFIX . "alidata, " . TB_PREFIX . "users
WHERE " . TB_PREFIX . "alidata.id = " . TB_PREFIX . "users.alliance
AND " . TB_PREFIX . "users.id = userid
)allitag
FROM " . TB_PREFIX . "users
WHERE " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . "
ORDER BY totalpop DESC, totalvillages DESC, username ASC";
$result = (mysql_query($q));
while($row = mysql_fetch_assoc($result)) {
$datas[] = $row;
}
foreach($datas as $result) {
//$value = $array[$result['userid']];
$value['userid'] = $result['userid'];
$value['username'] = $result['username'];
$value['alliance'] = $result['alliance'];
$value['aname'] = $result['allitag'];
$value['totalpop'] = $result['totalpop'];
$value['totalvillage'] = $result['totalvillages'];
//SELECT (SELECT SUM(".TB_PREFIX."vdata.pop) FROM ".TB_PREFIX."vdata WHERE ".TB_PREFIX."vdata.owner = 2) totalpop, (SELECT COUNT(".TB_PREFIX."vdata.wref) FROM ".TB_PREFIX."vdata WHERE ".TB_PREFIX."vdata.owner = 2) totalvillages, (SELECT ".TB_PREFIX."alidata.tag FROM ".TB_PREFIX."alidata WHERE ".TB_PREFIX."alidata.id = ".TB_PREFIX."users.alliance AND ".TB_PREFIX."users.id = 2);
array_push($holder, $value);
}
//$holder = $multisort->sorte($holder, "'totalvillage'", false, 2, "'totalpop'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procRankRaceArray($race) {
global $database, $multisort;
//$array = $database->getRanking();
$holder = array();
//$value['totalvillage'] = count($database->getVillagesID($value['id']));
//$value['totalvillage'] = count($database->getVillagesID($value['id']));
//$value['totalpop'] = $database->getVSumField($value['id'],"pop");
//$value['aname'] = $database->getAllianceName($value['alliance']);
$q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.tribe tribe, " . TB_PREFIX . "users.username username," . TB_PREFIX . "users.alliance alliance, (
SELECT SUM( " . TB_PREFIX . "vdata.pop )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid
)totalpop, (
SELECT COUNT( " . TB_PREFIX . "vdata.wref )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99
)totalvillages, (
SELECT " . TB_PREFIX . "alidata.tag
FROM " . TB_PREFIX . "alidata, " . TB_PREFIX . "users
WHERE " . TB_PREFIX . "alidata.id = " . TB_PREFIX . "users.alliance
AND " . TB_PREFIX . "users.id = userid
)allitag
FROM " . TB_PREFIX . "users
WHERE " . TB_PREFIX . "users.tribe = $race AND " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . "
ORDER BY totalpop DESC, totalvillages DESC, username ASC";
$result = (mysql_query($q));
while($row = mysql_fetch_assoc($result)) {
$datas[] = $row;
}
if(mysql_num_rows($result)) {
foreach($datas as $result) {
//$value = $array[$result['userid']];
$value['userid'] = $result['userid'];
$value['username'] = $result['username'];
$value['alliance'] = $result['alliance'];
$value['aname'] = $result['allitag'];
$value['totalpop'] = $result['totalpop'];
$value['totalvillage'] = $result['totalvillages'];
//SELECT (SELECT SUM(".TB_PREFIX."vdata.pop) FROM ".TB_PREFIX."vdata WHERE ".TB_PREFIX."vdata.owner = 2) totalpop, (SELECT COUNT(".TB_PREFIX."vdata.wref) FROM ".TB_PREFIX."vdata WHERE ".TB_PREFIX."vdata.owner = 2) totalvillages, (SELECT ".TB_PREFIX."alidata.tag FROM ".TB_PREFIX."alidata WHERE ".TB_PREFIX."alidata.id = ".TB_PREFIX."users.alliance AND ".TB_PREFIX."users.id = 2);
array_push($holder, $value);
}
} else {
$value['userid'] = 0;
$value['username'] = "No User";
$value['alliance'] = "";
$value['aname'] = "";
$value['totalpop'] = "";
$value['totalvillage'] = "";
array_push($holder, $value);
}
//$holder = $multisort->sorte($holder, "'totalvillage'", false, 2, "'totalpop'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procAttRankArray() {
global $database, $multisort;
//$array = $database->getRanking();
$holder = array();
//$value['totalvillage'] = count($database->getVillagesID($value['id']));
//$value['totalpop'] = $database->getVSumField($value['id'],"pop");
$q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username, " . TB_PREFIX . "users.apall, (
SELECT COUNT( " . TB_PREFIX . "vdata.wref )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99
)totalvillages, (
SELECT SUM( " . TB_PREFIX . "vdata.pop )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid
)pop
FROM " . TB_PREFIX . "users
WHERE " . TB_PREFIX . "users.apall >=0 AND " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " AND " . TB_PREFIX . "users.tribe <= 3
ORDER BY " . TB_PREFIX . "users.apall DESC, pop DESC, username ASC";
$result = mysql_query($q) or die(mysql_error());
while($row = mysql_Fetch_assoc($result)) {
$datas[] = $row;
}
foreach($datas as $key => $row) {
//$value = $array[$row['userid']];
$value['username'] = $row['username'];
$value['totalvillages'] = $row['totalvillages'];
//$value['totalvillage'] = $row['totalvillages'];
$value['id'] = $row['userid'];
$value['totalpop'] = $row['pop'];
$value['apall'] = $row['apall'];
array_push($holder, $value);
printf("\n<!-- %s %s %s %s -->\n", $value['username'], $value['totalvillages'], $value['totalpop'], $value['apall']);
}
//$holder = $multisort->sorte($holder, "'ap'", false, 2, "'totalvillages'", false, 2, "'ap'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procDefRankArray() {
//global $database, $multisort;
//$array = $database->getRanking();
$holder = array();
$q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username, " . TB_PREFIX . "users.dpall, (
SELECT COUNT( " . TB_PREFIX . "vdata.wref )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99
)totalvillages, (
SELECT SUM( " . TB_PREFIX . "vdata.pop )
FROM " . TB_PREFIX . "vdata
WHERE " . TB_PREFIX . "vdata.owner = userid
)pop
FROM " . TB_PREFIX . "users
WHERE " . TB_PREFIX . "users.dpall >=0 AND " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . "
ORDER BY " . TB_PREFIX . "users.dpall DESC, pop DESC, username ASC";
$result = mysql_query($q) or die(mysql_error());
while($row = mysql_Fetch_assoc($result)) {
$datas[] = $row;
}
foreach($datas as $key => $row) {
//$value = $array[$row['userid']];
$value['username'] = $row['username'];
$value['totalvillages'] = $row['totalvillages'];
//$value['totalvillage'] = $row['totalvillages'];
$value['id'] = $row['userid'];
$value['totalpop'] = $row['pop'];
$value['dpall'] = $row['dpall'];
array_push($holder, $value);
}
//$holder = $multisort->sorte($holder, "'dpall'", false, 2, "'totalvillage'", false, 2, "'dpall'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procVRankArray() {
global $database, $multisort;
$array = $database->getVRanking();
$holder = array();
foreach($array as $value) {
$coor = $database->getCoor($value['wref']);
$value['x'] = $coor['x'];
$value['y'] = $coor['y'];
$value['user'] = $database->getUserField($value['owner'], "username", 0);
array_push($holder, $value);
}
$holder = $multisort->sorte($holder, "'x'", true, 2, "'y'", true, 2, "'pop'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procARankArray() {
global $database, $multisort;
$array = $database->getARanking();
$holder = array();
foreach($array as $value) {
$memberlist = $database->getAllMember($value['id']);
$totalpop = 0;
foreach($memberlist as $member) {
$totalpop += $database->getVSumField($member['id'], "pop");
}
$value['players'] = count($memberlist);
$value['totalpop'] = $totalpop;
if(!isset($value['avg'])) {
$value['avg'] = @round($totalpop / count($memberlist));
} else {
$value['avg'] = 0;
}
array_push($holder, $value);
}
$holder = $multisort->sorte($holder, "'totalpop'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procHeroRankArray() {
global $database, $multisort;
$array = $database->getHeroRanking();
$holder = array();
foreach($array as $value) {
$value['owner'] = $database->getUserField($value['uid'], "username", 0);
$value['level'] = round(($value['attackpower'] + $value['defpower'] + $value['attackbonus'] + $value['defbonus'] + $value['regspeed']) / 5);
array_push($holder, $value);
}
$holder = $multisort->sorte($holder, "'pointused'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procAAttRankArray() {
global $database, $multisort;
$array = $database->getARanking();
$holder = array();
foreach($array as $value) {
$memberlist = $database->getAllMember($value['id']);
$totalap = 0;
foreach($memberlist as $member) {
$totalap += $member['ap'];
}
$value['players'] = count($memberlist);
$value['totalap'] = $totalap;
if($value['avg'] > 0) {
$value['avg'] = round($totalap / count($memberlist));
} else {
$value['avg'] = 0;
}
array_push($holder, $value);
}
$holder = $multisort->sorte($holder, "'totalap'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
private function procADefRankArray() {
global $database, $multisort;
$array = $database->getARanking();
$holder = array();
foreach($array as $value) {
$memberlist = $database->getAllMember($value['id']);
$totaldp = 0;
foreach($memberlist as $member) {
$totaldp += $member['dp'];
}
$value['players'] = count($memberlist);
$value['totaldp'] = $totaldp;
if($value['avg'] > 0) {
$value['avg'] = round($totalap / count($memberlist));
} else {
$value['avg'] = 0;
}
array_push($holder, $value);
}
$holder = $multisort->sorte($holder, "'totaldp'", false, 2);
$newholder = array("pad");
foreach($holder as $key) {
array_push($newholder, $key);
}
$this->rankarray = $newholder;
}
}
;
$ranking = new Ranking;
?>
If there is some special capability, even if it is only that of being left off rankings, we already have a demonstration in the config file of how to accomplish it: set up a config option where that kind of use is set whether to be left off or not.
This problem was in fact over-riding even the existing config file setting, as I am user number and am the admin. This problem looks like it would have left me off the listing even if I had turned back on the option of showing me in the listings.
What exactly are users 2 and 3 imagined to be?
Whatever that is, should probably be something we can set any user to be, even if it is something we would only need one of such as "dummy record containing totals of all of such and such a type of user" or whatever weird thing.
This creeping violating of more and more early adopters ultimately probably ewnds with no one willing to be an early adopter.
Our early users have invested huge amounts of time and even maybe quite a bit of money (their hourly wage times time spent, if nothing more than that, just in opportunity costs alone), screwing them around is not a good plan.
-MarkM-
---------- Post added at 12:06 PM ---------- Previous post was at 11:54 AM ----------
Setting Support's access level to MODERATOR or MULTIHUNTER would probably be helpful, and if you want Support off the list already without waiting for a config option for making MULTIHUNTER not appear on the list and another for making MODERATOR not appewar on the list, in addition to the already existing option for making ADMIN not appear on the list, you can set Support to ADMIN for now.
But it seems clear from the text you see when you view support's profile (or clock the support menu option) that multihuner and support are two different groupds, one that supports users another that hiunts down violators. So it seems reasonable to set support as MODERATOR instead of a MULTIHUNTER.
(Even though both MODERATOR and MULTIHUNTER were both defined to be the number 8 last time I checked. Presumably at some point they will be assigned different numbers so the code can in fact distinguish one from the other.)
-MarkM-
Re: TravianX Advocaite Revision 4.8.5 Collection
large map has just been pushed to git repo
atm im working on oases all i need to get it work working is a little fine tuning and some bonty adjustments in automation i thought i had it all sorted but atm i dont cause somethings not working but at least i can attack and kill nature, plus the new way im doing this is so much easyer on the server compared to my last raw attempt so stay tuned for that
---------- Post added at 05:01 PM ---------- Previous post was at 04:55 PM ----------
@knotwork i undertsand some of what you say and yes there should be no referances to travian but then again people should not be hosting servers unless they have changed what is travians to be not travians if someone wants to release conversions on that mass of scale then kool i know its the first thing ill be doing once i finish coding the core to work just like travian us developers are seeking no money for this and give it away freely we cant be held responsable for some of the people who have no brains and host travian wannabe servers. when time comes for it we will change all html and referances of travian but please keep listing any more links to offical server id like them gone to
Re: TravianX Advocaite Revision 4.8.5 Collection
Thank you for working on things that users might actually encounter early in the game before worrying about stuff they won't run into for months.
I had a player actually wanting to explore Oases already, in fact several days ago by now, whereas unless something they or their heroes encounter in Oases or in some kind of rumour or lore section of a Hero's Mansion they have absolutely no idea whether Travian's so called Natars have anything to do with them or not.
Even if they have heard of Travian itself, and maybe Googled it to find out what happened there in the past thus maybe get a clue as to what might happen in the future, all they will see is that it seems to be either a timeloop or an oversimplified generalisation of the Civ/Freeciv "once you find a way to another planet or become the only civilisation on the planet it is game over", and almost all my players know that that is the START of the real game, everything that happened up until gaining control of a planet or heading out to colonise a new planet was just a pre-game qualifying round to provide a backstory explaining how you happen to BE on a new world (with, possibly, one or more old worlds still under your control to potentially provide suport / supply lines etc...)
So even if they do think we might use a storyline somewhat reminiscent of Travian's, they still do not know whether the world they are in is Pre-Natar (they will be known as Natars themselves long after they have moved on to another world), Post-Natar (the Natars did happen, yes, in the past, but whether they will come back is unknown) or Cyclic (they will be the Natars by conquering the world, then they will be the return of the Natars after they have moved on some new players have figured they abandoned the world so start colonising it, but ha ha they come back and give the later generation of players a hard time for taking over their world while they were focussing elsewhere...)
I am pretty sure most of my players would far prefer not to have some previous generation of occupants of their world come back to give them a hard time, some of them are worried enough just about whether they can effectively protect newbies.
(My news blurb warns them that just because the software could protect newbies is not a good reason to have it do so. Why should some inexplicable magic do their job for them? If they want to protect newbies they are welcome to do (or even, Yoda aside, to try).
If players want a civilised world it is up to them to civilise it.
I propose that the two dimensions of the map could be used as an "alignment chart", label North Lawful, West Good, South Chaotic and East Evil, then let players choose for themselves. Or have four entire worlds to choose from.
"Do you want total anarchy, might makes right; or total law, might of others makes right over you but sorry no might for you you are a puny newbie hahaha; or a safe zone, where if anyone ever does attack anyone everyone else will all chip in to punish them for disturbing the peace; etc."
Most of my Xnova Redesigned players LOVE the fact that combat does not work there yet, because they DO like newbie protection and knowing no-one has fixed combat yet they know the months of such protection they have enjoyed so far could stretch on any unknown number of months, maybe even until someone sells enough resources for Devcoin (DVC) to actually offer developers Devcoin-bounty for developing a working combat system for it...
-MarkM-
Re: TravianX Advocaite Revision 4.8.5 Collection
i have made a push to the git rep allowing oases to be raided atm will work on conquering and stuff futhur down track for now you can raid them they produce there own res all oases data is in odata now no need to pretend its a village and make 10s of thousands row x how ever many tables get populated one table means less load on server and that should be good thing
i will make a few minor changes real soon more to make so only can raid oases or rein if conquered
Re: TravianX Advocaite Revision 4.8.5 Collection
Thanks! My player who has actually played Travian before and thus suggested such things should be possible - and even tried to do a raid - will like that. I am not sure he ever read the power Travian player guide that claims attacking nature is not cost-efficient.
(But I am pretty sure such power players don't play on worlds that lack literally hundreds or thousands of farms begging to be farmed, too...)
We should also give some thought, at least on back-burner, to peaceful options, maybe for example allow that a hero can be sent to "legendary locations" in a scouting mode even if not officially/militarily a scout, so as for example to make peaceful contact with the elves (aka Natar or Nature?) in a woody oasis, dwarfs (aka Natar technicians?) in a mountainous oasis, etc. Not formulaic in the sense all oases would have this, but at least a way "roleplayers" can "check the place really does offer no non-militarry solution before attacking" and hope some day to get lucky and find an oasis with an artifact or a friendly tribe etc (Civ/Freeciv might call that a "hut"...)
Just because some wargamers and.or videogamers hate "simmers" and/or "roleplayers" is no reason not to aggravate them by supporting such folk/goals. ;)
-MarkM-
---------- Post added at 04:05 PM ---------- Previous post was at 03:51 PM ----------
Oh! Forgot to ask... do the Oases invent their occupants when they are scouted/raided/attacked, or is some kind of mass pre-populating of them still necessary before they will have anyone there to raid?
-MarkM-
Re: TravianX Advocaite Revision 4.8.5 Collection
there is two functions too run once game is installed (install has the db updates pre made )
$database->populateOasis();
and
$database->poulateOasisUnitsLow();
once those two things are done you can happily raid oasis on map
---------- Post added at 08:10 PM ---------- Previous post was at 07:12 PM ----------
i missed a couple functions on push but know have them all there so should be good now :)
Re: TravianX Advocaite Revision 4.8.5 Collection
error reporting in
git hub
error in profile when pressing profile it send you to support ;)
also large map error karte.php it must be karte2.php.
also index.php line 18 must be, include ("GameEngine/Lang/".LANG.".php");
but still you ppl are doing a good job,thx for your help
Re: TravianX Advocaite Revision 4.8.5 Collection
Quote:
Originally Posted by
advocaite
there is two functions too run once game is installed (install has the db updates pre made )
$database->populateOasis();
and
$database->poulateOasisUnitsLow();
once those two things are done you can happily raid oasis on map
---------- Post added at 08:10 PM ---------- Previous post was at 07:12 PM ----------
i missed a couple functions on push but know have them all there so should be good now :)
how to?
Re: TravianX Advocaite Revision 4.8.5 Collection
Quote:
Originally Posted by
traviankokos
how to?
make a .php file.
write the things that were mentioned in and run it.
should work
Re: TravianX Advocaite Revision 4.8.5 Collection
what's worng in abc.com/karte.php?d=1864&c=77
at oasis .............
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in \GameEngine\Database\db_MYSQL.php on line 496
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in \GameEngine\Database\db_MYSQL.php on line 218
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in \GameEngine\Database\db_MYSQL.php on line 218
Re: TravianX Advocaite Revision 4.8.5 Collection
Hi all, i need some help please. i downloaded ragezone.exe
i installed it nd it works fine but when i select and input troop number and press ok all troops dissapear except for the hero. plus the oasiss have no troops and are ownd by the multihunter.
please some one help me, than you
Eyas
Re: TravianX Advocaite Revision 4.8.5 Collection
for one eyas your using wrong release use git hub ;please
for he others you need to mae sure you run the two functions you can put them anywhere in any file run them once and delete them
---------- Post added at 06:37 AM ---------- Previous post was at 06:25 AM ----------
i will try make them happen durring install instead
Re: TravianX Advocaite Revision 4.8.5 Collection
hero doesnt work there thou
---------- Post added at 06:39 AM ---------- Previous post was at 06:38 AM ----------
btw, when i attack an oasis my troops disappear :(
do u know how to fix it
Re: TravianX Advocaite Revision 4.8.5 Collection
ok i have just made a push to git hub
now as long as your odata has been altered ie from new install it be auto previous ones need to open install/data/sql.sql and look at what has changed in odata table and make changes to there server
i just fixed a bug when populating oasis should now get no errors and population should accour to happen with ease
make a file called oasis.php
PHP Code:
<?php
include("GameEngine/Village.php");
$database->poulateOasisdata();
$database->populateOasis();
$database->poulateOasisUnitsLow();
?>
make sure file has above code and run it once
this will have to do untill i can make it happen on install