Commit Graph

63 Commits

Author SHA1 Message Date
novgorodschi catalin 089d1df0ff Fix 3 bugs (spy dont die, hero error battle report and hospital cost)
1. Spies — real bug, found. In calculateBattle, the block that calculates the attack power of spies had the hardcoded condition if ($i == 4 || $i == 14 || $i == 23 || $i == 44). Scouts of new tribes (52/64/74/82) did not enter the branch → attack power 0, so they all died no matter how many there were. Now the condition is in_array($i, $unitsbytype['scout']). With this, all four lists in Battle (cavalry, catapults, rams, scouts on attack + scouts on defense) are derived from unitsbytype.
2. Defender hero. I rebuilt the report CSV with dummy values ​​and confirmed that the indexes in Notice/1.tpl are correct (272 = hero present, 273 = hero dead) — so the problem was that $deadhero was ending up as 0 in the report, even though deadherodef was 1 in the battle result (that's why the hero actually died in the DB). Now $deadhero is taken directly from the battle result ($battlepart['deadherodef']), with $owndead['hero'] only as a fallback.
3. "Free" healing. The code called modifyResource(..., mode 0) exactly like training, so the resources were low — but at 100x speed and full storage (8M/8M in your captures) the difference is instantly invisible. I did find a real bug in this area though: modifyResource caps at 0 instead of failing, so if you don't have resources you heal for free. Now procHeal checks the stock and, if there are insufficient resources, automatically reduces the quantity to what you can afford (or cancels).
2026-07-14 14:03:31 +03:00
novgorodschi catalin 25c8925ef6 NEW TRIBES ENHANCEMENT (Huns, Egipteans, Spartans & Vikings) #327
NEW TRIBES ENHANCEMENT (Huns, Egipteans, Spartans & Vikings) #327

Please be advised, is not fully tested so if you activate on install maybe is not fully working
2026-07-14 09:25:26 +03:00
novgorodschi catalin f484bb04d6 Add credits
Add credits
2026-07-01 07:59:05 +03:00
Ferywir fa1057d277 Refactor(Technology): de-duplicate unit-summing and tidy getUpkeep() [#219] (#289) 2026-06-26 06:30:38 +03:00
Ferywir 0e13ae23be Refactor(Technology): split trainUnit() into focused helpers [#219] (#288) 2026-06-26 06:29:37 +03:00
Ferywir 082ad85697 Refactor(Technology): make getTrainingList() table-driven [#219] (#287) 2026-06-25 15:45:05 +03:00
Ferywir 06089df64c Refactor(Technology): merge upgradeSword/upgradeArmour into upgradeWeaponOrArmour() [#219] (#280)
upgradeSword() and upgradeArmour() were near-identical: the only differences
were the AB-tech key prefix ('b' vs 'a'), the building type whose level gates
the research (Smithy 12 vs Armoury 13) and the matching bid building data
($bid12 vs $bid13). Merge them into a single upgradeWeaponOrArmour($get, $type)
parameterised by the prefix, deriving the building type from it, and route both
procTechno() cases through it. Resolves the pre-existing //TODO. Behaviour-
preserving.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 12:20:26 +03:00
novgorodschi catalin 05bfde9063 Remove some unused code and some fix
Remove some unused code and some fix
2026-05-21 13:12:21 +03:00
Catalin Novgorodschi 01474fb31f Update Readme
Update Readme
2026-05-15 08:17:14 +03:00
hdmaniak2 9b03def903 Fix parallel training exploit (#145)
* Fix parallel building exploit via race condition

* Fix parallel research exploit via race condition

* Fix parallel training exploit

---------

Co-authored-by: hdmaniak <bombo15.forum@gmail.com>
Co-authored-by: Catalin Novgorodschi <1140613+Shadowss@users.noreply.github.com>
2026-03-25 08:22:39 +02:00
hdmaniak2 2e5f9f6169 Fix parallel research exploit (#143)
* Fix parallel building exploit via race condition

* Fix parallel research exploit via race condition

---------

Co-authored-by: hdmaniak <bombo15.forum@gmail.com>
Co-authored-by: Catalin Novgorodschi <1140613+Shadowss@users.noreply.github.com>
2026-03-24 14:25:46 +02:00
levi a0ef06a35f chore: harden php8 compatibility, optimize installer/croppers, and refresh docs/admin ux 2026-03-14 16:50:27 -03:00
Catalin Novgorodschi 59c1114b1c Change some text on license TravianZ 2025-02-11 11:22:22 +02:00
Shadow 4c116aefea update 2019-05-06 09:18:20 +03:00
iopietro b9a442b423 General fixes
+Fixed a bug that would have killed all troops by starvation, if added
through the admin panel
2018-07-25 17:17:52 +02:00
iopietro 79eb6a73d6 General fixes
+Removed almost all "BANNED" controls to template and .php UI files. The
control will be done only once and in the Session class
2018-06-11 02:22:22 +02:00
iopietro d96259afd8 General fixes
+You can no longer build WW if your and your alliance building plans
aren't active yet
+You can no longer remove the WW from the village if you remove it from
the building queue
+Spies from every tribe will now consume crop correctly, when returning
from a scouting attacks
+Spies from every tribe will now be displayed correctly, in the "Troops"
tab of dorf3.php, when returning from a scouting attack
+Building levels will now not be downgraded by 1 level, when conquering
a Natars' village
+Natars' villages with an artifact inside, will now be deleted if the
artifact is conquered (even if the pop isn't 0)
2018-06-09 03:03:01 +02:00
iopietro 2534fdf2a3 General fixes
-Removed the possibility to manual add Natars, WW Villages and WW
building plans
+The crop consumption in WW villages is now halved
2018-05-11 01:46:17 +02:00
iopietro 90221cf19f Natars automation system
+Natars will now spawn automatically, you can set how many day should
pass before the spawn of Natars (and artifacts), WW Villages and WW
building plans (Note: WW villages and WW building plans won't spawn
until the creation of the natar account)
+Added 3 timers under the left menu which indicate the spawn of
Natars/Artifacts, WW villages and WW building plans
+Added an option in the installation, to set the resource production of
oasis
+Fixed a bug that didn't permit to add multiple Units, Abtech and tech
rows with one query
+Added a new information to the Artifact of the fool, the next effect
reroll will now be displayed in his informations (in the treasury)
+Fixed a bug that dind't permit the correct timers flow in Dorf3.php
(Warehouse tab), they'll now flow correctly
+Timers and resources percentage of villages with a negative production
of crop will now be marked in red (in the Warehouse tab, Dorf3.php) and
will now be displayed in how much time the granary will be emptied
+Fixed a possible bug that prevented to add raids to farm lists
+Fixed a bug that didn't permit to create WW Villages from the
Multihunter control panel
+Reworked all timers, there will be only one timer field now (in
Session.php)
+Minor bug fixing and optimization

NOTE: To play this version of the game, you need to reinstall the server
OR you can simply add these lines of code into your "config.php" file:

// ***** Natars Spawn Time
define("NATARS_SPAWN_TIME",260);
define("NATARS_WW_SPAWN_TIME",260);
define("NATARS_WW_BUILDING_PLAN_SPAWN_TIME",260);

// ***** Oasis production
define("OASIS_WOOD_MULTIPLIER",40);
define("OASIS_CLAY_MULTIPLIER",40);
define("OASIS_IRON_MULTIPLIER",40);
define("OASIS_CROP_MULTIPLIER",40);
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);

P.S: from the next version, the possibility to add manual WWs, WW
building plans and to create the natar account will be REMOVED.
2018-05-10 17:45:27 +02:00
iopietro cf74514451 General fixes
+Fixed an exploit that permitted to starts other players' farm lists
+Fixed an exploit that permitted to save our raids to other players'
farm lists
+Fixed an exploit that permitted to edit other players' farm lists
+Fixed a rounding upkeep bug
+Moved the whole startRaid.tpl to a new method in Units.php
+A lot of clean-up
+Improoved indentation
+In the raid list, the "carry" image will now show to the left of an
attack
+Fixed a bug that displayed the wrong loot to returning troops released
by traps
+General minor bug fixing and improovements
-Deleted a lot of redundant code
2018-05-04 22:12:18 +02:00
iopietro 9e2d2b6842 Fixed trap bugs
+Traps are now repaired (built) in the trapper building, instead of
instantly given after a successful normal attack or a dismiss/releasing
from the rally point
+1/4 of trapped troops are now lost after a successful normal attack
+Traps are now released when troops die from starvation
+If you'll dismiss your trapped troops from the rally point, the gaul
player will be able to only repair 1/3 of the total used traps
+Created a new method to delete some redundant and duplicated code
starvation related
+The effect of WW building plans will be displayed correctly, when
they're active
+Troops related artifacts are now counted when building traps
+Some minor improovements and bug fixing
+Some clean-up
2018-05-02 21:17:20 +02:00
iopietro 56e280f436 Artifacts fixes part 4
Completely fixed the artifact of the fool and fixed all kind of
artifact:

+Deleted some useless .tpl files and merged into one (Stable)
+The artifact of the fool effect won't be displayed if not active
+Fixed a bug that permitted to have a great and a unique artefacts
active at the same moment
+Big reductions of code in a lot of files
+Created some new methods to support artifacts
+Fixed a bug that prevented the effect of the "Rivals confusion" to work
correctly
+Fixed a bug that prevented "The eagles eyes" artifact to work correctly
for the attacker
+Fixed the artifact of the fool of every kind, now it's calculated with
a new method
+Fixed the cranny capacity when a "Rivals confusion" artifact is active
+Some minor bug fixing , improovements and optimization
2018-04-26 20:37:47 +02:00
iopietro 8567466a1d Fixed a training bug
+Fixed a bug that permitted to train troops without the needed buildings
+Updated the version in winner.php
2018-04-16 19:43:03 +02:00
iopietro bd38ac7fd8 Fixed some bugs
+Fixed a bug that selected the capital village instead of the actual
village
+Medals aren't given to
Support/Nature/Natars/TaskMaster/Multihunteranymore
+Fixed a bug in 1.tpl (dorf3.php) that showed tigers instead of traps
while building traps
+Some clean-up in Technology.php
2018-04-16 14:56:15 +02:00
iopietro 21179d346f Fixed some bugs and errors
+Part 1 of the starvation refactor, attacking troops will now be killed
+Fixed some errors in Units.php, Technology.php, Battle.php and some
16_incomming.tpl
-Removed an unused function in Database.php
+Fixed a bug that could have destroyed a village after taking an
artefact even if it had more than 0 pop
2018-04-09 21:31:50 +02:00
iopietro fba51fd48d A little fix
The speed of the server is now counted in the Blacksmith/Armoury
researches waiting loop formula
2018-04-07 23:18:05 +02:00
iopietro f341c209b8 Added a new feature and some clean-up
Added the research loop in the blacksmith and in the armoury, only for
plus users. This was a not coded T3.6 feature.
"Total resources required" (for NPC merchants) are now calculated
correctly in the Armoury.
Some clean-up in Technology.php
2018-04-06 21:59:04 +02:00
Pietro aec41019e9 Fixed a bug in the troops training
If the speed of the server is very high and the single troop training time is 0, you can now train troops instantly.
2018-04-05 03:03:49 +02:00
AL-Kateb 7f7d6f1f63 Restored truncated Technology.php 2018-01-22 13:50:00 +00:00
AL-Kateb b8749af55b Fixed issue #462 wrong troops training 2018-01-22 13:47:00 +00:00
Martin Ambrus ef416cd548 fix: horse drinking trough forgives upkeep for all horse units
#105
2017-11-26 16:00:55 +01:00
Martin Ambrus 5dfbd89130 fix: fool's artefact caching returns non-fool artefact data
#313
2017-11-25 20:50:12 +01:00
Martin Ambrus b7e9c4edcb fix: max units count shown as infinity 2017-11-20 10:15:54 +01:00
Martin Ambrus 645793dde2 refactor: s1_vdata queries cached and reused
#313
2017-11-20 10:10:29 +01:00
Martin Ambrus 67d9a42506 refactor: a lot of Automation foreach loops updated
#313
2017-11-19 14:01:30 +01:00
Martin Ambrus 07e5f322e2 fix: reinforcements sent back do not hide the reinforcements table 2017-11-19 02:33:07 +01:00
Martin Ambrus fffedc4170 fix: defender troops do not die during attack 2017-11-18 13:11:00 +01:00
Martin Ambrus 079c830b94 refactor: Technology class-related caching done
#313
2017-11-17 14:36:49 +01:00
Martin Ambrus 05d3b676a2 fix: Lang folder letter case correction
#346
2017-11-13 12:00:34 +01:00
Shadow ca2a823be1 Code clear
No need , double troops not appear anymore
2017-11-10 10:55:32 +02:00
Martin Ambrus 0a541d5bd3 fix: reverting possibility of settlers & chieftain creation side-by-side
Turns out we could conquer a village and then settle a new one without
having enough expansion slots. Thus this is a revert to original state,
where we can't train settlers with chieftain in village or chieftain
with settlers in village, if we don't have enough slots.

Closes #324
2017-11-09 00:08:40 +01:00
Martin Ambrus 312507fe9f feat: MySQL port into installation options
Closes #279
2017-11-07 12:30:32 +01:00
Martin Ambrus 23eed5da53 fix: unable to train settlers if chieftan is present
It is debatable whether or not to allow this, since chieftan would be of
no use once we have 3 settlers and settle a new village. However, if we
accidentally created a chieftan, we can't train settlers until we send
the chieftan to his death.

I think this move could be a predule to a later game mechanics, where
chieftan could fight (talk, actually) against chieftan, if one is
present in village, so taking a village over isn't so easy.
2017-11-03 17:23:29 +01:00
Martin Ambrus 945bb2f8c7 fix: too much gold for instant build & research
Fixes #257
2017-11-02 13:11:19 +01:00
Martin Ambrus df31c578fa fix: undefined index 2017-11-02 00:55:10 +01:00
Martin Ambrus 041726fbd2 fix: undefined indexes 2017-11-01 21:35:24 +01:00
Martin Ambrus 06de01cdd7 fix: upkeep decreases crop usage by real usage value of Roman units 2017-10-28 11:52:55 +02:00
Martin Ambrus 7270a69a63 fix: all location headers need to have exit after them! 2017-10-22 13:00:54 +02:00
Martin Ambrus d76669cb42 fix: last batch of manual INT typecastings 2017-10-18 01:11:25 +02:00
Martin Ambrus 6f3973748c fix: more manual typecastings 2017-10-18 00:59:49 +02:00