mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-09 21:01:00 +00:00
fix
some fix
This commit is contained in:
@@ -4,8 +4,10 @@
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Natarii isi ridica singuri Minunea Lumii din capitala lor. ##
|
||||
## ##
|
||||
## Pornesc dupa un numar configurabil de zile de la aparitia planurilor de ##
|
||||
## constructie (NATARS_WW_START_DELAY) si urca nivel cu nivel, folosind ##
|
||||
## Pornesc dupa un numar configurabil de zile de la DATA planurilor de ##
|
||||
## constructie (NATARS_WW_START_DELAY) - dar nu au nevoie de planuri ca sa ##
|
||||
## construiasca; acelea sunt o conditie doar pentru jucatori. Urca nivel cu ##
|
||||
## nivel, folosind ##
|
||||
## timpii REALI din datele de joc (bid40), scalati cu viteza serverului. ##
|
||||
## ##
|
||||
## Ca in Travian: la nivelul 100 Minunea e gata (si serverul se incheie), iar ##
|
||||
@@ -31,12 +33,17 @@ trait AutomationNatarsWWBuild
|
||||
return false;
|
||||
}
|
||||
|
||||
// Planurile trebuie sa fi aparut deja: pana atunci nici jucatorii nu pot
|
||||
// construi, deci nu are sens ca Natarii s-o ia inainte.
|
||||
if (!method_exists($database, 'areArtifactsSpawned') || !$database->areArtifactsSpawned(true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// NATARII NU AU NEVOIE DE PLANURI.
|
||||
//
|
||||
// Planurile de constructie sunt o conditie doar pentru JUCATORI - vezi
|
||||
// Building::allowWwUpgrade(), care verifica ce detine jucatorul sau
|
||||
// alianta lui. Natarii isi ridica Minunea neconditionat, exact ca in
|
||||
// Travian.
|
||||
//
|
||||
// Data aparitiei planurilor ramane totusi reperul de la care se
|
||||
// masoara intarzierea, dar o calculam din configuratie, nu din baza de
|
||||
// date: asa Natarii pornesc la timp chiar daca planurile intarzie sau
|
||||
// artefactele sunt oprite pe server.
|
||||
$planTime = strtotime(START_DATE)
|
||||
+ ((defined('NATARS_WW_BUILDING_PLAN_SPAWN_TIME') ? (int) NATARS_WW_BUILDING_PLAN_SPAWN_TIME : 0) * 86400);
|
||||
|
||||
@@ -47,7 +54,11 @@ trait AutomationNatarsWWBuild
|
||||
return false;
|
||||
}
|
||||
|
||||
$natarUid = defined('NATARS_UID') ? (int) NATARS_UID : 2;
|
||||
// ATENTIE: NATARS_UID e constanta de CLASA (Artifacts::NATARS_UID), nu
|
||||
// una globala. defined('NATARS_UID') intoarce mereu false, deci o
|
||||
// verificare cu defined() ar folosi tacut o valoare gresita si Natarii
|
||||
// n-ar mai fi gasiti niciodata.
|
||||
$natarUid = class_exists('Artifacts') ? (int) Artifacts::NATARS_UID : 3;
|
||||
|
||||
// capitala Natarilor: satul lor care are slotul de Minune
|
||||
$res = mysqli_query($database->dblink,
|
||||
|
||||
@@ -4293,8 +4293,8 @@ tz_def('TZ_RPT_F_WON_LOSS', 'Won with losses');
|
||||
tz_def('TZ_RPT_F_LOST', 'Lost');
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// MINUNEA LUMII A NATARILOR
|
||||
// EROU - regenerarea totala (baza + iteme)
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
tz_def('TZ_WW_NATARS', 'Natars');
|
||||
tz_def('CONF_SERV_NATARS_WW_START_DELAY', 'Natars\' World Wonder start');
|
||||
tz_def('CONF_SERV_NATARS_WW_START_DELAY_TOOLTIP', 'How many days after the construction plans appear the Natars start building their own World Wonder. Scaled by server speed. 0 disables it.');
|
||||
tz_def('TZ_HERO_REGEN_TOTAL', 'Health regeneration');
|
||||
tz_def('TZ_HERO_REGEN_BASE', 'base');
|
||||
tz_def('TZ_HERO_REGEN_ITEMS', 'from items');
|
||||
|
||||
@@ -4236,8 +4236,8 @@ tz_def('TZ_RPT_F_WON_LOSS', 'Gagné avec pertes');
|
||||
tz_def('TZ_RPT_F_LOST', 'Perdu');
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// MINUNEA LUMII A NATARILOR
|
||||
// EROU - regenerarea totala (baza + iteme)
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
tz_def('TZ_WW_NATARS', 'Natars');
|
||||
tz_def('CONF_SERV_NATARS_WW_START_DELAY', 'Debut de la Merveille des Natars');
|
||||
tz_def('CONF_SERV_NATARS_WW_START_DELAY_TOOLTIP', 'Combien de jours apres l\'apparition des plans de construction les Natars commencent leur propre Merveille du Monde. Ajuste selon la vitesse du serveur. 0 desactive.');
|
||||
tz_def('TZ_HERO_REGEN_TOTAL', 'Régénération des points de vie');
|
||||
tz_def('TZ_HERO_REGEN_BASE', 'de base');
|
||||
tz_def('TZ_HERO_REGEN_ITEMS', 'des objets');
|
||||
|
||||
@@ -4033,8 +4033,8 @@ tz_def('TZ_RPT_F_WON_LOSS', 'Castigat cu pierderi');
|
||||
tz_def('TZ_RPT_F_LOST', 'Pierdut');
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// MINUNEA LUMII A NATARILOR
|
||||
// EROU - regenerarea totala (baza + iteme)
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
tz_def('TZ_WW_NATARS', 'Natari');
|
||||
tz_def('CONF_SERV_NATARS_WW_START_DELAY', 'Pornirea Minunii Natarilor');
|
||||
tz_def('CONF_SERV_NATARS_WW_START_DELAY_TOOLTIP', 'Dupa cate zile de la aparitia planurilor incep Natarii propria Minune a Lumii. Se scaleaza cu viteza serverului. 0 dezactiveaza.');
|
||||
tz_def('TZ_HERO_REGEN_TOTAL', 'Regenerarea vietii');
|
||||
tz_def('TZ_HERO_REGEN_BASE', 'de baza');
|
||||
tz_def('TZ_HERO_REGEN_ITEMS', 'din iteme');
|
||||
|
||||
@@ -79,6 +79,12 @@ $renderAddLink = function ($action) use ($hero_info, $id, $heroStatColumns) {
|
||||
.t4h-panel{background:#f2f2f2;border:1px solid #c9c9c9;padding:6px 8px;margin-bottom:8px}
|
||||
.t4h-head{display:flex;justify-content:space-between;align-items:center;font-weight:bold;color:#333;margin-bottom:5px}
|
||||
.t4h-tbl{width:100%;border-collapse:collapse}
|
||||
/* forta adusa de echipament, langa valoarea de baza */
|
||||
.t4h-item{color:#c87f0a;font-weight:bold;font-size:11px}
|
||||
/* regenerarea totala: discreta, dar vizibila */
|
||||
.t4h-regen{margin:4px 0 8px 0;padding:4px 8px;border-left:3px solid #7db72f;
|
||||
background:#f4faec;font-size:12px}
|
||||
.t4h-regen-detail{color:#777;font-size:11px}
|
||||
.t4h-tbl td{padding:3px 5px;vertical-align:middle;background:none;border:1px solid #dcdcdc}
|
||||
.t4h-name{width:112px;color:#333}
|
||||
.t4h-val{width:78px;color:#000}
|
||||
@@ -125,11 +131,30 @@ $renderAddLink = function ($action) use ($hero_info, $id, $heroStatColumns) {
|
||||
<span><?php echo defined('TZ_POINTS') ? TZ_POINTS : 'Points'; ?></span>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
/**
|
||||
* Forta de lupta data de itemele echipate (fight_strength).
|
||||
*
|
||||
* Fiecare arma si scut adauga o valoare fixa la puterea eroului in
|
||||
* lupta - de exemplu 1500 pentru Elite Heavy Blade. Bonusul intra deja
|
||||
* in calculul luptei (Battle.php, prin HeroBattleBonus::statBonus), dar
|
||||
* nu se vedea nicaieri in pagina, asa ca jucatorul nu avea cum sa stie
|
||||
* cat ii aduce echipamentul.
|
||||
*/
|
||||
$t4ItemStrength = 0;
|
||||
|
||||
if (class_exists('HeroBattleBonus') && HeroBattleBonus::enabled()) {
|
||||
$t4ItemStrength = (int) HeroBattleBonus::statBonus($session->uid);
|
||||
}
|
||||
?>
|
||||
|
||||
<table class="t4h-tbl">
|
||||
<?php
|
||||
// nume afisat, valoarea, punctele investite si cheia pentru (+)
|
||||
$t4Rows = array(
|
||||
array(OFFENCE, $hero_info['atk'], (int) $hero_info['attack'], 'off'),
|
||||
array(OFFENCE, $t4ItemStrength > 0
|
||||
? $hero_info['atk'] . ' <span class="t4h-item">+' . number_format($t4ItemStrength) . '</span>'
|
||||
: $hero_info['atk'], (int) $hero_info['attack'], 'off'),
|
||||
array(DEFENCE, $hero_info['dc'] . '/' . $hero_info['di'], (int) $hero_info['defence'], 'deff'),
|
||||
array(OFF_BONUS, $hero_info['ob'] . '%', (int) $hero_info['attackbonus'], 'obonus'),
|
||||
array(DEF_BONUS, $hero_info['db'] . '%', (int) $hero_info['defencebonus'], 'dbonus'),
|
||||
@@ -355,7 +380,43 @@ $renderAddLink = function ($action) use ($hero_info, $id, $heroStatColumns) {
|
||||
<?php } ?>
|
||||
|
||||
<p><?php echo YOUR_HERO_HAS; ?> <b><?php echo floor($hero_info['health']); ?></b>% <?php echo OF_HIT_POINTS; ?>.<br/>
|
||||
<?php echo YOUR_HERO_HAS; ?> <?php echo CONQUERED; ?> <b><?php echo $database->VillageOasisCount($village->wid); ?></b> <a href="build.php?id=<?php echo $id; ?>&land"><?php echo OASES; ?></a>.</p>
|
||||
<?php echo YOUR_HERO_HAS; ?> <?php echo CONQUERED; ?> <b><?php echo $database->VillageOasisCount($village->wid); ?></b> <a href="build.php?id=<?php echo $id; ?>&land"><?php echo OASES; ?></a>.</p>
|
||||
|
||||
<?php
|
||||
/**
|
||||
* Regenerarea totala pe zi: cea data de puncte plus cea din iteme.
|
||||
*
|
||||
* Cizmele de Regenerare / Refacere / Vindecare adauga puncte de viata pe zi
|
||||
* (regen_hp), aplicate in AutomationHero. Pana acum efectul lor nu aparea
|
||||
* nicaieri, deci nu se vedea daca itemul face ceva.
|
||||
*/
|
||||
$t4BaseRegen = (int) $hero_info['regeneration'] * 5 * SPEED;
|
||||
$t4ItemRegen = 0;
|
||||
|
||||
// HeroItems nu are enabled(); flagul se verifica prin HeroBattleBonus,
|
||||
// care il expune si e deja incarcat pe aceasta pagina.
|
||||
if (class_exists('HeroItems') && class_exists('HeroBattleBonus')
|
||||
&& HeroBattleBonus::enabled() && defined('HB_REGEN_HP')) {
|
||||
|
||||
$t4Items = new HeroItems();
|
||||
$t4Bon = $t4Items->getBonuses($session->uid);
|
||||
|
||||
if ($t4Bon && !empty($t4Bon[HB_REGEN_HP])) {
|
||||
$t4ItemRegen = (int) $t4Bon[HB_REGEN_HP];
|
||||
}
|
||||
}
|
||||
|
||||
if ($t4ItemRegen > 0) {
|
||||
?>
|
||||
<p class="t4h-regen">
|
||||
<?php echo defined('TZ_HERO_REGEN_TOTAL') ? TZ_HERO_REGEN_TOTAL : 'Health regeneration'; ?>:
|
||||
<b><?php echo number_format($t4BaseRegen + $t4ItemRegen); ?></b>/<?php echo DAY; ?>
|
||||
<span class="t4h-regen-detail">(<?php echo number_format($t4BaseRegen); ?>
|
||||
<?php echo defined('TZ_HERO_REGEN_BASE') ? TZ_HERO_REGEN_BASE : 'base'; ?>
|
||||
+ <?php echo number_format($t4ItemRegen); ?>
|
||||
<?php echo defined('TZ_HERO_REGEN_ITEMS') ? TZ_HERO_REGEN_ITEMS : 'from items'; ?>)</span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
// NOTE: the actions below are triggered by GET (?add=...) and modify
|
||||
|
||||
@@ -92,7 +92,9 @@ if ($result && mysqli_num_rows($result) > 0) {
|
||||
|
||||
// Minunea Natarilor se evidentiaza: nu e a unui jucator, iar cand ajunge
|
||||
// la nivelul 100 serverul se incheie - merita sa sara in ochi.
|
||||
$isNatarWW = (defined('NATARS_UID') && (int) $row['id'] === (int) NATARS_UID);
|
||||
// NATARS_UID e constanta de clasa, nu globala - vezi Artifacts.
|
||||
$psNatarUid = class_exists('Artifacts') ? (int) Artifacts::NATARS_UID : 3;
|
||||
$isNatarWW = ((int) $row['id'] === $psNatarUid);
|
||||
?>
|
||||
<tr<?php echo $isNatarWW ? ' class="ww-natars"' : ''; ?>>
|
||||
<td><?php echo $count; ?>.</td>
|
||||
|
||||
Reference in New Issue
Block a user