Enable GPACK for Player

Enable GPACK for Player
This commit is contained in:
novgorodschi catalin
2026-07-27 10:42:44 +03:00
parent 81cf911128
commit dd7ee34e20
34 changed files with 162 additions and 220 deletions
+1 -1
View File
@@ -110,7 +110,7 @@ $editIcon = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke=
</tr>
<tr>
<td><?php echo ADM_HERO_RESOURCE_PRODUCTION; ?><em class="tooltip">?<span class="classic"><?php echo ADM_HOURLY_RESOURCES_PRODUCED_BY_EACH_POINT_THE; ?></span></em></td>
<td><b><?php echo defined('HERO_RES_PER_POINT_ALL') ? (int) HERO_RES_PER_POINT_ALL : 3; ?></b> <?php echo ADM_OF_EACH; ?><b><?php echo defined('HERO_RES_PER_POINT_ONE') ? (int) HERO_RES_PER_POINT_ONE : 10; ?></b> <?php echo ADM_OF_ONE_TYPE; ?></td>
<td><b><?php echo defined('HERO_RES_PER_POINT_ALL') ? (int) HERO_RES_PER_POINT_ALL : 3; ?></b><?php echo ADM_OF_EACH; ?><b><?php echo defined('HERO_RES_PER_POINT_ONE') ? (int) HERO_RES_PER_POINT_ONE : 10; ?></b><?php echo ADM_OF_ONE_TYPE; ?></td>
</tr>
</table>
</div>
+5
View File
@@ -40,6 +40,11 @@ include_once("../GameEngine/config.php");
include_once("../GameEngine/Database.php");
include_once("../GameEngine/Lang/" . LANG . ".php");
include_once("../GameEngine/Admin/database.php");
// Helperul care descopera pachetele grafice din gpack/ (tz_available_gpacks).
// Sabloanele panoului il folosesc pentru selectorul de pachet; fara acest
// include, functia nu exista la randare si lista arata doar pachetul curent.
include_once("../GameEngine/Admin/Mods/config_template.php");
include_once("../GameEngine/Data/buidata.php");
include_once("../GameEngine/Artifacts.php");
include_once("../GameEngine/MultiAccount.php");
+19 -1
View File
@@ -269,11 +269,29 @@ class Profile {
private function gpack($post) {
global $database, $session;
$chosen = trim((string) $post['custom_url']);
// Acceptam doar pachete locale reale: "gpack/<nume>/" cu travian.css pe
// disc. Fara verificare, o cale gresita (sau trimisa manual) ar lasa
// jucatorul cu o pagina fara stiluri, din care nu mai poate reveni.
$isLocalPack = (bool) preg_match('#^gpack/[A-Za-z0-9_\-]+/$#', $chosen)
&& is_file(__DIR__ . '/../' . $chosen . 'travian.css');
// Sirul gol inseamna "inapoi la pachetul serverului" si e mereu permis.
if ($chosen !== '' && !$isLocalPack) {
header("Location: spieler.php?s=4");
exit;
}
$database->gpack(
$database->RemoveXSS($session->uid),
$database->RemoveXSS($post['custom_url'])
$database->RemoveXSS($chosen)
);
// Sesiunea trebuie sa reflecte imediat alegerea: config.php citeste de
// acolo, iar fara asta pachetul nou s-ar aplica abia dupa o relogare.
$_SESSION['gpack'] = $chosen;
// Invalidate the 30s session user-cache (see Session::PopulateVar) so the
// new graphics pack applies immediately, without a re-login.
unset($_SESSION['cache_user_' . ($_SESSION['username'] ?? '')]);
+7
View File
@@ -426,6 +426,13 @@ function __construct() {
$this->uid = $_SESSION['id_user'] = $this->userarray['id'];
$this->gpack = $this->userarray['gpack'];
// Pachetul grafic ales de jucator ajunge in sesiune, exact ca limba de
// mai sus: config.php se incarca INAINTE de a exista o conexiune la baza
// de date, deci singurul mod de a-i spune ce pachet vrea jucatorul este
// prin sesiune. Fara asta, GP_LOCATE ramanea mereu pachetul serverului,
// oricat de des si-l schimba jucatorul din profil.
$_SESSION['gpack'] = (string) $this->userarray['gpack'];
$this->access = $this->userarray['access'];
$this->plus = ($this->userarray['plus'] > $this->time);
$this->goldclub = $this->userarray['goldclub'];
+1 -1
View File
@@ -11,7 +11,7 @@ This repository currently targets modern local/server setups with PHP 8.x and Ma
Project Status
* Version: v10 Full Refactor
* Version: v11 Full Refactor
* PHP 8.3+ compatible
* Actively maintained
* Suitable for production servers
+2 -3
View File
@@ -14,9 +14,8 @@
// -------------------------------------------------
// GPACK (unchanged logic, cleaner)
// -------------------------------------------------
$gpack = ($session->gpack == null || GP_ENABLE == false)
? GP_LOCATE
: $session->gpack;
// GP_LOCATE contine deja pachetul efectiv (vezi config.php).
$gpack = GP_LOCATE;
// -------------------------------------------------
// PROFILE SHORTCODES (UNCHANGED LOGIC)
+6 -1
View File
@@ -214,7 +214,12 @@ if (isset($_GET["custom_url"])) {
? tz_available_gpacks(__DIR__ . '/../../gpack')
: array('gpack/travian_default/' => 'Travian Default');
$gpActive = rtrim((string) $session->gpack, '/') . '/';
// Pachetul marcat ca activ e cel EFECTIV folosit acum. Cand
// GP_ENABLE e false, alegerea din baza de date e ignorata de joc,
// deci ar fi inselator sa aratam altceva decat pachetul serverului.
$gpActive = (defined('GP_ENABLE') && GP_ENABLE && $session->gpack)
? rtrim((string) $session->gpack, '/') . '/'
: (defined('SERVER_GP') ? SERVER_GP : GP_LOCATE);
foreach ($gpPacks as $gpPath => $gpLabel) {
$gpIsActive = (rtrim($gpPath, '/') . '/') === $gpActive;
+3 -7
View File
@@ -102,15 +102,11 @@ $process = $units->procUnits($_POST);
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false){
echo "
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}else{
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+4 -7
View File
@@ -81,13 +81,10 @@ if (isset($packages[$amount]) && $amount > 0) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if ($session->gpack == null || GP_ENABLE == false) {
echo '<link href="' . GP_LOCATE . 'travian.css?e21d2" rel="stylesheet" type="text/css" />';
echo '<link href="' . GP_LOCATE . 'lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />';
} else {
echo '<link href="' . $session->gpack . 'travian.css?e21d2" rel="stylesheet" type="text/css" />';
echo '<link href="' . $session->gpack . 'lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />';
}
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo '<link href="' . GP_LOCATE . 'travian.css?e21d2" rel="stylesheet" type="text/css" />';
echo '<link href="' . GP_LOCATE . 'lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />';
?>
<script type="text/javascript">window.addEvent('domready', start);</script>
</head>
+3 -7
View File
@@ -126,15 +126,11 @@ if(isset($_GET['aid']) || isset($_GET['fid']) || isset($_GET['fid2']) ||
?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
echo "
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -45,15 +45,11 @@ if($session->access == BANNED){
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
window.addEvent('domready', start);
+2 -6
View File
@@ -62,15 +62,11 @@ if(isset($_GET['newdid'])) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+3 -7
View File
@@ -264,15 +264,11 @@ if(isset($_GET['mode']) && $_GET['mode'] == 'troops' && isset($_GET['cancel']) &
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
echo "
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+5 -13
View File
@@ -47,7 +47,8 @@ $CROP_TABLE = $TBP . 'croppers';
$WDATA = $TBP . 'wdata';
// Build an absolute-safe asset prefix for CSS/JS
$assetBase = $session->gpack ?: GP_LOCATE;
// GP_LOCATE contine deja pachetul efectiv (vezi config.php).
$assetBase = GP_LOCATE;
$assetBase = '/'.ltrim($assetBase, '/');
// CSRF
@@ -180,15 +181,11 @@ $worldLabel = worldSizeLabel();
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script language="javascript" type="text/javascript">
@@ -210,15 +207,10 @@ $worldLabel = worldSizeLabel();
window.addEvent('domready', start);
</script>
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
window.addEvent('domready', start);
+4 -7
View File
@@ -184,13 +184,10 @@ if ($wrefs) {
<script src="new.js?0faab" type="text/javascript"></script>
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php if($session->gpack == null || GP_ENABLE == false) {
echo " <link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />";
echo " <link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo " <link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />";
echo " <link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} ?>
<?php // GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo " <link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />";
echo " <link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />"; ?>
<script type="text/javascript">window.addEvent('domready', start);</script>
</head>
<body class="v35 ie ie8">
+2 -6
View File
@@ -60,15 +60,11 @@ else $building->procBuild($_GET);
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
window.addEvent('domready', start);
+2 -6
View File
@@ -53,15 +53,11 @@ else $building->procBuild($_GET);
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -57,15 +57,11 @@ if(isset($_GET['newdid'])) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+54 -51
View File
@@ -25,37 +25,29 @@ define('AUTOMATION_LOCK_FILE_NAME', 'automation.lck');
//////////////////////////////////
// ***** CRON / AUTOMATION *****//
//////////////////////////////////
// Automation ruleaza din cron.php (cron job pe server), nu din paginile
// jucatorilor. Vezi comentariile din cron.php pentru instalarea cron job-ului.
//
// Automation runs from cron.php (a server cron job), not from player page
// requests. See the comments in cron.php for cron job installation instructions.
//
// CRON_LOOP_SECONDS = how long a single cron.php invocation runs.
// Many hosting providers do not allow cron jobs to run more frequently than
// every 5 minutes, while Automation is designed to run approximately every
// 60 seconds. For this reason, a single invocation executes multiple ticks
// in sequence.
// 300 = suitable for a "*/5 * * * *" cron schedule.
// Set to 0 if your hosting provider allows a cron job every minute
// (in that case, each invocation executes only a single tick).
//
// CRON_TICK_SECONDS = the interval, in seconds, between each tick within a
// single cron.php invocation.
// CRON_LOOP_SECONDS = cat timp tine o invocare de cron.php.
// Multe hosturi nu permit cron mai des de 5 minute, iar Automation vrea sa
// ruleze la ~60s. De aceea o invocare ruleaza mai multe tick-uri la rand.
// 300 = potrivit pentru un cron "*/5 * * * *". Pune 0 daca hostul tau permite
// cron la fiecare minut (atunci o invocare = un singur tick).
// CRON_TICK_SECONDS = la cat timp se repeta un tick in interiorul invocarii.
define('CRON_LOOP_SECONDS', %CRONLOOP%);
define('CRON_TICK_SECONDS', %CRONTICK%);
// Key used to access cron.php via HTTP (wget/curl or an external cron service).
// Command-line execution (e.g. a cPanel cron job) does NOT require it.
// Automatically generated during installation and preserved when saving configuration settings from the ACP.
// Cheie pentru apelarea cron.php prin HTTP (wget/curl sau un serviciu extern de
// cron). Rularea din linia de comanda (cron job cPanel) NU are nevoie de ea.
// Generata automat la instalare; pastrata la salvarile de configuratie din ACP.
define('CRON_KEY', '%CRONKEY%');
//////////////////////////////////
// ***** DATABASE CLEANUP *****//
//////////////////////////////////
//
// Tables that grow indefinitely (reports, chat, deleted messages) are cleaned
// up periodically by Automation. Set each rule to 0 to disable it individually.
//
// Reports archived by players are never deleted.
// Tabelele care cresc nelimitat (rapoarte, chat, mesaje sterse) sunt curatate
// periodic de Automation. 0 = dezactivat pentru fiecare regula in parte.
// Rapoartele ARHIVATE de jucator nu se sterg niciodata.
define('CLEANUP_REPORTS_DAYS', %CLEANUPREPORTS%);
define('CLEANUP_CHAT_DAYS', %CLEANUPCHAT%);
define('CLEANUP_MESSAGES_DAYS', %CLEANUPMESSAGES%);
@@ -63,36 +55,26 @@ define('CLEANUP_INTERVAL', 3600);
define('CLEANUP_BATCH', 5000);
//////////////////////////////////
// ***** HERO *****//
// ***** EROU *****//
//////////////////////////////////
//
// The hero's BASE health regeneration, in HP per day, independent of the
// points invested in the Regeneration attribute (as in Travian T4).
// Without this, a hero with 0 points in Regeneration would never recover
// health and would eventually die after enough adventures.
//
// It scales with the server speed, just like regeneration from attributes.
// Set to 0 to disable it (legacy behavior).
// Regenerarea de BAZA a vietii eroului, in HP pe zi, independenta de punctele
// puse in atributul de regenerare (ca in Travian T4). Fara ea, un erou cu 0
// puncte in regenerare nu si-ar reface niciodata viata si ar muri inevitabil
// dupa destule aventuri. Se scaleaza cu viteza serverului, ca si regenerarea
// din atribute. 0 = dezactivata (comportamentul vechi).
define('HERO_BASE_REGEN', %HEROBASEREGEN%);
// Auction House exchange rates:
//
// HERO_SILVER_PER_GOLD = how much silver you receive for 1 gold
// HERO_SILVER_TO_GOLD = how much silver it costs to buy 1 gold
//
// The difference between the two rates is the Auction House margin
// (just like in Travian: 1 gold → 10 silver, but 25 silver → 1 gold).
// Ratele casei de schimb din casa de licitatii:
// HERO_SILVER_PER_GOLD = cat argint primesti pentru 1 aur
// HERO_SILVER_TO_GOLD = cat argint costa 1 aur la schimbul invers
// Diferenta dintre ele este marja casei (ca in Travian: 1 aur -> 10 argint,
// dar 25 argint -> 1 aur).
define('HERO_SILVER_PER_GOLD', %HEROSILVERPERGOLD%);
define('HERO_SILVER_TO_GOLD', %HEROSILVERTOGOLD%);
// Hero "Resources" attribute (T4): how many resources each attribute point
// produces per hour.
//
// ALL = when the bonus is distributed equally across all four resources
// (default: 3 of each resource)
//
// ONE = when the bonus is concentrated on a single resource
// (default: 10)
// Atributul de erou "Resources" (T4): cate resurse produce un punct pe ora.
// ALL = cand bonusul e raspandit egal pe toate patru (implicit 3 din fiecare)
// ONE = cand e concentrat pe o singura resursa (implicit 10)
define('HERO_RES_PER_POINT_ALL', %HERORESALL%);
define('HERO_RES_PER_POINT_ONE', %HERORESONE%);
@@ -145,11 +127,32 @@ define("SPEED", "%SPEED%");
define("WORLD_MAX", "%MAX%");
// ***** Graphic Pack
// true = enabled, false = disabled
//!!!!!!!!!!!! DO NOT ENABLE !!!!!!!!!!!!
//
// 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%);
// Graphic pack location (default: gpack/travian_default/)
define("GP_LOCATE", "%GP_LOCATE%");
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/<name>/" 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);
// ***** Troop Speed
// Values: 1 (normal), 3 (3x speed) etc...
@@ -481,4 +484,4 @@ $requse = 0;
## ##
#################################################################################
?>
?>
+3 -1
View File
@@ -79,7 +79,9 @@ class Process {
//$findReplace["%AUTOD%"] = $_POST['autodel'];
//$findReplace["%AUTODT%"] = $_POST['autodeltime'];
$findReplace["%MAX%"] = $_POST['wmax'];
//$findReplace["%GP%"] = $_POST['gpack'];
// Comutatorul de pachete grafice proprii. Linia era comentata, deci %GP%
// ramanea neinlocuit in config.php si constanta nu se definea deloc.
$findReplace["%GP%"] = (isset($_POST['gpack']) && $_POST['gpack'] === 'true') ? 'true' : 'false';
$findReplace["%SSERVER%"] = $_POST['sserver'];
$findReplace["%SPORT%"] = $_POST['sport'];
$findReplace["%SUSER%"] = $_POST['suser'];
+4
View File
@@ -312,6 +312,10 @@ foreach($mechs as $k => $l){
<div><label>Hero base regeneration (HP/day)</label><input class="input" name="hero_base_regen" id="hero_base_regen" value="10"></div>
<div><label>Silver received per 1 gold</label><input class="input" name="hero_silver_per_gold" id="hero_silver_per_gold" value="10"></div>
<div><label>Silver needed for 1 gold</label><input class="input" name="hero_silver_to_gold" id="hero_silver_to_gold" value="25"></div>
<div><label>Allow player graphic packs</label><select class="input" name="gpack">
<option value="false" selected>No &ndash; everyone sees the server pack</option>
<option value="true">Yes &ndash; players may pick their own in Profile</option>
</select></div>
<div><label>Graphic pack</label><select class="input" name="gp_locate">
<option value="gpack/travian_default/" selected>Travian Default (classic T3.6 look)</option>
<option value="gpack/travian_t4/">Travian T4 (T4-styled artwork)</option>
+2 -6
View File
@@ -63,15 +63,11 @@ else{
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -44,15 +44,11 @@ AccessLogger::logRequest();
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+3 -10
View File
@@ -61,18 +61,11 @@ if($maintenance['active'] == 1 && $session->access < 9){
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false)
{
echo "
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
else
{
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">window.addEvent('domready', start);</script>
<style type="text/css">
+2 -6
View File
@@ -102,15 +102,11 @@ if(isset($_GET['confirm']) && is_numeric($_GET['confirm'])){
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -38,15 +38,11 @@ $id = $_GET['id'];
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
window.addEvent('domready', start);
+2 -6
View File
@@ -88,15 +88,11 @@ if (isset($_POST['redeem_code']) && class_exists('GoldShop')) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -33,15 +33,11 @@ else {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -51,15 +51,11 @@ if(isset($_GET['newdid'])) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -62,15 +62,11 @@ else $building->procBuild($_GET);
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -104,15 +104,11 @@ if (!empty($_GET['id'])) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -51,15 +51,11 @@ else $building->procBuild($_GET);
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+2 -6
View File
@@ -45,15 +45,11 @@ $battle->procSim($_POST);
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
+3 -7
View File
@@ -188,15 +188,11 @@ if ($winner) {
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?f4b7d" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7i" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false){
echo "
// GP_LOCATE contine deja pachetul efectiv: alegerea jucatorului cand
// e permisa si valida, altfel pachetul serverului (vezi config.php).
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}else{
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">window.addEvent('domready', start);</script>
<style type="text/css">