From 6da9cd9c53c43f22d23eb037a90f9a03ff95c141 Mon Sep 17 00:00:00 2001 From: novgorodschi catalin Date: Fri, 14 Aug 2026 11:05:27 +0300 Subject: [PATCH] Restore constant_format.tpl Restore constant_format.tpl --- install/data/constant_format.tpl | 279 ++++++++++++++++++++++++++++++- 1 file changed, 275 insertions(+), 4 deletions(-) diff --git a/install/data/constant_format.tpl b/install/data/constant_format.tpl index e61bfb75..75430e2d 100644 --- a/install/data/constant_format.tpl +++ b/install/data/constant_format.tpl @@ -117,47 +117,144 @@ define("START_DATE", "%SSTARTDATE%"); define("START_TIME", "%SSTARTTIME%"); // ***** Language +// SERVER_LANG is the DEFAULT language of the server (chosen at install / in +// the admin "Server Settings"). LANG is the EFFECTIVE display language. +// +// Per-user language (issue #166): if the logged-in player picked a language +// in their profile preferences (stored in users.lang and mirrored into +// $_SESSION['lang']), LANG becomes that language; otherwise LANG falls back +// to SERVER_LANG. +// +// SECURITY: LANG is used in include("Lang/".LANG.".php"), so the value is +// strictly sanitized to [a-z_] (no path traversal) and the target file MUST +// exist, otherwise we fall back to the server default. This prevents Local +// File Inclusion via a crafted session value. define("SERVER_LANG", "%LANG%"); if (session_status() !== PHP_SESSION_ACTIVE) { @session_start(); } $__user_lang = isset($_SESSION['lang']) ? preg_replace('/[^a-z_]/', '', strtolower((string) $_SESSION['lang'])) : ''; define("LANG", ($__user_lang !== '' && is_file(__DIR__ . "/Lang/" . $__user_lang . ".php")) ? $__user_lang : SERVER_LANG); // ***** Speed +// Choose your server speed. NOTICE: Higher speed, more likely +// to have some bugs. Lower speed, most likely no major bugs. +// Values: 1 (normal), 3 (3x speed) etc... define("SPEED", "%SPEED%"); // ***** World size +// Defines world size. NOTICE: DO NOT EDIT!! define("WORLD_MAX", "%MAX%"); +// ***** Graphical statistics (Travian Plus) +// The game periodically records each player's rank, population, villages, and +// army from the moment this feature is enabled. These snapshots are then used +// to generate the account progression graphs. +// +// Data is collected for ALL players, but the Statistics tab is visible ONLY to +// users with an active Plus account. Otherwise, players who purchase Plus would +// open the page and see an empty graph immediately after paying. define("NEW_FUNCTIONS_PLUS_STATISTICS", %PLUSSTATS%); + +// Number of hours between snapshots. On a fast server, a single day represents +// a significant amount of gameplay, so taking a snapshot every 6 hours provides +// a smooth graph without filling the database table too quickly. define("PLUS_STATS_INTERVAL_HOURS", %PLUSSTATSHOURS%); + +// Number of days to retain historical data. Set to 0 to keep all snapshots, +// allowing the complete account progression to be displayed. Even over the +// lifetime of an entire server, this only amounts to a few tens of thousands of records. define("PLUS_STATS_KEEP_DAYS", %PLUSSTATSKEEP%); +// ***** Registration rules +// Validation rules applied during registration (see Account.php). +// +// USRNM_SPECIAL: when set to true, usernames may contain dots, hyphens, +// underscores, and single spaces between words. When set to false, +// only letters and numbers are allowed. define("USRNM_SPECIAL", %USRNMSPECIAL%); define("USRNM_MIN_LENGTH", %USRNMMIN%); define("USRNM_MAX_LENGTH", %USRNMMAX%); define("PW_MIN_LENGTH", %PWMIN%); +// ***** Activation Mail +// true = activation mail will be sent, users will have to finish registration +// by clicking on link recieved in mail. +// false = users can register with any mail. Not needed to be real one. define("AUTH_EMAIL",%ACTIVATE%); + +// ***** Troop Speed +// Values: 1 (normal), 3 (3x speed) etc... define("INCREASE_SPEED","%INCSPEED%"); + +// ***** Evasion Speed define("EVASION_SPEED","%EVASIONSPEED%"); + +// ***** Trader capacity +// Values: 1 (normal), 3 (3x speed) etc... define("TRADER_CAPACITY","%TRADERCAP%"); + +// ***** Cranny capacity define("CRANNY_CAPACITY","%CRANNYCAP%"); + +// ***** Trapper capacity define("TRAPPER_CAPACITY","%TRAPPERCAP%"); + +// ***** Village Expand +// 1 = slow village expanding - more Cultural Points needed for every new village +// 0 = fast village expanding - less Cultural Points needed for every new village define("CP", %VILLAGE_EXPAND%); + +// ***** Demolish Level Required +// Defines which level of Main building is required to be able to +// demolish. Min value = 1, max value = 20 +// Default: 10 define("DEMOLISH_LEVEL_REQ","%DEMOLISH%"); + +// ***** Change storage capacity define("STORAGE_MULTIPLIER","%STORAGE_MULTIPLIER%"); define("STORAGE_BASE",800*STORAGE_MULTIPLIER); + +// ***** Quest +// Ingame quest enabled/disabled. define("QUEST",%QUEST%); +//quest type : 25 = Travian Official +// 37 = TravianZ Extended define("QTYPE",%QTYPE%); + +// ***** Beginners Protection +// 3600 = 1 hour +// 3600*12 = 12 hours +// 3600*24 = 1 day +// 3600*24*3 = 3 days +// You can choose any value you want! define("PROTECTION","%BEGINNER%"); + +// ***** Enable WW Statistics define("WW",%WW%); + +// ***** Show Natars in Statistics define("SHOW_NATARS",%SHOW_NATARS%); + +// ***** Natars Units Multiplier define("NATARS_UNITS",%NATARS_UNITS%); + +// ***** Natars Spawn Time define("NATARS_SPAWN_TIME",%NATARS_SPAWN_TIME%); define("NATARS_WW_SPAWN_TIME",%NATARS_WW_SPAWN_TIME%); define("NATARS_WW_BUILDING_PLAN_SPAWN_TIME",%NATARS_WW_BUILDING_PLAN_SPAWN_TIME%); + +// ***** Natars' World Wonder +// Number of DAYS after the Building Plans appear before the Natars begin +// constructing their own World Wonder. In Travian, the server ends when +// the World Wonder reaches level 100. At level 75, the Natars recall all +// of their troops to defend it. +// +// 0 = The Natars do not build a World Wonder. define("NATARS_WW_START_DELAY", %NATARS_WW_START_DELAY%); + +// ***** Nature troops regeneration time define("NATURE_REGTIME",%NATURE_REGTIME%); + +// ***** Oasis production define("OASIS_WOOD_MULTIPLIER",%OASIS_WOOD_MULTIPLIER%); define("OASIS_CLAY_MULTIPLIER",%OASIS_CLAY_MULTIPLIER%); define("OASIS_IRON_MULTIPLIER",%OASIS_IRON_MULTIPLIER%); @@ -166,79 +263,235 @@ define("OASIS_WOOD_PRODUCTION",OASIS_WOOD_MULTIPLIER*SPEED); define("OASIS_CLAY_PRODUCTION",OASIS_CLAY_MULTIPLIER*SPEED); define("OASIS_IRON_PRODUCTION",OASIS_IRON_MULTIPLIER*SPEED); define("OASIS_CROP_PRODUCTION",OASIS_CROP_MULTIPLIER*SPEED); + +// ***** Medal Interval check define("MEDALINTERVAL",%MEDALINTERVAL%); +// ***** Great Workshop define("GREAT_WKS",%GREAT_WKS%); +// ***** Tourn threshold define("TS_THRESHOLD",%TS_THRESHOLD%); + +// ***** Register open/close define("REG_OPEN",%REG_OPEN%); + +// ***** Peace system +// 0 = None +// 1 = Normal +// 2 = Christmas +// 3 = New Year +// 4 = Easter define("PEACE",%PEACE%); + +// ***** Players protected from attacks +// Comma-separated list of names. Players listed here cannot be attacked or +// raided by anyone; reinforcements are still allowed. Leave empty to disable. +// Example: define("PROTECTED_PLAYERS", "Shadow,Multihunter"); define("PROTECTED_PLAYERS", "%PROTECTEDPLAYERS%"); +////////////////////////////////// +// ***** Alliance Bonuses *****// +////////////////////////////////// + +// Members donate resources, allowing the alliance to unlock four bonuses, each +// with five levels. The costs, durations, and limits below are based on +// Travian T4; upgrade times and donation limits are scaled by the server speed. define("NEW_FUNCTIONS_ALLIANCE_BONUSES", %ALLIANCEBONUSES%); + +// Total resources required for each level (cumulative for that level). define("ALLIANCE_BONUS_COSTS", "1200000,5600000,17100000,51200000,153600000"); + +// Upgrade duration in HOURS for each level (divided by the server speed). define("ALLIANCE_BONUS_HOURS", "24,48,72,96,120"); + +// Daily donation limit per player, based on the highest bonus level unlocked +// by the alliance (index 0 = no bonuses unlocked). define("ALLIANCE_BONUS_DAILY", "300000,300000,400000,550000,750000,1000000"); + +// Percentage granted by each level. Two sets: "small" bonuses (2% per level: +// Recruitment, Philosophy) and "large" bonuses (4% per level: Metallurgy, +// Commerce), exactly as in T4. define("ALLIANCE_BONUS_PCT_SMALL", 2); define("ALLIANCE_BONUS_PCT_LARGE", 4); + +// Gold cost to triple a donation. define("ALLIANCE_BONUS_TRIPLE_GOLD", 3); + +////////////////////////////////// +// ***** Graphic Pack *****// +////////////////////////////////// +// +// SERVER_GP is the pack every player sees by default (chosen at install or in +// Admin -> Server Configuration). GP_ENABLE decides whether players may pick a +// different pack for themselves in Profile -> Graphic Pack. +// +// GP_LOCATE is the pack ACTUALLY used for the current request. It follows the +// same pattern as LANG above: the player's own choice wins when it is enabled +// and points at a real pack on disk, otherwise the server pack is used. A pack +// counts as real when the folder exists and contains travian.css, so a stale +// value in the database can never leave the game without stylesheets. define("GP_ENABLE",%GP%); define("SERVER_GP", "%GP_LOCATE%"); + $__user_gp = ''; + if (GP_ENABLE && isset($_SESSION['gpack']) && is_string($_SESSION['gpack'])) { $__candidate = trim((string) $_SESSION['gpack']); + + // only local packs: "gpack//" with no traversal and no remote URL if (preg_match('#^gpack/[A-Za-z0-9_\-]+/$#', $__candidate) && is_file(__DIR__ . "/../" . $__candidate . "travian.css")) { $__user_gp = $__candidate; } } + define("GP_LOCATE", $__user_gp !== '' ? $__user_gp : SERVER_GP); + +// ***** Tribe-specific World Wonder style +// When set to true, each tribe sees its own World Wonder, both on the village +// map and on the building page. Tribes without dedicated images on disk will +// continue to use the original image, regardless of this setting. define("NEW_FUNCTION_WW_IMAGE", %WWIMAGE%); + +// ***** Enable T4 is Coming screen define("T4_COMING",%T4_COMING%); +////////////////////////////////// +// ***** PLUS *****// +////////////////////////////////// + +//Plus PayPal e-mail address define("PAYPAL_EMAIL","%PAYPAL_EMAIL%"); +//Plus PayPal currency define("PAYPAL_CURRENCY","%PAYPAL_CURRENCY%"); +//Plus Package A Price define("PLUS_PACKAGE_A_PRICE","%PLUS_PACKAGE_A_PRICE%"); +//Plus Package A Gold define("PLUS_PACKAGE_A_GOLD","%PLUS_PACKAGE_A_GOLD%"); +//Plus Package B Price define("PLUS_PACKAGE_B_PRICE","%PLUS_PACKAGE_B_PRICE%"); +//Plus Package B Gold define("PLUS_PACKAGE_B_GOLD","%PLUS_PACKAGE_B_GOLD%"); +//Plus Package C Price define("PLUS_PACKAGE_C_PRICE","%PLUS_PACKAGE_C_PRICE%"); +//Plus Package C Gold define("PLUS_PACKAGE_C_GOLD","%PLUS_PACKAGE_C_GOLD%"); +//Plus Package D Gold define("PLUS_PACKAGE_D_GOLD","%PLUS_PACKAGE_D_GOLD%"); +//Plus Package D Price define("PLUS_PACKAGE_D_PRICE","%PLUS_PACKAGE_D_PRICE%"); +//Plus Package E Price define("PLUS_PACKAGE_E_PRICE","%PLUS_PACKAGE_E_PRICE%"); +//Plus Package E Gold define("PLUS_PACKAGE_E_GOLD","%PLUS_PACKAGE_E_GOLD%"); +//Plus account lenght define("PLUS_TIME",%PLUS_TIME%); +//+25% production lenght define("PLUS_PRODUCTION",%PLUS_PRODUCTION%); +////////////////////////////////// +// **** LOG SETTINGS **** // +////////////////////////////////// +// +// LOG BUILDING/UPGRADING define("LOG_BUILD",%LOGBUILD%); +// LOG RESEARCHES define("LOG_TECH",%LOGTECH%); +// LOG USER LOGIN (IP's) define("LOG_LOGIN",%LOGLOGIN%); +// LOG GOLD define("LOG_GOLD_FIN",%LOGGOLDFIN%); +// LOG ADMIN define("LOG_ADMIN",%LOGADMIN%); +// LOG ATTACK REPORTS define("LOG_WAR",%LOGWAR%); +// LOG MARKET REPORTS define("LOG_MARKET",%LOGMARKET%); +// LOG ILLEGAL ACTIONS define("LOG_ILLEGAL",%LOGILLEGAL%); + +////////////////////////////////// +// **** NEWSBOX SETTINGS **** // +////////////////////////////////// +//true = enabled +//false = disabled define("NEWSBOX1",%BOX1%); define("NEWSBOX2",%BOX2%); define("NEWSBOX3",%BOX3%); +////////////////////////////////// +// **** SQL SETTINGS **** // +////////////////////////////////// + +// ***** SQL Hostname +// example: sql106.000space.com / localhost +// If you host server on own PC than this value is: localhost +// If you use online hosting, value must be written in host cpanel define("SQL_SERVER", "%SSERVER%"); + +// ***** SQL Port +// default: 3306 define("SQL_PORT", %SPORT%); + +// ***** Database Username define("SQL_USER", "%SUSER%"); + +// ***** Database Password define("SQL_PASS", "%SPASS%"); + +// ***** Database Name define("SQL_DB", "%SDB%"); + +// ***** Database - Table Prefix define("TB_PREFIX", "%PREFIX%"); + +// ***** Database type +// 0 = MYSQL +// 1 = MYSQLi +// default: 1 define("DB_TYPE", %CONNECTT%); +//////////////////////////////////// +// **** EXTRA SETTINGS **** // +//////////////////////////////////// + +// ***** Censore words +//define("WORD_CENSOR", "%ACTCEN%"); + +// ***** Words (censore) +// Choose which words do you want to be censored +//define("CENSORED","%CENWORDS%"); + + +// ***** Limit Mailbox +// Limits mailbox to defined number of mails. (IGM's) define("LIMIT_MAILBOX",%LIMIT_MAILBOX%); +// If enabled, define number of maximum mails. define("MAX_MAIL","%MAX_MAILS%"); + +// ***** Include administrator in statistics/rank define("INCLUDE_ADMIN", %ARANK%); +//////////////////////////////////// +// **** ADMIN SETTINGS **** // +//////////////////////////////////// + +// ***** Admin Email define("ADMIN_EMAIL", "%AEMAIL%"); + +// ***** Admin Name define("ADMIN_NAME", "%ANAME%"); + +// ***** Show Support Messages in Admin define("ADMIN_RECEIVE_SUPPORT_MESSAGES", %ASUPPMSGS%); + +// ***** Allow Admin accounts to be raided and attacked define("ADMIN_ALLOW_INCOMING_RAIDS", %ARAIDS%); +///////////////////////////////////////////////// +// **** NEW MECHANICS AND FUNCTIONS **** // +///////////////////////////////////////////////// + define("NEW_FUNCTIONS_OASIS", %NEW_FUNCTIONS_OASIS%); define("NEW_FUNCTIONS_ALLIANCE_INVITATION", %NEW_FUNCTIONS_ALLIANCE_INVITATION%); define("NEW_FUNCTIONS_EMBASSY_MECHANICS", %NEW_FUNCTIONS_EMBASSY_MECHANICS%); @@ -265,8 +518,12 @@ define("NEW_FUNCTION_TRIBE_VIKINGS", %NEW_FUNCTION_TRIBE_VIKINGS%); define("NEW_FUNCTION_REGISTRATION_GOLD", %NEW_FUNCTION_REGISTRATION_GOLD%); define("NEW_FUNCTION_REGISTRATION_GOLD_VALUE", %NEW_FUNCTION_REGISTRATION_GOLD_VALUE%); -define("AUTO_DEL_INACTIVE",false); -define("UN_ACT_TIME", 3628800); +////////////////////////////////////////// +// **** DO NOT EDIT SETTINGS **** // +////////////////////////////////////////// + +define("AUTO_DEL_INACTIVE",false); // auto-delete inactive players; default = false +define("UN_ACT_TIME", 3628800); // 6 weeks to consider a player inactive define("ALLOW_BURST",false); define("BASIC_MAX",1); define("INNER_MAX",1); @@ -275,8 +532,18 @@ define("ALLOW_ALL_TRIBE",false); define("CFM_ADMIN_ACT",true); define("SERVER_WEB_ROOT",false); +//////////////////////////// +// **** IP BAN **** // +//////////////////////////// + +// Master switch for IP-ban enforcement. define("BAN_IP_ENABLED",true); +// Comma-separated list of trusted proxy IPs/CIDRs allowed to set the forwarded +// header. Leave EMPTY for direct access (REMOTE_ADDR only - non-spoofable). +// Reverse proxy example: "127.0.0.1,::1" | set to your proxy/Cloudflare ranges. define("IP_TRUSTED_PROXIES",""); +// $_SERVER key read for the real client IP when behind a trusted proxy. +// Cloudflare: use "HTTP_CF_CONNECTING_IP". define("IP_FORWARDED_HEADER","HTTP_X_FORWARDED_FOR"); define("BANNED",0); define("AUTH",1); @@ -288,8 +555,12 @@ define("COOKIE_PATH", "/"); define("LOG_PAGE_ACCESS", false); define("PAGE_ACCESS_LOG_DATE", true); define("PAGE_ACCESS_LOG_IP", true); -define("PAGE_ACCESS_LOG_FILENAME", 'access.log'); +define("PAGE_ACCESS_LOG_FILENAME", 'access.log'); // filename ONLY, no path! + +//////////////////////////////////////////// +// **** DOMAIN/SERVER SETTINGS **** // +//////////////////////////////////////////// define("DOMAIN", "%DOMAIN%"); define("HOMEPAGE", "%HOMEPAGE%"); define("SERVER", "%SERVER%"); @@ -311,4 +582,4 @@ $requse = 0; ## https://github.com/Shadowss/TravianZ ## ################################################################################# -?> +?> \ No newline at end of file