diff --git a/GameEngine/BBCode.php b/GameEngine/BBCode.php index 2a2e7d95..7aefab45 100644 --- a/GameEngine/BBCode.php +++ b/GameEngine/BBCode.php @@ -1 +1 @@ -$1"; $replace[1] = "$1"; $replace[2] = "$1"; $replace[3] = "".U1.""; $replace[4] = "".U2.""; $replace[5] = "".U3.""; $replace[6] = "".U4.""; $replace[7] = "".U5.""; $replace[8] = "".U6.""; $replace[9] = "".U7.""; $replace[10] = "".U8.""; $replace[11] = "".U9.""; $replace[12] = "".U10.""; $replace[13] = "".U11.""; $replace[14] = "".U12.""; $replace[15] = "".U13.""; $replace[16] = "".U14.""; $replace[17] = "".U15.""; $replace[18] = "".U16.""; $replace[19] = "".U17.""; $replace[20] = "".U18.""; $replace[21] = "".U19.""; $replace[22] = "".U20.""; $replace[23] = "".U21.""; $replace[24] = "".U22.""; $replace[25] = "".U23.""; $replace[26] = "".U24.""; $replace[27] = "".U25.""; $replace[28] = "".U26.""; $replace[29] = "".U27.""; $replace[30] = "".U28.""; $replace[31] = "".U29.""; $replace[32] = "".U30.""; $replace[33] = "".U31.""; $replace[34] = "".U32.""; $replace[35] = "".U33.""; $replace[36] = "".U34.""; $replace[37] = "".U35.""; $replace[38] = "".U36.""; $replace[39] = "".U37.""; $replace[40] = "".U38.""; $replace[41] = "".U39.""; $replace[42] = "".U40.""; $replace[43] = "".U41.""; $replace[44] = "".U42.""; $replace[45] = "".U43.""; $replace[46] = "".U44.""; $replace[47] = "".U45.""; $replace[48] = "".U46.""; $replace[49] = "".U47.""; $replace[50] = "".U48.""; $replace[51] = "".U49.""; $replace[52] = "".U50.""; $replace[53] = "".U0.""; $replace[54] = "".R1.""; $replace[55] = "".R2.""; $replace[56] = "".R3.""; $replace[57] = "".R4.""; $replace[54] = "Lumber"; $replace[55] = "Clay"; $replace[56] = "Iron"; $replace[57] = "Crop"; $replace[58] = "*aha*"; $replace[59] = "*angry*"; $replace[60] = "*cool*"; $replace[61] = "*cry*"; $replace[62] = "*cute*"; $replace[63] = "*depressed*"; $replace[64] = "*eek*"; $replace[65] = "*ehem*"; $replace[66] = "*emotional*"; $replace[67] = ":D"; $replace[68] = ":)"; $replace[69] = "*hit*"; $replace[70] = "*hmm*"; $replace[71] = "*hmpf*"; $replace[72] = "*hrhr*"; $replace[73] = "*huh*"; $replace[74] = "*lazy*"; $replace[75] = "*love*"; $replace[76] = "*nocomment*"; $replace[77] = "*noemotion*"; $replace[78] = "*notamused*"; $replace[79] = "*pout*"; $replace[80] = "*redface*"; $replace[81] = "*rolleyes*"; $replace[82] = ":("; $replace[83] = "*shy*"; $replace[84] = "*smile*"; $replace[85] = "*tongue*"; $replace[86] = "*veryangry*"; $replace[87] = "*veryhappy*"; $replace[88] = ";)"; for($i=0;$i<=$alliance;$i++){ $pattern[89+$i] = "/\[alliance".$i."\](.*?)\[\/alliance".$i."\]/is"; ${'bbcoded1_'.$i} = preg_replace($pattern[89+$i], "$1", $input); ${'bbcoded1_'.$i} = preg_replace('/\[\/alliance'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded1_'.$i} = preg_replace('/\[message\](.*?)\[alliance'.$i.'\]/is', '', ${'bbcoded1_'.$i}); $aname = $database->getAllianceID(${'bbcoded1_'.$i}); if($aname != ""){ $replace[89+$i] = "$1"; }else{ $replace[89+$i] = "alliance not exist"; } $rep1 = 90+$i; } for($i=0;$i<=$player;$i++){ $pattern[$rep1+$i] = "/\[player".$i."\](.*?)\[\/player".$i."\]/is"; ${'bbcoded2_'.$i} = preg_replace($pattern[$rep1+$i], "$1", $input); ${'bbcoded2_'.$i} = preg_replace('/\[\/player'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded2_'.$i} = preg_replace('/\[message\](.*?)\[player'.$i.'\]/is', '', ${'bbcoded2_'.$i}); $uname = $database->getUserField(${'bbcoded2_'.$i}, "id", 1); if($uname != ""){ $replace[$rep1+$i] = "$1"; }else{ $replace[$rep1+$i] = "player not exist"; } $rep2 = $rep1+$i+1; } for($i=0;$i<=$report;$i++){ $pattern[$rep2+$i] = "/\[report".$i."\](.*?)\[\/report".$i."\]/is"; ${'bbcoded3_'.$i} = preg_replace($pattern[$rep2+$i], "$1", $input); ${'bbcoded3_'.$i} = preg_replace('/\[\/report'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded3_'.$i} = preg_replace('/\[message\](.*?)\[report'.$i.'\]/is', '', ${'bbcoded3_'.$i}); $report = count($database->getNotice4(${'bbcoded3_'.$i})); if($report > 0){ $topic = $database->getNotice2(${'bbcoded3_'.$i},"topic"); $replace[$rep2+$i] = "$topic"; }else{ $replace[$rep2+$i] = "report not exist"; } $rep3 = $rep2+$i+1; } for($i=0;$i<=$coor;$i++){ $pattern[$rep3+$i] = "/\[coor".$i."\](.*?)\[\/coor".$i."\]/is"; ${'bbcoded4_'.$i} = preg_replace($pattern[$rep3+$i], "$1", $input); ${'bbcoded4_'.$i} = preg_replace('/\[\/coor'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded4_'.$i} = preg_replace('/\[message\](.*?)\[coor'.$i.'\]/is', '', ${'bbcoded4_'.$i}); for($x = 0; $x < 401; $x++) { if(preg_match('/^'.$x.'/', ${'bbcoded4_'.$i})){ $xx = 1; $cx = $x; } } for($x = 0; $x > -401; $x--) { if(preg_match('/^'.$x.'/', ${'bbcoded4_'.$i})){ $xx = 1; $cx = $x; } } for($y = 0; $y < 401; $y++) { if(preg_match('/-'.$y.'$/', ${'bbcoded4_'.$i})){ $yy = 1; $cy = $y*(-1); }else if(preg_match('/'.$y.'$/', ${'bbcoded4_'.$i})){ $yy = 1; $cy = $y; } } if(preg_match('/|/', ${'bbcoded4_'.$i}) && $xx == 1 && $yy == 1){ $wref = $database->getVilWref($cx,$cy); $cwref = $generator->getMapCheck($wref); if($wref != ""){ $wref1 = $database->getVillageType3($wref); if($wref1['oasistype'] == 0 && $wref1['occupied'] == 1){ $vname = $database->getVillageField($wref,"name"); }else if($wref1['oasistype'] == 0 && $wref1['occupied'] == 0){ $vname = "Abandoned valley"; }else if($wref1['oasistype'] != 0 && $wref1['occupied'] == 1){ $vname = "Occupied Oasis"; }else if($wref1['oasistype'] != 0 && $wref1['occupied'] == 0){ $vname = "Unoccupied Oasis"; } $replace[$rep3+$i] = "$vname($cx|$cy)"; } } } $input = preg_replace('/\[message\]/', '', $input); $input = preg_replace('/\[\/message\]/', '', $input); $bbcoded = preg_replace($pattern, $replace, $input); ?> \ No newline at end of file +$1"; $replace[1] = "$1"; $replace[2] = "$1"; $replace[3] = "".U1.""; $replace[4] = "".U2.""; $replace[5] = "".U3.""; $replace[6] = "".U4.""; $replace[7] = "".U5.""; $replace[8] = "".U6.""; $replace[9] = "".U7.""; $replace[10] = "".U8.""; $replace[11] = "".U9.""; $replace[12] = "".U10.""; $replace[13] = "".U11.""; $replace[14] = "".U12.""; $replace[15] = "".U13.""; $replace[16] = "".U14.""; $replace[17] = "".U15.""; $replace[18] = "".U16.""; $replace[19] = "".U17.""; $replace[20] = "".U18.""; $replace[21] = "".U19.""; $replace[22] = "".U20.""; $replace[23] = "".U21.""; $replace[24] = "".U22.""; $replace[25] = "".U23.""; $replace[26] = "".U24.""; $replace[27] = "".U25.""; $replace[28] = "".U26.""; $replace[29] = "".U27.""; $replace[30] = "".U28.""; $replace[31] = "".U29.""; $replace[32] = "".U30.""; $replace[33] = "".U31.""; $replace[34] = "".U32.""; $replace[35] = "".U33.""; $replace[36] = "".U34.""; $replace[37] = "".U35.""; $replace[38] = "".U36.""; $replace[39] = "".U37.""; $replace[40] = "".U38.""; $replace[41] = "".U39.""; $replace[42] = "".U40.""; $replace[43] = "".U41.""; $replace[44] = "".U42.""; $replace[45] = "".U43.""; $replace[46] = "".U44.""; $replace[47] = "".U45.""; $replace[48] = "".U46.""; $replace[49] = "".U47.""; $replace[50] = "".U48.""; $replace[51] = "".U49.""; $replace[52] = "".U50.""; $replace[53] = "".U0.""; $replace[54] = "".R1.""; $replace[55] = "".R2.""; $replace[56] = "".R3.""; $replace[57] = "".R4.""; $replace[54] = "Lumber"; $replace[55] = "Clay"; $replace[56] = "Iron"; $replace[57] = "Crop"; $replace[58] = "*aha*"; $replace[59] = "*angry*"; $replace[60] = "*cool*"; $replace[61] = "*cry*"; $replace[62] = "*cute*"; $replace[63] = "*depressed*"; $replace[64] = "*eek*"; $replace[65] = "*ehem*"; $replace[66] = "*emotional*"; $replace[67] = ":D"; $replace[68] = ":)"; $replace[69] = "*hit*"; $replace[70] = "*hmm*"; $replace[71] = "*hmpf*"; $replace[72] = "*hrhr*"; $replace[73] = "*huh*"; $replace[74] = "*lazy*"; $replace[75] = "*love*"; $replace[76] = "*nocomment*"; $replace[77] = "*noemotion*"; $replace[78] = "*notamused*"; $replace[79] = "*pout*"; $replace[80] = "*redface*"; $replace[81] = "*rolleyes*"; $replace[82] = ":("; $replace[83] = "*shy*"; $replace[84] = "*smile*"; $replace[85] = "*tongue*"; $replace[86] = "*veryangry*"; $replace[87] = "*veryhappy*"; $replace[88] = ";)"; for($i=0;$i<=$alliance;$i++){ $pattern[89+$i] = "/\[alliance".$i."\](.*?)\[\/alliance".$i."\]/is"; ${'bbcoded1_'.$i} = preg_replace($pattern[89+$i], "$1", $input); ${'bbcoded1_'.$i} = preg_replace('/\[\/alliance'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded1_'.$i} = preg_replace('/\[message\](.*?)\[alliance'.$i.'\]/is', '', ${'bbcoded1_'.$i}); $aname = $database->getAllianceID(${'bbcoded1_'.$i}); if($aname != ""){ $replace[89+$i] = "$1"; }else{ $replace[89+$i] = "alliance not exist"; } $rep1 = 90+$i; } for($i=0;$i<=$player;$i++){ $pattern[$rep1+$i] = "/\[player".$i."\](.*?)\[\/player".$i."\]/is"; ${'bbcoded2_'.$i} = preg_replace($pattern[$rep1+$i], "$1", $input); ${'bbcoded2_'.$i} = preg_replace('/\[\/player'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded2_'.$i} = preg_replace('/\[message\](.*?)\[player'.$i.'\]/is', '', ${'bbcoded2_'.$i}); $uname = $database->getUserField(${'bbcoded2_'.$i}, "id", 1); if($uname != ""){ $replace[$rep1+$i] = "$1"; }else{ $replace[$rep1+$i] = "player not exist"; } $rep2 = $rep1+$i+1; } for($i=0;$i<=$report;$i++){ $pattern[$rep2+$i] = "/\[report".$i."\](.*?)\[\/report".$i."\]/is"; ${'bbcoded3_'.$i} = preg_replace($pattern[$rep2+$i], "$1", $input); ${'bbcoded3_'.$i} = preg_replace('/\[\/report'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded3_'.$i} = preg_replace('/\[message\](.*?)\[report'.$i.'\]/is', '', ${'bbcoded3_'.$i}); $report = count($database->getNotice4(${'bbcoded3_'.$i})); if($report > 0){ $topic = $database->getNotice2(${'bbcoded3_'.$i},"topic"); $ally = $database->getNotice2(${'bbcoded3_'.$i},"ally"); $replace[$rep2+$i] = "$topic"; }else{ $replace[$rep2+$i] = "report not exist"; } $rep3 = $rep2+$i+1; } for($i=0;$i<=$coor;$i++){ $pattern[$rep3+$i] = "/\[coor".$i."\](.*?)\[\/coor".$i."\]/is"; ${'bbcoded4_'.$i} = preg_replace($pattern[$rep3+$i], "$1", $input); ${'bbcoded4_'.$i} = preg_replace('/\[\/coor'.$i.'\](.*?)\[\/message\]/is', '', $input); ${'bbcoded4_'.$i} = preg_replace('/\[message\](.*?)\[coor'.$i.'\]/is', '', ${'bbcoded4_'.$i}); for($x = 0; $x < 401; $x++) { if(preg_match('/^'.$x.'/', ${'bbcoded4_'.$i})){ $xx = 1; $cx = $x; } } for($x = 0; $x > -401; $x--) { if(preg_match('/^'.$x.'/', ${'bbcoded4_'.$i})){ $xx = 1; $cx = $x; } } for($y = 0; $y < 401; $y++) { if(preg_match('/-'.$y.'$/', ${'bbcoded4_'.$i})){ $yy = 1; $cy = $y*(-1); }else if(preg_match('/'.$y.'$/', ${'bbcoded4_'.$i})){ $yy = 1; $cy = $y; } } if(preg_match('/|/', ${'bbcoded4_'.$i}) && $xx == 1 && $yy == 1){ $wref = $database->getVilWref($cx,$cy); $cwref = $generator->getMapCheck($wref); if($wref != ""){ $wref1 = $database->getVillageType3($wref); if($wref1['oasistype'] == 0 && $wref1['occupied'] == 1){ $vname = $database->getVillageField($wref,"name"); }else if($wref1['oasistype'] == 0 && $wref1['occupied'] == 0){ $vname = "Abandoned valley"; }else if($wref1['oasistype'] != 0 && $wref1['occupied'] == 1){ $vname = "Occupied Oasis"; }else if($wref1['oasistype'] != 0 && $wref1['occupied'] == 0){ $vname = "Unoccupied Oasis"; } $replace[$rep3+$i] = "$vname($cx|$cy)"; } } } $input = preg_replace('/\[message\]/', '', $input); $input = preg_replace('/\[\/message\]/', '', $input); $bbcoded = preg_replace($pattern, $replace, $input); ?> \ No newline at end of file diff --git a/GameEngine/Database/db_MYSQL.php b/GameEngine/Database/db_MYSQL.php index 880fc363..0a7c4c07 100644 --- a/GameEngine/Database/db_MYSQL.php +++ b/GameEngine/Database/db_MYSQL.php @@ -1849,6 +1849,14 @@ class MYSQL_DB { $dbarray = mysql_fetch_array($result); $q = "UPDATE ".TB_PREFIX."bdata SET timestamp = $time WHERE id = '".$dbarray['id']."'"; $this->query($q); + $q2 = "SELECT * FROM " . TB_PREFIX . "bdata where wid = $wid and loopcon = 1 and field <= 18 order by master,timestamp ASC"; + if(mysql_num_rows($q2) > 0){ + $result2 = mysql_query($q2); + $dbarray2 = mysql_fetch_array($result2); + $wc_time = $dbarray['timestamp']; + $q2 = "UPDATE ".TB_PREFIX."bdata SET timestamp = timestamp - $wc_time WHERE id = '".$dbarray2['id']."'"; + $this->query($q2); + } } function getMasterJobs($wid) { diff --git a/GameEngine/Lang/en.php b/GameEngine/Lang/en.php index 4cb180c0..e7bf0382 100644 --- a/GameEngine/Lang/en.php +++ b/GameEngine/Lang/en.php @@ -31,6 +31,7 @@ define("UPDATE_T_10","Update Top 10"); define("SYSTEM_MESSAGE","System message"); define("TRAVIAN_PLUS","Travian Plus"); define("CONTACT","Contact us!"); +define("GAME_RULES","Game Rules"); //MENU define("REG","Register"); @@ -368,4 +369,4 @@ define("MASS_SENT","Mass IGM was sent"); $lang['login'] = "Login"; -?> \ No newline at end of file +?> diff --git a/GameEngine/Lang/zh_tw.php b/GameEngine/Lang/zh_tw.php new file mode 100644 index 00000000..cd23fe6b --- /dev/null +++ b/GameEngine/Lang/zh_tw.php @@ -0,0 +1,372 @@ +Plus"); +define("CONTACT","聯絡我們!"); +define("GAME_RULES","遊戲規定"); + +//MENU +define("REG","註冊"); +define("FORUM","論壇"); +define("CHAT","聊天室"); +define("IMPRINT","Imprint"); +define("MORE_LINKS","更多連結"); +define("TOUR","Game Tour"); + + +//ERRORS +define("USRNM_EMPTY","(Username empty)"); +define("USRNM_TAKEN","(Name is already in use.)"); +define("USRNM_SHORT","(min. ".USRNM_MIN_LENGTH." figures)"); +define("USRNM_CHAR","(Invalid Characters)"); +define("PW_EMPTY","(Password empty)"); +define("PW_SHORT","(min. ".PW_MIN_LENGTH." figures)"); +define("PW_INSECURE","(Password insecure. Please choose a more secure one.)"); +define("EMAIL_EMPTY","(Email Empty)"); +define("EMAIL_INVALID","(Invalid email address)"); +define("EMAIL_TAKEN","(Email is already in use)"); +define("TRIBE_EMPTY","
  • Please choose a tribe.
  • "); +define("AGREE_ERROR","
  • You have to agree to the game rules and the general terms & conditions in order to register.
  • "); +define("LOGIN_USR_EMPTY","Enter name."); +define("LOGIN_PASS_EMPTY","Enter password."); +define("EMAIL_ERROR","Email does not match existing"); +define("PASS_MISMATCH","Passwords do not match"); +define("ALLI_OWNER","Please appoint an alliance owner before deleting"); +define("SIT_ERROR","Sitter already set"); +define("USR_NT_FOUND","Name does not exist."); +define("LOGIN_PW_ERROR","The password is wrong."); +define("WEL_TOPIC","Useful tips & information "); +define("ATAG_EMPTY","Tag empty"); +define("ANAME_EMPTY","Name empty"); +define("ATAG_EXIST","Tag taken"); +define("ANAME_EXIST","Name taken"); +define("NOT_OPENED_YET","Server not started yet."); +define("REGISTER_CLOSED","The register is closed. You can't register to this server."); +define("NAME_EMPTY","Please insert name"); +define("NAME_NO_EXIST","There is no user with the name "); +define("ID_NO_EXIST","There is no user with the id "); +define("SAME_NAME","You can't invite yourself"); +define("ALREADY_INVITED"," already invited"); +define("ALREADY_IN_ALLY"," already in this alliance"); + +//COPYRIGHT +define("TRAVIAN_COPYRIGHT","TravianZ 100% Open Source Travian Clone."); + +//BUILD.TPL +define("CUR_PROD","目前的產量"); +define("NEXT_PROD","產量在等級 "); + +//BUILDINGS +define("B1","伐木場"); +define("B1_DESC","伐木場是砍伐木材的地方.伐木場等級越高,單位時間內能砍伐的木材也就越多."); +define("B2","泥坑"); +define("B2_DESC","泥坑是生產泥土的地方.泥坑等級越高,單位時間內生產的磚塊也就越多."); +define("B3","鐵礦場"); +define("B3_DESC","鐵礦場是用來採集鐵礦的.鐵礦場等級越高,每小時能採集的鐵礦就越多."); +define("B4","農場"); +define("B4_DESC","農場是為居民生產糧食的地方.農場等級越高,所能生產的糧食也就越多."); + +//DORF1 +define("LUMBER","木材"); +define("CLAY","磚塊"); +define("IRON","鋼鐵"); +define("CROP","穀物"); +define("LEVEL","等級"); +define("CROP_COM",CROP." consumption"); +define("PER_HR","每小時"); +define("PROD_HEADER","生產"); +define("MULTI_V_HEADER","村莊"); +define("ANNOUNCEMENT","Announcement"); +define("GO2MY_VILLAGE","回到我的村莊"); +define("VILLAGE_CENTER","地圖中心"); +define("FINISH_GOLD","花費2金,結束這個村莊當前建築任務或者兵種研發, 升級的任務. (除了皇宮和行宮)"); +define("WAITING_LOOP","(等待建築)"); +define("HRS","(hrs.)"); +define("DONE_AT","結束在"); +define("CANCEL","取消"); +define("LOYALTY","Loyalty:"); +define("CALCULATED_IN","產生在"); +define("SEVER_TIME","伺服器時間:"); + +//QUEST +define("Q_CONTINUE","Continue with the next task."); +define("Q_REWARD","Your reward:"); +define("Q0","Welcome to "); +define("Q0_DESC","As I see you have been made chieftain of this little village. I will be your counselor for the first few days and never leave your (right hand) side."); +define("Q0_OPT1","To the first task."); +define("Q0_OPT2","Look around on your own."); +define("Q0_OPT3","Play no tasks."); + +define("Q1","Task 1: Woodcutter"); +define("Q1_DESC","There are four green forests around your village. Construct a woodcutter on one of them. Lumber is an important resource for our new settlement."); +define("Q1_ORDER","Order:<\/p>Construct a woodcutter."); +define("Q1_RESP","Yes, that way you gain more lumber.I helped a bit and completed the order instantly."); +define("Q1_REWARD","Woodcutter instantly completed."); + +define("Q2","Task 2: Crop"); +define("Q2_DESC","Now your subjects are hungry from working all day. Extend a cropland to improve your subjects' supply. Come back here once the building is complete."); +define("Q2_ORDER","Order:<\/p>Extend one cropland."); +define("Q2_RESP","Very good. Now your subjects have enough to eat again..."); + +define("Q3","Task 3: Your Village's Name"); +define("Q3_DESC","Creative as you are you can grant your village the ultimate name.\r\n

    \r\nClick on 'profile' in the left hand menu and then select 'change profile'..."); +define("Q3_ORDER","Order:<\/p>Change your village's name to something nice."); +define("Q3_RESP","Wow, a great name for their village. It could have been the name of my village!..."); + +define("Q4","Task 4: Other Players"); +define("Q4_DESC","In ". SERVER_NAME ." you play along with billions of other players. Click 'statistics' in the top menu to look up your rank and enter it here."); +define("Q4_ORDER","Order:<\/p>Look for your rank in the statistics and enter it here."); +define("Q4_BUTN","complete task"); +define("Q4_RESP","Exactly! That's your rank."); + +define("Q5","Task 5: Two Building Orders"); +define("Q5_DESC","Build an iron mine and a clay pit. Of iron and clay one can never have enough."); +define("Q5_ORDER","Order:<\/p>