From fe19587c90c8a146ba82ad6f2fb604c13b5d86c8 Mon Sep 17 00:00:00 2001 From: novgorodschi catalin Date: Tue, 26 May 2026 10:42:28 +0300 Subject: [PATCH] Redesign install system & New Medal System Redesign install system & New Medal System Artefact Holder [#ARTEFACT] WW Builder [#WWBUILDER] Great Store [#GREATSTORE] Wall Master [#WALLMASTER] Hero 99+ [#HERO100] --- Admin/Templates/add_village.tpl | 82 +- Admin/Templates/player.tpl | 12 +- Admin/Templates/punish.tpl | 33 +- Templates/Profile/medal.php | 137 ++- Templates/Profile/profile.tpl | 101 ++ .../img/gloriamedals/artifact.png | Bin 0 -> 7923 bytes .../img/gloriamedals/greatstore.png | Bin 0 -> 5088 bytes .../travian_default/img/gloriamedals/hero.png | Bin 0 -> 4458 bytes .../img/gloriamedals/wallmaster.png | Bin 0 -> 3971 bytes .../img/gloriamedals/ww_builder.png | Bin 0 -> 11656 bytes .../img/gloriamedals/ww_winner.png | Bin 0 -> 14012 bytes install/data/constant_format.tpl | 1 + install/process.php | 1 + install/templates/accounts.tpl | 164 ++- install/templates/config.tpl | 986 ++++-------------- install/templates/dataform.tpl | 63 +- install/templates/end.tpl | 104 +- install/templates/greet.tpl | 89 +- install/templates/menu.tpl | 54 +- install/templates/script.tpl | 242 ++--- install/templates/wdata.tpl | 227 +--- 21 files changed, 907 insertions(+), 1389 deletions(-) create mode 100644 gpack/travian_default/img/gloriamedals/artifact.png create mode 100644 gpack/travian_default/img/gloriamedals/greatstore.png create mode 100644 gpack/travian_default/img/gloriamedals/hero.png create mode 100644 gpack/travian_default/img/gloriamedals/wallmaster.png create mode 100644 gpack/travian_default/img/gloriamedals/ww_builder.png create mode 100644 gpack/travian_default/img/gloriamedals/ww_winner.png diff --git a/Admin/Templates/add_village.tpl b/Admin/Templates/add_village.tpl index 767b54e5..721eda53 100644 --- a/Admin/Templates/add_village.tpl +++ b/Admin/Templates/add_village.tpl @@ -19,44 +19,78 @@ ################################################################################# ?>
- +
- - - + + - + - + + + +
Add Village
Coordinates (X|Y)
- X: - > -
+ Coordinates (X|Y) +
- Y: - > - +
+ + > +
+
- - +
+ + > +
+
+
+ +
+
diff --git a/Admin/Templates/player.tpl b/Admin/Templates/player.tpl index f8de7ddb..1b38bc8d 100644 --- a/Admin/Templates/player.tpl +++ b/Admin/Templates/player.tpl @@ -97,10 +97,14 @@ if($deletion){ include("playermedals.tpl"); include ("villages.tpl"); ?> -
-
-
-
+
+
+ +
+
+ +
+
getUserActive(); ?> diff --git a/Templates/Profile/medal.php b/Templates/Profile/medal.php index 01955c36..ccf8deea 100644 --- a/Templates/Profile/medal.php +++ b/Templates/Profile/medal.php @@ -64,14 +64,135 @@ $profiel = preg_replace("/\[#TEAM]/is",'', $profiel, 1); } -// WW Winner IMAGES - MUST TO BE SET FROM ADMIN PANEL @iopietro must code -// Added by Shadow - cata7007@gmail.com / Skype : cata7007 -if($displayarray['username'] == "Shadow"){ -$profiel = preg_replace("/\[#WWBUILDER]/is",'', $profiel, 1); -$profiel = preg_replace("/\[#WINNERWW]/is",'', $profiel, 1); -$profiel = preg_replace("/\[#OFFENSIVE]/is",'', $profiel, 1); -$profiel = preg_replace("/\[#DEFENSIVE]/is",'', $profiel, 1); -$profiel = preg_replace("/\[#POPULATION]/is",'', $profiel, 1); +// ========================= +// NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM - DYNAMIC +// ========================= +if(defined('NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM') && NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM){ + + $uid = (int)$displayarray['id']; + $username = htmlspecialchars($displayarray['username'], ENT_QUOTES); + $tribeMap = [1=>'Romans',2=>'Teutons',3=>'Gauls']; + $tribeName = $tribeMap[$displayarray['tribe']??0]?? 'Unknown'; + + // luam WW real + $wwLevel = 0; + $wwName = 'N/A'; + + $qww = $database->query(" + SELECT v.name AS village, f.f99 AS lvl + FROM ".TB_PREFIX."vdata v + INNER JOIN ".TB_PREFIX."fdata f ON f.vref = v.wref + WHERE v.owner = $uid + AND f.f99t = 40 -- tipul 40 = Wonder + AND f.f99 > 0 -- nivel real + ORDER BY f.f99 DESC + LIMIT 1 + "); + + if($qww && $row = $qww->fetch_assoc()){ + $wwLevel = (int)$row['lvl']; + $wwName = htmlspecialchars($row['village'], ENT_QUOTES); + } + + // [#ARTEFACT] + $profiel = preg_replace_callback("/\[#ARTEFACT\]/is", function($m) use ($database,$uid,$username,$tribeName,$gpack){ + $q = $database->query("SELECT size, name FROM ".TB_PREFIX."artefacts WHERE owner=$uid"); + if(!$q || !$q->num_rows) return ''; + + $sizeMap = [ + 1 => 'Small (Village Effect)', + 2 => 'Large (Account Effect)', + 3 => 'Unique (Account Effect)' + ]; + + $arts = ''; + while($a = $q->fetch_assoc()){ + $type = $sizeMap[(int)$a['size']] ?? 'Unknown'; + $aname = htmlspecialchars($a['name'], ENT_QUOTES); + $arts .= "Type:{$type}Artefact:{$aname}"; + } + + $tip = "{$arts}
Name:{$username}
Tribe:{$tribeName}
Category:Artefact Holder
"; + + return ""; + }, $profiel); + + // [#WWBUILDER] + if($wwLevel > 0){ + $tip = "
Name:{$username}
Tribe:{$tribeName}
Category:World Wonder
Village:{$wwName}
WW Level:{$wwLevel}
"; + $profiel = preg_replace("/\[#WWBUILDER\]/is","", + $profiel); + } else { + $profiel = str_replace("[#WWBUILDER]", "", $profiel); + } + + // [#WINNERWW] + if($wwLevel >= 100){ + $tip = "
Name:{$username}
Tribe:{$tribeName}
Category:Winner
WW Level:100
"; + $profiel = preg_replace("/\[#WINNERWW\]/is", + "", + $profiel); + } + + //[#GREATSTORE] - DOAR Great Warehouse (38) si Great Granary (39) nivel 20 + $hasGreatStore = false; + $gsVillage = ''; + $q = $database->query("SELECT v.name, f.* FROM ".TB_PREFIX."fdata f JOIN ".TB_PREFIX."vdata v ON v.wref=f.vref WHERE v.owner=$uid"); + if($q){ + while($f = $q->fetch_assoc()){ + $wh = $gr = false; + for($i=1; $i<=99; $i++){ + if(!isset($f["f{$i}t"])) continue; + $t = (int)$f["f{$i}t"]; + $l = (int)$f["f{$i}"]; + if($l == 20 && $t == 38) $wh = true; // Great Warehouse + if($l == 20 && $t == 39) $gr = true; // Great Granary + } + if($wh && $gr){ + $hasGreatStore = true; + $gsVillage = htmlspecialchars($f['name'], ENT_QUOTES); + break; + } + } + } + + if($hasGreatStore){ + $tip = "
Name:{$username}
Tribe:{$tribeName}
Category:Great Store
Village:{$gsVillage}
Great Warehouse:20
Great Granary:20
"; + $profiel = str_replace("[#GREATSTORE]", "", $profiel); + } else { + $profiel = str_replace("[#GREATSTORE]", "", $profiel); + } + + // [#HERO100] + $q = $database->query("SELECT level FROM ".TB_PREFIX."hero WHERE uid=$uid AND level>=99 LIMIT 1"); + if($q && $q->num_rows){ + $heroLvl = (int)$q->fetch_assoc()['level']; + $tip = "
Name:{$username}
Tribe:{$tribeName}
Category:Hero Level
Level:{$heroLvl}
"; + $profiel = str_replace("[#HERO100]", "", $profiel); + } else { + $profiel = str_replace("[#HERO100]", "", $profiel); + } + + // [#WALLMASTER] - 3 sate cu zid (31/32/33) nivel 20 in slotul 40 + $wallCount = 0; + $q = $database->query("SELECT f.f40, f.f40t FROM ".TB_PREFIX."fdata f + JOIN ".TB_PREFIX."vdata v ON v.wref=f.vref + WHERE v.owner=$uid"); + if($q){ + while($r = $q->fetch_assoc()){ + if((int)$r['f40'] == 20 && in_array((int)$r['f40t'], [31,32,33])){ + $wallCount++; + } + } + } + + if($wallCount >= 3){ + $tip = "
Name:{$username}
Tribe:{$tribeName}
Category:Wall Master
Walls level 20:{$wallCount}
"; + $profiel = str_replace("[#WALLMASTER]", "", $profiel); + } else { + $profiel = str_replace("[#WALLMASTER]", "", $profiel); + } + } // Added by Shadow - cata7007@gmail.com / Skype : cata7007 diff --git a/Templates/Profile/profile.tpl b/Templates/Profile/profile.tpl index e50dc3b5..98251560 100644 --- a/Templates/Profile/profile.tpl +++ b/Templates/Profile/profile.tpl @@ -291,6 +291,107 @@ if(($session->userinfo['username'] ?? '') == "Shadow"){ echo "Shadow [#EVENT]"; } + +// ========================= +// SPECIAL MEDALS +// ========================= +if(defined('NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM') && NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM){ + $uid = (int)$session->uid; + + // 1. Artefact - CORECTAT coloanele (4 td-uri) + $arte = $database->query("SELECT 1 FROM ".TB_PREFIX."artefacts WHERE owner = $uid LIMIT 1"); + if($arte && $arte->num_rows > 0){ + echo " + Artefact Holder + + + [#ARTEFACT] + "; + } + + // 2. WW - CORECTAT la f99 (la tine WW e in f99, nu f40) + $ww = $database->query("SELECT f.f99 FROM ".TB_PREFIX."vdata v + INNER JOIN ".TB_PREFIX."fdata f ON f.vref = v.wref + WHERE v.owner = $uid AND f.f99t = 40 AND f.f99 > 0 LIMIT 1"); + if($ww && $ww->num_rows > 0){ + echo " + WW Builder + + + [#WWBUILDER] + "; + + $lvl = (int)$ww->fetch_assoc()['f99']; + if($lvl >= 100){ + echo " + WW Winner + + + [#WINNERWW] + "; + } + } + + // 3. GREATSTORE - DOAR 38 si 39 nivel 20 + $hasGreatStore = false; + $qgs = $database->query("SELECT f.* FROM ".TB_PREFIX."fdata f + JOIN ".TB_PREFIX."vdata v ON v.wref=f.vref + WHERE v.owner=$uid"); + if($qgs){ + while($f = $qgs->fetch_assoc()){ + $hasWh = $hasGr = false; + for($i=1; $i<=99; $i++){ + if(!isset($f["f{$i}t"])) continue; + $type = (int)$f["f{$i}t"]; + $lvl = (int)$f["f{$i}"]; + if($type == 38 && $lvl == 20) $hasWh = true; // Great Warehouse + if($type == 39 && $lvl == 20) $hasGr = true; // Great Granary + } + if($hasWh && $hasGr){ $hasGreatStore = true; break; } + } + } + if($hasGreatStore){ + echo " + Great Store + + + [#GREATSTORE] + "; + } + + // 4. WALLMASTER - 5 sate cu zid 20 (31/32/33), fara f40/f99 + + $wallCount = 0; + $qw = $database->query("SELECT f.f40, f.f40t FROM ".TB_PREFIX."fdata f + JOIN ".TB_PREFIX."vdata v ON v.wref=f.vref + WHERE v.owner=$uid"); + if($qw){ + while($r = $qw->fetch_assoc()){ + if((int)$r['f40'] == 20 && in_array((int)$r['f40t'], [31,32,33])){ + $wallCount++; + } + } + } + if($wallCount >= 3){ + echo " + Wall Master + + + [#WALLMASTER] + "; + } + + // 5. HERO100 - erou nivel 99+ + $h100 = $database->query("SELECT 1 FROM ".TB_PREFIX."hero WHERE uid=$uid AND level>=99 LIMIT 1"); + if($h100 && $h100->num_rows){ + echo " + Hero 99+ + + + [#HERO100] + "; + } +} ?> diff --git a/gpack/travian_default/img/gloriamedals/artifact.png b/gpack/travian_default/img/gloriamedals/artifact.png new file mode 100644 index 0000000000000000000000000000000000000000..7259790ff6e9584879444fa96d4faca684f4ec95 GIT binary patch literal 7923 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 literal 0 HcmV?d00001 diff --git a/gpack/travian_default/img/gloriamedals/ww_winner.png b/gpack/travian_default/img/gloriamedals/ww_winner.png new file mode 100644 index 0000000000000000000000000000000000000000..ec474b3bc5d20f7207938cfbe0104f98f9cd68b1 GIT binary patch literal 14012 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 ie!a4}N0l?i@c#l7W{H2k20Fk10000



At least Multihunter & Support password are required in this form.


"; + echo '
At least Multihunter & Support password are required.
'; } - if(isset($_GET['err']) && $_GET['err'] == 2) { - echo "


Natars is a reserved username for an in-game NPC tribe. Please choose a different admin username.


"; + echo '
Natars is reserved. Choose different admin username.
'; } - ?> - +
+
+ Multihunter account +
+
+
+
+
+
+ Support account +
+
+
+
+
+
-

- Multihunter account - - - - -
Name:
Password:
Note: Rember this password! You need it for the Admin
-

- -

- Support account - - - - -
Name:
Password:
Note: Rember this password! You need it for the Admin
-

- -

- Admin account - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Admin name:
Admin email:
Admin password:
Admin tribe: - -
Show admin in stats: - -
Include Support Messages in Admin Mailbox: - -
Allow Administrative Accounts to be Raided and Attacked: - -
Note: this will add a first user and will set them up as an Admin
Note: you can leave this section empty, if you want
-

- -
-
- - - +
+ Admin account +
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+

Note: leave empty if you want to skip admin creation.

+
+ +
+
+ \ No newline at end of file diff --git a/install/templates/config.tpl b/install/templates/config.tpl index cb993566..33d0702e 100644 --- a/install/templates/config.tpl +++ b/install/templates/config.tpl @@ -3,14 +3,20 @@ ################################################################################# ## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## ## --------------------------------------------------------------------------- ## -## Project: TravianZ ## -## Filename config.php ## -## Developed by: Dzoki ## -## License: TravianZ Project ## -## Copyright: TravianZ (c) 2010-2026. All rights reserved. ## -## URLs: https://travianz.org ## -## https://github.com/Shadowss/TravianZ ## -## ## +## Filename : config.tpl ## +## Type : Install Panel Frontend & Backend ## +## --------------------------------------------------------------------------- ## +## Developed by : Dzoki (Original) ## +## Refactored by : Shadow ## +## Redesign by : Shadow ## +## --------------------------------------------------------------------------- ## +## Contact : cata7007@gmail.com ## +## Project : TravianZ ## +## GitHub : https://github.com/Shadowss/TravianZ ## +## --------------------------------------------------------------------------- ## +## License : TravianZ Project ## +## Copyright : TravianZ (c) 2010-2025. All rights reserved. ## +## --------------------------------------------------------------------------- ## ################################################################################# if(isset($_GET['c']) && $_GET['c'] == 1) { @@ -19,7 +25,7 @@ echo "
Error creating constant.php @session_start(); -$envPath = dirname(__DIR__, 2) . '/.env'; +$envPath = dirname(__DIR__, 2). '/.env'; $envDefaults = []; if(file_exists($envPath)) { $lines = @file($envPath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); @@ -54,777 +60,231 @@ if(file_exists($envPath)) { $ref = $m[1]; if(isset($envDefaults[$ref])) return $envDefaults[$ref]; $fromEnv = getenv($ref); - return ($fromEnv !== false) ? $fromEnv : ''; + return ($fromEnv!== false)? $fromEnv : ''; }, $value); } } } -$dbHost = $envDefaults['DB_HOST'] ?? 'localhost'; -$dbPort = $envDefaults['DB_PORT'] ?? '3306'; -$dbUser = $envDefaults['MARIADB_USER'] ?? ($envDefaults['MYSQL_USER'] ?? ''); -$dbPass = $envDefaults['MARIADB_PASSWORD'] ?? ($envDefaults['MYSQL_PASSWORD'] ?? ''); -$dbName = $envDefaults['MARIADB_DATABASE'] ?? ($envDefaults['MYSQL_DATABASE'] ?? ''); +$dbHost = $envDefaults['DB_HOST']?? 'localhost'; +$dbPort = $envDefaults['DB_PORT']?? '3306'; +$dbUser = $envDefaults['MARIADB_USER']?? ($envDefaults['MYSQL_USER']?? ''); +$dbPass = $envDefaults['MARIADB_PASSWORD']?? ($envDefaults['MYSQL_PASSWORD']?? ''); +$dbName = $envDefaults['MARIADB_DATABASE']?? ($envDefaults['MYSQL_DATABASE']?? ''); if(empty($_SESSION['install_random_prefix'])) { try { - $_SESSION['install_random_prefix'] = 's' . substr(bin2hex(random_bytes(2)), 0, 4) . '_'; + $_SESSION['install_random_prefix'] = 's'. substr(bin2hex(random_bytes(2)), 0, 4). '_'; } catch (Throwable $e) { - $_SESSION['install_random_prefix'] = 's' . str_pad((string) mt_rand(0, 9999), 4, '0', STR_PAD_LEFT) . '_'; + $_SESSION['install_random_prefix'] = 's'. str_pad((string) mt_rand(0, 9999), 4, '0', STR_PAD_LEFT). '_'; } } $dbPrefix = $_SESSION['install_random_prefix']; ?>
-

- SERVER RELATED - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Server name: - - -
- Server Timezone: - - -
- Server speed: - - -
- Troop speed: - - -
- Evasion speed: - - -
- Trader capacity (1 = 1x...): - - -
Cranny capacity:
Trapper capacity:
Natars Units Multiplier:
Natars Spawn (Days):
WW spawn (Days):
WW building plan spawn (Days):
World size: - -
Register Open: - -
Server:
Domain:
Homepage:
Language: - -
Beginners protection length: - -
Nature troops regeneration time: - -
Oasis wood production multiplier:
Oasis clay production multiplier:
Oasis iron production multiplier:
Oasis crop production multiplier:
Medal Interval: - -
Storage Multipler:
Tourn Threshold:
Great Workshop: - -
ww: - -
Show Natars in Statistics: - -
Peace system: - -
-

-

- NEW MECHANICS AND FUNCTIONS RELATED - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Display oasis in profile: - -
Alliance invitation message: - -
New Alliance & Embassy Mechanics: - -
New forum post message: - -
Tribes images in profile: - -
MHs images in profile: - -
Display artifact in profile: - -
Display wonder in profile: - -
Vacation Mode: - -
Catapult targets: - -
Manual on Nature and Natars: - -
Direct links placement: - -
Medal Veteran Player: - -
Medal Veteran Player 5a: - -
Medal Veteran Player 10a: - -
-

-

- SQL RELATED - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Hostname:
Port:
Username:
Password:
DB name:
Prefix:
Type: - -
-

- - -

- PLUS GOLD PACKAGES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Your PayPal E-Mail Address: -
(must be either Business or Premier account)
 
Payment Currency: -
(your PayPal account must be able to receive this currency)
 
Package "A" Amount of Gold:
Package "A" Price:
 
Package "B" Amount of Gold:
Package "B" Price:
 
Package "C" Amount of Gold:
Package "C" Price:
 
Package "D" Amount of Gold:
Package "D" Price:
 
Package "E" Amount of Gold:
Package "E" Price:
 
Plus account length: - -
+25% production length: - -
-

-

- NEWSBOX OPTIONS - - - - - - - - - - - -
Newsbox 1: - -
Newsbox 2: - -
Newsbox 3: - -
-

-

- LOG RELATED (You should disable them) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Log Building: - -
Log Tech: - -
Log Login: - -
Log Gold: - -
Log Admin: - -
Log War: - -
Log Market: - -
Log Illegal: - -
Log : - -
-

-

- EXTRA OPTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Quest: - -
Quest Type: - -
Activate: - -
Limit Mailbox: - - (NOT DONE) -
Max mails: (NOT DONE)
Demolish - lvl required: - -
Village Expand: - -
Error Reporting: - -
T4 is Coming screen: - -
-

-
- Server Start Settings - - - - - - - - - -
Start Date:
Start Time:
-
- - -
-
+
+
+ SQL RELATED +
+
+
+
+
+
+
+
+
+
+
+ SERVER URLS +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ NEW MECHANICS AND FUNCTIONS +
+ + 'Display oasis in profile', + 'new_functions_alliance_invitation' => 'Alliance invitation', + 'new_functions_embassy_mechanics' => 'Embassy mechanics', + 'new_functions_forum_post_message' => 'Forum post message', + 'new_functions_tribe_images' => 'Tribes images', + 'new_functions_mhs_images' => 'MHs images', + 'new_functions_display_artifact' => 'Display artifact', + 'new_functions_display_wonder' => 'Display wonder', + 'new_functions_vacation' => 'Vacation Mode', + 'new_functions_display_catapult_target'=> 'Catapult targets', + 'new_functions_manual_naturenatars' => 'Manual Nature/Natars', + 'new_functions_display_links' => 'Direct links', + 'new_functions_medal_3year' => 'Medal 3y', + 'new_functions_medal_5year' => 'Medal 5y', + 'new_functions_medal_10year' => 'Medal 10y', + 'new_functions_special_medals_system' => 'Special Medals System' +]; + +foreach($mechs as $k => $l){ + echo " +
+ + +
"; +} +?>
+
+ +
+ PLUS GOLD PACKAGES +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ NEWSBOX OPTIONS +
+
+
+
+
+
+
+ LOG RELATED (You should disable them) +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ EXTRA OPTIONS +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ \ No newline at end of file diff --git a/install/templates/dataform.tpl b/install/templates/dataform.tpl index 90bb29b5..3a4c6196 100644 --- a/install/templates/dataform.tpl +++ b/install/templates/dataform.tpl @@ -3,50 +3,37 @@ ################################################################################# ## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## ## --------------------------------------------------------------------------- ## -## Project: TravianZ ## -## Filename dataform.php ## -## Developed by: Dzoki ## -## License: TravianZ Project ## -## Copyright: TravianZ (c) 2010-2026. All rights reserved. ## -## URLs: https://travianz.org ## -## https://github.com/Shadowss/TravianZ ## -## ## +## Filename : dataform.tpl ## +## Type : Install Panel Frontend & Backend ## +## --------------------------------------------------------------------------- ## +## Developed by : Dzoki (Original) ## +## Refactored by : Shadow ## +## Redesign by : Shadow ## +## --------------------------------------------------------------------------- ## +## Contact : cata7007@gmail.com ## +## Project : TravianZ ## +## GitHub : https://github.com/Shadowss/TravianZ ## +## --------------------------------------------------------------------------- ## +## License : TravianZ Project ## +## Copyright : TravianZ (c) 2010-2025. All rights reserved. ## +## --------------------------------------------------------------------------- ## ################################################################################# include_once('../GameEngine/config.php'); - if(isset($_GET['c']) && $_GET['c'] == 1) { - echo "
Error importing database. Check configuration.

"; + echo '
Error importing database. Check configuration.
'; } - if(isset($_GET['err']) && $_GET['err'] == 1) { - echo "


Existing structure was found in the database! Please remove old game tables with the ".TB_PREFIX." prefix from the '".SQL_DB."' database before continuing.


"; + echo '
Existing structure found! Please remove tables with prefix '.TB_PREFIX.' from database '.SQL_DB.'.
'; } ?>
- - -

- Create Database Structure - - - - - - - - -
- Warning: This can take some time. Please wait until the next page has been loaded. Click Create to proceed... -
-
-
-
- -
-
-
-
-

-
-
+ +
+ Create Database Structure +

Warning: This can take some time. Please wait until the next page loads.

+
+ +
+
+ \ No newline at end of file diff --git a/install/templates/end.tpl b/install/templates/end.tpl index 1228d469..f7c3619e 100755 --- a/install/templates/end.tpl +++ b/install/templates/end.tpl @@ -1,57 +1,61 @@ - -

-Thanks for installing TravianZ. -

Please remove/rename the installation folder.

-All the files are placed. The database is created, so you can now start playing on your own Travian. -

- -
    -
  • After Installation

  • -
  • Delete install folder (sudo rm -R install)
  • -
  • CHMOD GameEngine back to 755 (sudo chmod -R 755 GameEngine)
  • -
  • CHMOD Prevention to 777 (sudo chmod -R 777 GameEngine/Prevention)
  • -
  • CHMOD Notes to 777 (sudo chmod -R 777 GameEngine/Notes)
  • -
  • CHMOD var/log to 777 (sudo chmod -R 777 var/log)
  • -
- -
    -
  • After Installation

  • -
  • Protect folder /Admin with password protect directory
  • -
- - -

-

> My TravianZ homepage <
-

-
-
-

Please support our developers and donate.

-
-
- - - - -
-
+include("../GameEngine/config.php"); $time=time(); @rename("../install/","../installed_".$time); @touch('../var/installed'); ?> +
+

🎉 Installation Complete!

+

Thanks for installing TravianZ. Please remove the install folder.

+
+ rm -R install
+ chmod -R 755 GameEngine
+ chmod -R 777 GameEngine/Prevention
+ chmod -R 777 GameEngine/Notes
+ chmod -R 777 var/log +
+
+ +
+

🚀 Next Steps

+
+
+ 🔒 Secure Your Server +

Protect /Admin with .htpasswd, enable HTTPS, and set cronjobs for automated tasks.

+
+
+ 📖 Read the Docs +

Learn about speed settings, Natars, and world configuration in the GitHub Wiki.

+
+
+ 💬 Join Community +

Get help, share mods, and report bugs on GitHub Discussions.

+
+
+ ⭐ Star on GitHub +

If you like TravianZ, star the repo to support the project.

+
+
+ +
\ No newline at end of file diff --git a/install/templates/greet.tpl b/install/templates/greet.tpl index 06a3283e..f2a3763a 100644 --- a/install/templates/greet.tpl +++ b/install/templates/greet.tpl @@ -1,51 +1,40 @@ - -
- -

  Disclaimer

- -
    -
  • Along with the installation/usage of this game, you shall be fully responsible for any legal results that may raised initiated by the owners of any unlicensed content you permit your copy of this game to publish.
  • - -
  • Neither the team that created this script nor the team that customised it to create this distribution/release shall be responsible for any damage done to your computer/server system.
  • - -
  • All code was confirmed to be running correctly by the creation team without any visible security risk they were aware of at the time the released it. Similarly for the customisation team who customised it to create this distribution/release.
  • - -
  • Users are asked to review the code on their own accord and behalf.
  • - -
  • Any customization to the source code are the property of each customisation's author, it is up to each author's discretion whether to share it by including it in free open source distributions such as this one.
  • - -
  • You have no rights to edit copyright notices or/and claim this script as your own.
  • - -
  • Last but not least, Enjoy.
  • -
- -
-
    -
  • Before Installation (Linux):

  • -
  • CHMOD install to 777 (chmod -R 777 install)
  • -
  • CHMOD GameEngine to 777 (chmod -R 777 GameEngine)
  • -
  • After Installation

  • -
  • Delete install folder (sudo rm -R install)
  • -
  • CHMOD GameEngine back to 755 (sudo chmod -R 755 GameEngine)
  • -
  • CHMOD Prevention to 777 (sudo chmod -R 777 GameEngine/Prevention)
  • -
  • CHMOD Notes to 777 (sudo chmod -R 777 GameEngine/Notes)
  • -
  • CHMOD var/log to 777 (sudo chmod -R 777 var/log)
  • -
- -
    -
  • After Installation

  • -
  • Protect folder /Admin with password protect directory
  • -
- -
- TravianZ Team -
-
- -
-
- -
-
- +
+

⚠️ Disclaimer

+
    +
  • Along with the installation/usage of this game, you shall be fully responsible for any legal results...
  • +
  • Neither the team that created this script nor the team that customised it shall be responsible for any damage...
  • +
  • All code was confirmed to be running correctly by the creation team...
  • +
  • Users are asked to review the code on their own accord.
  • +
  • Any customization to the source code are the property of each author's discretion.
  • +
  • You have no rights to edit copyright notices or/and claim this script as your own.
  • +
  • Last but not least, Enjoy.
  • +
+ +
+
+

🐧 Before Installation (Linux)

+
+ chmod -R 777 install
chmod -R 777 GameEngine +
+
+
+

✅ After Installation

+
+ rm -R install
+ chmod -R 755 GameEngine
+ chmod -R 777 GameEngine/Prevention
+ chmod -R 777 GameEngine/Notes
+ chmod -R 777 var/log +
+
+
+ +
+ 🔒 Protect /Admin with password protect directory (.htaccess). +
+ +
+ Next → +
TravianZ Team
+
\ No newline at end of file diff --git a/install/templates/menu.tpl b/install/templates/menu.tpl index 821f4f6e..e7816279 100644 --- a/install/templates/menu.tpl +++ b/install/templates/menu.tpl @@ -1,38 +1,30 @@ - \ No newline at end of file diff --git a/install/templates/script.tpl b/install/templates/script.tpl index 26c9141f..4dd5daeb 100644 --- a/install/templates/script.tpl +++ b/install/templates/script.tpl @@ -1,145 +1,113 @@ - + + bar_id = uniqid('progressbar'); - $this->label = $label; - - $this->max_ticks = $max_ticks; - $this->ticks = 0; - } - - public function tick() { - $this->ticks++; - $this->draw_progress(); - } - - public function draw() { - $this->draw_bar(); - $this->draw_progress(); - } - - static public function draw_css() { - echo ' - - '; - } - - protected function draw_bar() { - echo ' -
- -
- -
-
- '; - echo ' - - '; - - $this->flush(); - } - - protected function draw_progress() { - - $width = round($this->ticks / $this->max_ticks * 100, 2); - $label = sprintf($this->label, $this->ticks, $this->max_ticks); - - echo ' - - - '; - $this->flush(); - } - - protected function flush() { - while(ob_get_level() > 0) { - ob_end_flush(); - } - - flush(); - } + protected $bar_id; protected $max_ticks; protected $ticks; protected $label; + public function __construct($max_ticks, $label = 'Step %d from %d') { + $this->bar_id = uniqid('pb'); $this->label = $label; + $this->max_ticks = $max_ticks; $this->ticks = 0; + } + public function tick(){ $this->ticks++; $this->draw_progress(); } + public function draw(){ $this->draw_bar(); $this->draw_progress(); } + static public function draw_css(){ + echo ''; + } + protected function draw_bar(){ + echo '
'; + echo ''; + $this->flush(); + } + protected function draw_progress(){ + $w = round($this->ticks/$this->max_ticks*100,2); + $t = sprintf($this->label,$this->ticks,$this->max_ticks); + echo ''; $this->flush(); + } + protected function flush(){ while(ob_get_level()>0){ob_end_flush();} flush(); } } ?> \ No newline at end of file diff --git a/install/templates/wdata.tpl b/install/templates/wdata.tpl index cd8c3754..4a3f21a2 100644 --- a/install/templates/wdata.tpl +++ b/install/templates/wdata.tpl @@ -1,202 +1,61 @@ - - -

Error creating wdata. Check configuration or file.


'; + echo '
Error creating wdata. Check configuration or file.
'; } if (isset($_GET['err']) && $_GET['err'] == '1') { - echo '


Existing World Data found in the database! Please empty tables ' - . TB_PREFIX . 'odata, ' . TB_PREFIX . 'units, ' . TB_PREFIX . 'vdata, ' . TB_PREFIX . 'wdata before continuing.


'; + echo '
Existing World Data found! Empty tables '.TB_PREFIX.'odata, '.TB_PREFIX.'units, '.TB_PREFIX.'vdata, '.TB_PREFIX.'wdata.
'; } - $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] === '1'; ?> -
- - -

- Create World Data - - - - - -
- Warning: This can take some time. Please wait until the next page has been loaded. - Click Create to proceed... -

- - -
-
- -

-
-
- - -
-
Building croppers…
- -
- -
-
- -
Starting…
- -

-
-                        
-						
-                    
+ +
+ Create World Data +

Warning: This can take some time. Please wait until the next page has been loaded.

+ +
+ +
+
+
Building croppers…
+
+
+
+
Starting…
+

+      
+    
+
+ + + - - -
-

- - + \ No newline at end of file