7 Commits
Author SHA1 Message Date
Andreas Lierschaft 99b3d96fc9 Fix white lion seal timer for real: correct item_proto.txt token
The text-proto parser (get_Item_LimitType_Value in ProtoReader.cpp)
matches LIMIT_TYPE columns against a positional table with the
"LIMIT_" prefix stripped ("TIMER_BASED_ON_WEAR", not
"LIMIT_TIMER_BASED_ON_WEAR" as previously set, which was rejected
outright and crash-looped the db process). This is purely a data-file
correction; the char_item.cpp/item.cpp logic from the previous commit
was already correct and untouched by the emergency revert.
2026-08-18 01:11:53 +02:00
Andreas Lierschaft 73a9baa44a Revert LIMIT_TIMER_BASED_ON_WEAR on item 71124 - not a valid text-proto token
The item_proto.txt CSV parser (Set_Proto_Item_Table) rejects this limit
type string outright ("Invalid value... col 16"), crash-looping the db
process on boot. The enum exists in item_length.h and the game-side
code fully supports it, but the text-format parser's string table
apparently never had it wired up. Reverting to LIMIT_NONE to restore
service; the wear-based timer fix in char_item.cpp/item.cpp needs a
different way to seed the item's LIMIT_TIMER_BASED_ON_WEAR configuration.
2026-08-18 01:06:38 +02:00
Andreas Lierschaft 039d537b54 Fix white lion mount seal (71124): timer now runs only while riding
The seal previously toggled the mount via a manual AddAffect+socket
flag entirely inside UseItemEx, bypassing Equip()/Unequip() and the
item's LIMIT_TIMER_BASED_ON_WEAR machinery entirely - so with
item_proto set to LIMIT_NONE, the mount never expired at all.

Now: activating starts the item's own wear-based countdown (via
StartTimerBasedOnWearExpireEvent, reusing socket0 as remaining-seconds
exactly like the existing wear-timer convention), deactivating pauses
it (StopTimerBasedOnWearExpireEvent), and it only ticks down while the
seal is active - matching the intended "usage time" behavior. Moved
the seal's own active-flag from socket0 to socket2 to stop colliding
with that convention. item_proto now grants 2 days (172800s) per
activation. When the usage time fully runs out while riding, both the
mount and the seal item are removed (timer_based_on_wear_expire_event
now calls ClearMountAttributeAndAffect() for ride items before
destroying them, mirroring the existing Unequip() cleanup path).
2026-08-18 00:59:07 +02:00
Andreas Lierschaft 77de1b8133 Verwaiste dragon_soul-Eintraege aus quest/locale_list entfernen
Die Liste referenzierte weiterhin die bereits geloeschten
dragon_soul*.quest-Dateien. Im laufenden Betrieb bislang folgenlos (Server
laeuft healthy, keine Warnungen in den Logs), aber fuer Konsistenz bereinigt.
2026-08-17 23:11:46 +02:00
Andreas Lierschaft 760f1998cc Drachenseelen-Quests entfernen
Loescht alle 5 dragon_soul*.quest-Quellen (dragon_soul, dragon_soul_refine,
dragon_soul_shop, dragon_soul_daily_gift, dragon_soul_daily_gift_mgr),
ihre pre_qc/-Duplikate sowie die zugehoerigen vorkompilierten
Quest-Cache-Artefakte unter quest/object/. Der NPC (vnum 20001,
"Alchemist") selbst bleibt bestehen, da er auch von unabhaengigen Quests
(energy_system, test_att_resist) genutzt wird.
2026-08-17 22:53:41 +02:00
Andreas Lierschaft 18c6772d35 Drachenseelensystem entfernen (1/3): komplett eigene Dateien loeschen
Erster Schritt der vollstaendigen Entfernung des Drachenseelensystems.
Loescht DragonSoul.h/.cpp (DSManager), dragon_soul_table.h/.cpp,
char_dragonsoul.cpp, questlua_dragonsoul.cpp sowie die zugehoerige
Datentabelle dragon_soul_table.txt. Diese Dateien sind zu 100% auf das
Drachenseelensystem beschraenkt und werden komplett entfernt.

Der Build kompiliert nach diesem Zwischenschritt noch NICHT (verwaiste
#include "DragonSoul.h" und Aufrufe in weiteren Dateien folgen in einem
separaten Commit) - das ist innerhalb dieser mehrteiligen Entfernung
erwartet.
2026-08-17 22:18:27 +02:00
Game ff1237686b Initial commit: server + serverfiles 2026-08-17 17:31:44 +00:00