Add AdventureBot self-care, supply restocking and secondary professions

This commit is contained in:
Nico committed 2026-10-27 23:56:43 +01:00
1 parent c0c799c4b6
commit 39a515dbd1
18 files changed
+889 -3

No files matched your search

+59
View File
@@ -1,3 +1,62 @@
# Aktuell: Selbstversorgung und gemeinsame Nebenberufe abgeschlossen
Stand 27.10.2026. Branch feature/clientless-player-core, vorheriger Commit
c0c799c4b6. Nutzer hat den lokalen Commit der Selbstversorgung beauftragt; kein Push.
Debug-Build -j10 erfolgreich installiert, alle 55 Testskripte bestanden.
Testserver PID 49765 läuft; frisches Ready und Port 8085 bestätigt.
AdventureSupplyMgr/Policy versorgt AdventureBots zu Tagesbeginn und nach
Kampfende bis zu jeweils einem nativen Stack: Verbände, Heil-/Manatränke,
Essen und Trinken. Vier Glutseidenstofftaschen54443 mit je22 Plätzen ergänzen
Arthoran. Alte Gegenstände blieben erhalten, Geld weiterhin0.
Migration world10 und characters01 angewendet und trotz SQL-Ignore gezielt
vorgemerkt. Persistierter Tagesstempel verhindert Nachschub bei jedem Login.
Nutzerregeln umgesetzt: Selbstheilung beginnt erst bei mindestens10% fehlenden
HP. Außerhalb des Kampfes zuerst ein nutzbarer Verband; bei Sperre direkt Essen,
nach Verband Essen nur bei weiter mindestens10% Mangel. Mananutzer trinken bei
passendem Mangel. Im Kampf nur native Tränke. Echte Item-Anfragen, Verbrauch,
Abklingzeiten und Verbandssperre; keine direkte HP/Mana-Zuweisung außer dem
expliziten Diagnosebefehl testrecovery. Intents behalten ihre ursprüngliche Frist.
Auf ausdrücklichen Nutzerwunsch erhalten alle AdventureBots die stufengerecht
verfügbaren Nebenberufe Erste Hilfe, Kochen, Angeln und Archäologie, innerhalb
nativer Traineranforderungen und Fertigkeitsgrenzen. Keine Hauptberufe geändert.
Arthoran gespeichert: ErsteHilfe375/375, Kochen525/525, Angeln525/525,
Archäologie375/375. Er verwendet schwere Netherstoffverbände21991.
Native Trainer erlauben Kochen/Angeln525 bei diesem Charakter.
Notwendige native Fehlerkorrektur: Player::GetPureMaxSkillValue hatte eine
invertierte Prüfung und lieferte für gelernte Fertigkeiten null. Fehlendes !
korrigiert, eigener nativer Regressionstest vorhanden. Nebenberufsausbildung
berücksichtigt sowohl Skill-Effekt118 als auch den nativen Lerneffekt44.
Live bestätigt:
- Vier22er-Taschen und alle fünf Stacks20, vorhandene Item-GUIDs erhalten.
- Markierte8%-Testverletzung: kein Verbrauch.
- Markierte80%-Testverletzung: echter Verbandverbrauch, danach4961/5249HP;
weniger als10% fehlend, daher kein Essen.
- Erneute Testverletzung bei nativer Verbandssperre: echtes Essen, volleHP.
- Gleicher Tagesstempel beim erneuten Login: Verband19/Essen19 bleiben bestehen,
kein weiterer Tagesnachschub.
- Echter Bärenkampf gegen Spawn300425 mit markiertem anfänglichem30%-Defizit:
Heiltrank22829 im Kampf verbraucht. Danach exakt je ein Verband, Heiltrank
und Essen ergänzt; alle fünf Bestände20. GespeichertHP5249, Geld0.
- Manaspezifisches Verhalten produktiv mit Adaptern geprüft, nicht mit echtem
Manacharakter. Administrative Testpositionierung ist kein Fernreisebeleg.
Arthoran bleibt angemeldet in den Verwüsteten Landen am Bären-Testplatz,
reagiert auf Gegner und versorgt sich selbst. Normales Lua-Profil bytegleich
restauriert; kein temporärer Override. Dokumentation: doc/clientless/supplies.md.
Belege: doc/clientless/checkpoints/2026-10-27-supplies/.
Logs: /tmp/vcore-supplies-build-final.log und /tmp/vcore-supplies-tests-final.log.
DB-Helfer /tmp/vcore-instance-db.py supplies_audit. Diagnose:
clientless combat supplies26, testrecovery26<fehlende-Prozent1..80>.
Die bisherigen Server-/Branchregeln und vertagte Pfadfindungsarbeit gelten weiter.
---
# Aktuell: Training, echte Gegner und Todesverhalten abgeschlossen
Stand 27.10.2026. Auf feature/clientless-player-core bleiben alle bisherigen
@@ -0,0 +1,26 @@
TrinityCore rev. c0c799c4b686+ 2026-10-27 23:17:05 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
SUPPLY_SECONDARY guid=26 skill=356 value=525 max=525
SUPPLY_SECONDARY guid=26 skill=794 value=375 max=375
SUPPLY_SECONDARY guid=26 skill=129 value=375 max=375
SUPPLY_SECONDARY guid=26 skill=185 value=525 max=525
SUPPLY_TEST_INJURY guid=26 missingPercent=8
SUPPLY_TEST_INJURY guid=26 missingPercent=80
SUPPLY_USE_REQUEST guid=26 role='bandage' item=21991 spell=27031 combat=0
SUPPLY_USED guid=26 role='bandage' item=21991
SUPPLY_RECOVERY_END guid=26 health=4961
SUPPLY_TEST_INJURY guid=26 missingPercent=30
SUPPLY_USE_REQUEST guid=26 role='bandage' item=21991 spell=27031 combat=0
SUPPLY_USE_REQUEST guid=26 role='food' item=27854 spell=27094 combat=0
SUPPLY_USED guid=26 role='food' item=27854
SUPPLY_RECOVERY_END guid=26 health=5249
SUPPLY_TEST_INJURY guid=26 missingPercent=30
COMBAT_START guid=26 target='GUID Full: 0xf130a56000000b1c Type: Creature Entry: 42336 Low: 2844' training=0 defending=0 until=0
COMBAT_END guid=26 target='GUID Full: 0xf130a56000000b1c Type: Creature Entry: 42336 Low: 2844' training=0
COMBAT_START guid=26 target='GUID Full: 0xf130a56000000b1c Type: Creature Entry: 42336 Low: 2844' training=0 defending=1 until=0
SUPPLY_USE_REQUEST guid=26 role='healing_potion' item=22829 spell=28495 combat=1
SUPPLY_USED guid=26 role='healing_potion' item=22829
COMBAT_END guid=26 target='GUID Full: 0xf130a56000000b1c Type: Creature Entry: 42336 Low: 2844' training=0
SUPPLY_TOPUP guid=26 role='bandage' item=21991 added=1 stack=20
SUPPLY_TOPUP guid=26 role='healing_potion' item=22829 added=1 stack=20
SUPPLY_TOPUP guid=26 role='food' item=27854 added=1 stack=20
SUPPLY_RESTOCK guid=26 day=20261027 daily=0 afterCombat=1
@@ -0,0 +1,11 @@
Debug build -j10 installed;55 tests/clientless scripts passed.
Native skill getter corrected and regression-tested.
Arthoran native skill values: FirstAid375/375, Cooking525/525, Fishing525/525, Archaeology375/375. Trainer requirements permit these ranks at level60.
Four new EmbersilkBags54443,22 slots each. Existing equipment/items preserved.
Each supply role initially20; bandage21991, healing22829, mana22832, food27854, drink28399. Money0 unchanged.
Marked8% injury: no supply use. Marked80% injury: real heavy netherweave bandage consumed; remainingHP4961/5249, no food because deficit<10%.
Marked30% injury with native bandage lockout: food consumed, HP5249/5249.
Same-day relog: bandage19/food19 remained; no daily topup.
Real bear fight with marked initial30% deficit: healing potion consumed in combat. After native combat exit, exactly1 bandage,1 healing potion,1 food replenished to20 each; no duplicate stacks.
Mana-specific behavior tested with production adapters, not a live mana-using character.
Isolated test positions set administratively offline; no long-distance travel claim.
+81
View File
@@ -0,0 +1,81 @@
# Selbstversorgung und Nebenberufe
AdventureBots erhalten bei Tagesbeginn und nach einem tatsächlich beendeten
Kampf passende Vorräte. Es werden vorhandene Bestände bis zu einem nativen
vollen Stack ergänzt, keine zusätzlichen Stacks angesammelt. Fünf Rollen:
Verbände, Heiltränke, Manatränke, Essen und Trinken. Die erlaubte kostenfreie
Beschaffung verwendet die native Gegenstandserzeugung und Inventarverwaltung.
Ein persistenter Tagesstempel verhindert erneute Tagesausgaben bei jedem Login.
Bei sehr niedrigen Stufen gibt es noch keinen nutzbaren Manatrank; andere
Vorräte werden trotzdem aufgefüllt. Bei Platzmangel wird später erneut versucht,
ohne vorhandene Gegenstände zu verwerfen.
Vier Glutseidenstofftaschen (Item 54443, je 22 Plätze) ergänzen leere Taschenslots.
Kleinere Taschen werden über den nativen Taschentausch mit Inhaltserhaltung
ersetzt. Bereits mindestens gleich große Taschen bleiben erhalten. Alte Taschen
und sonstige Gegenstände werden nicht gelöscht.
Alle AdventureBots erhalten die stufengerecht verfügbaren Ränge von Erste Hilfe,
Kochen, Angeln und Archäologie. Lehrzauber und Mindeststufen stammen aus den
nativen Trainerdaten, Skillstufen und Maxima aus der nativen Lernlogik. Fertigkeiten
werden innerhalb dieser Grenzen aufgefüllt. Das vergibt keine Hauptberufe und
ändert deren bestehende Profilfreigaben nicht. Zusätzliche Rezepte werden nur
insoweit gelernt, wie es die native automatische Fertigkeitsbelohnung vorsieht.
Die Benutzung bleibt echt: native Item-Zauberanfragen mit tatsächlicher Tasche,
Slot und Item-GUID, Selbstziel, Benutzungsvoraussetzungen, Abklingzeiten,
Verbandssperre und Gegenstandsverbrauch. Keine direkten HP-/Mana-Zuweisungen
im Versorgungsablauf, kein Zurücksetzen von Cooldowns. Ein gesondert markierter
Diagnosebefehl kann für Tests einen HP-Mangel herstellen.
## Heilungsreihenfolge
- Unter 10 Prozent fehlenden HP beginnt keine Selbstheilung.
- Außerhalb des Kampfes zuerst einen tatsächlich nutzbaren Verband versuchen.
Eine laufende andere Zauberaktion oder globale Abklingzeit zählt nicht bereits
als fehlgeschlagener Verbandversuch.
- Nach dem Verband nur bei weiterhin mindestens 10 Prozent fehlenden HP essen.
Ist kein Verband erlaubt, direkt Essen versuchen.
- Eine bereits begonnene Mahlzeit darf bis zur vollständigen Auffrischung laufen.
- Bei Mananutzern und mindestens 10 Prozent fehlendem Mana trinken; Krieger
benutzen weder Wasser noch Manatränke.
- Im Kampf nur native Heil-/Manatränke verwenden, bei mindestens 10 Prozent
fehlender passender Ressource. HP hat bei gleichzeitigem Mangel Vorrang.
Gemeinsame native Trank-Cooldowns und Kampfbegrenzungen bleiben wirksam.
- Eingehender Kampf unterbricht eine eigene Erholung. Selbstverteidigung, Tod
und Transport erhalten Vorrang. Der ursprüngliche Intent wird danach mit
unveränderter Endzeit fortgesetzt.
## Daten und Diagnose
Migrationen:
`world/2026_10_27_10_adventure_supplies.sql` und
`characters/2026_10_27_01_adventure_supplies.sql` unter `sql/custom/`.
Der editierbare Katalog enthält ausdrückliche Rollen und Stufenschwellen;
native Item-Voraussetzungen bleiben maßgeblich. Bei Verbänden wird der beste
bereits nutzbare Rang bevorzugt. Wiederholte Migrationen erhalten Änderungen.
`clientless combat supplies <guid>` zeigt Fertigkeiten, ausgewählte Vorräte,
Bestände und Taschen. `clientless combat testrecovery <guid> <fehlende-Prozent>`
erzeugt ausschließlich bei einem lebenden, kampffreien verwalteten Bot eine
markierte Testverletzung (1–80 Prozent). Das ersetzt keinen echten Schadensfall.
Automatisierte Prüfung: 55 Testskripte erfolgreich, einschließlich produktiver
Erholungssteuerung, exakter Zehn-Prozent-Grenze, nutzbarer Verbandränge, nativer
Item-Anfragen, Tagesstempel und stufengerechter Nebenberufsgrenzen.
Live erfolgreich geprüft: vier Glutseidenstofftaschen, Erste Hilfe375 und
schwere Netherstoffverbände, alle vier Nebenberufe, erhaltene Altgegenstände und
Geld0. Bei8%Testdefizit kein Verbrauch; bei80% zuerst ein tatsächlich verbrauchter
Verband. Anschließend weniger als10%HP fehlend, daher kein Essen. Bei erneuter
Testverletzung mit nativer Verbandssperre echtes Essen bis5249/5249HP.
Gleicher Tagesstempel beim erneuten Login: keine neue Ausgabe. Echter Bärenkampf
mit markiertem Anfangsdefizit: Heiltrank im Kampf verbraucht, danach fehlende
Vorräte exakt bis20 ergänzt. Die Anfangsverletzungen waren Diagnosefixtures;
Fernanreise und Manaverbrauch wurden damit nicht live geprüft. Belege unter
`checkpoints/2026-10-27-supplies/`.
Die native Abfrage `Player::GetPureMaxSkillValue` hatte eine invertierte Prüfung
auf vorhandene Fertigkeitsränge und lieferte bei gelernten Fertigkeiten null.
Die Prüfung ist korrigiert; ein eigener nativer Regressionstest sichert reguläre
Werte sowie fehlende, gelöschte und leere Fertigkeiten ab. Nebenberufsränge mit
EffectLearnSkill44 und normalen SpellMgr-Skillknoten werden beide berücksichtigt.