mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-29 14:47:14 +00:00
Restore original config template after multi-instance draft
This commit is contained in:
+165
-102
@@ -14,37 +14,6 @@
|
|||||||
## https://github.com/Shadowss/TravianZ ##
|
## https://github.com/Shadowss/TravianZ ##
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
// Multi-instance bootstrap
|
|
||||||
// -----------------------------------------------------------------------------
|
|
||||||
// config.php is generated from this template. The bootstrap resolves the
|
|
||||||
// current world before any server constants are defined.
|
|
||||||
//
|
|
||||||
// For a normal/default installation, execution continues in this file exactly
|
|
||||||
// as before. For s1/s2/etc., an instance-local config is loaded instead. The
|
|
||||||
// guard prevents that instance config from recursively loading itself.
|
|
||||||
require_once __DIR__ . '/../GameEngine/Instance/Bootstrap.php';
|
|
||||||
|
|
||||||
if (defined('TRAVIANZ_INSTANCE_ID')
|
|
||||||
&& TRAVIANZ_INSTANCE_ID !== 'default'
|
|
||||||
&& !defined('TRAVIANZ_LOADING_INSTANCE_CONFIG')) {
|
|
||||||
|
|
||||||
$instanceConfigPath = dirname(__DIR__) . '/instances/'
|
|
||||||
. TRAVIANZ_INSTANCE_ID . '/config.php';
|
|
||||||
|
|
||||||
if (is_file($instanceConfigPath)) {
|
|
||||||
define('TRAVIANZ_LOADING_INSTANCE_CONFIG', true);
|
|
||||||
require $instanceConfigPath;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do not silently fall back to the default world. A request reaching an
|
|
||||||
// instance hostname without its configuration must fail safely rather than
|
|
||||||
// allowing s2.example.com to operate on the default database/settings.
|
|
||||||
http_response_code(503);
|
|
||||||
die('TravianZ instance configuration is missing for ' . htmlspecialchars(TRAVIANZ_INSTANCE_ID, ENT_QUOTES, 'UTF-8'));
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
// ***** ERROR REPORTING *****//
|
// ***** ERROR REPORTING *****//
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
@@ -148,104 +117,198 @@ define("START_DATE", "%SSTARTDATE%");
|
|||||||
define("START_TIME", "%SSTARTTIME%");
|
define("START_TIME", "%SSTARTTIME%");
|
||||||
|
|
||||||
// ***** Language
|
// ***** 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%");
|
define("SERVER_LANG", "%LANG%");
|
||||||
if (session_status() !== PHP_SESSION_ACTIVE) { @session_start(); }
|
if (session_status() !== PHP_SESSION_ACTIVE) { @session_start(); }
|
||||||
$__user_lang = isset($_SESSION['lang']) ? preg_replace('/[^a-z_]/', '', strtolower((string) $_SESSION['lang'])) : '';
|
$__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);
|
define("LANG", ($__user_lang !== '' && is_file(__DIR__ . "/Lang/" . $__user_lang . ".php")) ? $__user_lang : SERVER_LANG);
|
||||||
|
|
||||||
// ***** Speed
|
// ***** 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%");
|
define("SPEED", "%SPEED%");
|
||||||
|
|
||||||
// ***** World size
|
// ***** World size
|
||||||
// Defines world size. NOTICE: DO NOT EDIT!!
|
|
||||||
define("WORLD_MAX", "%MAX%");
|
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%);
|
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%);
|
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%);
|
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_SPECIAL", %USRNMSPECIAL%);
|
||||||
define("USRNM_MIN_LENGTH", %USRNMMIN%);
|
define("USRNM_MIN_LENGTH", %USRNMMIN%);
|
||||||
define("USRNM_MAX_LENGTH", %USR NMMAX%);
|
define("USRNM_MAX_LENGTH", %USRNMMAX%);
|
||||||
define("PW_MIN_LENGTH", %PWMIN%);
|
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%);
|
define("AUTH_EMAIL",%ACTIVATE%);
|
||||||
|
|
||||||
// ***** Troop Speed
|
|
||||||
// Values: 1 (normal), 3 (3x speed) etc...
|
|
||||||
define("INCREASE_SPEED","%INCSPEED%");
|
define("INCREASE_SPEED","%INCSPEED%");
|
||||||
|
|
||||||
// ***** Evasion Speed
|
|
||||||
define("EVASION_SPEED","%EVASIONSPEED%");
|
define("EVASION_SPEED","%EVASIONSPEED%");
|
||||||
|
|
||||||
// ***** Trader capacity
|
|
||||||
// Values: 1 (normal), 3 (3x speed) etc...
|
|
||||||
define("TRADER_CAPACITY","%TRADERCAP%");
|
define("TRADER_CAPACITY","%TRADERCAP%");
|
||||||
|
|
||||||
// ***** Cranny capacity
|
|
||||||
define("CRANNY_CAPACITY","%CRANNYCAP%");
|
define("CRANNY_CAPACITY","%CRANNYCAP%");
|
||||||
|
|
||||||
// ***** Trapper capacity
|
|
||||||
define("TRAPPER_CAPACITY","%TRAPPERCAP%");
|
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%);
|
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%");
|
define("DEMOLISH_LEVEL_REQ","%DEMOLISH%");
|
||||||
|
|
||||||
// ***** Change storage capacity
|
|
||||||
define("STORAGE_MULTIPLIER","%STORAGE_MULTIPLIER%");
|
define("STORAGE_MULTIPLIER","%STORAGE_MULTIPLIER%");
|
||||||
define("STORAGE_BASE",800*STORAGE_MULTIPLIER);
|
define("STORAGE_BASE",800*STORAGE_MULTIPLIER);
|
||||||
|
|
||||||
// ***** Quest
|
|
||||||
// Ingame quest enabled/disabled.
|
|
||||||
define("QUEST",%QUEST%);
|
define("QUEST",%QUEST%);
|
||||||
//quest type : 25 = Travian Official
|
define("QTYPE",%QTYPE%);
|
||||||
// 37 = TravianZ Extended
|
define("PROTECTION","%BEGINNER%");
|
||||||
|
define("WW",%WW%);
|
||||||
|
define("SHOW_NATARS",%SHOW_NATARS%);
|
||||||
|
define("NATARS_UNITS",%NATARS_UNITS%);
|
||||||
|
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%);
|
||||||
|
define("NATARS_WW_START_DELAY", %NATARS_WW_START_DELAY%);
|
||||||
|
define("NATURE_REGTIME",%NATURE_REGTIME%);
|
||||||
|
define("OASIS_WOOD_MULTIPLIER",%OASIS_WOOD_MULTIPLIER%);
|
||||||
|
define("OASIS_CLAY_MULTIPLIER",%OASIS_CLAY_MULTIPLIER%);
|
||||||
|
define("OASIS_IRON_MULTIPLIER",%OASIS_IRON_MULTIPLIER%);
|
||||||
|
define("OASIS_CROP_MULTIPLIER",%OASIS_CROP_MULTIPLIER%);
|
||||||
|
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);
|
||||||
|
define("MEDALINTERVAL",%MEDALINTERVAL%);
|
||||||
|
define("GREAT_WKS",%GREAT_WKS%);
|
||||||
|
define("TS_THRESHOLD",%TS_THRESHOLD%);
|
||||||
|
define("REG_OPEN",%REG_OPEN%);
|
||||||
|
define("PEACE",%PEACE%);
|
||||||
|
define("PROTECTED_PLAYERS", "%PROTECTEDPLAYERS%");
|
||||||
|
|
||||||
|
define("NEW_FUNCTIONS_ALLIANCE_BONUSES", %ALLIANCEBONUSES%);
|
||||||
|
define("ALLIANCE_BONUS_COSTS", "1200000,5600000,17100000,51200000,153600000");
|
||||||
|
define("ALLIANCE_BONUS_HOURS", "24,48,72,96,120");
|
||||||
|
define("ALLIANCE_BONUS_DAILY", "300000,300000,400000,550000,750000,1000000");
|
||||||
|
define("ALLIANCE_BONUS_PCT_SMALL", 2);
|
||||||
|
define("ALLIANCE_BONUS_PCT_LARGE", 4);
|
||||||
|
define("ALLIANCE_BONUS_TRIPLE_GOLD", 3);
|
||||||
|
|
||||||
|
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']);
|
||||||
|
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);
|
||||||
|
define("NEW_FUNCTION_WW_IMAGE", %WWIMAGE%);
|
||||||
|
define("T4_COMING",%T4_COMING%);
|
||||||
|
|
||||||
|
define("PAYPAL_EMAIL","%PAYPAL_EMAIL%");
|
||||||
|
define("PAYPAL_CURRENCY","%PAYPAL_CURRENCY%");
|
||||||
|
define("PLUS_PACKAGE_A_PRICE","%PLUS_PACKAGE_A_PRICE%");
|
||||||
|
define("PLUS_PACKAGE_A_GOLD","%PLUS_PACKAGE_A_GOLD%");
|
||||||
|
define("PLUS_PACKAGE_B_PRICE","%PLUS_PACKAGE_B_PRICE%");
|
||||||
|
define("PLUS_PACKAGE_B_GOLD","%PLUS_PACKAGE_B_GOLD%");
|
||||||
|
define("PLUS_PACKAGE_C_PRICE","%PLUS_PACKAGE_C_PRICE%");
|
||||||
|
define("PLUS_PACKAGE_C_GOLD","%PLUS_PACKAGE_C_GOLD%");
|
||||||
|
define("PLUS_PACKAGE_D_GOLD","%PLUS_PACKAGE_D_GOLD%");
|
||||||
|
define("PLUS_PACKAGE_D_PRICE","%PLUS_PACKAGE_D_PRICE%");
|
||||||
|
define("PLUS_PACKAGE_E_PRICE","%PLUS_PACKAGE_E_PRICE%");
|
||||||
|
define("PLUS_PACKAGE_E_GOLD","%PLUS_PACKAGE_E_GOLD%");
|
||||||
|
define("PLUS_TIME",%PLUS_TIME%);
|
||||||
|
define("PLUS_PRODUCTION",%PLUS_PRODUCTION%);
|
||||||
|
|
||||||
|
define("LOG_BUILD",%LOGBUILD%);
|
||||||
|
define("LOG_TECH",%LOGTECH%);
|
||||||
|
define("LOG_LOGIN",%LOGLOGIN%);
|
||||||
|
define("LOG_GOLD_FIN",%LOGGOLDFIN%);
|
||||||
|
define("LOG_ADMIN",%LOGADMIN%);
|
||||||
|
define("LOG_WAR",%LOGWAR%);
|
||||||
|
define("LOG_MARKET",%LOGMARKET%);
|
||||||
|
define("LOG_ILLEGAL",%LOGILLEGAL%);
|
||||||
|
define("NEWSBOX1",%BOX1%);
|
||||||
|
define("NEWSBOX2",%BOX2%);
|
||||||
|
define("NEWSBOX3",%BOX3%);
|
||||||
|
|
||||||
|
define("SQL_SERVER", "%SSERVER%");
|
||||||
|
define("SQL_PORT", %SPORT%);
|
||||||
|
define("SQL_USER", "%SUSER%");
|
||||||
|
define("SQL_PASS", "%SPASS%");
|
||||||
|
define("SQL_DB", "%SDB%");
|
||||||
|
define("TB_PREFIX", "%PREFIX%");
|
||||||
|
define("DB_TYPE", %CONNECTT%);
|
||||||
|
|
||||||
|
define("LIMIT_MAILBOX",%LIMIT_MAILBOX%);
|
||||||
|
define("MAX_MAIL","%MAX_MAILS%");
|
||||||
|
define("INCLUDE_ADMIN", %ARANK%);
|
||||||
|
|
||||||
|
define("ADMIN_EMAIL", "%AEMAIL%");
|
||||||
|
define("ADMIN_NAME", "%ANAME%");
|
||||||
|
define("ADMIN_RECEIVE_SUPPORT_MESSAGES", %ASUPPMSGS%);
|
||||||
|
define("ADMIN_ALLOW_INCOMING_RAIDS", %ARAIDS%);
|
||||||
|
|
||||||
|
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%);
|
||||||
|
define("NEW_FUNCTIONS_FORUM_POST_MESSAGE", %NEW_FUNCTIONS_FORUM_POST_MESSAGE%);
|
||||||
|
define("NEW_FUNCTIONS_TRIBE_IMAGES", %NEW_FUNCTIONS_TRIBE_IMAGES%);
|
||||||
|
define("NEW_FUNCTIONS_MHS_IMAGES", %NEW_FUNCTIONS_MHS_IMAGES%);
|
||||||
|
define("NEW_FUNCTIONS_DISPLAY_ARTIFACT", %NEW_FUNCTIONS_DISPLAY_ARTIFACT%);
|
||||||
|
define("NEW_FUNCTIONS_DISPLAY_WONDER", %NEW_FUNCTIONS_DISPLAY_WONDER%);
|
||||||
|
define("NEW_FUNCTIONS_VACATION", %NEW_FUNCTIONS_VACATION%);
|
||||||
|
define("NEW_FUNCTIONS_DISPLAY_CATAPULT_TARGET", %NEW_FUNCTIONS_DISPLAY_CATAPULT_TARGET%);
|
||||||
|
define("NEW_FUNCTIONS_MANUAL_NATURENATARS", %NEW_FUNCTIONS_MANUAL_NATURENATARS%);
|
||||||
|
define("NEW_FUNCTIONS_DISPLAY_LINKS", %NEW_FUNCTIONS_DISPLAY_LINKS%);
|
||||||
|
define("NEW_FUNCTIONS_MEDAL_3YEAR", %NEW_FUNCTIONS_MEDAL_3YEAR%);
|
||||||
|
define("NEW_FUNCTIONS_MEDAL_5YEAR", %NEW_FUNCTIONS_MEDAL_5YEAR%);
|
||||||
|
define("NEW_FUNCTIONS_MEDAL_10YEAR", %NEW_FUNCTIONS_MEDAL_10YEAR%);
|
||||||
|
define("NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM", %NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM%);
|
||||||
|
define("NEW_FUNCTIONS_MILESTONES", %NEW_FUNCTIONS_MILESTONES%);
|
||||||
|
define("NEW_FUNCTIONS_MEDAL_RESET", %NEW_FUNCTIONS_MEDAL_RESET%);
|
||||||
|
define("NEW_FUNCTIONS_HERO_T4", %NEW_FUNCTIONS_HERO_T4%);
|
||||||
|
define("NEW_FUNCTION_TRIBE_HUNS", %NEW_FUNCTION_TRIBE_HUNS%);
|
||||||
|
define("NEW_FUNCTION_TRIBE_EGIPTEANS", %NEW_FUNCTION_TRIBE_EGIPTEANS%);
|
||||||
|
define("NEW_FUNCTION_TRIBE_SPARTANS", %NEW_FUNCTION_TRIBE_SPARTANS%);
|
||||||
|
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);
|
||||||
|
define("ALLOW_BURST",false);
|
||||||
|
define("BASIC_MAX",1);
|
||||||
|
define("INNER_MAX",1);
|
||||||
|
define("PLUS_MAX",1);
|
||||||
|
define("ALLOW_ALL_TRIBE",false);
|
||||||
|
define("CFM_ADMIN_ACT",true);
|
||||||
|
define("SERVER_WEB_ROOT",false);
|
||||||
|
|
||||||
|
define("BAN_IP_ENABLED",true);
|
||||||
|
define("IP_TRUSTED_PROXIES","");
|
||||||
|
define("IP_FORWARDED_HEADER","HTTP_X_FORWARDED_FOR");
|
||||||
|
define("BANNED",0);
|
||||||
|
define("AUTH",1);
|
||||||
|
define("USER",2);
|
||||||
|
define("MULTIHUNTER",8);
|
||||||
|
define("ADMIN",9);
|
||||||
|
define("COOKIE_EXPIRE", 60*60*24*7);
|
||||||
|
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("DOMAIN", "%DOMAIN%");
|
||||||
|
define("HOMEPAGE", "%HOMEPAGE%");
|
||||||
|
define("SERVER", "%SERVER%");
|
||||||
|
|
||||||
|
$requse = 0;
|
||||||
|
|
||||||
|
############################### E N D ##################################
|
||||||
|
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||||
|
## --------------------------------------------------------------------------- ##
|
||||||
|
## Filename config.php ##
|
||||||
|
## Version 11.0 Full Refactor & Security ##
|
||||||
|
## Developed by: Dzoki and Dixie Edited by Advocaite ##
|
||||||
|
## License: TravianZ Project ##
|
||||||
|
## Copyright: TravianZ (c) 2013-2026. All rights reserved. ##
|
||||||
|
## Modified by: Shadow and ronix ##
|
||||||
|
## Refactored by: Shadow ##
|
||||||
|
## ##
|
||||||
|
## URLs: https://travianz.org ##
|
||||||
|
## https://github.com/Shadowss/TravianZ ##
|
||||||
|
#################################################################################
|
||||||
|
|
||||||
|
?>
|
||||||
|
|||||||
Reference in New Issue
Block a user