Compare commits
65
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba2a4e629c | ||
|
|
f8ee1d0ff6 | ||
|
|
65e4abb0b9 | ||
|
|
768810a82d | ||
|
|
a6572242c6 | ||
|
|
fe03ea8ca5 | ||
|
|
6f8f59ec6d | ||
|
|
ae0b7513d9 | ||
|
|
3056063f12 | ||
|
|
2778cf9bdd | ||
|
|
3c361e435a | ||
|
|
be049baacc | ||
|
|
856832e7bd | ||
|
|
7b4994400b | ||
|
|
d1ef007cef | ||
|
|
69b5a1c4a1 | ||
|
|
649915e575 | ||
|
|
60cab950bd | ||
|
|
77648c6b53 | ||
|
|
373818628d | ||
|
|
bc8f171055 | ||
|
|
19075b6c75 | ||
|
|
54d77d1e4d | ||
|
|
2841ee973b | ||
|
|
49712aadfe | ||
|
|
321a28640c | ||
|
|
0173a434f4 | ||
|
|
cac4142ec1 | ||
|
|
a758239da9 | ||
|
|
d3273c677e | ||
|
|
d6fea6ee68 | ||
|
|
04aa87fcfc | ||
|
|
e333f2f9fc | ||
|
|
39a515dbd1 | ||
|
|
c0c799c4b6 | ||
|
|
e18a416bf4 | ||
|
|
440c53acd7 | ||
|
|
722b513ee0 | ||
|
|
119d63ed1c | ||
|
|
ca656403bb | ||
|
|
8df9591c99 | ||
|
|
4474714c00 | ||
|
|
1164a72ea3 | ||
|
|
01a9ba4b0b | ||
|
|
56da0d60cf | ||
|
|
b37a0ddcc4 | ||
|
|
366615bcb9 | ||
|
|
9d4a862b7d | ||
|
|
2bcffa5131 | ||
|
|
ae2a4a0f08 | ||
|
|
6e17dedff2 | ||
|
|
fe7b5e0f02 | ||
|
|
93c3df1c95 | ||
|
|
24fb292cee | ||
|
|
4c04cd88de | ||
|
|
b14c864814 | ||
|
|
05fd748537 | ||
|
|
5ac9ed673c | ||
|
|
0c2e333bb4 | ||
|
|
7013087bcd | ||
|
|
fe96d310d6 | ||
|
|
df55203a96 | ||
|
|
046cb79b7a | ||
|
|
fa8e7d07dd | ||
|
|
9b4985b5aa |
No files matched your search
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"original": {
|
||||
"graph": "5d632279d7e25748f3bd8e7ffe954482821334bef12088aad885e6a3ef79c6ac",
|
||||
"executor": "016cdfb51387ab58d3e15a36b91e8fd69381b66962edd62214e4c54868340468",
|
||||
"header": "61ccbca3b666016a465d8a9a9049dfa5420177e66aa073fdfe927d749ad2b53b"
|
||||
},
|
||||
"patched": {
|
||||
"graph": "a9da61755df58666cfa2c6deb7f5d886760036936bc51b51b91ad4ef0ff76ecd",
|
||||
"executor": "cbb79474640192c5c853174e219deade3694231060d90163362385db2fd6fb6c",
|
||||
"header": "64bd460621aa63c3cf7e341173249a5b945091e955e2673523478b0762e89dde"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Export the local Cataclysm DBC geography as an editable world-DB catalog.
|
||||
|
||||
Does not connect to a database. Existing operator edits survive repeated imports.
|
||||
"""
|
||||
import argparse
|
||||
import struct
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def dbc(path, fields):
|
||||
data = path.read_bytes()
|
||||
magic, count, actual, size, strings_size = struct.unpack_from('<4s4I', data)
|
||||
if magic != b'WDBC' or actual != fields or size != fields * 4:
|
||||
raise ValueError(f'Unexpected Cataclysm DBC layout: {path}')
|
||||
if len(data) != 20 + count * size + strings_size:
|
||||
raise ValueError(f'Truncated or unsupported DBC: {path}')
|
||||
strings = data[20 + count * size:]
|
||||
rows = [struct.unpack_from('<' + 'I' * fields, data, 20 + i * size)
|
||||
for i in range(count)]
|
||||
|
||||
def name(offset):
|
||||
if offset >= len(strings):
|
||||
raise ValueError(f'Invalid string offset in {path}')
|
||||
return strings[offset:].split(b'\0', 1)[0].decode('utf-8')
|
||||
|
||||
return rows, name
|
||||
|
||||
|
||||
def quote(value):
|
||||
# Hex strings avoid dependence on session SQL backslash escaping modes.
|
||||
return "CONVERT(X'" + value.encode('utf-8').hex() + "' USING utf8mb4)"
|
||||
|
||||
|
||||
def export(directory):
|
||||
maps, map_name = dbc(directory / 'Map.dbc', 20)
|
||||
areas, area_name = dbc(directory / 'AreaTable.dbc', 26)
|
||||
map_ids = {r[0] for r in maps}
|
||||
area_ids = {r[0] for r in areas}
|
||||
if any(r[2] and r[2] not in area_ids for r in areas):
|
||||
raise ValueError('AreaTable contains missing parent areas')
|
||||
sql = ["-- Generated from local Cataclysm 4.3.4 DBC; do not overwrite operator edits.",
|
||||
"-- All access policies are AdventureBot-only; never player restrictions.",
|
||||
"CREATE TABLE IF NOT EXISTS vcore_adventure_map_catalog (",
|
||||
" map_id INT UNSIGNED NOT NULL PRIMARY KEY,",
|
||||
" display_name VARCHAR(255) NOT NULL,",
|
||||
" map_type TINYINT UNSIGNED NOT NULL,",
|
||||
" expansion TINYINT UNSIGNED NOT NULL,",
|
||||
" notes VARCHAR(255) NOT NULL DEFAULT ''",
|
||||
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;",
|
||||
"CREATE TABLE IF NOT EXISTS vcore_adventure_area_catalog (",
|
||||
" area_id INT UNSIGNED NOT NULL PRIMARY KEY,",
|
||||
" map_id INT UNSIGNED NOT NULL,",
|
||||
" parent_area_id INT UNSIGNED NOT NULL DEFAULT 0,",
|
||||
" display_name VARCHAR(255) NOT NULL,",
|
||||
" allowed_factions TINYINT UNSIGNED DEFAULT NULL COMMENT 'NULL inherit; 0 closed; 1 Alliance; 2 Horde; 3 both',",
|
||||
" min_level TINYINT UNSIGNED DEFAULT NULL COMMENT 'Recommended level band, NULL inherit/unknown',",
|
||||
" max_level TINYINT UNSIGNED DEFAULT NULL COMMENT 'Recommended level band, not an upper access limit',",
|
||||
" max_level_gap TINYINT UNSIGNED DEFAULT NULL COMMENT 'Allowed levels below min_level; NULL inherit, default 5',",
|
||||
" prefer_flight TINYINT UNSIGNED DEFAULT NULL COMMENT 'NULL inherit; 0 normal; 1 prefer legal flight',",
|
||||
" notes VARCHAR(255) NOT NULL DEFAULT '',",
|
||||
" KEY parent_area (parent_area_id), KEY map_area (map_id)",
|
||||
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;",
|
||||
"START TRANSACTION;"]
|
||||
for r in sorted(maps):
|
||||
sql.append('INSERT IGNORE INTO vcore_adventure_map_catalog '
|
||||
'(map_id,display_name,map_type,expansion) VALUES '
|
||||
f'({r[0]},{quote(map_name(r[6]))},{r[2]},{r[16]});')
|
||||
# Native AreaTable also contains obsolete areas whose Map row is absent.
|
||||
# Retain their identity explicitly; they must not become usable destinations.
|
||||
for map_id in sorted({r[1] for r in areas} - map_ids):
|
||||
sql.append('INSERT IGNORE INTO vcore_adventure_map_catalog '
|
||||
'(map_id,display_name,map_type,expansion,notes) VALUES '
|
||||
f"({map_id},'Missing Map.dbc entry',255,0,'Unavailable native map');")
|
||||
|
||||
alliance = {1, 12, 141, 3524, 3525, 1519, 1537, 1657, 3557,
|
||||
4714, 4755, 4774, 4706, 5351}
|
||||
horde = {14, 85, 215, 3430, 3433, 1497, 1637, 1638, 3487,
|
||||
4707, 4720, 4737}
|
||||
outland = {3483, 3521, 3519, 3518, 3522, 3523, 3520, 3703}
|
||||
cataclysm = {616, 4922, 5034, 5042, 5095, 5389}
|
||||
# Native city roots still have physical surroundings. These semantic
|
||||
# catalog parents are editable and never alter the native DBC hierarchy.
|
||||
city_parents = {1519:12,1537:1,1657:141,1637:14,1638:215,1497:85,
|
||||
3487:3430,3557:3524,3703:3519,4395:2817}
|
||||
area_maps = {r[0]:r[1] for r in areas}
|
||||
for r in sorted(areas):
|
||||
area, map_id, parent = r[:3]
|
||||
if not parent and area_maps.get(city_parents.get(area)) == map_id:
|
||||
parent = city_parents[area]
|
||||
faction = '1' if area in alliance else '2' if area in horde else 'NULL'
|
||||
note = 'Racial home region/capital' if faction != 'NULL' else ''
|
||||
if area == 5146:
|
||||
faction, note = '0', 'Vashjir closed to all AdventureBots, including child areas'
|
||||
if map_id not in map_ids:
|
||||
faction, note = '0', 'Unavailable native map'
|
||||
flight = '1' if area in outland | cataclysm or (map_id == 571 and parent == 0) else 'NULL'
|
||||
sql.append('INSERT IGNORE INTO vcore_adventure_area_catalog '
|
||||
'(area_id,map_id,parent_area_id,display_name,allowed_factions,prefer_flight,notes,min_level,max_level) '
|
||||
f'SELECT {area},{map_id},{parent},{quote(area_name(r[11]))},{faction},{flight},{quote(note)},'
|
||||
'z.min_level,z.max_level FROM (SELECT 1) seed '
|
||||
f'LEFT JOIN vcore_adventure_zone z ON z.zone_id={area} AND z.enabled=1;')
|
||||
# Level bands are seeded only on INSERT, including deliberately NULL edits.
|
||||
sql.append('COMMIT;')
|
||||
return '\n'.join(sql) + '\n'
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('dbc_directory', type=Path)
|
||||
parser.add_argument('output_sql', type=Path)
|
||||
args = parser.parse_args()
|
||||
args.output_sql.write_text(export(args.dbc_directory), encoding='utf-8')
|
||||
@@ -0,0 +1,17 @@
|
||||
-- Vcore C8.5: local semantic world points for clientless AdventureBots.
|
||||
CREATE TABLE IF NOT EXISTS `vcore_clientless_world_point` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`point_key` varchar(100) NOT NULL,
|
||||
`category` varchar(64) NOT NULL,
|
||||
`map` smallint(5) unsigned NOT NULL DEFAULT 0,
|
||||
`position_x` float NOT NULL DEFAULT 0,
|
||||
`position_y` float NOT NULL DEFAULT 0,
|
||||
`position_z` float NOT NULL DEFAULT 0,
|
||||
`orientation` float NOT NULL DEFAULT 0,
|
||||
`enabled` tinyint(1) unsigned NOT NULL DEFAULT 1,
|
||||
`comment` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uq_vcore_clientless_world_point_key` (`point_key`),
|
||||
KEY `idx_vcore_clientless_world_point_category_map` (`category`,`map`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Vcore AdventureBot semantic local world points';
|
||||
@@ -0,0 +1,31 @@
|
||||
-- Vcore C8.6: incremental AdventureBot travel graph.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `vcore_clientless_travel_node` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`node_key` varchar(100) NOT NULL,
|
||||
`node_type` varchar(32) NOT NULL DEFAULT 'location',
|
||||
`world_point_key` varchar(100) NOT NULL,
|
||||
`enabled` tinyint(1) unsigned NOT NULL DEFAULT 1,
|
||||
`comment` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uq_vcore_clientless_travel_node_key` (`node_key`),
|
||||
KEY `idx_vcore_clientless_travel_node_world_point` (`world_point_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Vcore AdventureBot travel graph nodes';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `vcore_clientless_travel_edge` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`from_node_key` varchar(100) NOT NULL,
|
||||
`to_node_key` varchar(100) NOT NULL,
|
||||
`edge_type` varchar(32) NOT NULL DEFAULT 'ground',
|
||||
`cost` float NOT NULL DEFAULT 1,
|
||||
`bidirectional` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`enabled` tinyint(1) unsigned NOT NULL DEFAULT 1,
|
||||
`comment` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uq_vcore_clientless_travel_edge`
|
||||
(`from_node_key`,`to_node_key`,`edge_type`),
|
||||
KEY `idx_vcore_clientless_travel_edge_from` (`from_node_key`),
|
||||
KEY `idx_vcore_clientless_travel_edge_to` (`to_node_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Vcore AdventureBot travel graph edges';
|
||||
@@ -0,0 +1,14 @@
|
||||
-- Vcore C8.7: recorded geometry for bidirectional ground edges.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `vcore_clientless_travel_edge_point` (
|
||||
`edge_id` int(10) unsigned NOT NULL,
|
||||
`point_index` int(10) unsigned NOT NULL,
|
||||
`map` smallint(5) unsigned NOT NULL DEFAULT 0,
|
||||
`position_x` float NOT NULL DEFAULT 0,
|
||||
`position_y` float NOT NULL DEFAULT 0,
|
||||
`position_z` float NOT NULL DEFAULT 0,
|
||||
`orientation` float NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`edge_id`,`point_index`),
|
||||
KEY `idx_vcore_clientless_travel_edge_point_edge` (`edge_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Recorded geometry for Vcore AdventureBot travel graph edges';
|
||||
@@ -0,0 +1,126 @@
|
||||
# Gebietskatalog, POI-Zuordnung und sichere Builds
|
||||
|
||||
## Befund und Korrektur
|
||||
|
||||
Pibwin (GUID88, Stufe18) kündigte ein Abenteuer bei „Dalaran Krasus' Landing“ an.
|
||||
Der importierte Ort `poi_guard_140` lag tatsächlich auf Karte1 bei5831/508/Z3,55,
|
||||
Gebiet2078, Zone148 (Dunkelküste). Der Gebietskatalog prüfte deshalb einen
|
||||
niedrigstufigen Ort, nicht Dalaran. Ursache war die Auswahl des nächsten
|
||||
`game_tele`-Ankers nach X/Y über verschiedene Kontinente hinweg.
|
||||
|
||||
POIs erhalten ihre Karte jetzt über die nativen Gesprächsmenüs der tatsächlich
|
||||
platzierten NPCs (`creature_template_gossip`, `gossip_menu_option`, `creature`).
|
||||
Untermenüs werden verfolgt, Zyklen abgefangen. Mehrdeutige oder fehlende native
|
||||
Zuordnungen werden nicht durch eine Koordinatenvermutung ersetzt. Erst innerhalb
|
||||
der eindeutigen Karte werden die Bodenhöhe und die Gebietszuordnung bestimmt.
|
||||
|
||||
`clientless adventure repairimport` erkennt unveränderte generierte Orte anhand
|
||||
von Quelle, Name, Position und Geografiemetadaten. Es korrigiert ihre Karte/Höhe/
|
||||
Gebietsdaten und deaktiviert solche ohne sichere native Zuordnung. Manuell
|
||||
veränderte Orte sowie Original-POIs und aufgezeichnete Reiserouten bleiben erhalten.
|
||||
|
||||
Die Katalogmigration `2026_10_30_00_adventure_city_parents.sql` ordnet native
|
||||
Stadtwurzeln ihren geografischen Umgebungen zu, insbesondere Dalaran4395 dem
|
||||
Kristallsangwald2817 und Shattrath3703 Terokkar3519. Auch die acht Volksstädte
|
||||
bekommen ihre Heimatregion als semantischen Katalog-Elternbereich. Vorhandene
|
||||
manuelle Elternzuordnungen bleiben bestehen; Karten müssen übereinstimmen.
|
||||
Neue DBC-Exporte erzeugen dieselben editierbaren Vorgaben. Die native DBC- und
|
||||
Spielergebietshierarchie wird nicht geändert. Levelminimum, Fraktionssperren und
|
||||
fehlende Flugvorgaben werden über die vorhandene Katalogvererbung berücksichtigt.
|
||||
|
||||
Gruppenpläne prüfen auch das tatsächlich angekündigte nächste Ziel gegen die
|
||||
Berechtigungen des Bots. Ungültige gespeicherte/manuelle Ziele werden nicht mehr
|
||||
beworben. Bei Einladungen werden sowohl Anführer als auch Teilnehmer geprüft.
|
||||
Gespeicherte Tagespläne werden durch die vorhandene Reparatur beim Laden bzw.
|
||||
Katalogwechsel auf zulässige Ziele umgestellt.
|
||||
|
||||
## Verbindlicher Ablauf vor künftigen Builds
|
||||
|
||||
1. Den bisherigen Wert von `Clientless.Adventure.Loader.Enabled` sichern, auf0
|
||||
setzen, `reload config` und `clientless population reload` ausführen. Bei einer
|
||||
noch laufenden Loader-Operation deren Abschluss abwarten und erneut laden.
|
||||
2. `clientless logout safe all` ausführen. Der Welt-Thread fordert einmalig einen
|
||||
sicheren Verhaltensstopp an und lässt die bestehenden Controller weiterlaufen.
|
||||
Er wartet auf lebende, geladene Bots ohne Kampf, Transportbindung, Taxi, Flug,
|
||||
Fall, Teleport, Zauber oder aktive Bewegung. Es gibt keinen erzwungenen Logout
|
||||
nach einer Wartefrist. Menschen und normale Netzwerksitzungen sind ausgenommen.
|
||||
3. Mit `clientless logout status` warten, bis `pending=0 sessions=0` gemeldet wird.
|
||||
Erst dann `cmake --build /home/wow_admin/wow_cata_server/build/debug -j10` starten.
|
||||
Bei blockierten Bots zuerst die Ursache untersuchen; nicht nebenher bauen.
|
||||
4. Den Loader durch Installation und Neustart hindurch pausiert lassen.
|
||||
Laufende Binärdateien nicht überschreiben; nach sauberem Serverstopp installieren.
|
||||
Frischen Ready-Eintrag, Prozess und Listener prüfen.
|
||||
5. `clientless logout resume` beendet die Sammel-Anforderung, falls derselbe
|
||||
Weltprozess weiterläuft. Nach Neustart ist sie ohnehin zurückgesetzt.
|
||||
Bisherige Loader-Konfiguration wiederherstellen, `reload config` und
|
||||
`clientless population reload` ausführen. Der Loader lädt die Bots wieder
|
||||
schrittweise. Die Regel ist zusätzlich dauerhaft in `AGENTS.md` festgehalten.
|
||||
|
||||
Einzelne Bots können mit `clientless logout safe <guid>` ebenso sicher abgemeldet
|
||||
werden. Der bisherige unmittelbare Einzel-Logout bleibt als Administrationswerkzeug
|
||||
bestehen und ist nicht der empfohlene Build-Ablauf.
|
||||
|
||||
Beim ersten Übergang auf diesen Ablauf war der sichere Sammel-Befehl noch nicht
|
||||
installiert. Die vorhandenen sicheren Intent-Stopps dienten zur Abmeldung.
|
||||
Für zwei im alten Schiffscode festhängende Bots wurde zunächst der bereits fertig
|
||||
gebaute vorherige Transportfix installiert. Tholgar92 und Lillina118 erreichten
|
||||
anschließend regulär den Anleger (`Arrived`, `passenger=0`,11:54:06).
|
||||
Bei den zuletzt stationären Bots Edwin36 und Drakogzug77 wurden vermutete
|
||||
verwaiste native Kampfzustände separat mit `combatstop` bereinigt; dies ist kein
|
||||
Bestandteil des neuen automatischen Logout-Verfahrens. Anschließend wurden ihre
|
||||
sicheren Stopps und Offline-Zustände bestätigt. Vor dem neuen Build waren sämtliche
|
||||
110 Bots offline, der Loader aus und nur eine normale Spielersitzung aktiv.
|
||||
|
||||
## Weltkarte
|
||||
|
||||
Der vorhandene GM-Befehl lautet `.cheat explore 1`. Ohne Zielauswahl wird die
|
||||
eigene Karte aufgedeckt; bei Auswahl eines Spielers dessen Karte. `.cheat explore 0`
|
||||
löscht die Erkundungsbits wieder. Behoben wurden die bisher falsche Zielperson
|
||||
und das wirkungslose Löschen per `SetFlag(...,0)`. Der Befehl schreibt jetzt alle
|
||||
Erkundungsfelder des ausgewählten Spielers korrekt.
|
||||
|
||||
## Prüfstand
|
||||
|
||||
113 isolierte Clientless-Testprogramme erfolgreich. Neue Prüfungen führen die
|
||||
produktive POI-Zuordnung, den nativen Logout-Sicherheitscheck und den bestehenden
|
||||
Kartenbefehl aus. Weitere Prüfungen bestätigen die Katalogmigration einschließlich
|
||||
Idempotenz und Erhalt manueller Eltern sowie neue DBC-Exporte und Gruppenpläne
|
||||
mit unzulässigem Folgeziel. Die Integrationsergebnisse nach Installation werden
|
||||
im Session-Checkpoint und im Abschlussbericht festgehalten.
|
||||
|
||||
Build mit bestehender Debug/Ninja-Konfiguration und `-j10` erfolgreich, ohne
|
||||
parallel eingeloggte Bots. Logs unter `/tmp/vcore-city-safe-logout-*`, Testausgaben
|
||||
unter `/tmp/vcore-travel-fixes-tests/`. Geografiesnapshots unter
|
||||
`/tmp/vcore-city-fix-state/` enthalten keine Konfigurationszugangsdaten.
|
||||
|
||||
### Bestätigte Integration
|
||||
|
||||
- Finaler Testserverstart: PID 446178, frische Ready-Meldung nach 10 Sekunden,
|
||||
Listener 8085/8087. Beide Builds mit `-j10` bei 0 Bots erfolgreich, ohne OOM-Abbruch.
|
||||
- Reparatur: 437 native Wächter-POIs, 166 nicht nutzbare Koordinaten übersprungen,
|
||||
2916 aktive Locations einschließlich Instanzvarianten. Die Höhenprüfung nutzt
|
||||
zunächst NPC-Höhe +3; bei weit entferntem Bodentreffer folgt eine Probe von +35.
|
||||
Der nähere Treffer gewinnt. Nahe Innenböden werden beibehalten.
|
||||
- `poi_guard_140`: Karte 571, X 5831, Y 508,617, Z 657,7, Gebiet 4564,
|
||||
Zone 4395 Dalaran. Pibwin auf Stufe 18: `own=0 invitation=0`. Sein Tagesblock
|
||||
12 behält Adventure, bekommt `poi_tele_651` (Blutmythosinsel, niedriger Levelbereich).
|
||||
- Katalogeltern 4395→2817 und 3703→3519 bestätigt. Policytests bestätigen
|
||||
geerbte Levelminima 77 bzw. 62 und Flugvorgaben.
|
||||
- Nodes, Kanten und Transportstopps vor/nach Reparatur bytegleich. Alle 17
|
||||
vorherigen manuellen Ortsdatensätze unverändert. 236 generierte Datensätze
|
||||
repariert/deaktiviert, 12 semantische Datensätze ergänzt. Snapshots unter
|
||||
`/tmp/vcore-city-fix-state/`.
|
||||
- Sammel-Logout mit Arthoran 26 und Pibwin 88 live ausgeführt: erste Rückmeldung
|
||||
pending=2/sessions=2/flight=1. Arthorans native Taxiverbindung 2221 endete vor
|
||||
seinem `CLIENTLESS_SAFE_LOGOUT`, danach Pibwins Bewegungsabschluss und Logout.
|
||||
Abschluss: `pending=0 sessions=0`. Kein zeitgesteuerter Zwangslogout.
|
||||
- Sammel-Anforderung mit `logout resume` beendet, ursprünglichen Loaderwert 1
|
||||
wiederhergestellt, Config und Population neu geladen. Bots kehren schrittweise
|
||||
zurück; keine neuen Sammel-Logouts nach der Wiederaufnahme. Zielkonfiguration
|
||||
unverändert: 50 persistente + 5 temporäre Bots pro Fraktion. Abschließend alle
|
||||
110 Bots online, keine ausstehenden Logins, Loader ohne Fehler.
|
||||
|
||||
Die Liveprüfung bestätigt Zielberechtigung und Logoutablauf. Sie ersetzt keine
|
||||
vollständige Abnahme sämtlicher Reisewege oder aller reparierten POIs. Der
|
||||
Kartenbefehl wurde am produktiven Handler isoliert geprüft; keinem Spieler wurde
|
||||
ungefragt seine Karte verändert.
|
||||
@@ -0,0 +1,138 @@
|
||||
# Gruppentest am 30.10.2026 bis 04:00 Uhr MEZ
|
||||
|
||||
Die automatische Beobachtung lief von 02:20:56 bis 04:00:00 Uhr MEZ. Der Server
|
||||
läuft weiter. Um 04:00 Uhr wurden die ursprünglichen 15 Prozent für die temporäre
|
||||
Botrotation wiederhergestellt. Der Loader bleibt aktiviert; eingestellt sind
|
||||
weiterhin je Fraktion 50 persistente und 5 temporäre Bots.
|
||||
|
||||
Es gab keinen unbeabsichtigten Laufzeitabsturz. Ein angekündigter Neustart um
|
||||
02:37 Uhr spielte die während der Beobachtung gefundene Korrektur ein.
|
||||
|
||||
## Änderungen und Testaufbau
|
||||
|
||||
- `373818628d`: Instanzmodi, vorzeitiger Gruppenaufbruch und Flugvoraussetzungen.
|
||||
- `77648c6b53`: Navigationsfallbacks nach vorgezogenem Aufbruch erhalten.
|
||||
- Die Flugvoraussetzung gilt für die im editierbaren Gebietskatalog ausgewiesenen
|
||||
Flugregionen der Scherbenwelt und von Cataclysm. Nordend verlangt zusätzlich
|
||||
Stufe 68 und Kaltwetterflug. Die niedrigstufigen Blutelfen- und Draenei-Gebiete
|
||||
auf Karte 530 bleiben getrennt. Builds mit `-j10`; 69 Tests bestanden. Für die
|
||||
anschließend gefundene Regression wurden drei Produktionstests erneut geprüft.
|
||||
- Von 110 Bots nahmen 92 teil. 18 Bots unter Stufe 15 blieben ausgenommen.
|
||||
- Nur die Blöcke 02:00–03:00 und 03:00–04:00 Uhr wurden geändert: zuerst
|
||||
Gruppensuche in Sturmwind beziehungsweise Orgrimmar, danach 76 Instanz- und
|
||||
16 Raid-Intents. Alle gewählten Ziele bestanden den nativen Eligibility-Check.
|
||||
- Nach sicherem Logout wurden Teilnehmer in ihre Hauptstädte gesetzt und alte
|
||||
Leichen-, Geist-, Transport-, Taxi-, Besuchs- und Handoff-Reste bereinigt.
|
||||
Die übrigen Tagesblöcke blieben erhalten.
|
||||
|
||||
## Bestätigte Abläufe
|
||||
|
||||
Alle 110 Bots waren gleichzeitig online. Es gab maximal 26 Gruppen mit
|
||||
Testteilnehmern, am Ende 17. Im Beobachtungsfenster wurden 156 Meldungen im
|
||||
Hauptstadtchat und 220 Bot-Einladungen protokolliert. Vorbereitungsszenen und
|
||||
Suchgänge wurden tatsächlich ausgeführt. Drei Fünfergruppen wurden vor dem
|
||||
Stundenwechsel vollständig und begannen ihre Sammelfrist. Auch die feste
|
||||
Sammelphase ab 02:55 Uhr und der Wechsel um 03:00 Uhr wurden beobachtet.
|
||||
|
||||
**Sechs tatsächliche Eintritte und sechs Rückkehren sind bestätigt:**
|
||||
|
||||
| Bot | Besuch |
|
||||
| --- | --- |
|
||||
| Elaansa, GUID 110 | Verlies, Karte 34, Instanz 1 |
|
||||
| Hilddis, GUID 56 | Verlies, Karte 34, Instanz 3 |
|
||||
| Hildda 64, Nimbin 74, Noranda 53 | gemeinsam Festung der Stürme, Karte 550, Instanz 2 |
|
||||
| Brynli, GUID 84 | Festung der Stürme, Karte 550, Instanz 4 |
|
||||
|
||||
Alle sechs Eintritte verwendeten den normalen Modus. Ein heroischer Eintritt
|
||||
wurde in diesem Lauf nicht bestätigt. Fünf Rückkehren erfolgten in der geplanten
|
||||
Austrittsphase ab 03:55 Uhr; Brynli kehrte bereits früher zurück. Die Rückkehrlogs
|
||||
weisen HP-Verluste von 1, 37, 46, 32, 10 und 1 Prozent aus, jeweils innerhalb der
|
||||
vereinbarten Grenze. Danach folgte die Rastphase.
|
||||
|
||||
Elaansas ursprünglicher Folgeslot »Verlies« blieb trotz des zuvor kopierten
|
||||
Deadmines-Ziels erhalten. Reine Botgruppen besuchten die Instanzen weiterhin
|
||||
performativ; dies war keine Abnahme von Kampfrollen oder Bossmechaniken.
|
||||
|
||||
51 Transportübergänge wurden beendet, davon 43 mit Testteilnehmern. Das sind
|
||||
Fahrten, nicht 51 unterschiedliche Bots. Die neue Zeppelinverbindung wurde
|
||||
viermal von Orgrimmar nach Warsong und dreimal zurück vollständig durchlaufen.
|
||||
Für die Kraken gab es drei erfolgreiche Ausstiege in Valiance sowie Fehlerfälle.
|
||||
Auch Tiefenbahn und Bravery wurden erfolgreich benutzt.
|
||||
|
||||
Eine Stichprobe von elf gespeicherten Bots in den verpflichtenden Flugregionen
|
||||
zeigte durchgehend Reiten 225, Lizenz 90267, Kaltwetterflug 54197 und drei gelernte
|
||||
Flugreittiere. Eine unqualifizierte Belegung wurde nicht gefunden.
|
||||
|
||||
Die höchste gemessene RSS-Belegung betrug etwa 7,521 GiB. Die CPU-Prozessanzeige
|
||||
lag meist bei rund einem bis 1,3 Kernen im Zeitmittel. Das ist keine Messung der
|
||||
maximalen Ticklatenz und keine Prognose für den Produktionsserver.
|
||||
|
||||
## Während der Beobachtung behoben
|
||||
|
||||
Die frühe Intentkopie wurde nach einem gescheiterten Reiseversuch ständig erneut
|
||||
angewendet. Dadurch überschrieb sie den normalen Navigationsfallback und plante
|
||||
das ursprüngliche Instanzziel immer wieder neu. Commit `77648c6b53` wendet die
|
||||
Kopie nur beim Übergang an. Danach gelten das wirksame Fallbackziel und dessen
|
||||
Vererbung an die Gruppe. Ein Gruppenaustritt setzt den Bot ebenfalls nicht zurück.
|
||||
|
||||
Regressionstests prüfen wiederholte Updates, die Vererbung des Fallbackziels und
|
||||
das Verlassen der Gruppe. Die 1.693 rohen EARLY-Meldungen stammen aus dieser
|
||||
Wiederholung vor der Korrektur; sie sind keine 1.693 echten Aufbrüche. Nach dem
|
||||
Einspielen trat die Schleife nicht erneut auf.
|
||||
|
||||
## Offene Befunde
|
||||
|
||||
1. **Gruppen verlieren beim Neustart gildenlose Mitglieder.** Der Core lud 25
|
||||
Gruppendefinitionen und 70 Mitgliedszeilen. `Group::LoadMemberFromDB` deutet
|
||||
einen fehlgeschlagenen Aufruf von `GetPlayerGuildIdByGUID` als fehlenden
|
||||
Charakter und löscht das Mitglied. Die Cachefunktion liefert aber auch für
|
||||
einen vorhandenen Charakter ohne Gilde `false`. Die Gruppen bildeten sich
|
||||
anschließend neu. Die frühere Aussage, die Mitgliedschaften seien erhalten
|
||||
geblieben, ist damit korrigiert. Diese native Ursache betrifft auch Spieler
|
||||
ohne Gilde und wurde während des laufenden Tests nicht umgebaut.
|
||||
2. **Unterbrochener Schiffsausstieg kann hängen bleiben.** Tholgar 92 und Lillina
|
||||
118 erzeugten wiederholte Meldungen »unsafe gap over 8 yards«. Tholgar begann
|
||||
um 03:08:32 Uhr den Ausstieg in Valiance. Um 03:09:36 Uhr fuhr das Schiff mit
|
||||
ihm auf dem Übergangsweg wieder ab. Die Wiederaufnahme versucht danach den
|
||||
Endstand, der von seiner Zwischenposition über acht Yards entfernt liegt.
|
||||
Die Aufnahme selbst ist kontinuierlich: größter Abstand in Sturmwind 4,043,
|
||||
in Valiance 3,013 Yards. Keine Aufnahme wurde verändert. Die 12.620 Meldungen
|
||||
sind Wiederholungen dieser zwei Bots, keine 12.620 unterschiedlichen Fahrten.
|
||||
3. **Die Anreise bleibt die größte Begrenzung.** Nur 6 von 92 Teilnehmern haben
|
||||
einen bestätigten Eintritt. Viele andere reisen noch oder planen wiederholt
|
||||
neu. Es gab insgesamt 7.372 Intentfallbacks, teilweise durch den inzwischen
|
||||
korrigierten Fehler verzerrt. Das Navigationlog enthält 3.884 Recovery-Starts,
|
||||
558 Recovery-Fehlschläge und 1.276 Edge-Fehlschläge. Das sind keine voneinander
|
||||
unabhängigen Fehlerfälle. Beispiele sind abgewiesene Flugstarts aus Gasthäusern,
|
||||
fehlende sichere Landepunkte und unvollständige Bodenanschlüsse.
|
||||
4. **Die Routenwahl berücksichtigt eine Portalbedingung nicht.** Makuran 141 auf
|
||||
Stufe 52 versucht das Portal von Orgrimmar zu den Verwüsteten Landen zu nutzen
|
||||
(Spawn 211298, GO 195142, Spell 65729). Die native Spellbedingung verlangt
|
||||
Stufe 58; sechs Versuche scheiterten. Das Portal erzwingt seine Bedingung
|
||||
korrekt. Der Planer muss sie vor der Auswahl berücksichtigen.
|
||||
5. **Ein Solo-Raidversuch wurde abgewiesen.** Braneven 121 auf Stufe 85 scheiterte
|
||||
am Thron der Vier Winde, Karte 754, Entry 6672, und rastete anschließend. Er
|
||||
war nach einem Austritt mit Grund `leader-afk` gruppenlos. Die native
|
||||
Gruppenzulassung muss genauer geprüft werden. Es wurden keine Bedingungen
|
||||
entfernt oder pauschalen Freischaltungen vorgenommen.
|
||||
6. Es gab 21 nichtfatale kurze Spline-Warnungen mit NPC- und Playerbotbezug. Bei
|
||||
GUID 126 wurden Geistfreigabe und Friedhof-Fallbackbelebung beobachtet, keine
|
||||
Kettentodserie. 38 Gruppenverlassen-Meldungen hatten den Grund `leader-afk`;
|
||||
bei Bots kann dies eine Folge steckengebliebener Leadernavigation sein.
|
||||
|
||||
## Nachweise und Auswertungsgrenzen
|
||||
|
||||
Sichere Messdaten liegen unter `checkpoints/2026-10-30-group-observation/`.
|
||||
`summary.json` enthält Eintritte, Rückkehren, Transportankünfte, Fehlerbeispiele
|
||||
und Messwerte; `findings.json` die gezielten Diagnosen. Vollständige Rohdaten
|
||||
bleiben unter `/tmp/vcore-group-observation-20261030/`. Der Konfigurationsbackup
|
||||
enthält Zugangsdaten und wurde nicht ins Repository kopiert.
|
||||
|
||||
Die Navigationlogs rotieren bei 128 MiB. Die Auswertung umfasst die Archive von
|
||||
02:32:32 und 03:50:52 Uhr sowie die aktive Datei, jeweils auf den Zeitraum von
|
||||
02:20:56 bis 04:00 Uhr gefiltert. Transportmeldungen stehen im Navigationlog.
|
||||
|
||||
`reload config` um 04:00 Uhr öffnete `Server.log` im Schreibmodus neu. Deshalb
|
||||
stammen die Eintritts- und Rückkehrnachweise aus dem auf das Beobachtungsende
|
||||
begrenzten Konsolenmitschnitt. Die Prozesslücke um 02:20:56 Uhr war die anfängliche
|
||||
Startrace, jene um 02:37 Uhr die angekündigte Wartung, kein ungeplanter Ausfall.
|
||||
@@ -0,0 +1,85 @@
|
||||
# Reise- und Gruppenfixes vom 30.10.2026
|
||||
|
||||
## Betriebsgrenze
|
||||
|
||||
Der Nutzer zeichnet am laufenden Testserver Routen auf. Daher ausschließlich
|
||||
Quellcode, lokaler Build mit `-j10` und isolierte Tests; **keine Installation,
|
||||
kein Neustart und keine Änderungen an aufgezeichneten Routen oder Live-Daten**.
|
||||
Die native Instanz-/Raid-Zulassung bleibt erhalten.
|
||||
|
||||
## Änderungen
|
||||
|
||||
- Gruppenwiederherstellung: Ein vorhandener Charakter ohne Gilde ist weiterhin
|
||||
ein gültiges Gruppenmitglied. Nur nicht vorhandene Charaktere werden entfernt;
|
||||
Rollen, Untergruppe und Mitgliedsflags werden regulär wiederhergestellt.
|
||||
- Portalplanung: Ein generischer read-only ConditionMgr-Zugriff bewertet die
|
||||
bereits geladenen Spielerbedingungen für den jeweiligen nativen Portalzauber.
|
||||
Level, Quests, Gegenstände und weitere Spieleranforderungen einschließlich
|
||||
AND/OR-Gruppen, Referenzen und negativer Bedingungen werden berücksichtigt.
|
||||
Die Spielerrolle im nativen Cast bestimmt den geprüften ConditionTarget.
|
||||
Orts-/Kampf-/Skriptbedingungen bleiben bis zur tatsächlichen Benutzung offen.
|
||||
Diese dynamische Prüfung erfolgt vor dem Cache der statischen Gebietserlaubnis
|
||||
und nochmals vor der Benutzung. Keine festen Ersatz-Level, entfernten
|
||||
Bedingungen oder künstlichen Portalteleports.
|
||||
- Deckrückkehr: Aufgezeichnete Ausstiege benötigen kein optionales freies Bordnetz.
|
||||
Auch Kraken und Zeppeline können eine unterbrochene Rampenposition sicher zum
|
||||
aufgezeichneten Stand korrigieren. Weiterhin nur bei stehendem Transport,
|
||||
echter Passagierbindung und genügend verbleibender Haltezeit.
|
||||
- Transportzustand: Ein Fehler bei noch angebundenem Passagier behält die Fahrt
|
||||
und deren Ziel bei, statt sie pro Tick als neue Fahrt zu übernehmen. Kurze
|
||||
Wiederholungsverzögerung; sichere Ausstiegsversuche am nächsten passenden Halt.
|
||||
Die Ausstiegsreserve berücksichtigt auch die aktuelle Steuerungstaktung.
|
||||
- Verlust beim Ein-/Aussteigen: Der erwartete Passagierzustand wird aus dem
|
||||
tatsächlichen Fortschritt der aufgezeichneten Übergangspunkte abgeleitet.
|
||||
Ein beabsichtigtes Erreichen des Landpunkts löst keine Bergung aus; tatsächlicher
|
||||
Verlust kann die bestehende Rettung zum aufgezeichneten Abfahrtsanleger nutzen.
|
||||
- Flugstart: Ein unterstützter Bodenstand in einem Gebäude führt zunächst zur
|
||||
Suche nach einem erreichbaren offenen Abflugpunkt. Bis 200 Yards Suchradius,
|
||||
vollständiger unverdächtiger MMAP-Bodenweg bis 600 Yards, native Außenbereichs-
|
||||
und Kollisionsprüfung sowie Gebietskatalog. Erst dort native Flugmount-Auswahl
|
||||
und Cast. Reitfertigkeit und regionale Flugberechtigungen bleiben erforderlich.
|
||||
- Landung: Mehrere Ringe bis 180 Yards, vollständiger MMAP-Anschluss bis 600 Yards
|
||||
zum Ziel. Ein Höhenunterschied allein schließt einen sicheren Bodenanschluss
|
||||
nicht aus; Wasser-, Kollisions-, Gebiets- und native Pfadprüfungen bleiben.
|
||||
- Kartengrenzen bleiben echte Portal-/Schiffs-/Zeppelinabschnitte. Flug ersetzt
|
||||
weder einen Kartenübergang noch eine native Zugangsvoraussetzung.
|
||||
|
||||
## Temporäre Diagnose
|
||||
|
||||
`ClientlessTravelTelemetry.h` enthält den ausdrücklichen Vermerk
|
||||
`TEMPORARY_ADVENTURE_TRAVEL_TELEMETRY` / vor Entwicklungsabschluss entfernen.
|
||||
|
||||
`TEMP_TRAVEL` protokolliert ausschließlich aktive Instanz-/Raidreisen: Reise-ID,
|
||||
Bot, Gruppe, Anführer, Ziel, Route/Abschnitte, Transportphasen, Portalankunft,
|
||||
Flugzustand und Berechtigungen, Start-/Landekandidaten und Ablehnungszähler,
|
||||
Fortschritt sowie Eingang und das getrennte Ergebnis der nativen Zulassung.
|
||||
Fortschritt höchstens alle 20 Sekunden, gleiche Ereignisdetails innerhalb einer
|
||||
Minute unterdrückt, insgesamt höchstens 40 Zeilen je Bot/Minute. Auch wechselnde
|
||||
Fallback-Ziele setzen dieses Minutenbudget nicht zurück. Offline oder anderer
|
||||
Intent entfernt die Erfassung. Das Verhalten hängt nicht von der Diagnose ab.
|
||||
|
||||
Vor Entwicklungsabschluss diese Instrumentierung und ihre Aufrufstellen entfernen.
|
||||
|
||||
## Prüfung
|
||||
|
||||
109 Clientless-Testprogramme erfolgreich (vollständiger Lauf), einschließlich
|
||||
neuer produktiver Methoden-Harnesses für gildenlose Gruppen, Portalbedingungen,
|
||||
alternative Landeflächen und die begrenzte Telemetrie. Transport-/Abflugtests
|
||||
wurden um unterbrochene Fahrten, Schiffe ohne Bordnetz, Verluste beim Ein- und
|
||||
Aussteigen und die Bodenannäherung aus einem Gebäude erweitert.
|
||||
|
||||
Die Harnesses verwenden deterministische Welt-/Terrain-Doubles. Sie bestätigen
|
||||
Entscheidungen und Zustandsübergänge, ersetzen aber keine Prüfung mit echten
|
||||
VMAP/MMAP-Dateien und fahrenden Schiffen im laufenden Spiel. Durchgängige Reisen
|
||||
zu allen Instanzzielen und das Verhalten der Gruppenmitglieder müssen nach der
|
||||
später freigegebenen Installation mit der neuen Telemetrie beobachtet werden.
|
||||
|
||||
Build: bestehende Debug/Ninja-Konfiguration und Installationspräfix unverändert.
|
||||
Erster `-j10`-Lauf durch getöteten Compilerprozess unter Speicherlast abgebrochen;
|
||||
Wiederholung ebenfalls mit `-j10`. Abschließender `-j10`-Build erfolgreich (exit 0), inklusive der letzten
|
||||
Bodenstützprüfung; Log `/tmp/vcore-travel-fixes-build-final.log`.
|
||||
Rohlogs: `/tmp/vcore-travel-fixes-build*.log`, Testlogs und Ergebnisliste unter
|
||||
`/tmp/vcore-travel-fixes-tests/`. Keine Gameplay-Abnahme behauptet.
|
||||
|
||||
Der vorherige Laufzeitabsturz hat keinen erhaltenen vollständigen Stacktrace;
|
||||
diese Änderungen sind kein Nachweis, dass dessen Ursache behoben ist.
|
||||
@@ -0,0 +1,132 @@
|
||||
# Ursachenanalyse: Raidtest 01.11.2026, 22/23 Uhr
|
||||
|
||||
Nur Diagnose; kein Produktionscode, Botplan, Loader oder Serverzustand geändert.
|
||||
Branch feature/clientless-player-core; vorhandene Checkpoints/WIP erhalten.
|
||||
|
||||
## 1. Bestätigter Aufbruchblocker: falsche Zielvariante
|
||||
|
||||
Vorbereitung verwendete instance_visit_at_6354. BuildInstanceVariants in
|
||||
AdventureLocationMgr.cpp bevorzugt bei Raids mit vorhandener 25er-Normalvariante
|
||||
Difficulty1 für den Basisschlüssel. Difficulty0 wird als _d0 erzeugt.
|
||||
Native MapDifficulty.dbc für Karte671: modes0/1/2/3 haben10/25/10/25 Plätze.
|
||||
Dies wurde direkt aus der installierten DBC gelesen, nicht aus Namen geraten.
|
||||
Die passende 10er-Normalvariante ist instance_visit_at_6354_d0; native Eligibility
|
||||
für Renren bestätigt map671/content1/own1/invitation1 für beide Schlüssel.
|
||||
|
||||
Zusätzliche Inkonsistenz: InstanceCapacity=min(20,maxPlayers) begrenzt die 25er-
|
||||
Variante auf20, während Name und Difficulty bei25 bleiben. GroupPlan übernimmt
|
||||
InstanceCapacity. Complete verlangt exakt Capacity Mitglieder plus Rollen:
|
||||
capacity20 benötigt2T/4H/14D; tatsächlich sind10Bots mit2T/2H/6D in Gruppe2.
|
||||
Complete ist somit false, CheckFullGroup aktiviert keinen frühen Abreisehandoff.
|
||||
Um23:00 blockiert Begin vor ResolveInstance/Queue(travel_to_node) in WaitingGroup.
|
||||
Der korrekte Eingangspfad wird folglich gar nicht angefordert. Aktuell alle10
|
||||
im selben raid-Intent/WaitingGroup. Kein Beleg für ein Problem der Bastionroute.
|
||||
|
||||
Der falsche Basisschlüssel war ein Fehler der Testvorbereitung. Die20/25-
|
||||
Inkonsistenz ist ein separater Implementierungsfehler. Ein bloßer Teleport oder
|
||||
Reisereset kann beides nicht beheben. Der vorhandene Variantentest erwartet
|
||||
explizit20 für25er-Modi; Tests decken diese fehlerhafte Semantik daher nicht auf.
|
||||
Keine Tests/Builds in dieser reinen Diagnose gestartet.
|
||||
|
||||
## 2. Bestätigte Zerstreuungskette: Reiseablehnung und ungebundener Fallback
|
||||
|
||||
Historisches rotiertes Navigationlog:22:00:02 guid159 bei
|
||||
(-8864.300,682.378,97.943), ZielAllison(-8867.790,673.673,97.986).
|
||||
NAV_PLAN calculated1/complete1/type0x1, Weg9.38yd,4Punkte,maxZDelta0.03,
|
||||
finalDistance0.08 und reason ok. NAV_START trotzdem PathRejected.
|
||||
Fünf Recoveryversuche zu anderen Graphankern schlagen ebenfalls fehl;
|
||||
Flugfallback kann den Startplatz nicht erreichen.22:00:04 RECOVERY_FAILED und
|
||||
INTENT_ARRIVAL_REJECT beim vereinbarten Treffpunkt.
|
||||
|
||||
Fallback schützt einen aktiven Instanzbesuch sowie Botgruppenmitglieder mit
|
||||
GroupOverride, aber nicht den Treffpunkt einer Gruppenbildung beim Leader.
|
||||
Er durchsucht ALLE Allowed-Locations und priorisiert andere Maps lediglich mit
|
||||
Distanzaufschlag100000. Es gibt keine Bindung an vereinbarten Treffpunkt,
|
||||
Sturmwind oder aktuelle Hauptstadt. Logs zeigen Allison->GildedRose->weitere
|
||||
SW-Orte->Eisenschmiede->andere Hauptstädte, insgesamt37 Ersatzwahlen beim Leader.
|
||||
AdoptGroup übernimmt jeweils den Laufzeitzustand des Leaders. Mitglieder
|
||||
beenden laufende Taxi/Flug/Transport-Schritte vor dem Wechsel; deshalb verfolgen
|
||||
sie zeitversetzt verschiedene alte Ziele und verteilen sich über Kontinente.
|
||||
|
||||
Die genaue geometrische Ursache der ERSTEN PathRejected-Ablehnung ist offen.
|
||||
MMAP hat einen vollständigen Weg geliefert. Nachfolgende Ausführungsprüfungen
|
||||
umfassen AllowsSegment und den für Gruppen installierten GroundPathValidator
|
||||
(Höhenprobe/Steigung/LOS). Beide können ohne präzises NAV_REJECT-Log abbrechen.
|
||||
Die vorhandenen Logs rechtfertigen keine eindeutige Schuldzuweisung an eine
|
||||
bestimmte Höhen-/LOS-Probe. Zur Behebung diesen Ort gezielt reproduzieren und
|
||||
Ablehnungszweig/Koordinaten/erwartete und gemessene Höhe diagnostizieren; keine
|
||||
pauschale Abschaltung von Sicherheitsprüfungen.
|
||||
|
||||
## 3. Zwei beim Stundenwechsel verzögerte Mitglieder
|
||||
|
||||
Um23:00 warteten164/165 noch auf eine Leaderroute für die alte Gruppenbildung.
|
||||
Queue hängt Botmitgliedern route_source an; der Executor wartet bis15Sekunden
|
||||
auf eine geteilte Route, danach erfolgt eigenständige Anschlussplanung.
|
||||
SetWanted fordert während aktiver Reise StopAtNode an; Switching wartet auf
|
||||
Busy=false und führt gegebenenfalls einen Graphknoten-Handover aus.
|
||||
Nachfolgende native Diagnosen: beide travel_to_node stormwind_tradecenter
|
||||
Completed/Arrived und raid/WaitingGroup. Die anfängliche Aussage eines dauerhaften
|
||||
Intent-Hängers ist nicht belegt; das beobachtete Warten war vorübergehend.
|
||||
|
||||
## Gezielte Korrekturen für einen Folgetest
|
||||
|
||||
- Testziel explizit instance_visit_at_6354_d0; Difficulty0/capacity10/2T2H6D
|
||||
zusammen mit nativer Gruppen-Difficulty und Complete überprüfen.
|
||||
- 25er-Modi nicht als20er-Gruppe für einen25er-Raid vollständig melden;
|
||||
konsistente tatsächliche Kapazität oder ausdrückliche Nichtunterstützung.
|
||||
- Formationstreffpunkt beim Leader stabil halten; Fehlschlag führt zu lokaler
|
||||
Wiederholung/Diagnose, nicht automatischem Hauptstadtwechsel.
|
||||
- Anfangsablehnung in GoldenerRose mit genauer Ausführungsdiagnostik reproduzieren.
|
||||
- Regressionen für vollständige10er-Gruppe/früheAbreise, Treffpunktbindung bei
|
||||
Reisefehler, Stundenwechsel mit ausstehender geteilter Route und20/25-Konsistenz.
|
||||
|
||||
Belege: checkpoints/2026-11-01-raid-2200/initial-navigation-failure.log,
|
||||
investigation-console.log, reset-console.log und verified-db.tsv. Server.log
|
||||
enthält die Formation-Fallbacks und Mergefolge. Gameplay/Instanzanreise unbestätigt.
|
||||
|
||||
## Zusatz: drei Nutzerfragen zu Portalen und Kolonne, ca.23:17–23:21
|
||||
|
||||
1. Eisenschmiede: Portalspawn217855/GO195141/Spell65728 ist gebunden an
|
||||
edge1827 portal_use, enabled1/cost1, vonportal_go_217855_source nach
|
||||
portal_go_217855_target (VerwüsteteLande). Renren erreichte Quelle tatsächlich;
|
||||
23:09:48 folgte laut Log free_flight direkt zurBastion statt portal_use.
|
||||
Start wurde verworfen: no reachable open takeoff point, outdoor0,
|
||||
Diagnosecounter surface/indoor/area/column/mmap/movement=0/0/0/1/63/0.
|
||||
Danach Recovery über virtuelleStraße wird vom safetyAdapter abgelehnt.
|
||||
Also Portalbenutzung in dieser Folge NICHT ausgeführt, keine nachgewiesene
|
||||
native Portalzugangsverweigerung. Replan anQuelle: start->free_flight wiederholt.
|
||||
Plannerportalguard gilt nur isPortalSource && previous enthältCurrentState;
|
||||
Quellknoten alsStartwurzel fällt dadurch aus demGuard. Ein interaktivesPortal
|
||||
teleportiert anders als einAreaTrigger nicht beim bloßenAnlaufen.
|
||||
|
||||
2. Sturmwind-Schattenhochland: spawn200627/GO207694/Spell85545, edge1801,
|
||||
Quelle(-8186.15,413.729,116.75), Ziel(-4890.07,-6626.74,10.2846), map0.
|
||||
Enabled1/cost1. DB zeigt KEINE eingehende festeKante zurQuelle. Zurückliegender
|
||||
Livebeleg Elanora16:57:17 benutztPortal nativ mit arrivalError0; Voraussetzungen
|
||||
nicht pauschal alsGrund behaupten. Level80+-AdventureUnlock existiert.
|
||||
Aktuelle Route zumBastioneingang: SWtradecenter->taxi2->taxi6->IFportalQuelle,
|
||||
danach freieFlugplanung/Recovery. Nur dynamischerAnschluss kannSWPortal
|
||||
verbinden (allgemeineBrücken max200yd, Flugkandidaten16/Plan und6/Ursprung).
|
||||
Offline geometrische Kandidatenrangberechnung OHNEArea/Prereq/FlightFilter:
|
||||
SWportalQuelle steht vonSWtradecenter sowietaxi2 sogar aufRang1 der
|
||||
Makrokandidaten. Damit ist reineDistanzsortierung NICHT alsAblehnungsgrund
|
||||
belegt. Es fehlen personenbezogene Logs zu Kandidatenbudget/Estimate-Ablehnung
|
||||
und Folgeverbindung abPortalziel. Exakten verlorenenRoutenvergleich erst mit
|
||||
gezieltemPlantrace behaupten. Keine Runtimeplanung/Teleport zuTest erzwungen.
|
||||
|
||||
3. Kolonne: AdventureInteractionMgr kehrt beiBotLed vorGroupTravelMgr::Follow
|
||||
zurück. Botgruppenmitglieder adoptierenExecutorroute (AdoptRoute), teilen also
|
||||
Makroziel/Route, nicht automatisch individuellePositionen. Die allgemeine
|
||||
Formation()/Follow-Steuerung wird dabei nicht verwendet. AdaptRoad läuft
|
||||
nur imStartRecordedEdgePath, nicht für lokaleMMAP-Zuläufe/local_bridge/start.
|
||||
AdaptRoad erhält den gemeinsamenEndpunkt; wennSeitversatz unsicher ist, zweiter
|
||||
Versuch mitside0. Damit kann selbstStraßenadapter aufgleicheLinie zurückfallen.
|
||||
NativeTaxiflüge haben identischen nativenPfad ohne separateKolonnenversätze.
|
||||
EigeneFreeFlight hat sharedTrail mit3.5s+slot*0.6s Startverzögerung nur wenn
|
||||
passenderLeaderflightRecord mit gleichemZiel vorhanden. Kein allgemeiner
|
||||
Abstandsregler über alleReisemodi; keinePortalWarteaufstellung.
|
||||
Nutzerbeobachtung desÜbereinanderlaufens passt zu diesen Integrationslücken;
|
||||
keinBeleg, dass jedeFormationkomponente deaktiviert wäre.
|
||||
|
||||
Belege Zusatz: ironforge-portal-route-evidence.log; Sourceprüfung der erwähnten
|
||||
Methoden und nur lesendeWorldDB-Abfragen. KeineBot-/Codeänderung/Build/Restart.
|
||||
@@ -0,0 +1,72 @@
|
||||
# Testauswertung: 02.11.2026, Gruppenbildung 06:00 / Instanzen 07:00
|
||||
|
||||
Erstellt: 02.11.2026 08:00:09 CET. Geplanter Auswertungszeitpunkt: 08:00 UTC+01:00.
|
||||
|
||||
- Geprüfte Testbots: 92. Unter Stufe 15 ausgenommen: 18.
|
||||
- Feste Treffpunkte: Allianz Goldene Rose in Sturmwind; Horde Broken Tusk in Orgrimmar.
|
||||
- Status-Snapshots: 22; ausgewertete eindeutige Logereignisse: 16592.
|
||||
- Erste erfasste Statusstichprobe: 2026-11-02T06:13:38.615403+01:00; frühere Ereignisse sind nicht vollständig erfasst.
|
||||
- Bots mit belegter Ankunft am festgelegten Formationstreffpunkt: 40.
|
||||
- Bots mit protokolliertem tatsächlichem Instanzbeitritt: 0.
|
||||
- Snapshots ohne laufenden Testserver: 0.
|
||||
|
||||
## Bekannte Zehnergruppe: Bastion des Zwielichts, normal
|
||||
|
||||
- Maximal gemeinsam in einer nativen Gruppe beobachtet: 9/10.
|
||||
- Alle zehn gemeinsam nachgewiesen: nein; durch die Stichproben nicht nachgewiesen.
|
||||
- Bots mit Instanzplanung: 9/10; mit tatsächlichem Beitritt zu Karte 671 im Modus 0: 0/10.
|
||||
|
||||
| GUID | Name | Rolle | Bastion betreten | Letzter nativer Status |
|
||||
|---:|---|---|---|---|
|
||||
| 159 | Renren | damage | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / instance visit waiting for safe native state |
|
||||
| 160 | Marndra | damage | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 161 | Marnda | healer | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 162 | Aruendas | healer | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 163 | Winienwi | damage | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 164 | Taliaarnora | damage | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 165 | Brynda | damage | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 166 | Corric | damage | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / waiting for a suitable group / native browser queue |
|
||||
| 167 | Ragnorli | tank | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
| 176 | Ashaelri | tank | nicht nachgewiesen | raid / instance_visit_at_6354_d0 / travelling to instance_visit_at_6354_d0 |
|
||||
|
||||
## Übernahme der Anführerroute
|
||||
|
||||
- Protokollierte Routenübernahmen mit Journey-Seed: 78.
|
||||
- Gleicher zuletzt beobachteter Anführer-Seed: 72; abweichend: 4; Anführer-Seed im Beobachtungsfenster nicht bekannt: 2.
|
||||
- Ein abweichender letzter Seed erfordert Prüfung der konkreten Reise und des Zeitpunkts; diese Zählung allein beweist keinen Fehler.
|
||||
|
||||
## Fehler und Reiseereignisse
|
||||
|
||||
- GROUP_MERGE: 28.
|
||||
- GROUP_MANAGER_RUN: 9.
|
||||
- GROUP_EARLY_DEPART: 15.
|
||||
- PORTAL_USE_START: 36.
|
||||
- RECOVERY_FAILED: 117.
|
||||
- INSTANCE_TRAVEL_RETRY: 11.
|
||||
- INSTANCE_ENTRY_DENIED: 0.
|
||||
|
||||
Häufigste protokollierte Fehler:
|
||||
|
||||
- RECOVERY_FAILED: route-local-PathRejected (26 Ereignisse).
|
||||
- RECOVERY_FAILED: free-flight-unavailable: safely returned after abort: no safe bounded flight corridor; holding position mounted (15 Ereignisse).
|
||||
- RECOVERY_FAILED: free-flight-unavailable: departure-unavailable: ground approach interrupted (12 Ereignisse).
|
||||
- RECOVERY_FAILED: free-flight-unavailable: no free solid landing with a validated target approach (12 Ereignisse).
|
||||
- INSTANCE_TRAVEL_RETRY: siehe Rohlog (11 Ereignisse).
|
||||
- RECOVERY_FAILED: deferred-start-movement-failed (9 Ereignisse).
|
||||
- RECOVERY_FAILED: deferred-start-no-progress (7 Ereignisse).
|
||||
- RECOVERY_FAILED: final-local-PathRejected (6 Ereignisse).
|
||||
- RECOVERY_FAILED: deferred-start-endpoint-replan (6 Ereignisse).
|
||||
- RECOVERY_FAILED: wander-ended-Arrived (4 Ereignisse).
|
||||
- RECOVERY_FAILED: deferred-start-attempts-exhausted (4 Ereignisse).
|
||||
- RECOVERY_FAILED: recorded group road rejected by safety adapter (4 Ereignisse).
|
||||
|
||||
## Grenzen der Auswertung
|
||||
|
||||
- Ausgewertet werden technische Zustände und native Logereignisse; keine visuelle Gameplay-Abnahme und keine Bestätigung von Bosskämpfen.
|
||||
- Ein Reiseplan ist kein Ankunftsnachweis. Fehlende Ereignisse werden als nicht nachgewiesen ausgewiesen.
|
||||
- Die Gruppenmitgliedschaft und Zustände werden alle fünf Minuten stichprobenartig gelesen; kurzlebige Zwischenzustände können fehlen.
|
||||
- Charakterpositionen aus DB-Snapshots sind zuletzt gespeicherte Positionen. Live-Reisepositionen stehen in den TEMP_TRAVEL-Ereignissen.
|
||||
- Der Beobachter repariert, teleportiert oder startet den Server nicht. Ausfälle werden dokumentiert.
|
||||
- Letzter Snapshot: 2026-11-02T07:59:25.206244+01:00.
|
||||
|
||||
Rohdaten: doc/clientless/checkpoints/2026-11-02-0600-group-test/ (manifest.json, snapshots.jsonl, events.jsonl, snapshot-*.log).
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,109 @@
|
||||
# Abenteuer: Erkundung und Untersuchung
|
||||
|
||||
Technischer Intent: `adventure`. Diese Ausbaustufe ergänzt den bisherigen
|
||||
Aufenthalt durch zusammenhängende Erkundungswege und beobachtende Szenen.
|
||||
Echte Monsterjagd, Flucht und Todesbewältigung bleiben spätere Ausbaustufen.
|
||||
Vorhaben, Ortsauswahl und tatsächliche Mikroaktion bleiben getrennt: Die
|
||||
Location-/Intent-Zuordnung entscheidet, ob ein Ort zum Abenteuer passt;
|
||||
Umgebung und Erreichbarkeit bestimmen die dort möglichen Aktionen.
|
||||
|
||||
Migration: `sql/custom/world/2026_10_27_04_adventure_exploration.sql`.
|
||||
|
||||
## Aktionen
|
||||
|
||||
| Schlüssel | Darstellung |
|
||||
|---|---|
|
||||
| `adventure_explore` | Einen zusammenhängenden nativen MMAP-Weg erkunden und zurückkehren. |
|
||||
| `adventure_patrol` | Einen kürzeren Wegabschnitt abschreiten; dieselbe geprüfte Routenfähigkeit. |
|
||||
| `adventure_view` | Im Außenbereich die Umgebung von der aktuellen Position aus betrachten. |
|
||||
| `adventure_inspect` | Ein tatsächlich vorhandenes erreichbares Objekt aufsuchen und betrachten. |
|
||||
| `adventure_inspect_detail` | Nach der Ankunft genauer betrachten, eine Fragegeste zeigen und auf das Objekt weisen. |
|
||||
| `adventure_point` | Zu einem passenden Objekt gehen und darauf zeigen. |
|
||||
| `adventure_scout` | Innehalten, nach links und rechts Ausschau halten. |
|
||||
| `adventure_equipment` | Eine kurze Ausrüstungsprüfung mit nativer Benutzungs-/Vorbereitungsgeste darstellen. Keine Inventaränderung. |
|
||||
| `adventure_entrance` | Am gewählten Ruinen-, Höhlen-/Minen- oder Dungeon-Ort umsehen und Vorbereitung darstellen. Kein Instanzeintritt. |
|
||||
| `adventure_comment` | Selten einem tatsächlich anwesenden freundlichen Gegenüber eine Entdeckung kommentieren. |
|
||||
|
||||
Bestehende Fähigkeiten liefern Gespräche mit freundlichen NPCs, native
|
||||
Sitzplätze, Essen, Trinken und Feuerrast. Nach einem Erkundungsweg erhalten
|
||||
verfügbare Rastaktionen bei der folgenden Auswahl mehr Gewicht. Die
|
||||
bestehenden Verbote für neue Feuer in Gebäuden und Städten gelten weiter.
|
||||
|
||||
## Ausführung und Grenzen
|
||||
|
||||
Die Fußwege verwenden den bereits für Spaziergänge geprüften lokalen
|
||||
Routenplaner und Bewegungsexecutor: genau einen vollständigen MMAP-Korridor
|
||||
wählen, Kontrollpunkte folgen, am Wendepunkt pausieren und dieselben Punkte
|
||||
zurückverfolgen. Es gibt keine zufälligen einzelnen Nahziele und keine neuen
|
||||
Reit-/Flugtests. Der Standard der alten winzigen Zufallsbewegung `explore`
|
||||
wird nur für Abenteuer deaktiviert; angepasste Gewichte und ihre Verwendungen
|
||||
bei anderen Intents bleiben erhalten.
|
||||
|
||||
Wegpunkte bleiben innerhalb des Aufenthaltsgebiets beziehungsweise der Zone.
|
||||
Es gelten native vollständige Pfade, plausible Bodenhöhen und der begrenzte
|
||||
Aufenthaltsradius. Zeitende veranlasst einen Rückweg entlang bereits erreichter
|
||||
Punkte. Fehlgeschlagene Ankünfte werden niemals als Erfolg ausgegeben.
|
||||
|
||||
Objekte werden im tatsächlich geladenen Umfeld gesucht (60 Yards), nicht aus
|
||||
festen Objekt-IDs oder durch erzeugte Test-Spawns. Sichtbare generische Props,
|
||||
Schilder, Bücher und Goober-Objekte sind zulässig. Kisten/Ressourcen, Fallen,
|
||||
Türen, Knöpfe, Transportmittel und Möbel werden hierfür nicht gewählt.
|
||||
Spawnzustand, Phase, Sichtbarkeit, Sichtlinie und erreichbarer Gesprächs-/
|
||||
Betrachtungspunkt werden geprüft. Ein nicht erreichbares Objekt wird durch
|
||||
einen weiteren echten Kandidaten ersetzt; gibt es keinen, startet die Szene
|
||||
nicht. Verschwundene oder nicht mehr sichtbare Ziele beenden den Ablauf.
|
||||
|
||||
Diese Fähigkeit ruft **keine Objektbenutzung, keine Beuteerzeugung und keine
|
||||
Quest-/Gegenstandsinteraktion** auf. Die verwendeten Gesten erzeugen weder
|
||||
Objekte noch Zauberwirkungen. Ausrüstungsprüfung ist eine Darstellung.
|
||||
|
||||
Umsehen verwendet zwei feste Blickrichtungen relativ zur Startausrichtung,
|
||||
statt den Bot bei jedem Planungsschritt weiterzudrehen. Vorbereitung wird
|
||||
über die vorhandene Kategorie des Aufenthaltsorts freigegeben; eine genaue
|
||||
geometrische Erkennung einzelner Höhleneingänge ist nicht enthalten.
|
||||
Aussichtsszenen garantieren keine besondere Landschaftsqualität. Objekte,
|
||||
die nur Teil von WMO-/Karten-Geometrie sind, haben keine separate GO-GUID;
|
||||
sie werden durch ortsbezogenes Umsehen statt Objektinteraktion dargestellt.
|
||||
Kampf unterbricht die Tätigkeit über die bestehende Sicherheitsbehandlung.
|
||||
|
||||
## Location-Zuordnung
|
||||
|
||||
Die editierbaren `vcore_adventure_location_intent`-Einträge sind maßgeblich.
|
||||
Der bisherige Wirtschaften-Fallback im Code wird in ausdrückliche bestehende
|
||||
Kategorie-Zuordnungen überführt. Bearbeitete Gewichte einschließlich Null
|
||||
werden erhalten. Neue Kategorien benötigen ihre eigene Zuordnung. Tavernen
|
||||
erhalten eine geringe Freizeitgewichtung; Sitzaktionen sind weiterhin nur
|
||||
bei einer tatsächlich geeigneten erreichbaren Sitzgelegenheit verfügbar.
|
||||
Der Tagesplan wählt Intents weiterhin unabhängig vom vorhandenen Ortskatalog.
|
||||
|
||||
## Prüfung
|
||||
|
||||
Automatisierte Tests führen produktive Objektfilter, Verfügbarkeitsprüfungen
|
||||
und Gestensequenzen aus: Ankunft vor Gesten, verschwundene/unsichtbare Ziele,
|
||||
keine Objektbenutzung, zwei feste Blickrichtungen sowie korrekte Wiederverwendung
|
||||
der Bodenrouten. Der SQL-Test prüft Referenzen, ausdrückliche Kategoriezuordnung,
|
||||
Default-Upgrade und Erhalt bearbeiteter Gewichte bei Wiederholung.
|
||||
Eine erfolgreiche Kompilierung ersetzt die visuelle Ingame-Abnahme nicht.
|
||||
|
||||
## Technische Live-Prüfung am 27.10.2026
|
||||
|
||||
Build mit `-j10`, Installation und frischer Testserver-Neustart mit Ready-
|
||||
Meldung und Port 8085 erfolgreich. Alle 32 Clientless-Testskripte bestanden.
|
||||
Die temporäre Login-Vorgabe wurde nach dem Laden exakt zurückgesetzt.
|
||||
|
||||
Am gewöhnlichen importierten Sturmwind-Ort `poi_tele_954` wurden geprüft:
|
||||
|
||||
- Automatisch ausgewählte Untersuchung des tatsächlichen Apothekenschilds
|
||||
`Pestle's Apothecary` (GO 197117), native Ankunft und alle Betrachtungsgesten.
|
||||
- Detaillierte Untersuchung des Schilds `Weller's Arsenal` (GO 197121),
|
||||
native Ankunft sowie Blick-, Frage-, Zeige- und Wartephase. Ein anfangs
|
||||
manuell unterbrochener Durchlauf zählt nicht als Abschluss; der danach
|
||||
neu gestartete Durchlauf endete nach sämtlichen Gesten regulär.
|
||||
- Zusammenhängender Erkundungsweg: Ursprung `(-8802.90, 628.57, 94.46)`,
|
||||
Wendepunkt `(-8843.31, 559.53, 95.62)`, Abstand 80,01 Yards. Alle zehn
|
||||
Hin-/Rückwegankünfte und die tatsächliche Rückkehr wurden bestätigt.
|
||||
- Danach automatisch ausgewählte Trinkpause und Ausschauhalten.
|
||||
|
||||
Das ist eine technische Live-Prüfung in Sturmwind. Eine visuelle Abnahme
|
||||
durch den Nutzer, Erkundung in gefährlichen offenen Gebieten und die
|
||||
Vorbereitung an einem tatsächlichen Höhlen-/Dungeonort stehen noch aus.
|
||||
@@ -0,0 +1,158 @@
|
||||
# Veränderbarer Gebietskatalog der AdventureBots
|
||||
|
||||
Der Katalog liegt in der **World-Datenbank**, nicht in C++ oder in den Nodes.
|
||||
Migration: `sql/custom/world/2026_10_29_02_adventure_area_catalog.sql`.
|
||||
Sie setzt die bestehende Migration `2026_10_29_00_adventure_population.sql`
|
||||
mit `vcore_adventure_zone` voraus. Erneutes Einspielen erhält vorhandene Einträge.
|
||||
|
||||
## Stand und Geltungsbereich
|
||||
|
||||
Die Regeln sind in Tagesplanung, TravelGraph und Bewegungsausführung angebunden.
|
||||
`clientless adventure reload` lädt Gebiets- und Nodefreigaben sowie Location- und
|
||||
TravelGraph-Kataloge im laufenden Betrieb neu. Spätere Änderungen benötigen
|
||||
keinen Build, keine Installation und keinen Neustart. Ungültige Gebietskataloge
|
||||
(z.B. Elternzyklen oder unzulässige Masken) werden vor Austausch des aktiven
|
||||
Snapshots abgewiesen.
|
||||
|
||||
Neue Tagespläne wählen nur zulässige Locations. Bestehende Tagespläne werden
|
||||
beim Einloggen und nach erfolgreichem Reload geprüft: Unzulässige Ziele werden
|
||||
ersetzt und gespeichert; Intents und Stunden bleiben erhalten. Sind keine
|
||||
zulässigen Ziele vorhanden, bleibt das Ziel leer, statt eine Sperre zu umgehen.
|
||||
Die aktuelle Mikroaktion oder ein bereits gestarteter nativer Transport wird
|
||||
nicht mitten in einer Bewegung gewaltsam abgebrochen. Neue Reiseabschnitte
|
||||
werden erneut geprüft. Ein bereits in einem gesperrten Gebiet stehender Bot wird
|
||||
nicht automatisch teleportiert; diese Regeln ersetzen keine eigene Bergungslogik.
|
||||
|
||||
Die Regeln betreffen ausschließlich autonome AdventureBots. Sie sperren keine
|
||||
Gebiete für menschliche Spieler und verändern weder DBC noch NPC-Fraktionen.
|
||||
|
||||
## Inhalt
|
||||
|
||||
`vcore_adventure_map_catalog` enthält Karten-ID, Anzeigename, Kartentyp und
|
||||
Erweiterung. Kartentyp 255 markiert alte Gebiete ohne vorhandenen Map.dbc-Eintrag.
|
||||
Solche Gebiete sind ausdrücklich gesperrt. Dungeon-/Raid-/Schlachtfeldkarten
|
||||
bleiben gekennzeichnet und werden nicht als normale offene Welt behandelt.
|
||||
|
||||
`vcore_adventure_area_catalog` enthält alle Gebiete und Untergebiete aus der
|
||||
lokalen Cataclysm-4.3.4-AreaTable.dbc, mit Namen, Karten-ID und Elterngebiet.
|
||||
Die Namen sind hier deutsch; die stabile Referenz ist immer die numerische ID.
|
||||
|
||||
| Spalte | Bedeutung |
|
||||
| --- | --- |
|
||||
| `area_id` | Native AreaTable-ID, auch für übergeordnete Zonen |
|
||||
| `parent_area_id` | Übergeordnetes Gebiet; 0 bedeutet Wurzelgebiet |
|
||||
| `allowed_factions` | NULL: erben; 0: gesperrt; 1: Allianz; 2: Horde; 3: beide |
|
||||
| `min_level`, `max_level` | Empfohlener Levelbereich; NULL: erben/unbekannt |
|
||||
| `max_level_gap` | Erlaubter Abstand unter der Mindeststufe; NULL: erben, Standard 5 |
|
||||
| `prefer_flight` | NULL: erben; 0: normale Reisegewichtung; 1: erlaubte Flüge bevorzugen |
|
||||
| `notes` | Frei bearbeitbare Begründung/Notiz |
|
||||
|
||||
Die Mindeststufe ist eine untere Zugangsgrenze mit der angegebenen Toleranz.
|
||||
`max_level` sperrt höherstufige Bots nicht aus ihren Heimatgebieten aus.
|
||||
Die vorhandenen, manuell gepflegten Levelbereiche aus `vcore_adventure_zone`
|
||||
werden beim Import übernommen. Unbekannte Bereiche bleiben NULL, statt einen
|
||||
nicht belegten sicheren Levelbereich vorzutäuschen. Unbekannte Freilandbereiche sind unter Stufe85 gesperrt.
|
||||
|
||||
## Verbindliche Hierarchie
|
||||
|
||||
Alle Vorfahren eines Gebiets sind zu berücksichtigen. Fraktionsfreigaben werden
|
||||
geschnitten: Ein Kind mit Freigabe 3 kann einen gesperrten Elternbereich nicht
|
||||
freigeben. Dasselbe gilt anschließend für einen neutralen Node in einem
|
||||
fraktionsgesperrten Gebiet. Ein Node darf zusätzliche Einschränkungen besitzen,
|
||||
aber die Gebietsfreigabe nicht erweitern. Die geltende Reihenfolge ist
|
||||
**Karte vorhanden → Gebiet samt Vorfahren → Node → Verbindung/Transport**.
|
||||
|
||||
NULL bedeutet Vererbung, ausdrücklich 0 bedeutet bei Fraktionen Sperre und bei
|
||||
Flugpräferenz normale Gewichtung. Flugpräferenzen ersetzen keine Reitfähigkeit,
|
||||
Fluglizenzen, nativen Flugverbote oder Kollisionsprüfung. Sichere Endpunkte
|
||||
allein reichen nicht für sichere Wege: Zwischengebiete müssen ebenfalls geprüft
|
||||
werden. Ein bereits in einem gesperrten Gebiet stehender Bot braucht einen
|
||||
gesonderten sicheren Ausweg, statt die Sperre für reguläre Reisen aufzuheben.
|
||||
|
||||
## Voreinstellungen
|
||||
|
||||
- Rassische Startregionen und Hauptstädte haben Fraktionsfreigaben. Darunter
|
||||
Dun Morogh/Elwynn/Teldrassil/Azur- und Blutmythosinseln/Gilneas für Allianz
|
||||
sowie Durotar/Tirisfal/Mulgore/Immersangwald/Geisterlande/Kezan/Verlorene Inseln
|
||||
für Horde. Die zugehörigen Hauptstädte sind ebenfalls eingetragen.
|
||||
- Vashj'ir (5146) ist für alle gesperrt. Tang'tharwald (4815), Schimmernde Weiten
|
||||
(5144) und Abyssische Tiefen (5145) erben diese Sperre über die echte DBC-Hierarchie.
|
||||
- Die Scherbenweltgebiete einschließlich Shattrath, Nordend sowie Hyjal,
|
||||
Tiefenheim, Uldum, Schattenhochland und Tol Barad bevorzugen erlaubtes Fliegen.
|
||||
Native Flugverbote haben stets Vorrang. Karte 530 wird bewusst nicht pauschal
|
||||
als Scherbenwelt behandelt: Sie enthält auch die Blutelfen-/Draenei-Startgebiete.
|
||||
|
||||
Tiefenbahn und Schiff Sturmwind–Rut'theran haben explizite Allianz-Nodefreigaben.
|
||||
Hauptstadtportale werden über ihre Zielgebiete gesperrt; auch neutrale Quellnodes
|
||||
können diese Sperre nicht umgehen.
|
||||
|
||||
## Nodefreigaben
|
||||
|
||||
Migration: `sql/custom/world/2026_10_29_03_adventure_node_access.sql`.
|
||||
`vcore_clientless_node_access` erlaubt für jeden Node eine zusätzliche
|
||||
`allowed_factions`-Maske mit gleicher Bedeutung wie bei Gebieten. NULL bedeutet
|
||||
keine manuelle Einschränkung. Neue Nodes können über INSERT ergänzt werden.
|
||||
Die Tabelle enthält initial alle vorhandenen Nodekeys.
|
||||
|
||||
Flugknoten werden bei jedem Reload automatisch einem Flugmeister im Umkreis von
|
||||
100 Yards zugeordnet. Maßgeblich sind die Fraktionsvorlagen der NPCs und ihre
|
||||
Feindseligkeit gegenüber Allianz/Horde; neutrale Flugmeister erlauben beide.
|
||||
Unklare Zuordnungen bleiben gesperrt. `flightmaster_spawn_id` ermöglicht eine
|
||||
explizite Zuordnung zu einem bestimmten NPC-Spawn innerhalb dieses Umkreises.
|
||||
Manuelle Masken können native NPC-Freigaben weiter einschränken, nicht erweitern.
|
||||
Die tatsächlich berechnete Maske ist im Diagnosebefehl als `nodeMask` sichtbar.
|
||||
|
||||
```sql
|
||||
UPDATE vcore_clientless_node_access SET allowed_factions=1
|
||||
WHERE node_key='mein_node';
|
||||
```
|
||||
|
||||
Nach einer Änderung an Gebieten oder Nodes in der Serverkonsole:
|
||||
|
||||
```text
|
||||
clientless adventure reload
|
||||
clientless adventure area 26 taxi_11
|
||||
```
|
||||
|
||||
Die Diagnose zeigt für den angegebenen Online-Bot das aufgelöste Gebiet,
|
||||
Fraktionsmaske, Levelgrenze, Flugpräferenz, Nodefreigabe und Gesamterlaubnis.
|
||||
Ohne Nodekey wird die aktuelle Position geprüft. Die Zahl26 ist hier nur ein
|
||||
Beispiel für Arthoran; der Befehl funktioniert mit jedem Online-AdventureBot.
|
||||
|
||||
Gespeicherte Bodenwege und lokale MMAP-Wege werden an ihren Wegpunkten und
|
||||
zusätzlich mit maximal40Yards Abstand geprüft. Flugtaxiwege berücksichtigen ihre
|
||||
nativen Wegpunkte, freie Flüge ihre geplanten und tatsächlich gestarteten
|
||||
Abschnitte. Virtuelle Graphverbindungen verwenden dieselben Prüfungen, auch bei
|
||||
zwischengespeicherter Weggeometrie. Diese räumliche Abtastung ist keine mathematisch
|
||||
lückenlose Prüfung jedes einzelnen Grenzpunkts. Schiffs-/Tiefenbahnfahrten prüfen
|
||||
beide Haltestellen und Nodefreigaben statt einen Bodenweg quer durch das Meer.
|
||||
|
||||
|
||||
## Bearbeitung ohne Neukompilierung
|
||||
|
||||
Beispiel: Gebiet und seine unmittelbar untergeordneten Gebiete ansehen:
|
||||
|
||||
```sql
|
||||
SELECT * FROM vcore_adventure_area_catalog
|
||||
WHERE area_id=5146 OR parent_area_id=5146;
|
||||
```
|
||||
|
||||
Beispiel: Flugpräferenz und Leveltoleranz eines Gebiets bearbeiten:
|
||||
|
||||
```sql
|
||||
UPDATE vcore_adventure_area_catalog
|
||||
SET prefer_flight=1, max_level_gap=5, notes='Flugreisen bevorzugen'
|
||||
WHERE area_id=616;
|
||||
```
|
||||
|
||||
Nicht die generierte SQL-Datei erneut einspielen, um vorhandene Zeilen zu ändern:
|
||||
`INSERT IGNORE` bewahrt absichtlich Betreiberanpassungen. Stattdessen gezielte
|
||||
UPDATEs verwenden. Die alte Leveltabelle dient nur noch als Importquelle; der laufende Server
|
||||
verwendet die Levelbereiche dieses Katalogs. Änderungen der alten Tabelle
|
||||
werden nicht automatisch in diesen Katalog kopiert.
|
||||
|
||||
Die Ausgangsdaten lassen sich ohne DB-Verbindung reproduzieren:
|
||||
|
||||
```bash
|
||||
python3 contrib/clientless/export_area_catalog.py /pfad/zu/dbc/deDE /tmp/area-catalog.sql
|
||||
```
|
||||
@@ -0,0 +1,305 @@
|
||||
# Autonomes Verhalten: Implementierungsplan und Vertrag
|
||||
|
||||
Konzeptfortschreibung vom 27.10.2026: Der vereinbarte Umfang umfasst
|
||||
[sieben Grundintents](intent-katalog.md). Die folgende Implementierungsbeschreibung
|
||||
beschreibt vorwiegend die ursprünglichen drei technischen Intents; der neue
|
||||
[Ruhe-Intent `rest`](rest-intent.md), der [Freizeit-Intent `leisure`](leisure-intent.md)
|
||||
der [Wirtschaften-Intent `economy`](economy-intent.md) und der
|
||||
[Abenteuer-Ausbau](adventure-intent.md) sind separat dokumentiert. Die zuvor
|
||||
ausstehende visuelle Prüfung der Stuhlsitzposition hat der Nutzer inzwischen
|
||||
erfolgreich abgeschlossen.
|
||||
|
||||
Dieser Stand ersetzt die Lua-Tagesroutinen-Annahme aus `mikroaction.md`.
|
||||
Lua beschreibt Profile; der C++-Planer erzeugt daraus einen Tagesplan.
|
||||
|
||||
- 24 Stundenplätze nach lokaler Serverzeit, Reisezeit eingeschlossen. Ein Intent
|
||||
belegt 1–4 zusammenhängende Stunden; Ziele dürfen stündlich wechseln oder bleiben.
|
||||
Aufenthalte verlängern die festen Zeitfenster nicht.
|
||||
- Gewichtete Auswahl berücksichtigt Persönlichkeit, Aktivitäten und Regionen.
|
||||
- Locationtypen und Botaktionen werden in bearbeitbaren Katalogen mehreren Intents
|
||||
zugeordnet. Unklare Orte bleiben `landmark`, erkennbare Namen werden großzügig
|
||||
klassifiziert. Importierte Definitionen und manuelle Korrekturen werden erhalten.
|
||||
- Der Reiseexecutor nähert sich unerreichbaren Zielen bestmöglich über den Graphen;
|
||||
anschließend wird die nächste passende Ersatzlocation gesucht, ohne Entfernungsgrenze.
|
||||
- Ein Gebietsintent benötigt einen erreichbaren Graphnode innerhalb des Gebiets.
|
||||
Die lokale Erkundung darf das Gebiet nicht verlassen.
|
||||
- Bei einem Planwechsel wird eine laufende Fernreise bis zum nächsten sicheren
|
||||
regulären Graphnode beendet; Taxi, Portal, Schiff und Flug werden nicht gewaltsam
|
||||
unterbrochen. Danach wird das neue Ziel geplant.
|
||||
- Mikroaktionen: umsehen, erkunden, sitzen/rasten, trinken, essen, Emote, sprechen,
|
||||
Arbeit darstellen. Aktions- und Variantenhistorien senken Wiederholungsgewichte.
|
||||
Arbeit verändert weder Ressourcen noch Inventar. Echte Kampf-KI bleibt später.
|
||||
- Der erste Test ist `social` in `goldshire_tavern`; Arthorans Tagesplan bleibt aus.
|
||||
|
||||
## Umsetzungsschritte
|
||||
|
||||
1. Ortsimport und Katalogmigration mit Herkunft, Gebiets-/Zonenmetadaten.
|
||||
2. Profilgesteuerter Tagesplan, gespeicherte Stundenplätze und autonome Intent-Steuerung.
|
||||
3. Sichere Reiseübergabe, Ersatzziele, kontextabhängige Mikroaktionen und Diagnose.
|
||||
4. Automatisierte Prüfungen, Build, Installation und gezielter Tavernen-Servertest.
|
||||
Visuelle Abnahme erfolgt durch den Nutzer.
|
||||
|
||||
## Bedienung
|
||||
|
||||
Einmalig die additive Migration auf der Test-Weltdatenbank ausführen:
|
||||
`sql/custom/world/2026_10_26_03_adventure_behavior.sql`.
|
||||
Nach Installation des Builds in der Serverkonsole (ingame mit führendem Punkt):
|
||||
|
||||
```text
|
||||
clientless adventure import
|
||||
clientless adventure reload
|
||||
clientless adventure status 26
|
||||
clientless adventure plan 26
|
||||
clientless adventure intent 26 social goldshire_tavern 3600
|
||||
clientless adventure schedule 26 on
|
||||
clientless adventure schedule 26 off
|
||||
clientless adventure stop 26
|
||||
```
|
||||
|
||||
`plan` erzeugt beziehungsweise zeigt den Tagesplan, aktiviert ihn aber nicht.
|
||||
`intent` fordert selbstständige Reise und anschließende Mikroaktionen an;
|
||||
seine Dauer dient gezielten Tests und startet mit dem Auftrag. Die normale
|
||||
Tagesplanung verwendet dagegen feste Stundenfenster. `stop` und Planwechsel
|
||||
warten sichere Reisegrenzen ab. Weder Ressourcen noch Inventar werden für
|
||||
Mikroaktionen verändert. Arbeit wird nur an sichtbaren passenden Objekten mit
|
||||
geprüftem lokalen Anlauf dargestellt. Echte Kämpfe sind noch kein Teil des Katalogs.
|
||||
|
||||
Lua-Profile erhalten zusätzlich:
|
||||
|
||||
```lua
|
||||
behavior = {
|
||||
enabled = true,
|
||||
daily_schedule = false,
|
||||
initial_intent = "social",
|
||||
initial_location = "goldshire_tavern",
|
||||
initial_duration_seconds = 3600,
|
||||
locale = "deDE",
|
||||
},
|
||||
micro_action_affinity = { drink = 1.5, rest = 1.2 },
|
||||
```
|
||||
|
||||
`daily_schedule = true` startet stattdessen den Profilplaner. Ohne explizites
|
||||
`behavior.enabled` bleiben bisherige Clientless-Controller unverändert.
|
||||
`intend("social", {location="goldshire_tavern"})` bleibt als semantischer
|
||||
manueller Auftrag möglich; Lua berechnet weder Tagesplan noch Mikroaktionen.
|
||||
|
||||
## Daten und Korrekturen
|
||||
|
||||
- `vcore_clientless_world_point`: Kategorie, Position, enabled wie bisher.
|
||||
- `vcore_adventure_location`: Herkunft, Anzeigename, Gebiet, Zone, Region,
|
||||
Gebietsmarkierung und optionaler Fraktionsfilter (0 beliebig, 1 Allianz, 2 Horde).
|
||||
- `vcore_adventure_location_intent`: mehrere Intents mit Gewichten je Kategorie.
|
||||
- `vcore_adventure_action` und `vcore_adventure_action_intent`: Dauer,
|
||||
Umgebungsbedingung, Darstellung und mehrere passende Intents.
|
||||
- `vcore_adventure_dialog`: gemeinsam verwendete Textvarianten pro Sprache und Intent.
|
||||
- `vcore_adventure_day`: 24 gespeicherte Stundenplätze je Charakter und lokalem Datum.
|
||||
|
||||
Importer und Migration verwenden für Kataloge und Ortsdefinitionen `INSERT IGNORE`.
|
||||
Damit bleiben manuelle Positions-, Typ-, Gewichts- und enabled-Korrekturen erhalten.
|
||||
Anschließend `clientless adventure reload` ausführen; bei geänderten Worldpoints
|
||||
zusätzlich deren bestehende Reload-Funktion verwenden oder den Import wiederholen.
|
||||
|
||||
Die Quellen sind `game_tele`, Wachposten-POIs und Gasthaus-/Berufsausbilder-Spawns.
|
||||
Wachposten-POIs besitzen nur X/Y: Ihre Karte wird aus dem räumlich nächsten
|
||||
Teleport-Ort geschätzt, ihre Höhe stammt aus der nativen Terrain-/VMAP-Abfrage.
|
||||
Diese Einträge sind als `guard_poi_inferred` gekennzeichnet und dürfen später
|
||||
korrigiert werden. Benannte Gesamtgebiete werden über native Gebietsmetadaten
|
||||
erkannt. Ziele in Instanzkarten werden importiert, jedoch nicht als autonome
|
||||
Aufenthaltsorte gewählt. Bekannte Instanzeingänge auf Außenweltkarten bleiben
|
||||
gewöhnliche Reiseziele; eine vollständige Dungeon-Aktivität ist ein späterer Schritt.
|
||||
|
||||
## Prüfung
|
||||
|
||||
```bash
|
||||
python3 tests/clientless/test_adventure_behavior_policy.py
|
||||
python3 tests/clientless/test_adventure_intent_state.py
|
||||
python3 tests/clientless/test_flight_area_query.py
|
||||
```
|
||||
|
||||
Weitere Regressionen prüfen Lua-Reload, Graphplanung, Flug, Portale und Transporte.
|
||||
Neue Logereignisse: `ADVENTURE_CATALOG`, `DAY_PLAN`, `INTENT_TRAVEL`,
|
||||
`INTENT_FALLBACK`, `INTENT_ARRIVED`, `MICRO_START`.
|
||||
|
||||
Der erste Live-Test aktiviert ausschließlich Arthorans Geselligkeit in Goldhain.
|
||||
Die sichtbare Abnahme sowie die weiteren Intent-/Tagesplan-Tests folgen mit dem Nutzer.
|
||||
|
||||
## Bisherige Servertests am 26.10.2026
|
||||
|
||||
- Import: 2.631 Definitionen (1.531 Teleport-Orte, 372 rekonstruierte
|
||||
Wachposten-POIs, 728 Gasthaus-/Berufsausbilder-Spawns). Zusammen mit neun
|
||||
bestehenden semantischen Locations stehen 2.640 Locations im Katalog.
|
||||
Darunter 33 Gesamtgebietsziele. 231 POIs ohne brauchbare Koordinaten/Höhe
|
||||
wurden übersprungen. Ein Wiederholungsimport erzeugte keine Duplikate.
|
||||
- Bestehende Goldhainer Taverne unverändert; native Zone 12, Region `elwynn`.
|
||||
- Arthoran reiste eigenständig von Goldhains Startpunkt in die Taverne.
|
||||
Reiseabschluss, `INTENT_ARRIVED` und wiederholte `MICRO_START` bestätigt.
|
||||
Beobachtete Aktionen im Log: sprechen, sitzen, winken, trinken, erkunden,
|
||||
essen, lachen und nicken. Dies bestätigt serverseitige Ausführung, keine
|
||||
visuelle Abnahme der Animationen.
|
||||
- Tagesplan-Vorschau: genau 24 persistierte Stundenplätze mit mehrstündigen
|
||||
Aufenthalten und wechselnden Zielen. `daily_schedule` bleibt für Arthoran aus.
|
||||
- Die native Gebietsanfrage der Fluglogik verwendete die Argumentreihenfolge
|
||||
des TerrainMgr statt TerrainInfo. Korrigiert und mit einer eigenen
|
||||
Produktionsmethoden-Regression für Karte/Phase, Gebiet/Zone und Cache geprüft.
|
||||
|
||||
Weitere Reise-/Ersatzziel-, Gebiets-, Arbeitsdarstellungs- und Stundenwechseltests
|
||||
bleiben für die nächsten gemeinsamen Testschritte vorgesehen. Automatisierte
|
||||
Tests decken die Zustandsübergänge und Auswahlregeln bereits ab.
|
||||
|
||||
Zusätzliche Regressionen für Reisewechsel und Mikroaktionsbereinigung:
|
||||
|
||||
```bash
|
||||
python3 tests/clientless/test_adventure_graph_handover.py
|
||||
python3 tests/clientless/test_adventure_micro_reset.py
|
||||
```
|
||||
|
||||
Die Bereinigung stoppt die tatsächliche lokale Spline, statt nur ihren
|
||||
Navigationsdatensatz zu entfernen. Laufende Schiffsfahrten, Taxiflüge,
|
||||
freie Flüge und Portaltransfers werden dabei weiterhin nicht abgebrochen.
|
||||
|
||||
## Vollständiger Geselligkeitskatalog
|
||||
|
||||
Migration nach der Grundmigration:
|
||||
`sql/custom/world/2026_10_26_04_adventure_social.sql`.
|
||||
|
||||
Die neuen `social_*`-Szenen ergänzen Essen, Trinken, Umsehen, Platzwechsel und
|
||||
kurze Emotes: NPC- und Botgespräch, Sitzplatzsuche, Tresen, Bestellung,
|
||||
Begrüßung, Zuhören, Gesprächsreaktion, Anstoßen, Abschied, Kommentar,
|
||||
seltenes Tanzen und Lagerfeuer mit Rast. Gesprächspartner werden selbstständig
|
||||
angelaufen und anvisiert; `/reden`, Zuhören und Abschied bilden einen Ablauf.
|
||||
NPCs und andere Bots werden dabei nicht künstlich zu Antworten gezwungen.
|
||||
Menschliche Spieler sind keine gezielt ausgewählten Gesprächspartner.
|
||||
|
||||
Aktionsart, Variante, Dialogzeile und Ziel-GUID erhalten Wiederholungsdämpfung.
|
||||
Sitzplätze werden mit der nativen GameObject-Benutzung verwendet; der Bot läuft
|
||||
zuerst heran und wartet danach auf bestätigtes Sitzen. Möbel mit ausgelösten
|
||||
Events werden nicht verwendet. Essen, Trinken und Rasten versuchen ebenfalls,
|
||||
einen verfügbaren echten Stuhl zu nutzen; sonst bleibt die bisherige Darstellung.
|
||||
|
||||
Alle AdventureBots erhalten bei ihrem normalen Controller-Login den Spielerzauber
|
||||
**818 – Cooking Fire**, unabhängig von Berufsprofil oder Kochkunstprüfung.
|
||||
Ein eigenes Feuer wird ausschließlich über den normalen Zauber erzeugt und erst
|
||||
nach Auftauchen des nativen Feuerobjekts bestätigt. Native Castbedingungen und
|
||||
Cooldown gelten. Neue Feuer werden nur draußen, an einer kleinen ebenen Stelle
|
||||
und außerhalb von Wasser erzeugt; vorhandene geeignete Feuer können auch ohne
|
||||
neuen Cast genutzt werden. Die normale Lebensdauer des Feuerobjekts bleibt erhalten.
|
||||
|
||||
Gezielter Szenentest bei einem bereits am Ziel angekommenen AdventureBot:
|
||||
|
||||
```text
|
||||
clientless adventure micro 26 social_npc
|
||||
clientless adventure micro 26 social_order
|
||||
clientless adventure micro 26 social_seat
|
||||
clientless adventure micro 26 social_make_fire
|
||||
clientless adventure status 26
|
||||
```
|
||||
|
||||
Der Testbefehl verwendet dieselben Umgebungs-, Ziel-, Navigations- und nativen
|
||||
Interaktionsprüfungen wie die automatische Auswahl. Ungeeignete oder fehlende
|
||||
Ziele werden abgelehnt. Die automatische Tagesplanung wird dadurch nicht aktiviert.
|
||||
|
||||
Neue Diagnoseereignisse: `SOCIAL_START`, `SOCIAL_CUE`, `SOCIAL_SEATED`,
|
||||
`SOCIAL_FIRE_CAST`, `SOCIAL_FIRE_CONFIRMED`, `SOCIAL_END`.
|
||||
|
||||
```bash
|
||||
python3 tests/clientless/test_adventure_social.py
|
||||
```
|
||||
|
||||
Die Regression führt die produktive Szenensteuerung aus: kein Reden während
|
||||
des Anlaufs, vollständige Gesprächsfolge, Abbruch bei verschwundenen/feindlichen
|
||||
Zielen, native Stuhlbenutzung mit Sitzbestätigung und Lagerfeuer-Cast ohne
|
||||
erfundene Erfolgsmeldung bei fehlendem Feuerobjekt.
|
||||
|
||||
Die Möbel-Suche verlangt noch keine freie Sicht vom ursprünglichen Standpunkt:
|
||||
Stühle in angrenzenden Räumen dürfen über einen vollständigen lokalen Laufweg
|
||||
gefunden werden. Am gewählten Anlaufpunkt und unmittelbar vor der Benutzung
|
||||
wird die native Sichtlinie geprüft. Gesprächspartner dürfen beim Umrunden von
|
||||
Hindernissen kurz aus dem Blick geraten; Gesten beginnen erst nach Ankunft.
|
||||
Dynamische Lagerfeuer werden zusätzlich über die native erzeugende Zauber-ID
|
||||
818 erkannt, unabhängig vom lokalisierten Objektnamen.
|
||||
|
||||
Zusätzliche Prüfung:
|
||||
|
||||
```bash
|
||||
python3 tests/clientless/test_adventure_social_fire.py
|
||||
```
|
||||
|
||||
## Servertest Geselligkeitsausbau am 26.10.2026
|
||||
|
||||
- Nativer NPC-Gesprächsanlauf und vollständige Folge aus Begrüßung, `/reden`,
|
||||
Zuhören, Reaktion, erneutem Reden und Abschied bestätigt.
|
||||
- Bestellung und Tresenaufenthalt beim tatsächlichen Goldhainer Gastwirt
|
||||
(Creature-Entry 295) bestätigt.
|
||||
- Echte Stuhlbenutzung mit `SOCIAL_SEATED` bestätigt, unter anderem
|
||||
GameObject-Entries 22812 und 177498. Trinken auf dem nativen Stuhl ebenfalls
|
||||
serverseitig ausgeführt. Keine künstliche Sitzposition gesetzt.
|
||||
- Gemeinsamer Lagerfeuerzauber 818 bei Arthoran als gelernt gespeichert.
|
||||
- Außenversuch: `SOCIAL_FIRE_CAST` und `SOCIAL_FIRE_CONFIRMED`, natives
|
||||
GameObject-Entry 29784. Kein direkter GameObject-Spawn durch die Botsteuerung,
|
||||
keine Kochkunstprüfung und keine Umgehung des normalen Cooldowns.
|
||||
- Der temporäre Außen-Testpunkt ist kein Graphnode und wird nach dem Test
|
||||
entfernt; Arthoran kehrt zur Goldhainer Taverne zurück.
|
||||
|
||||
Die visuelle Abnahme der neuen Szenen erfolgt durch den Nutzer. Ein tatsächlicher
|
||||
Dialog zwischen mehreren AdventureBots wurde mit dem einzelnen Testbot noch
|
||||
nicht im Spiel geprüft; die Auswahl und einseitige Ansprache sind implementiert.
|
||||
|
||||
Abschließender Teststand: Rasten am bereits vorhandenen Feuer während des
|
||||
normalen Zaubercooldowns bestätigt (`social_fire`, Rast-Cue 14). Arthoran ist
|
||||
über normale Navigation zur Goldhainer Taverne zurückgekehrt. Der temporäre
|
||||
Außenpunkt wurde entfernt und die Ortsdaten erneut abgeglichen. Der Tagesplan
|
||||
bleibt deaktiviert; der neue Geselligkeitskatalog läuft zur Sichtprüfung.
|
||||
|
||||
## Gesprächsposition und Gehmodus
|
||||
|
||||
Gesprächsplätze liegen vor der tatsächlichen Orientierung des Gegenübers.
|
||||
Bevorzugt werden 2,2 Yards Abstand, bei Hindernissen auch 3,2 Yards und
|
||||
leicht schräge Positionen (etwa ±16 beziehungsweise ±32 Grad). Ein naher Platz
|
||||
seitlich oder hinter dem NPC gilt nicht als fertiger Gesprächsanlauf. Dreht sich
|
||||
der NPC, wird die Position vor den nächsten Gesten erneut geprüft und bei Bedarf
|
||||
begrenzt nachgeführt. Ist kein frontaler Platz erreichbar, wird die Szene beendet,
|
||||
statt von hinten weiterzureden. NPCs werden dabei nicht künstlich gedreht.
|
||||
|
||||
Lokale Bewegungen während eines Geselligkeits-Intents verwenden den nativen
|
||||
Gehmodus. Er bleibt bei Neuplanung und mehreren lokalen Splineabschnitten erhalten;
|
||||
für diese Bewegungen wird kein Bodenmount verwendet. Andere Reiseaufträge behalten
|
||||
ihre bisherige Fortbewegungswahl. Das Navigationslog zeigt `walk=1`, das Soziallog
|
||||
mit `SOCIAL_FRONT` den Winkel und Abstand zum Gegenüber.
|
||||
|
||||
```bash
|
||||
python3 tests/clientless/test_adventure_walk.py
|
||||
python3 tests/clientless/test_adventure_social.py
|
||||
```
|
||||
|
||||
Servertest der Korrektur: Ein NPC-Gespräch wurde mit frontalem Winkelversatz
|
||||
0,000 und 2,20 Yards Abstand ausgeführt. Sowohl der Weg zum Stuhl als auch der
|
||||
Gesprächsanlauf wurden als `walk=1` über die native Spline ausgeführt. Build mit
|
||||
`-j10` und die zugehörigen Regressionen bestanden. Visuelle Bestätigung erfolgt
|
||||
anschließend durch den Nutzer.
|
||||
|
||||
## Sitzposition für beobachtende Spieler
|
||||
|
||||
Ein clientloser Spieler sendet keine normalen Client-Bewegungspakete. Dadurch
|
||||
konnte seine `MovementInfo.guid` leer bleiben. Die native Nahteleport-Bestätigung
|
||||
benutzte diese Struktur für die Nachricht an Beobachter: Die Sitzpose konnte
|
||||
sichtbar werden, während die kleine Versetzung auf den Stuhl beim Beobachter
|
||||
fehlte. `CompleteNearTeleport` setzt deshalb die tatsächliche Mover-GUID vor
|
||||
dem Senden ausdrücklich; clientlose Sessions erhalten einen frischen Zeitstempel.
|
||||
Normale Clients behalten ihren Bewegungszeitstempel.
|
||||
|
||||
`SOCIAL_SEATED` erfordert nun den tatsächlichen Stuhl- beziehungsweise Bankslot
|
||||
(maximal 0,15 Yards horizontaler Fehler), passende Höhe, Ausrichtung und die
|
||||
zur Stuhlhöhe gehörende native Sitzanimation. Bodensitzen oder eine Sitzpose
|
||||
neben dem Stuhl gelten nicht als Erfolg. Die Prüfung bleibt während der
|
||||
Stuhlszene aktiv. Das Log enthält Sitzposition, Slotfehler, Sitzstatus und
|
||||
Bewegungs-GUID.
|
||||
|
||||
```bash
|
||||
python3 tests/clientless/test_clientless_near_teleport_observer.py
|
||||
python3 tests/clientless/test_adventure_social.py
|
||||
```
|
||||
|
||||
Erneuter Servertest: Stuhl-Entry 22812, Sitzposition
|
||||
`(-9475.510, 29.792, 56.343)`, Slotabweichung `0.000`, native Sitzhaltung `5`,
|
||||
Bewegungs-GUID `26`. Die Beobachternachricht und die genaue Sitzprüfung sind
|
||||
installiert; die visuelle Bestätigung erfolgt durch den Nutzer.
|
||||
@@ -0,0 +1,59 @@
|
||||
# Ödland: Anleger ↔ Klippe, Trigger 6321/6322
|
||||
|
||||
Stand 26.10.2026. Laut Nutzer soll der Anleger ein erreichbares Bot-Reiseziel
|
||||
sein; diese Verbindung ist dafür wichtig. Beide gleichkartigen Übergänge sind
|
||||
im lokalen Testgraph aktiviert. Native Trigger und Ziele bleiben unverändert.
|
||||
|
||||
## Native Daten und Import
|
||||
|
||||
Beide Trigger liegen auf Karte 0, haben Radius 1.78776 und keine DBC-
|
||||
Phasenflags. Die lokale DB enthält keine eigenen AreaTrigger-Skripte und
|
||||
keine direkten Questzuordnungen über `areatrigger_involvedrelation` für diese
|
||||
IDs; in den untersuchten Core-/Skriptdateien gibt es keine Sonderbehandlung
|
||||
der IDs. Das ist keine pauschale Aussage über jede denkbare Zugangsbedingung.
|
||||
|
||||
Reproduktion über die Testserver-Konsole:
|
||||
|
||||
```text
|
||||
clientless portal import 6321
|
||||
clientless portal import 6322
|
||||
```
|
||||
|
||||
Der Import legt vier Nodes und zwei gerichtete Kanten an und lädt den Graph
|
||||
neu. Keine Höhenkalibrierung oder zusätzliche Migration erforderlich.
|
||||
|
||||
| Node | X | Y | Z | Funktion |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| portal_at_6321_source | -6518.680 | -4604.420 | 29.2335 | Anleger, hinauf |
|
||||
| portal_at_6321_target | -6547.880 | -4443.240 | 332.079 | Ankunft an der Klippe |
|
||||
| portal_at_6322_source | -6551.280 | -4446.460 | 332.829 | Klippe, hinunter |
|
||||
| portal_at_6322_target | -6519.820 | -4608.520 | 28.4842 | Ankunft am Anleger |
|
||||
|
||||
Portal-Kanten 1750 (6321_source → 6321_target) und 1751
|
||||
(6322_source → 6322_target), Kosten jeweils 1, unidirektional.
|
||||
|
||||
## Live-Test
|
||||
|
||||
Arthoran wurde nach Sicherung seiner Ausgangsdaten ausgeloggt am unteren
|
||||
Source-Node positioniert. Danach reguläre Reiseaufträge ohne weitere
|
||||
Positionsmanipulation während der Fahrt:
|
||||
|
||||
- 12:05:54: Trigger 6321, Anleger → Klippe, `EDGE_COMPLETE`,
|
||||
`arrivalError=0.00`, `recovery=0`.
|
||||
- Oben vollständig validierte MMAP-Brücke vom Ankunftspunkt zum Rücktrigger:
|
||||
4.75 Yards Pfadlänge, tatsächliche Bewegung, ohne Recovery.
|
||||
- 12:05:55: Trigger 6322, Klippe → Anleger, `EDGE_COMPLETE`,
|
||||
`arrivalError=0.00`, `recovery=0`.
|
||||
|
||||
Der zweite erfolgreiche Umlauf (12:06:18–12:06:19) ab der natürlichen unteren
|
||||
Ankunft bestätigte außerdem den Anlauf von `portal_at_6322_target` zu
|
||||
`portal_at_6321_source`. Alle vier Portalabschlüsse hatten Ankunftsfehler 0
|
||||
und Recovery 0. Arthoran wurde anschließend ausgeloggt; Ausgangsposition, Zone
|
||||
und Lua-Skript wurden wiederhergestellt.
|
||||
Die Portalreisen verwenden den normalen AreaTrigger-Handler mit
|
||||
Clientless-Near-ACK und Zielprüfung.
|
||||
|
||||
Es wurden keine Groundanschlüsse an das übrige Ödlandnetz aufgenommen oder
|
||||
getestet. Keine Coreänderung, kein Build und kein Serverneustart erforderlich.
|
||||
Finale Ingame-Abnahme durch den Nutzer steht aus.
|
||||
Sicherungen und Logs: `/tmp/vcore-badlands-test.0lkimsmi`.
|
||||
@@ -0,0 +1,14 @@
|
||||
# Portals to the Blasted Lands
|
||||
|
||||
Enabled on the test world database on 2026-10-29 using the existing native importer:
|
||||
|
||||
```text
|
||||
clientless portal object import 219963
|
||||
clientless portal object import 211359
|
||||
clientless portal object import 211298
|
||||
clientless adventure reload
|
||||
```
|
||||
|
||||
Stormwind spawn 219963 (entry 195141, spell 65728); Orgrimmar spawns 211359 and 211298 (entry 195142, spell 65729). The coincident Orgrimmar spawn 218904 is intentionally not duplicated in the graph. Source node ACLs are 1 (Alliance) and 2 (Horde), respectively, in `vcore_clientless_node_access`. Destination nodes retain the shared Blasted Lands area policy. Native spell destinations are used, with one-way click edges and no invented teleport. Existing graph enabled flags are preserved by repeated imports.
|
||||
|
||||
Bindings verified in the database (edges 1758–1760); native importer confirms active graph bindings. End-to-end traversal is pending gameplay verification. No C++ changes or binary installation. The server was already stopped when activation began; recovered with a fresh startup, ready marker and both 8085/8087 listeners verified. Console: `/tmp/vcore-portal-enable-start-20261029.log`.
|
||||
@@ -0,0 +1,143 @@
|
||||
# Autonomous AdventureBot groups
|
||||
|
||||
Bot groups use native invitations, party membership, leadership, raid conversion,
|
||||
instance bindings and persistence. The first inviter becomes leader. Human-led
|
||||
groups retain the existing interaction/follow behavior. A human invitation to an
|
||||
already grouped bot acts as a join request: a bounded GUID-only CPC notification
|
||||
lets the bot leader offer a reverse native invitation, subject to personality,
|
||||
faction and capacity. Once the player joins, native leadership is transferred to
|
||||
the human and bots switch to the existing player-led behavior. This does not
|
||||
parse player chat or forcibly remove any member. Role assignment, healer
|
||||
or tank AI, and replacement of absent players remain separate work.
|
||||
|
||||
## Recruitment and preparation
|
||||
|
||||
Adventure, compatible professions, social, instance and raid intents recruit.
|
||||
Local encounters require phase, visibility, LOS and25-yard proximity. A lone bot
|
||||
may request admission to an existing matching group; its leader sends the native
|
||||
invitation. A leader may recruit individual bots. Recruitment and acceptance are
|
||||
personality dependent, with20–40 seconds between searches,2–4 seconds for native
|
||||
invite responses (provisional native leaders never answer their own invite) and a10-minute pair cooldown. Dead/combat/fleeing/transit bots do
|
||||
not recruit. Same faction and an inclusive five-level spread are required.
|
||||
Profession groups need a common primary profession.
|
||||
|
||||
`groupformation` prepares the next hour's intent in a capital. During this phase,
|
||||
matching NEXT intents are required, not matching original destinations. The
|
||||
leader's existing formation location becomes the meeting point; members inherit
|
||||
it and subsequently inherit the leader's activity target and deadline. Their own
|
||||
stored day plans remain intact and are restored on departure. Departure decisions
|
||||
track the personal plan, so inheriting a different group destination is not
|
||||
misinterpreted as an intent change. Unexpired manual
|
||||
activities are restored too; expired manual activities end. New day generation inserts
|
||||
preparation before instance/raid blocks, and probabilistically before other
|
||||
eligible blocks; backwards processing prevents preparations preparing another
|
||||
preparation. Existing stored days are preserved.
|
||||
|
||||
The faction-separated native custom channel `sucheNachGruppe` carries bounded
|
||||
recruitment and response messages across capitals. The manager pairs structured
|
||||
bot plans; it never interprets player chat. Opposite-faction channel traffic is
|
||||
not used. Capital zones include racial capitals, Shattrath and Dalaran.
|
||||
Announcements currently use German RP text.
|
||||
|
||||
Recruitment capacity includes the leader and pending invitations: instance5,
|
||||
raid20, social10, adventure/profession3. Groups larger than five use native raid
|
||||
membership. Full groups stop searching. These are intent-specific recruitment
|
||||
limits; when the leader chooses a smaller activity, excess bot members depart
|
||||
at a safe point before recruitment continues. Native map admission limits and existing/permanent lockouts remain
|
||||
in force. Raid preparation requests the native25-player normal difficulty; the catalog
|
||||
uses native downscaling and requires capacity for at least20 members, excluding
|
||||
ten-player-only raid maps. Legacy20/40-player raids remain possible.
|
||||
No role guarantees are implied.
|
||||
|
||||
Preparation never waits for a full group or for members to arrive. The leader's
|
||||
next intent starts on its ordinary deadline. Late members catch up. Formation
|
||||
suppresses the AFK/inactivity departure timer and refreshes its baseline; the
|
||||
planned formation-to-activity transition is exempt from intent-change departure.
|
||||
Later changes retain the existing loyalty-based departure behavior, deferred in
|
||||
combat/instances/transit. Native removal handles leadership and party dissolution.
|
||||
|
||||
### Final formation manager
|
||||
|
||||
During the final ten minutes of `groupformation`, a deterministic fallback runs
|
||||
every 30 seconds. It prefers the largest compatible bot-led group, fills only its
|
||||
currently missing roles, and may move a bot out of a smaller incomplete bot-led
|
||||
group. Human-led and browser/LFG groups are never reorganized. Every transfer is
|
||||
revalidated against faction, the inclusive five-level range, profession rules,
|
||||
the leader's chosen destination, that destination's level/access restrictions,
|
||||
area policy and native capacity. Level 85 is an isolated matching category: a
|
||||
level-85 bot is only consolidated with other level-85 bots. This is a greedy
|
||||
fallback intended to maximize complete groups without replacing normal social
|
||||
formation; it does not claim a globally optimal partition.
|
||||
|
||||
The ordinary five-minute gathering/departure rule remains authoritative. A
|
||||
complete group can therefore finish consolidation by minute 50 and gather from
|
||||
minute 55. At the block boundary, groups still incomplete use the configured
|
||||
browser behavior and do not begin an overland dungeon or raid journey. The
|
||||
manager never changes stored day-plan slots or a group's leader target.
|
||||
|
||||
GM diagnostics and explicit test fallback are available as
|
||||
`clientless groupmanager preview`, `clientless groupmanager run`, and
|
||||
`clientless groupmanager status`. `run` uses the same access, role, faction and
|
||||
transfer checks but deliberately ignores the ten-minute time gate; it does not
|
||||
override human leadership or native admission rules.
|
||||
|
||||
## Shared travel and instances
|
||||
|
||||
Followers run their AdventureBehavior controller with the leader's effective
|
||||
intent/location/deadline, keeping their personal daily schedule. After arrival,
|
||||
non-instance followers use native checked local following instead of independently
|
||||
performing unrelated micro-actions. Leaders continue their own activities.
|
||||
|
||||
Generic CPC travel actions accept `route_source=<native-group-leader-guid>`.
|
||||
The executor copies the leader's route edges and final local destination, keeping
|
||||
execution/transport state separate. Late arrivals plan a native approach to the
|
||||
shared route's previous reached node and replay the remaining edges. A bounded
|
||||
15-second wait handles follower actions processed before the leader plans. If no
|
||||
matching macro snapshot exists (including a local-only leader leg), the ordinary
|
||||
native catch-up planner runs; this is not a synthetic transfer or an absolute
|
||||
formation guarantee. Individual permissions/path failures still use native
|
||||
travel recovery. `TRAVEL_SHARED_ROUTE` provides evidence of actual copying.
|
||||
|
||||
Free-flight members with the same target consume the leader's published flight
|
||||
segments. Each member mounts normally and rechecks its own collision corridor.
|
||||
A shared trail survives leader arrival/new planning through shared ownership.
|
||||
Waiting for additional published points holds flight position; an aborted or
|
||||
blocked trail uses existing checked breadcrumb return. No position, speed or
|
||||
flight-license cheat is introduced. `FLIGHT_SHARED_TRAIL` marks attachment.
|
||||
|
||||
`raid` selects only native raid-map entrances; `instance` excludes them. These
|
||||
are verified from native map data through the existing entrance catalog rather
|
||||
than name matching. Both use the existing remainder-of-block visit and final
|
||||
five-minute outside rest, individual0–50% maximum-health loss, save/restart and
|
||||
native portal return. Native group binding supplies the shared instance copy;
|
||||
unrelated shared solo bindings remain rejected. Members do not use separate
|
||||
synthetic private copies.
|
||||
|
||||
Only the group leader initiates personality/intent-driven PvP. Other bots assist
|
||||
through the existing damage executor. All group members retain the absolute rule against tactical fleeing,
|
||||
regardless of health or level.
|
||||
|
||||
## Operations and verification
|
||||
|
||||
Apply `sql/custom/world/2026_10_28_01_adventure_groups.sql`; it is idempotent and
|
||||
preserves edited weights/current day plans. No character migration is needed.
|
||||
`clientless adventure reload` reloads catalog data.
|
||||
|
||||
Diagnostics: `clientless interaction <guid> leave` performs a safe native
|
||||
departure/cancels a pending invite for test cleanup. `clientless interaction <guid>` includes next intent, formation,
|
||||
capacity, bot leadership and own plan location. `clientless adventure plan <guid>`
|
||||
shows stored day slots. `clientless adventure prepare <guid> <next-intent>
|
||||
<capital-location> [seconds]` stages a manual preparation, with a chosen normal
|
||||
next destination, lasting30–3600 seconds and followed by a one-hour activity.
|
||||
It uses normal navigation, invitations and execution, and can start incomplete.
|
||||
Manual preparations are runtime test state, not restart-persisted day plans.
|
||||
|
||||
Automated fixtures execute production recruitment, provisional-leader invite
|
||||
handling, full world-tick behavior clocks in bot groups, player admission and
|
||||
leadership, inheritance, instance
|
||||
lifecycle, map-type filtering, route adoption and flight-trail geometry. They
|
||||
cover different original destinations, singleton admission, native inviter
|
||||
leadership, caps/pending reservations, raid conversion, protected transition,
|
||||
unchanged personal plans, preparation deadlines, shared edges/free flight,
|
||||
collision and abort behavior. Full native live group trips,20-member raids,
|
||||
real AFK duration and visual gameplay remain acceptance tests for the user.
|
||||
@@ -0,0 +1,139 @@
|
||||
# AdventureBot-Gruppen, Browser und PvP
|
||||
|
||||
Stand: Implementierung gebaut (-j10), alle120Clientless-Tests erfolgreich; noch nicht installiert/live abgenommen.
|
||||
Dungeon-, Raid- und PvP-Intents verwenden die bestehenden Tagespläne. `pvp` ist
|
||||
neu und wird bei der Profilerzeugung als gewichtete Aktivitätspräferenz angeboten.
|
||||
Bestehende Profile können `activity_affinity.pvp` ausdrücklich setzen; sonst gilt
|
||||
im Planer ein kleiner, durch Aggression gewichteter Standardwert.
|
||||
|
||||
## Abreise und Rollen
|
||||
|
||||
Dungeon-/Raidbesuche starten selbstständig erst mit vollständiger geeigneter
|
||||
Gruppe. Dungeonrollen:1Tank,1Heiler,3DD. Raidrollen richten sich nach der
|
||||
bestehenden Zielkapazität: bis10Mitglieder2/2/6,20Mitglieder2/4/14,
|
||||
25Mitglieder2/6/17. Die bereits vorhandenen Kapazitätsgrenzen der Locations
|
||||
bleiben maßgeblich. Profile legen Botrollen fest, Spielerrollen werden aus
|
||||
vorhandenen Gruppenrollen beziehungsweise ihrer Spezialisierung ermittelt.
|
||||
|
||||
Die erste tatsächliche Abreise gibt die gesamte Botgruppe für den laufenden
|
||||
Intent frei. Spätere Austritte und Rollenlücken stoppen diese Reise nicht und
|
||||
lösen keinen Browserwechsel aus. Gespeicherte laufende Instanzbesuche werden
|
||||
weiterhin wiederaufgenommen. Spielergeführte Gruppen folgen ihrem Spieler;
|
||||
Bots melden diese Gruppen nicht eigenmächtig an.
|
||||
|
||||
Unvollständige Botgruppen und einzelne Bots warten am aktuellen Ort und melden
|
||||
sich bei zulässigem Browser an. Native Prüfungen für Level, Erweiterung,
|
||||
Gegenstandsstufe, Zugänge, Sperren, Rollen und Accountrechte bleiben erhalten.
|
||||
Die lokalen Cataclysm-DBC-Daten enthalten die Drachenseele-Flügel416/417 als
|
||||
Stufe85-Angebote mit2Tanks,6Heilern und17DDs. Ihr TypeID ist1 (Dungeon), die Karte
|
||||
ist jedoch ein Raid. Die Botregeln unterscheiden deshalb anhand der tatsächlichen
|
||||
Karte; sie behandeln diese Angebote nicht versehentlich als Fünfer-Dungeons.
|
||||
Die native Anmeldung dieser Type1-Flügel nutzt die vorhandene Dungeonfinder-
|
||||
Berechtigung, nicht den separaten Legacy-Raidbrowser-Schalter. Der Bot-Schalter
|
||||
für Raidbeitritt bleibt trotzdem anhand der tatsächlichen Raidkarte wirksam.
|
||||
`DungeonFinder.OptionsMask` wurde nicht verändert.
|
||||
Die Browserwahl verwendet zugängliche Angebote, nicht zwangsläufig das vorher
|
||||
im Tagesplan ausgewählte Reiseziel. Rolle und Angebot werden nativ bestätigt;
|
||||
Vermittlung und Teleport bleiben Aufgaben des vorhandenen Cores.
|
||||
|
||||
## Schalter
|
||||
|
||||
| Konfiguration | Standard |
|
||||
|---|---:|
|
||||
|Clientless.Browser.Dungeon.QueueEnabled|1|
|
||||
|Clientless.Browser.Dungeon.JoinEnabled|1|
|
||||
|Clientless.Browser.Raid.QueueEnabled|1|
|
||||
|Clientless.Browser.Raid.JoinEnabled|0|
|
||||
|Clientless.Browser.Battleground.QueueEnabled|1|
|
||||
|Clientless.Browser.Battleground.JoinEnabled|0|
|
||||
|Clientless.Browser.AllowBotOnlyTests|0|
|
||||
|
||||
`QueueEnabled` erlaubt das Anmelden. `JoinEnabled` erlaubt es, Bots tatsächlich
|
||||
in eine vermittelte Besetzung aufzunehmen. Bei abgeschaltetem Beitritt bleiben
|
||||
sie in der Suche, werden aber nicht in Angebote für Spieler eingerechnet und
|
||||
reservieren keine Plätze in startenden Partien.
|
||||
|
||||
Im Normalbetrieb braucht jede vermittelte Besetzung mindestens einen echten,
|
||||
verbundenen Spieler. Ein nach Verbindungsabbruch noch vorhandener Registereintrag
|
||||
reicht nicht: Die Realm-Verbindung muss offen sein. Die zweite Verbindung darf
|
||||
beim regulären Instanztransfer wechseln. Eine beliebige Person in einer anderen Warteschlange zählt
|
||||
nicht. Prüfung erfolgt vor dem Angebot und vor dem Beitritt erneut. LFG-Gruppen
|
||||
mit Bots erhalten einen echten Spieler als Anführer. Reine Botbesetzungen sind
|
||||
nur mit `AllowBotOnlyTests=1` möglich; zusätzlich müssen Queue und Join für den
|
||||
jeweiligen Browser aktiviert sein. Diese Testausnahme ersetzt weder Mindestgrößen
|
||||
noch native Zugangsvoraussetzungen. Vorhandene Low-Population-Regeln des Servers
|
||||
bleiben davon getrennt. Gruppen ohne Clientless-Teilnehmer behalten ihren Ablauf.
|
||||
|
||||
Die Regeln sind generische CPC-Admission-Regeln. DungeonFinding und Battlegrounds
|
||||
hängen dafür nicht vom AdventureBot-System ab. Die Adventure-KI wählt lediglich
|
||||
Anmeldungen und Rollen. Keine zusätzlichen externen Dienste oder Netzwerkschnittstellen.
|
||||
|
||||
## PvP
|
||||
|
||||
Ein PvP-Block mit Hauptstadtslocation bedeutet direkte Schlachtfeldsuche.
|
||||
Welt-PvP-Ziele kommen aus zulässigen Gebietslocations von TolBarad/TolBarad-Halbinsel,
|
||||
Höllenfeuerhalbinsel, Zangarmarschen, Nagrand und den Wäldern von Terokkar.
|
||||
Gebietskatalog, Fraktion, tatsächliches Mindestlevel und Fluganforderungen gelten
|
||||
auch hier. Für Welt-PvP genügt eine geeignete Gruppe ab zwei Mitgliedern; fehlen
|
||||
Mitglieder, geht der Bot stattdessen in die Schlachtfeldsuche. Diese läuft über
|
||||
die nativen normalen Schlachtfelder, nicht über Arena oder gewertetes PvP.
|
||||
UnterStufe45 wird Kriegshymnenschlucht angefragt, danach ein zufälliges Schlachtfeld;
|
||||
unterStufe10 erfolgt keine Anmeldung und kein neu generierter PvP-Block.
|
||||
Bei Schlachtfeld-Gruppensuche werden die nativen Levelbereiche der gewünschten
|
||||
Schlachtfeldvorlage verglichen, einschließlich der Mindeststufe für Zufallssuche. Die nativen Prüfungen entscheiden endgültig.
|
||||
|
||||
Derzeit geht es um Anmeldung und Beitritt. Spezifische Quest-, Flaggenträger-,
|
||||
Basen- und Bossmechaniken sind damit nicht implementiert. Welt-PvP benutzt zunächst
|
||||
vorhandene Erkundungsaktionen und die bisherigen persönlichkeitsabhängigen
|
||||
PvP-Angriffsregeln. Schlachtfeld-/Raidbeitritt ist daher standardmäßig gesperrt.
|
||||
|
||||
## Gruppen zusammenführen
|
||||
|
||||
Während der Gruppenbildung steigt die Wechselbereitschaft mit der verstrichenen
|
||||
Zeit. Größere passende Botgruppen werden bevorzugt. Auch Mitglieder kleinerer
|
||||
unvollständiger Botgruppen können wechseln, insbesondere um einen offenen
|
||||
Rollenplatz zu besetzen. Offene Einladungen reservieren bereits Rollenplätze;
|
||||
die eigene Reservierung verhindert nicht die Annahme. Überzählige Rollen aus
|
||||
falsch besetzten Gruppen dürfen auch in kleinere passende Gruppen wechseln,
|
||||
und das Vervollständigen einer zulässigen Gruppe hat Vorrang. Bereits abgereiste
|
||||
Anführer schützen auch Mitglieder, deren persönlicher Plan noch Gruppenbildung
|
||||
anzeigt. Ziel und Voraussetzungen der aufnehmenden Gruppe gelten.
|
||||
Die native Einladung/Annahme erfolgt im Worldthread; bei Ablehnung wird die
|
||||
ursprüngliche Gruppe soweit möglich wiederhergestellt.120Sekunden Wechselpause
|
||||
und eine eindeutige Rangfolge gleich großer Gruppen verhindern Pendeln.
|
||||
Spielergeführte Gruppen, volle passende Gruppen, laufende Reisen und bereits
|
||||
laufende Browsergruppen werden nicht automatisch umverteilt. Die feste
|
||||
Sammelfrist am Stundenende wird nicht verlängert.
|
||||
|
||||
## Validierung und Betrieb
|
||||
|
||||
Vor jedem Build Loader/Testannahme pausieren und sicheren Logout abwarten.
|
||||
Während der laufenden Schiffsaufzeichnung darf bei verbleibenden Bots auch nach
|
||||
fünfMinuten kein Shutdown erzwungen werden: Build dann zurückstellen. Installation
|
||||
und Neustart erst nach Freigabe für die Aufzeichnung. Zugehörige Tests:
|
||||
`test_browser_admission.py`, `test_group_role_composition.py`,
|
||||
`test_adventure_instance_begin.py`, `test_adventure_groups.py`,
|
||||
`test_browser_participants.py`, `test_browser_match_order.py`,
|
||||
`test_browser_bg_brackets.py`. Rollenabfragen werden außerhalb der Versorgungs-
|
||||
und Kampfaktionen beantwortet, nur solange die native Abfrage noch offen ist.
|
||||
Alle120Clientless-Testskripte wurden ausgeführt und bestanden. Sechs ältere
|
||||
Adapter benötigten die neuen Zustandsfelder/Schnittstellen; zusätzliche Assertions
|
||||
prüfen PvP-Persistenz, Browser-Wartephasen, Wiederaufnahme begonnener Reisen und
|
||||
AFK-Schutz während der Suche. Der vollständige CMake-Build und der abschließende
|
||||
inkrementelle Build liefen mit-j10 erfolgreich durch. Beide Config-Dateien wurden
|
||||
auf die vereinbarten Browserwerte geprüft. Details und Logs:
|
||||
`doc/clientless/checkpoints/2026-10-31-browser/validation-status.json` und
|
||||
`regression/final-summary.json`. Der vorherige114/120-Lauf samt Fehlerlogs ist
|
||||
als Diagnose erhalten; die behobenen Fälle wurden gezielt erneut ausgeführt.
|
||||
|
||||
Der Testserver war nach dem externen Umgebungsneustart bereits offline. Es wurden
|
||||
keine Bots für den Build zwangsausgeloggt, keine laufenden Transporte unterbrochen
|
||||
und kein Server durch diesen Arbeitslauf gestoppt. Loader und TestBot-Ausführung
|
||||
bleiben pausiert (Config0/0); ursprünglicher TestBot-Wert1 ist in
|
||||
`resumed-build-state.json` gespeichert. Installation/Start erst nach Freigabe.
|
||||
Vor dem nächsten zulässigen Start die sieben zuletzt verbliebenen Bots anhand
|
||||
`restart-recovery-needed.json` für Zustandsprüfungen vorsehen.
|
||||
|
||||
Diese Tests prüfen Regeln und echte extrahierte Produktionsfunktionen mit
|
||||
Adaptern. Ein tatsächlicher Browser-Beitritt mit echten Spielern und die visuelle
|
||||
Abnahme stehen aus. Es wurde weder installiert noch ein Worldserver gestartet.
|
||||
@@ -0,0 +1,42 @@
|
||||
# Build-Bergung am 30.10.2026
|
||||
|
||||
Loader seit etwa15:44 pausiert, sicherer Logout seit derselben Phase angefordert.
|
||||
Snapshot nach17:09; Fünf-Minuten-Frist damit deutlich überschritten.
|
||||
Regulärer Server-Shutdown vor dem Build; keine Einzel-Logouts erzwungen.
|
||||
|
||||
| GUID | Bot | Fraktion | Karte | Position X/Y/Z | Flugstatus vor Shutdown |
|
||||
|---:|---|---|---:|---|---|
|
||||
| 43 | Fizzira | Allianz | 530 | -267.066 / 3215.06 / 66.1018 | Failed |
|
||||
| 46 | Selthas | Horde | 571 | 3975.16 / 6846.42 / 204.755 | Failed |
|
||||
| 53 | Noranda | Allianz | 530 | -3103 / 2595 / 62.9246 | Arrived |
|
||||
| 84 | Brynli | Allianz | 530 | 3471.56 / 5253.22 / 150.785 | Failed |
|
||||
| 91 | Norara | Horde | 0 | 1805 / 327 / 94.8042 | Failed |
|
||||
| 101 | Korutam | Horde | 1 | 1655.55 / -4313.52 / 78.9182 | Failed |
|
||||
| 104 | Lillini | Allianz | 0 | -8893.24 / 691.307 / 127.343 | Failed |
|
||||
| 118 | Lillina | Allianz | 1 | 5391.2 / -3378.67 / 1649.72 | Failed |
|
||||
|
||||
Sieben Failed-Flugzustände, Noranda mit Arrived. Letzter Sammelstatus:
|
||||
8Sessions,1Kampf,7Flug,0Transport,0Ladevorgänge. Kein Bot mit gespeichertem
|
||||
Transportpassagier oder Taxipfad. Details/Positionen sind unter
|
||||
`/tmp/vcore-recorder-5yd-recovery/` gesichert.
|
||||
|
||||
## Nachprüfung
|
||||
|
||||
Build mit `-j10`, Installation und Transport-Regressionstest bestanden.
|
||||
Neustart PID471677; frische Ready-Meldung, Prozess und Ports8085/8087 geprüft.
|
||||
|
||||
Alle8Bots nach Login geprüft, einschließlich tatsächlicher Fuß-/Bodenhöhe.
|
||||
Fizzira, Selthas, Brynli, Norara, Korutam und Lillini schwebten nach Neustart
|
||||
weiter über dem Boden, obwohl das Flugkennzeichen teilweise verschwunden war.
|
||||
Native Teleports nach Sturmwind bzw.Orgrimmar bestätigt. Noranda stand auf
|
||||
festem Boden, blieb aber im Kampf und blockierte weiter den sicheren Logout;
|
||||
ebenfalls nativ nach Sturmwind zurückgesetzt. Lillina stand auf gültigem Boden
|
||||
und konnte ohne Bergung sicher ausloggen.
|
||||
|
||||
Endstand: alle8offline, keine gespeicherten Transportbindungen oder Taxipfade.
|
||||
Sieben Hauptstadtpositionen in `final.tsv` bestätigt. Temporäre reine
|
||||
Prüfprofile entfernt; ursprüngliche generierte Profile unverändert erhalten.
|
||||
Loader bleibt0 wegen laufender Routenaufzeichnung; Originalwert1 liegt unter
|
||||
`/tmp/vcore-elunes-recording-loader.json`. Sicherer Logout bleibt angefordert,
|
||||
bis die Aufzeichnung beendet ist. Recorder-Startentfernung5Yards jetzt live.
|
||||
Kein neuer Commit oder Push.
|
||||
@@ -0,0 +1,64 @@
|
||||
# Capital Cataclysm portals and Tol Barad
|
||||
|
||||
World migration `2026_10_29_07_capital_cataclysm_portals.sql` adds twelve native
|
||||
GameObject portal graph bindings, six for each capital. Source faction ACL is
|
||||
Alliance1 or Horde2; destination area rules retain precedence. Imports and SQL
|
||||
seed only: existing enabled flags and manually adjusted positions survive.
|
||||
|
||||
| Destination | Stormwind spawn | Orgrimmar spawn |
|
||||
| --- | --- | --- |
|
||||
| Hyjal | 200624 | 219028 |
|
||||
| Deepholm | 200625 | 211258 |
|
||||
| Uldum | 200626 | 211259 |
|
||||
| Twilight Highlands | 200627 | 211260 |
|
||||
| Tol Barad Peninsula | 220365 | 211264 |
|
||||
| Vashj'ir | 220366 | 211257 |
|
||||
|
||||
Orgrimmar Tol Barad duplicate219035 is coincident with211264 and deliberately
|
||||
has no second graph edge. Its shared template receives the same repair.
|
||||
|
||||
Nine existing portal templates worked in native tests without caster changes.
|
||||
Orgrimmar Tol Barad206595 accepted clicks but failed to transfer Edwin85 in two
|
||||
attempts; changing only this template to native visitor-cast mode made its
|
||||
88341 teleport work. Native target coordinates and conditions remain unchanged.
|
||||
An early Hyjal failure inference was corrected: first save/read was too early,
|
||||
final save showed successful arrival. No blanket caster change was retained.
|
||||
|
||||
Vashj'ir server-only spells90244/90245 had neither effects nor target positions.
|
||||
The migration supplies direct native teleport effects160117/160118 and visitor
|
||||
casting for207690/207691. The fixed landing comes from the existing project
|
||||
SmugglersScar game_tele1514 at map0(-4570.29,3478.06,-101.809). This is a deliberate
|
||||
fixed cave destination, not reconstructed retail quest-progress destination
|
||||
selection. No quest completion is granted or visibility condition bypassed.
|
||||
|
||||
Vashj'ir and children remain closed by unchanged area5146 faction mask0. Both
|
||||
source and destination nodes and the portal edges exist/enabled. Native area
|
||||
queries for Alliance35 and Horde36 resolve the landing to5057 with inherited
|
||||
factionMask0 and allowed0. Actual hard travel_to_node attempts are rejected with
|
||||
`destination node denied by area/node catalog` for both factions. Diagnostic
|
||||
native-click tests intentionally exercise the underlying portal, outside
|
||||
ordinary autonomous planning; the ban was never disabled.
|
||||
|
||||
## Verification and cleanup
|
||||
|
||||
Twelve native CMSG_GAMEOBJ_USE clicks with level85 Karggan35 and Edwin36 reached
|
||||
their expected spell_target_position destinations. Full position snapshots are
|
||||
in checkpoints/2026-10-29-capital-cata-portals/probes.json. Before-Tol-fix output
|
||||
is retained separately. An initial post-restart retest attempted a click before
|
||||
Edwin finished login and was rejected; the successful retest waited for online
|
||||
state and native interaction-range validation. Do not count that login race as
|
||||
a portal failure or an unverified success.
|
||||
|
||||
Migration replay preserved binding/effect/target results. Existing native portal
|
||||
use, transfer/ACK and area-node regressions passed. No new C++ changes/build were
|
||||
required; two restarts loaded server spell/template DB changes. Final server
|
||||
PID362937 under gdb/tmux vcore-worldserver, console
|
||||
/tmp/vcore-cata-portals-final-start-20261029.log; freshready11s,8085/8087 verified.
|
||||
Known OutdoorPvP shutdown fault traces retained in earlier consoles.
|
||||
|
||||
The two temporary specific profiles were removed and generated profiles plus
|
||||
daily schedules restored. Testbots returned to their own capitals. Twelve
|
||||
vcore_cata_probe_* game_tele fixtures were deleted and cache reloaded (count0).
|
||||
No human character modified. Prior uncommitted transport fixes preserved.
|
||||
Native transfers are verified; final client-side visual acceptance remains with
|
||||
the user. No commit or push requested for this task.
|
||||
@@ -0,0 +1,92 @@
|
||||
# Hauptstadt-Portale: Untersuchung vom 30.10.2026
|
||||
|
||||
Vorherige abgeschlossene Änderungen lokal als `649915e575` committed, kein Push.
|
||||
|
||||
## Direkt ergänzte Verbindungen im laufenden Graphen
|
||||
|
||||
Über den vorhandenen nativen Import erfolgreich registriert:
|
||||
|
||||
| Ort | Spawn | Verbindung |
|
||||
|---|---:|---|
|
||||
| Eisenschmiede |217855|Verwüstete Lande|
|
||||
| Darnassus |219119|Verwüstete Lande|
|
||||
| Exodar |151163|Verwüstete Lande|
|
||||
| Darnassus |219120|Exodar|
|
||||
| Unterstadt |203251|Verwüstete Lande|
|
||||
| Donnerfels |214456|Verwüstete Lande|
|
||||
| Silbermond |151162|Verwüstete Lande|
|
||||
| Dalaran |56568|Orgrimmar|
|
||||
| Dalaran |61217|Sturmwind|
|
||||
| Dalaran |57634|Höhlen der Zeit|
|
||||
| Dalaran |60709|Purpursalon|
|
||||
| Dalaran |151243|Violette Zitadelle|
|
||||
|
||||
Sturmwind und Orgrimmar besitzen bereits ihre Cata-Portale und Verbindungen zu den
|
||||
Verwüsteten Landen. Doppelte vorhandene Spawnpositionen werden getrennt geprüft;
|
||||
keine vorhandenen Koordinaten oder manuell deaktivierten Kanten überschrieben.
|
||||
Vashj'ir bleibt durch den Gebietskatalog gesperrt.
|
||||
|
||||
## Installierte Unterstützung nativer Klickportale
|
||||
|
||||
Die Translokationskugeln Silbermond12608/Unterstadt203457 sind GOOBER(type10),
|
||||
keine SPELLCASTER(type22). Native Spellskripte35376→25649 bzw35727→35730
|
||||
lassen den Besucher den eigentlichen Teleport auf sich selbst wirken. Shattraths
|
||||
Portal zur Insel Quel'Danas47196 hat eine entsprechende Skriptkette44876→44870.
|
||||
Dalarans Wintergrasp-Portal61496 nutzt einen festen nativen Skript-Teleport.
|
||||
|
||||
Der Resolver akzeptiert deshalb zusätzlich harmlose Goober ohne Quest, Event,
|
||||
Gossip, Schloss, Verbrauch oder gekoppelte Falle. Aufgelöst werden ausschließlich
|
||||
feste native DB-Ziele, einzelne Besucher-Selbstcasts oder einzelne feste native
|
||||
Teleportaktionen; keine beliebigen Skripte oder geratenen Zielpositionen.
|
||||
Zyklen, mehrere Aktionen, andere Zielrollen und zu lange Verzögerungen bleiben
|
||||
abgewiesen. Tatsächliche Benutzung weiterhin über normalen GameObject-Click,
|
||||
native Bedingungen, Sichtbarkeit, Phase, Reichweite und Teleport-ACK.
|
||||
Voraussetzungen aller aufgelösten Zauber werden vor der Routenplanung geprüft.
|
||||
|
||||
Neue reproduzierbare Migration:
|
||||
`sql/custom/world/2026_10_30_01_capital_click_portals.sql` (angewendet und auf Idempotenz geprüft).
|
||||
Sie erhält vorhandene Positionen, Kosten, Sperren und manuelle Fraktionsmasken.
|
||||
Maelstrom-Questportale erhalten sichtbare Nodes, aber keine aktive gewöhnliche
|
||||
Transitkante. Nicht gespawnte Exodar→Darnassus- und Shattrath→Orgrimmar-Templates
|
||||
werden nicht als künstliche Portale erzeugt.
|
||||
|
||||
Shattraths Sturmwind-Kante1752 wurde nach erfolgreichem nativen Klicktest von
|
||||
ihrer überholten LOS-Testsperre befreit. Die Migration trifft ausschließlich die
|
||||
Kante mit genau diesem alten Diagnosekommentar. Sonstige Sperren bleiben erhalten.
|
||||
Das Rückportal Purpursalon→Violette Zitadelle benötigte ebenfalls den öffentlichen
|
||||
Player-Cast-Modus; ausschließlich Template194012/Spell61420 wurde korrigiert.
|
||||
|
||||
Zusätzlich ergänzt: Dalarans Brunnen-Portal (AreaTrigger5273), dessen Position
|
||||
aus den lokalen Cataclysm-DBC und dessen Ziel aus der nativen DB stammen.
|
||||
|
||||
## Prüfung
|
||||
|
||||
Build mit `-j10` erfolgreich; nach sauberem Herunterfahren installiert. Beide
|
||||
Neustarts erreichten frisch `(worldserver-daemon) ready...`; Prozess und Ports
|
||||
8085/8087 geprüft. Alle114 Clientless-Tests bestanden. Resolver-/Executor-/ACK-
|
||||
Tests und SQL-Fixtures nach den letzten SQL-Anpassungen erneut bestanden.
|
||||
`git diff --check` sauber. Die SQL-Fixtures prüfen unter anderem native direkte
|
||||
und Skriptziele, Fraktionsmasken, Spawn-Entry-Zuordnung, Quest-Sperren, Idempotenz,
|
||||
den gezielten Player-Cast-Fix und Erhalt manueller Positionen/Kosten/Sperren.
|
||||
|
||||
Alle17 untersuchten Portalspawns wurden mit normalen, passend gelevelten Bots
|
||||
über den nativen GameObject-Klick erfolgreich benutzt:
|
||||
217855,203251,219119,151163,214456,151162,219120,12608,203457,56568,61217,
|
||||
57634,60709,151243,61496,83,47196.
|
||||
Prüfung erfolgte durch Vergleich des tatsächlich gespeicherten Karten-/XYZ-Ziels
|
||||
mit dem nativen Portalziel. Adminteleports dienten nur dem Aufstellen an der
|
||||
Quelle. Drei erste Horde-Versuche schlugen bei zu frühem Klick nach dem
|
||||
Aufstellen fehl; Wiederholungen nach Abschluss des Transfers waren erfolgreich.
|
||||
Das Purpursalon-Rückportal bestand nach dem gezielten Player-Cast-Fix.
|
||||
Nachweise unter `/tmp/vcore-capital-portals-state/probe-*.json`.
|
||||
Dies bestätigt einzelne native Portalbenutzungen, keine vollständige Langzeit-
|
||||
Abnahme sämtlicher AdventureBot-Reisen durch die neuen Kanten.
|
||||
|
||||
Die14 zuvor blockierten Bots wurden mit expliziter einmaliger Nutzerfreigabe
|
||||
geborgen und anschließend nativ sicher ausgeloggt. Vor dem Build waren
|
||||
pending=0/sessions=0 bestätigt. Daraus folgt keine weitere Ausnahme von der
|
||||
Build-Regel. Temporäre Testprofile und19Teleportmarken wurden entfernt, ursprüngliche
|
||||
Positionen wiederhergestellt und beide Testbots sicher ausgeloggt. Loaderwert1
|
||||
ist wiederhergestellt; alle vier Zielpools50/5/50/5 werden schrittweise geladen.
|
||||
Letzte Statusprüfung: known110,12online (3jePool), kein Loaderfehler; beide
|
||||
Testbots verwenden wieder ihre ursprünglichen generierten Profile.
|
||||
@@ -0,0 +1,60 @@
|
||||
TrinityCore rev. e18a416bf445+ 2026-10-27 20:10:13 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' training=1 defending=0 until=1793138792
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0x000000000000001a Type: Player Low: 26' spell=6673
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=1464
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=1464
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=1464
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=1464
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=1464
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=1464
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' spell=78
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf1307f9a0000050b Type: Creature Entry: 32666 Low: 1291' training=1
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' training=0 defending=0 until=0
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' training=0
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' training=0 defending=1 until=0
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' spell=772
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf130a56000000b17 Type: Creature Entry: 42336 Low: 2839' training=0
|
||||
DEATH_TEST_REQUEST guid=26
|
||||
DEATH_RELEASE guid=26
|
||||
DEATH_CEMETERY_REVIVE guid=26
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf130b03f00000ae8 Type: Creature Entry: 45119 Low: 2792' training=0 defending=1 until=0
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0x000000000000001a Type: Player Low: 26' spell=6673
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae8 Type: Creature Entry: 45119 Low: 2792' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae8 Type: Creature Entry: 45119 Low: 2792' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae8 Type: Creature Entry: 45119 Low: 2792' spell=7384
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae8 Type: Creature Entry: 45119 Low: 2792' spell=12294
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf130b03f00000ae8 Type: Creature Entry: 45119 Low: 2792' training=0
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf130b03f00000ae7 Type: Creature Entry: 45119 Low: 2791' training=0 defending=1 until=0
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae7 Type: Creature Entry: 45119 Low: 2791' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae7 Type: Creature Entry: 45119 Low: 2791' spell=772
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130b03f00000ae7 Type: Creature Entry: 45119 Low: 2791' spell=7384
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf130b03f00000ae7 Type: Creature Entry: 45119 Low: 2791' training=0
|
||||
DEATH_TEST_REQUEST guid=26
|
||||
DEATH_RELEASE guid=26
|
||||
DEATH_CORPSE_RUN guid=26 path=37.40
|
||||
DEATH_RECLAIM guid=26
|
||||
@@ -0,0 +1,16 @@
|
||||
2026-10-27_23:05:32 INFO [server.adventurebot.navigation] NAV_PLAN seq=1 guid=26 name='Arthoran' map=0 segment=0 start=(-8744.788 319.742 100.549) target=(-8745.762 312.810 100.206) type=0x1 calculated=1 complete=1 suspicious=0 points=3 direct=7.01 path=7.02 maxSegment=4.00 maxZDelta=0.31 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_23:05:32 INFO [server.adventurebot.navigation] NAV_EXEC seq=1 guid=26 name='Arthoran' segment=1 splinePoints=3 splineLength=7.07 segmentEnd=(-8745.762 312.810 100.206) target=(-8745.762 312.810 100.206) walk=0
|
||||
2026-10-27_23:05:32 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8745.762 312.810 100.206) remaining=5.51 state=Moving
|
||||
2026-10-27_23:05:33 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=1 guid=26 segment=1 pos=(-8745.745 312.927 100.193) remaining=0.00 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_23:06:54 INFO [server.adventurebot.navigation] NAV_PLAN seq=2 guid=26 name='Arthoran' map=0 segment=0 start=(-11831.100 -2510.480 -20.070) target=(-11841.850 -2510.480 -20.025) type=0x1 calculated=1 complete=1 suspicious=0 points=4 direct=10.75 path=10.79 maxSegment=4.03 maxZDelta=0.46 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_23:06:54 INFO [server.adventurebot.navigation] NAV_EXEC seq=2 guid=26 name='Arthoran' segment=1 splinePoints=4 splineLength=10.85 segmentEnd=(-11841.850 -2510.480 -20.025) target=(-11841.850 -2510.480 -20.025) walk=0
|
||||
2026-10-27_23:06:54 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-11841.850 -2510.480 -20.025) remaining=9.25 state=Moving
|
||||
2026-10-27_23:06:55 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=2 guid=26 segment=1 pos=(-11838.028 -2510.480 -19.686) remaining=2.34 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_23:13:16 INFO [server.adventurebot.navigation] NAV_PLAN seq=3 guid=26 name='Arthoran' map=0 segment=0 start=(-12186.000 -2566.580 3.966) target=(-12187.900 -2603.740 1.578) type=0x1 calculated=1 complete=1 suspicious=0 points=11 direct=37.29 path=37.40 maxSegment=4.06 maxZDelta=0.68 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_23:13:16 INFO [server.adventurebot.navigation] NAV_EXEC seq=3 guid=26 name='Arthoran' segment=1 splinePoints=11 splineLength=37.40 segmentEnd=(-12187.900 -2603.740 1.578) target=(-12187.900 -2603.740 1.578) walk=0
|
||||
2026-10-27_23:13:16 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-12187.900 -2603.740 1.578) remaining=35.79 state=Moving
|
||||
2026-10-27_23:13:17 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=3 guid=26 segment=1 pos=(-12186.536 -2577.073 3.698) remaining=25.29 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_23:13:18 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=3 guid=26 segment=1 pos=(-12187.064 -2587.424 2.146) remaining=14.85 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_23:13:19 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=3 guid=26 segment=1 pos=(-12187.603 -2597.920 1.355) remaining=4.33 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_23:13:20 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=3 guid=26 segment=1 pos=(-12187.900 -2603.740 1.578) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_23:13:20 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=3 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
@@ -0,0 +1,8 @@
|
||||
Final Debug build -j10 and installation succeeded.
|
||||
51 tests/clientless/test_*.py scripts passed.
|
||||
Live native training: 60 seconds, valid real dummy, normal MMAP approach and regular end.
|
||||
Real combat: spawn300425 entry42336 level58; native hostile/LOS/phase/strength/path checks; creature killed with native respawn record.
|
||||
Death fixture1: explicit native testdeath, normal release at1793138872; no acceptable MMAP route; no accelerated clock; cemetery resurrection after1793139172 without sickness.
|
||||
Death fixture2: explicit native testdeath at nearby native ground point; ghost path37.40 yards; native reclaim; saved aliveHP4340, no corpse or sickness.
|
||||
Administrative offline positioning used for isolated tests, not evidence of long-distance travel.
|
||||
Native restarts during a ghost run and multi-attacker focus were exercised by production adapter tests, not live multi-actor gameplay.
|
||||
@@ -0,0 +1,339 @@
|
||||
# Vcore Development Environment
|
||||
|
||||
## Project
|
||||
|
||||
Vcore is a custom World of Warcraft Cataclysm 4.3.4 server based on TrinityCore.
|
||||
|
||||
This environment is a dedicated development and test server.
|
||||
|
||||
The current development focus is the Clientless Player Core and AdventureBot infrastructure.
|
||||
|
||||
## Repository and Git Rules
|
||||
|
||||
Repository:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/source/TrinityCore`
|
||||
|
||||
Authorized development branch:
|
||||
|
||||
`feature/clientless-player-core`
|
||||
|
||||
Rules:
|
||||
|
||||
- Work exclusively on the authorized development branch.
|
||||
- Never switch to, modify, reset, rebase, or merge `master`.
|
||||
- Never push to `master`.
|
||||
- Never push any branch without explicit user approval.
|
||||
- Local commits are permitted.
|
||||
- Never discard existing changes without approval.
|
||||
- Never force-push.
|
||||
- Check the current branch and working tree before making changes.
|
||||
- Stop and request clarification if the working tree contains unexpected changes.
|
||||
|
||||
## Development Permissions
|
||||
|
||||
Codex is authorized to:
|
||||
|
||||
- Read and modify Vcore source code.
|
||||
- Implement new features and fix bugs.
|
||||
- Run CMake and compile Vcore.
|
||||
- Investigate and resolve compilation errors.
|
||||
- Install compiled binaries into the testserver installation.
|
||||
- Start, stop, and restart the test worldserver.
|
||||
- Inspect logs and server output.
|
||||
- Modify test databases when required for an authorized task.
|
||||
- Execute local tests and create local commits.
|
||||
|
||||
Codex must never:
|
||||
|
||||
- Modify the production server.
|
||||
- Deploy changes to production.
|
||||
- Push changes without explicit approval.
|
||||
- Modify or merge the protected `master` branch.
|
||||
- Discard user changes without approval.
|
||||
|
||||
## Read-only Diagnostics
|
||||
|
||||
- Reading the development/test server logs and project files is already authorized.
|
||||
- Use direct read-only commands such as `rg`, `tail`, `sed`, `cat`, and `stat` inside the sandbox for ordinary file inspection. Do not request elevated execution preemptively for these reads.
|
||||
- Keep file inspection separate from tmux access, database queries, writes, and lifecycle actions so those actions do not unnecessarily escalate log reading.
|
||||
- Do not request blanket approval for Python, other interpreters, or shell execution to read logs.
|
||||
- If a read actually fails because of a technical sandbox restriction, follow the execution environment's escalation rules and request only the narrow access needed. Project authorization does not override the sandbox.
|
||||
|
||||
## Directory Structure
|
||||
|
||||
Source:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/source/TrinityCore`
|
||||
|
||||
Build directory:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/build/debug`
|
||||
|
||||
Server installation:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/server/debug`
|
||||
|
||||
Worldserver executable:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/server/debug/bin/worldserver`
|
||||
|
||||
## Build and Installation
|
||||
|
||||
Use the existing CMake build configuration.
|
||||
|
||||
Inspect the build configuration before changing it.
|
||||
|
||||
Build directory:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/build/debug`
|
||||
|
||||
Install directory:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/server/debug`
|
||||
|
||||
After successful compilation, install the resulting binaries using the existing CMake installation configuration.
|
||||
|
||||
Do not overwrite running executables.
|
||||
|
||||
Stop the test worldserver cleanly before installing updated binaries.
|
||||
|
||||
Do not delete existing server configuration, logs, databases, or data files.
|
||||
|
||||
## Worldserver Management
|
||||
|
||||
The test worldserver runs inside a dedicated tmux session.
|
||||
|
||||
Session name:
|
||||
|
||||
`vcore-worldserver`
|
||||
|
||||
Working directory:
|
||||
|
||||
`/home/wow_admin/wow_cata_server/server/debug/bin`
|
||||
|
||||
Executable:
|
||||
|
||||
`./worldserver`
|
||||
|
||||
Codex is authorized to start, stop, restart, and recover the test worldserver autonomously.
|
||||
|
||||
### Starting the Worldserver
|
||||
|
||||
Before starting:
|
||||
|
||||
1. Check whether a worldserver instance is already running.
|
||||
2. Check whether the `vcore-worldserver` tmux session already exists.
|
||||
3. Never start a second worldserver instance while another instance is active.
|
||||
4. Remove stale tmux sessions only after verifying their state.
|
||||
|
||||
Start command:
|
||||
|
||||
```bash
|
||||
tmux new-session -d -s vcore-worldserver \
|
||||
-c /home/wow_admin/wow_cata_server/server/debug/bin \
|
||||
'./worldserver'
|
||||
```
|
||||
|
||||
### Startup Verification
|
||||
|
||||
A successfully created tmux session does not indicate successful worldserver startup.
|
||||
|
||||
The Vcore worldserver reports successful initialization with a final console message similar to:
|
||||
|
||||
```text
|
||||
World initialized in 0 minutes 10 seconds
|
||||
TrinityCore rev. <revision> (...) (worldserver-daemon) ready...
|
||||
```
|
||||
|
||||
The authoritative startup indicator is:
|
||||
|
||||
`(worldserver-daemon) ready...`
|
||||
|
||||
The revision, branch, build configuration, and initialization time may vary.
|
||||
|
||||
After starting the worldserver:
|
||||
|
||||
1. Monitor the worldserver process and console output.
|
||||
2. Wait for the `(worldserver-daemon) ready...` message.
|
||||
3. Verify that the worldserver process remains running.
|
||||
4. Check for critical startup errors.
|
||||
5. Verify that the configured worldserver port is listening.
|
||||
|
||||
Only report successful startup when these checks pass.
|
||||
|
||||
Capture console output from the beginning of the current startup attempt to avoid mistaking messages from an earlier run for current startup success.
|
||||
|
||||
If the worldserver exits, hangs, or fails to reach the ready state within a reasonable timeout, follow the startup failure recovery procedure.
|
||||
|
||||
|
||||
### Startup Failure Recovery
|
||||
|
||||
The test worldserver may occasionally fail to start because the remote authentication database on the VPS is temporarily unreachable.
|
||||
|
||||
When startup fails:
|
||||
|
||||
1. Capture relevant console output and logs.
|
||||
2. Determine whether the worldserver process is still running.
|
||||
3. Check whether the tmux session is still active.
|
||||
4. If the TrinityCore console is responsive, attempt a graceful shutdown.
|
||||
5. If the console is unavailable or unresponsive, terminate the failed worldserver process and its dedicated tmux session.
|
||||
6. Verify that the previous worldserver process has terminated.
|
||||
7. Ensure that no stale process remains before restarting.
|
||||
8. Wait briefly before retrying.
|
||||
9. Create a fresh tmux session and start the worldserver again.
|
||||
10. Repeat startup verification.
|
||||
|
||||
For startup recovery, Codex may terminate the dedicated test worldserver process and tmux session when graceful shutdown is impossible.
|
||||
|
||||
Do not terminate unrelated processes or tmux sessions.
|
||||
|
||||
### Retry Policy
|
||||
|
||||
Use a maximum of three startup attempts per restart operation.
|
||||
|
||||
Wait approximately 10 seconds between attempts.
|
||||
|
||||
If startup fails repeatedly:
|
||||
|
||||
- Stop retrying.
|
||||
- Preserve the relevant logs.
|
||||
- Report the observed errors.
|
||||
- Explain whether the failure appears related to database connectivity, configuration, compilation, or another cause.
|
||||
- Do not claim that the testserver is operational.
|
||||
|
||||
Do not attempt to repair the remote VPS authentication database or production infrastructure.
|
||||
|
||||
### TrinityCore Console Commands
|
||||
|
||||
Codex may execute TrinityCore console commands through tmux.
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
tmux send-keys -t vcore-worldserver '.server shutdown 10' Enter
|
||||
```
|
||||
|
||||
Read console output:
|
||||
|
||||
```bash
|
||||
tmux capture-pane -p -t vcore-worldserver -S -100
|
||||
```
|
||||
|
||||
### Graceful Shutdown
|
||||
|
||||
For a normally running worldserver, use:
|
||||
|
||||
`.server shutdown 10`
|
||||
|
||||
Send the command through tmux:
|
||||
|
||||
```bash
|
||||
tmux send-keys -t vcore-worldserver '.server shutdown 10' Enter
|
||||
```
|
||||
|
||||
After issuing the command:
|
||||
|
||||
1. Wait for the worldserver to terminate.
|
||||
2. Verify that the process has stopped.
|
||||
3. Verify that the tmux session has ended.
|
||||
4. Only then install new binaries or start another worldserver instance.
|
||||
|
||||
If the console is unresponsive, Codex may terminate the dedicated test worldserver process.
|
||||
|
||||
Prefer SIGTERM before SIGKILL.
|
||||
|
||||
Use SIGKILL only when the process cannot be stopped normally.
|
||||
|
||||
### Restart Procedure
|
||||
|
||||
1. Verify the current worldserver state.
|
||||
2. If running normally, initiate graceful shutdown.
|
||||
3. If the console is unavailable, use the recovery shutdown procedure.
|
||||
4. Wait for complete process termination.
|
||||
5. Install successfully compiled binaries if required.
|
||||
6. Start a fresh tmux session.
|
||||
7. Verify successful worldserver initialization.
|
||||
8. If startup fails, follow the startup recovery procedure.
|
||||
9. Report the final server state.
|
||||
|
||||
### Safety
|
||||
|
||||
This is a dedicated development and test environment.
|
||||
|
||||
Codex is authorized to manage the test worldserver autonomously, including recovery from failed startup attempts.
|
||||
|
||||
Never terminate unrelated services or processes.
|
||||
|
||||
Never execute worldserver management commands on production infrastructure.
|
||||
|
||||
## AdventureBot Architecture
|
||||
|
||||
Preserve the existing Clientless Player Core architecture.
|
||||
|
||||
Important components include:
|
||||
|
||||
- ClientlessTravelMgr
|
||||
- ClientlessTravelGraphMgr
|
||||
- ClientlessActionExecutorMgr
|
||||
- Lua-based bot control
|
||||
- MMAP navigation
|
||||
- TravelGraph routing
|
||||
|
||||
Architecture principles:
|
||||
|
||||
- Clientless Player Core provides generic clientless player functionality.
|
||||
- AdventureBots are built on top of this infrastructure.
|
||||
- TravelGraph handles long-distance travel.
|
||||
- MMAP navigation handles local movement.
|
||||
- DungeonBots remain independent from AdventureBots.
|
||||
- AdventureBots must not become infrastructure dependencies for unrelated game systems.
|
||||
|
||||
Prefer extending the existing implementation over replacing it.
|
||||
|
||||
## Development Workflow
|
||||
|
||||
For each development task:
|
||||
|
||||
1. Verify the current Git branch and working tree.
|
||||
2. Inspect the relevant existing implementation.
|
||||
3. Plan nontrivial changes before implementation.
|
||||
4. Implement the requested functionality.
|
||||
5. Compile the affected components.
|
||||
6. Resolve compilation errors.
|
||||
7. Install the new build when appropriate.
|
||||
8. Restart the test worldserver when necessary.
|
||||
9. Inspect logs and available test results.
|
||||
10. Report what changed, what was tested, and what remains unverified.
|
||||
11. Wait for user feedback before pushing changes.
|
||||
|
||||
Do not claim that gameplay functionality is verified solely because compilation succeeded.
|
||||
|
||||
The user performs final in-game acceptance testing.
|
||||
|
||||
## Rollback
|
||||
|
||||
When requested, restore the previous implementation without modifying `master`.
|
||||
|
||||
Prefer targeted reversions of the relevant development changes.
|
||||
|
||||
Never use destructive Git commands without checking whether unrelated work would be lost.
|
||||
|
||||
Database rollbacks must be limited to the changes associated with the development task.
|
||||
|
||||
## General Principles
|
||||
|
||||
- Preserve existing Vcore functionality.
|
||||
- Avoid unnecessary architectural rewrites.
|
||||
- Prefer targeted, maintainable changes.
|
||||
- Investigate root causes instead of masking symptoms.
|
||||
- Keep the test environment reproducible.
|
||||
- Clearly distinguish successful builds, automated tests, and verified gameplay behavior.
|
||||
|
||||
|
||||
## Saved session / Wiederaufnahme
|
||||
|
||||
Before starting new work, read `doc/clientless/SESSION-RESUME.md`. It records the
|
||||
user-requested checkpoint, unfinished profession intent, agreed Lua professions,
|
||||
build/test state and exact next steps. Preserve the saved WIP; do not restart or
|
||||
revert it. All development/server/branch rules above remain in force.
|
||||
@@ -0,0 +1,14 @@
|
||||
TrinityCore rev. 722b513ee01b+ 2026-10-27 17:02:01 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
PROFILE_PROFESSIONS guid=26 primary=2
|
||||
ClientlessLua[26]: Arthoran ready; no automatic test journey queued
|
||||
INTENT_TRAVEL guid=26 intent='profession' location='poi_tele_338' area=1
|
||||
INTENT_ARRIVED guid=26 intent='profession' location='poi_tele_338'
|
||||
PROFESSION_WORK_COMPLETE guid=26 kind='profession_tools' target=''
|
||||
LEISURE_WALK_PLAN guid=26 kind='work_search' span=103.64 outbound=6 origin=(-8888.98 -0.54 94.39) goal=(-8978.85 -52.09 91.55)
|
||||
LEISURE_WAYPOINT guid=26 kind='work_search' reached=1/6
|
||||
LEISURE_WAYPOINT guid=26 kind='work_search' reached=2/6
|
||||
LEISURE_WAYPOINT guid=26 kind='work_search' reached=3/6
|
||||
LEISURE_WAYPOINT guid=26 kind='work_search' reached=4/6
|
||||
LEISURE_WAYPOINT guid=26 kind='work_search' reached=5/6
|
||||
LEISURE_WAYPOINT guid=26 kind='work_search' reached=6/6
|
||||
LEISURE_COMPLETE guid=26 kind='work_search' legs=6
|
||||
@@ -0,0 +1,44 @@
|
||||
from pathlib import Path
|
||||
import os,re,subprocess,sys
|
||||
config=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text()
|
||||
h,port,u,password,db=re.search(r'^WorldDatabaseInfo\s*=\s*"([^"]+)"',config,re.M).group(1).split(';')
|
||||
args=['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--default-character-set=utf8mb4','--connect-timeout=10']
|
||||
env=os.environ.copy();env['MYSQL_PWD']=password
|
||||
op=sys.argv[1] if len(sys.argv)>1 else ''
|
||||
if op=='state':
|
||||
h,port,u,password,db=re.search(r'^CharacterDatabaseInfo\s*=\s*"([^"]+)"',config,re.M).group(1).split(';')
|
||||
args=['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--default-character-set=utf8mb4','--connect-timeout=10']
|
||||
env['MYSQL_PWD']=password
|
||||
if op=='state':
|
||||
query="SELECT guid,money FROM characters WHERE guid=26; SELECT item,bag,slot FROM character_inventory WHERE guid=26 ORDER BY bag,slot,item; SELECT guid,itemEntry,count FROM item_instance WHERE owner_guid=26 ORDER BY guid;"
|
||||
elif op=='workstation_inspect':
|
||||
query="""SELECT data0 AS focus_id,COUNT(*) AS n,LEFT(GROUP_CONCAT(DISTINCT name ORDER BY name SEPARATOR ', '),600) AS examples FROM gameobject_template WHERE type=8 GROUP BY data0 ORDER BY data0; SELECT entry,name,type,data0 FROM gameobject_template WHERE name REGEXP 'Alchemy|Alchemist|Workbench|Loom|Tanning|Sewing|Enchanter|Runeforge|Cooking Fire|Campfire' AND type IN (5,8,10) ORDER BY entry LIMIT 65; SHOW CREATE TABLE npc_trainer; SHOW CREATE TABLE trainer; SHOW CREATE TABLE creature_trainer;"""
|
||||
elif op=='profession_inspect':
|
||||
query="""SELECT t.entry,t.name,t.type,t.data0,t.data1 FROM gameobject_template t WHERE (t.type=8 AND (t.name REGEXP 'Anvil|Forge|Alchemy|Loom|Workbench|Enchant|Tanning|Cooking')) OR (t.type=3 AND t.name IN ('Copper Vein','Silverleaf','Peacebloom')) ORDER BY t.type,t.data0,t.entry LIMIT 90; SELECT w.point_key,a.display_name,w.category,w.map,w.position_x,w.position_y,w.position_z,a.is_area,a.area_id,a.zone_id FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) WHERE w.enabled=1 AND (a.is_area=1 AND a.zone_id=12 OR w.category='workshop' AND a.zone_id=1519) ORDER BY w.point_key LIMIT 25;"""
|
||||
elif op=='exploration_inspect':
|
||||
query="""SELECT g.guid,g.id,t.name,t.type,g.position_x,g.position_y,g.position_z FROM gameobject g JOIN gameobject_template t ON t.entry=g.id WHERE g.map=0 AND g.position_x BETWEEN -9000 AND -8750 AND g.position_y BETWEEN 500 AND 750 AND t.type IN (5,9,10) ORDER BY g.id; SELECT w.point_key,a.display_name,w.category,w.map,w.position_x,w.position_y,w.position_z FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) WHERE w.enabled=1 AND w.map=0 AND (a.display_name LIKE '%Northshire%' OR a.display_name LIKE '%Goldshire%' OR a.display_name LIKE '%Stonecairn%') ORDER BY a.display_name;"""
|
||||
elif op=='exploration_apply':
|
||||
query='START TRANSACTION;\n'+Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_04_adventure_exploration.sql').read_text()+"\nSELECT a.action_key,a.kind,a.requirement,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE a.action_key LIKE 'adventure_%' OR (a.action_key='explore' AND i.intent='adventure'); COMMIT;"
|
||||
elif op=='catalog':
|
||||
query="""SELECT w.point_key,w.category,w.map,w.position_x,w.position_y,w.position_z,w.orientation,w.enabled,COALESCE(w.comment,''),a.display_name,a.source_type,a.source_id,a.area_id,a.zone_id,a.region_key,a.is_area,a.faction FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) ORDER BY w.point_key;"""
|
||||
elif op=='source_audit':
|
||||
query="""SELECT id,name,map,position_x,position_y,position_z FROM game_tele WHERE name IN ('Orgrimmar','ThunderBluff','Thunder Bluff','Undercity','SilvermoonCity','Darnassus','TheExodar','Ironforge','Stormwind'); SHOW COLUMNS FROM game_tele; SHOW COLUMNS FROM creature; SELECT c.id,t.name,c.map,c.position_x,c.position_y,c.position_z,COALESCE(NULLIF(c.npcflag,0),t.npcflag) AS flags,t.faction FROM creature c JOIN creature_template t ON t.entry=c.id WHERE t.name IN ('Innkeeper Gryshka','Innkeeper Pala','Innkeeper Allison','Auctioneer Thathung','Auctioneer Chilton') ORDER BY c.map,c.id;"""
|
||||
elif op=='audit':
|
||||
query="""SELECT COUNT(*) AS active_locations FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) WHERE w.enabled=1 AND w.category NOT LIKE 'travel%'; SELECT a.source_type,w.category,a.faction,COUNT(*) AS n FROM vcore_adventure_location a JOIN vcore_clientless_world_point w USING(point_key) WHERE w.enabled=1 GROUP BY a.source_type,w.category,a.faction ORDER BY n DESC; SELECT w.point_key,a.display_name,w.category,a.region_key,a.area_id,a.zone_id,a.is_area,a.faction,w.map,w.position_x,w.position_y,w.position_z FROM vcore_adventure_location a JOIN vcore_clientless_world_point w USING(point_key) WHERE w.enabled=1 AND (a.display_name REGEXP 'Orgrimmar|Thunder Bluff|Undercity|Silvermoon|Darnassus|Exodar|Ironforge|Stormwind' OR (a.is_area=1 AND a.zone_id IN (1519,1637,1638,1497,1537,1657,3430,3487,3557))) ORDER BY a.is_area DESC,a.zone_id,w.point_key;"""
|
||||
elif op=='inspect':
|
||||
query="""SELECT c.guid,c.id,t.name,t.npcflag,c.position_x,c.position_y,c.position_z,c.orientation FROM creature c JOIN creature_template t ON t.entry=c.id WHERE c.map=0 AND c.position_x BETWEEN -9000 AND -8750 AND c.position_y BETWEEN 450 AND 850 AND (t.npcflag & (128|131072|2097152))<>0 ORDER BY c.id,c.guid; SHOW CREATE TABLE vcore_adventure_location; SHOW CREATE TABLE vcore_clientless_world_point; SELECT category,intent,weight FROM vcore_adventure_location_intent ORDER BY category,intent;"""
|
||||
elif op=='apply':
|
||||
query='START TRANSACTION;\n'+Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_03_adventure_economy.sql').read_text()+"\nSELECT w.point_key,w.category,w.position_x,w.position_y,w.position_z FROM vcore_clientless_world_point w WHERE w.point_key LIKE 'stormwind_economy_%'; SELECT a.action_key,a.requirement,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE i.intent='economy'; COMMIT;"
|
||||
else:raise SystemExit('inspect or apply only')
|
||||
r=subprocess.run(args,input=query,text=True,capture_output=True,env=env)
|
||||
if op=='catalog' and not r.returncode:
|
||||
import hashlib
|
||||
Path('/tmp/vcore-import-catalog-current.tsv').write_text(r.stdout)
|
||||
print('Catalog snapshot:',len(r.stdout.splitlines())-1,'records; SHA256',hashlib.sha256(r.stdout.encode()).hexdigest())
|
||||
elif op=='state' and not r.returncode:
|
||||
import hashlib
|
||||
snapshot=Path('/tmp/vcore-economy-state-current.txt');snapshot.write_text(r.stdout)
|
||||
print('Arthoran persisted money/inventory SHA256:',hashlib.sha256(r.stdout.encode()).hexdigest())
|
||||
else:print(r.stdout,end='')
|
||||
if r.stderr:print(r.stderr.replace(password,'[redacted]'),file=sys.stderr,end='')
|
||||
raise SystemExit(r.returncode)
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
2026-10-27_14:10:11 INFO [server.adventurebot.navigation] NAV_PLAN seq=4 guid=26 name='Arthoran' map=0 segment=0 start=(-8848.844 607.931 92.673) target=(-8864.850 595.939 92.645) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.00 maxSegment=4.00 maxZDelta=0.08 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:10:11 INFO [server.adventurebot.navigation] NAV_EXEC seq=4 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.00 segmentEnd=(-8864.850 595.939 92.645) target=(-8864.850 595.939 92.645) walk=1
|
||||
2026-10-27_14:10:11 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8864.850 595.939 92.645) remaining=18.50 state=Moving
|
||||
2026-10-27_14:10:12 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8850.817 606.453 92.631) remaining=16.03 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:13 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8852.901 604.891 92.583) remaining=13.43 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:14 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8854.906 603.389 92.532) remaining=10.93 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:15 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8856.899 601.895 92.520) remaining=8.43 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:16 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8858.903 600.394 92.525) remaining=5.93 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:17 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8860.908 598.892 92.562) remaining=3.43 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:18 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8862.903 597.398 92.603) remaining=0.93 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:19 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8864.850 595.939 92.645) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=4 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_PLAN seq=5 guid=26 name='Arthoran' map=0 segment=0 start=(-8864.850 595.939 92.645) target=(-8880.855 583.947 93.233) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.01 path=20.01 maxSegment=4.00 maxZDelta=0.16 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_EXEC seq=5 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8880.855 583.947 93.233) target=(-8880.855 583.947 93.233) walk=1
|
||||
2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8880.855 583.947 93.233) remaining=18.51 state=Moving
|
||||
2026-10-27_14:10:20 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8866.855 594.436 92.748) remaining=16.00 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:21 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8868.860 592.934 92.850) remaining=13.49 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:22 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8870.868 591.430 92.949) remaining=10.98 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:23 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8872.858 589.939 93.033) remaining=8.49 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:24 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8874.869 588.432 93.109) remaining=5.98 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:25 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8876.986 586.846 93.171) remaining=3.34 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:26 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8879.001 585.337 93.208) remaining=0.82 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:27 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8880.855 583.947 93.233) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=5 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_PLAN seq=6 guid=26 name='Arthoran' map=0 segment=0 start=(-8880.855 583.947 93.233) target=(-8896.861 571.956 93.007) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.01 maxSegment=4.01 maxZDelta=0.24 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_EXEC seq=6 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8896.861 571.956 93.007) target=(-8896.861 571.956 93.007) walk=1
|
||||
2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8896.861 571.956 93.007) remaining=18.50 state=Moving
|
||||
2026-10-27_14:10:28 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8882.869 582.439 93.283) remaining=15.99 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:29 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8884.861 580.946 93.305) remaining=13.50 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:30 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8886.878 579.435 93.286) remaining=10.98 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:31 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8888.862 577.948 93.161) remaining=8.50 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:32 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8890.875 576.440 93.029) remaining=5.98 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:33 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8892.880 574.939 92.978) remaining=3.47 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:34 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8894.883 573.438 92.976) remaining=0.97 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:35 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8896.861 571.956 93.007) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=6 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_PLAN seq=7 guid=26 name='Arthoran' map=0 segment=0 start=(-8896.861 571.956 93.007) target=(-8912.868 559.964 94.237) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.04 path=20.04 maxSegment=4.02 maxZDelta=0.35 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_EXEC seq=7 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.04 segmentEnd=(-8912.868 559.964 94.237) target=(-8912.868 559.964 94.237) walk=1
|
||||
2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8912.868 559.964 94.237) remaining=18.54 state=Moving
|
||||
2026-10-27_14:10:36 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8898.871 570.450 93.132) remaining=16.02 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:37 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8900.871 568.951 93.277) remaining=13.52 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:38 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8902.853 567.467 93.451) remaining=11.04 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:39 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8904.854 565.968 93.614) remaining=8.53 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:40 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8906.861 564.464 93.785) remaining=6.02 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:41 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8908.854 562.970 94.006) remaining=3.52 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:42 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8910.836 561.486 94.147) remaining=1.04 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:43 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8912.854 559.974 94.236) remaining=0.00 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:44 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8912.868 559.964 94.237) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:10:44 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=7 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:10:48 INFO [server.adventurebot.navigation] NAV_PLAN seq=8 guid=26 name='Arthoran' map=0 segment=0 start=(-8912.868 559.964 94.237) target=(-8896.861 571.956 93.007) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.04 path=20.04 maxSegment=4.02 maxZDelta=0.35 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:10:48 INFO [server.adventurebot.navigation] NAV_EXEC seq=8 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.04 segmentEnd=(-8896.861 571.956 93.007) target=(-8896.861 571.956 93.007) walk=1
|
||||
2026-10-27_14:10:48 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8896.861 571.956 93.007) remaining=18.54 state=Moving
|
||||
2026-10-27_14:10:49 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8910.871 561.460 94.149) remaining=16.04 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:50 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8908.852 562.973 94.006) remaining=13.52 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:51 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8906.845 564.476 93.783) remaining=11.00 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:52 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8904.964 565.885 93.622) remaining=8.64 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:53 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8902.808 567.501 93.447) remaining=5.94 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:54 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8900.805 569.002 93.271) remaining=3.43 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:55 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8898.807 570.499 93.128) remaining=0.93 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:56 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8896.861 571.956 93.007) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=8 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_PLAN seq=9 guid=26 name='Arthoran' map=0 segment=0 start=(-8896.861 571.956 93.007) target=(-8880.855 583.947 93.233) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.01 maxSegment=4.01 maxZDelta=0.24 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_EXEC seq=9 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8880.855 583.947 93.233) target=(-8880.855 583.947 93.233) walk=1
|
||||
2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8880.855 583.947 93.233) remaining=18.50 state=Moving
|
||||
2026-10-27_14:10:57 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8894.864 573.452 92.976) remaining=16.01 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:58 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8892.857 574.955 92.978) remaining=13.50 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:10:59 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8890.867 576.447 93.030) remaining=11.01 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:00 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8888.864 577.947 93.161) remaining=8.51 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:01 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8886.867 579.443 93.286) remaining=6.01 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:02 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8884.851 580.954 93.305) remaining=3.49 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:03 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8882.849 582.454 93.283) remaining=0.99 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:04 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8880.855 583.947 93.233) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=9 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_PLAN seq=10 guid=26 name='Arthoran' map=0 segment=0 start=(-8880.855 583.947 93.233) target=(-8864.850 595.939 92.645) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.01 path=20.01 maxSegment=4.00 maxZDelta=0.16 finalDistance=0.00 repaths=0 reason='ok'
|
||||
2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_EXEC seq=10 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8864.850 595.939 92.645) target=(-8864.850 595.939 92.645) walk=1
|
||||
2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8864.850 595.939 92.645) remaining=18.51 state=Moving
|
||||
2026-10-27_14:11:05 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8878.854 585.447 93.206) remaining=16.01 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:06 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8876.860 586.941 93.167) remaining=13.52 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:07 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8874.861 588.438 93.109) remaining=11.02 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:08 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8872.847 589.948 93.033) remaining=8.50 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:09 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8870.844 591.448 92.948) remaining=6.00 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:10 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8868.862 592.933 92.850) remaining=3.52 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:11 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8866.839 594.449 92.748) remaining=0.99 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:12 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8864.850 595.939 92.645) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=10 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_PLAN seq=11 guid=26 name='Arthoran' map=0 segment=0 start=(-8864.850 595.939 92.645) target=(-8848.844 607.931 92.673) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.00 maxSegment=4.00 maxZDelta=0.08 finalDistance=0.03 repaths=0 reason='ok'
|
||||
2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_EXEC seq=11 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.00 segmentEnd=(-8848.844 607.931 92.642) target=(-8848.844 607.931 92.673) walk=1
|
||||
2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8848.844 607.931 92.673) remaining=18.50 state=Moving
|
||||
2026-10-27_14:11:13 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8862.856 597.433 92.602) remaining=16.01 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:14 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8860.846 598.939 92.561) remaining=13.50 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:15 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8858.829 600.450 92.524) remaining=10.98 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:16 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8856.846 601.936 92.520) remaining=8.50 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:17 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8854.824 603.451 92.534) remaining=5.97 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:18 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8852.815 604.956 92.585) remaining=3.46 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:19 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8850.809 606.459 92.619) remaining=0.96 deviation=0.00 splineActive=1 repaths=0
|
||||
2026-10-27_14:11:20 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8848.844 607.931 92.642) remaining=0.00 deviation=0.00 splineActive=0 repaths=0
|
||||
2026-10-27_14:11:20 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=11 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00
|
||||
@@ -0,0 +1,34 @@
|
||||
LEISURE_WALK_PLAN guid=26 kind='pet_walk' span=80.02 outbound=4 origin=(-8848.84 607.93 92.67) goal=(-8912.87 559.96 94.24)
|
||||
COMPANION_START guid=26 spell=10673 summoned=1
|
||||
LEISURE_START guid=26 kind='pet_walk' waypoints=8
|
||||
COMPANION_CONFIRMED guid=26 pet='GUID Full: 0xf1301cd900000961 Type: Creature Entry: 7385 Low: 2401' entry=7385
|
||||
COMPANION_LEASH_REQUEST guid=26 item=37460 spell=48722
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_LEASH_CONFIRMED guid=26 spell=48722
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8864.85 595.94 92.65) pet=(-8862.91 597.40 92.59) distance=2.43 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=1/8
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8880.86 583.95 93.23) pet=(-8879.00 585.34 93.21) distance=2.32 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=2/8
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8896.86 571.96 93.01) pet=(-8894.87 573.45 92.98) distance=2.48 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=3/8
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8912.87 559.96 94.24) pet=(-8910.87 561.46 94.17) distance=2.50 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=4/8
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8896.86 571.96 93.01) pet=(-8898.80 570.51 93.12) distance=2.42 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=5/8
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8880.86 583.95 93.23) pet=(-8882.85 582.46 93.26) distance=2.49 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=6/8
|
||||
Player::_LoadSkills: Player 'Allitester' (GUID Full: 0x0000000000000015 Type: Player Low: 21, Race: 1, Class: 1) has forbidden skill 118 for his race/class combination
|
||||
CreatureAI::EngagementOver called even though creature is not currently engaged.
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8864.85 595.94 92.65) pet=(-8866.87 594.43 92.75) distance=2.52 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=7/8
|
||||
COMPANION_WALK_SAMPLE guid=26 owner=(-8848.84 607.93 92.64) pet=(-8850.84 606.44 92.59) distance=2.49 leashed=1
|
||||
LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=8/8
|
||||
LEISURE_COMPLETE guid=26 kind='pet_walk' legs=8
|
||||
COMPANION_END guid=26
|
||||
MICRO_START guid=26 intent='leisure' location='stormwind_leisure_trade' action='leisure_view' durationMs=36000
|
||||
Received not handled opcode [CMSG_USED_FOLLOW 0x7912 (30994)] from [Player: Allitester GUID Full: 0x0000000000000015 Type: Player Low: 21, Account: 1]
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,10 @@
|
||||
from pathlib import Path
|
||||
import os,re,subprocess,sys
|
||||
c=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text();v=re.search(r'^WorldDatabaseInfo\s*=\s*"([^"]+)"',c,re.M).group(1).split(';');h,port,u,p,d=v
|
||||
a=['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+d,'--batch','--default-character-set=utf8mb4','--connect-timeout=10'];env=os.environ.copy();env['MYSQL_PWD']=p
|
||||
q="SELECT entry,name FROM creature_template WHERE entry IN (7385,7386); SELECT name,map,position_x,position_y,position_z,orientation FROM game_tele WHERE name IN ('TradeDistrict','CathedralSquare'); SELECT action_key,kind,requirement FROM vcore_adventure_action WHERE action_key LIKE 'social%';"
|
||||
if sys.argv[1:]==['apply']:
|
||||
q='START TRANSACTION;\n'+Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_02_adventure_leisure.sql').read_text()+"\nSELECT a.action_key,a.kind,a.requirement,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE i.intent='leisure'; SELECT w.point_key,w.position_x,w.position_y,w.position_z FROM vcore_clientless_world_point w WHERE w.point_key='stormwind_leisure_trade'; COMMIT;"
|
||||
elif sys.argv[1:]!=['inspect']:raise SystemExit('inspect or apply only')
|
||||
r=subprocess.run(a,input=q,text=True,capture_output=True,env=env);print(r.stdout,end='');print(r.stderr.replace(p,'[redacted]'),file=sys.stderr,end='') if r.returncode else None
|
||||
raise SystemExit(r.returncode)
|
||||
@@ -0,0 +1,777 @@
|
||||
[1/751] cd /home/wow_admin/wow_cata_server/source/TrinityCore && /usr/bin/cmake -DBUILDDIR="/home/wow_admin/wow_cata_server/build/debug" -P /home/wow_admin/wow_cata_server/source/TrinityCore/cmake/genrev.cmake /home/wow_admin/wow_cata_server/build/debug
|
||||
[2/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessPerceptionMgr.cpp.o
|
||||
[3/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureProfessionTargets.cpp.o
|
||||
[4/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessRouteRecorderMgr.cpp.o
|
||||
[5/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessPlayerMgr.cpp.o
|
||||
[6/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessCompanionMgr.cpp.o
|
||||
[7/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessLuaEngine.cpp.o
|
||||
[8/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessFlightMgr.cpp.o
|
||||
[9/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessTransportMgr.cpp.o
|
||||
[10/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessActionExecutorMgr.cpp.o
|
||||
[11/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessWorldPointMgr.cpp.o
|
||||
[12/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessTravelMgr.cpp.o
|
||||
[13/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessTravelGraphMgr.cpp.o
|
||||
[14/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/gen_scriptloader/static/ScriptLoader.cpp.o
|
||||
[15/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/WorldStates/WorldStateMgr.cpp.o
|
||||
[16/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Battlefield/battlefield_script_loader.cpp.o
|
||||
[17/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Battlefield/BattlefieldTB.cpp.o
|
||||
[18/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_achievement.cpp.o
|
||||
[19/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_ahbot.cpp.o
|
||||
[20/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Battlefield/BattlefieldWG.cpp.o
|
||||
[21/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_arena.cpp.o
|
||||
[22/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_bf.cpp.o
|
||||
[23/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_account.cpp.o
|
||||
[24/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_ban.cpp.o
|
||||
[25/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_cast.cpp.o
|
||||
[26/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_cheat.cpp.o
|
||||
[27/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_deserter.cpp.o
|
||||
[28/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_character.cpp.o
|
||||
[29/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_event.cpp.o
|
||||
[30/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_disable.cpp.o
|
||||
[31/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_gm.cpp.o
|
||||
[32/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_honor.cpp.o
|
||||
[33/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_group.cpp.o
|
||||
[34/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_debug.cpp.o
|
||||
[35/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_guild.cpp.o
|
||||
[36/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_gobject.cpp.o
|
||||
[37/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_go.cpp.o
|
||||
[38/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_instance.cpp.o
|
||||
[39/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_learn.cpp.o
|
||||
[40/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_lfg.cpp.o
|
||||
[41/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/World.cpp.o
|
||||
[42/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_message.cpp.o
|
||||
[43/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_list.cpp.o
|
||||
[44/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_mmaps.cpp.o
|
||||
[45/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_lookup.cpp.o
|
||||
[46/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_modify.cpp.o
|
||||
[47/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_pet.cpp.o
|
||||
[48/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_script_loader.cpp.o
|
||||
[49/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_misc.cpp.o
|
||||
[50/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_quest.cpp.o
|
||||
[51/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_rbac.cpp.o
|
||||
[52/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_npc.cpp.o
|
||||
[53/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_reset.cpp.o
|
||||
[54/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_send.cpp.o
|
||||
[55/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/custom_script_loader.cpp.o
|
||||
[56/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_server.cpp.o
|
||||
[57/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_titles.cpp.o
|
||||
[58/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_reload.cpp.o
|
||||
[59/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_ticket.cpp.o
|
||||
[60/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_tele.cpp.o
|
||||
[61/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_wp.cpp.o
|
||||
[62/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/arathi_highlands.cpp.o
|
||||
[63/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/vcore_diagnostics.cpp.o
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/vcore_diagnostics.cpp:236:39: warning: ‘std::optional<std::__cxx11::basic_string<char> > VCoreDiagnostics::DisplayTextColumn(const std::string&, const std::string&)’ defined but not used [-Wunused-function]
|
||||
236 | static std::optional<std::string> DisplayTextColumn(
|
||||
| ^~~~~~~~~~~~~~~~~
|
||||
[64/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/eastern_kingdoms_script_loader.cpp.o
|
||||
[65/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_dun_morogh.cpp.o
|
||||
[66/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_blasted_lands.cpp.o
|
||||
[67/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp.o
|
||||
[68/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/viano_adventurers.cpp.o
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp: In member function ‘void VianoAdventurers::npc_horde_adventurer_melee::npc_horde_adventurer_meleeAI::HandleOutOfCombatRecovery(uint32)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp:310:49: warning: comparison of integer expressions of different signedness: ‘int32’ {aka ‘int’} and ‘uint32’ {aka ‘unsigned int’} [-Wsign-compare]
|
||||
310 | if (maxMana > 0 && me->GetPower(POWER_MANA) < maxMana)
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp: In member function ‘void VianoAdventurers::npc_horde_adventurer_tank::npc_horde_adventurer_tankAI::HandleOutOfCombatRecovery(uint32)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp:861:57: warning: comparison of integer expressions of different signedness: ‘int32’ {aka ‘int’} and ‘uint32’ {aka ‘unsigned int’} [-Wsign-compare]
|
||||
861 | if (maxMana && me->GetPower(POWER_MANA) < maxMana)
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp: In member function ‘void VianoAdventurers::npc_horde_adventurer_healer::npc_horde_adventurer_healerAI::HandleOutOfCombatRecovery(uint32, Player*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp:1518:57: warning: comparison of integer expressions of different signedness: ‘int32’ {aka ‘int’} and ‘uint32’ {aka ‘unsigned int’} [-Wsign-compare]
|
||||
1518 | if (maxMana && me->GetPower(POWER_MANA) < maxMana)
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
|
||||
[69/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_duskwood.cpp.o
|
||||
[70/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_ghostlands.cpp.o
|
||||
[71/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_elwynn_forest.cpp.o
|
||||
[72/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_hinterlands.cpp.o
|
||||
[73/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_ironforge.cpp.o
|
||||
[74/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/viano_bot_commands.cpp.o
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationAdd(ChatHandler*, const char*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2062:20: warning: unused variable ‘loaded’ [-Wunused-variable]
|
||||
2062 | bool const loaded = sClientlessWorldPointMgr->Reload();
|
||||
| ^~~~~~
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationMove(ChatHandler*, const char*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2099:20: warning: unused variable ‘loaded’ [-Wunused-variable]
|
||||
2099 | bool const loaded = sClientlessWorldPointMgr->Reload();
|
||||
| ^~~~~~
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationRemove(ChatHandler*, const char*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2123:20: warning: unused variable ‘loaded’ [-Wunused-variable]
|
||||
2123 | bool const loaded = sClientlessWorldPointMgr->Reload();
|
||||
| ^~~~~~
|
||||
[75/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_redridge_mountains.cpp.o
|
||||
[76/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_silverpine_forest.cpp.o
|
||||
[77/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_swamp_of_sorrows.cpp.o
|
||||
[78/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_stormwind_city.cpp.o
|
||||
[79/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_hillsbrad_foothills.cpp.o
|
||||
[80/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_tirisfal_glades.cpp.o
|
||||
[81/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_tol_barad.cpp.o
|
||||
[82/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_undercity.cpp.o
|
||||
[83/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_western_plaguelands.cpp.o
|
||||
[84/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/alterac_valley.cpp.o
|
||||
[85/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_balinda.cpp.o
|
||||
[86/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_wetlands.cpp.o
|
||||
[87/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_drekthar.cpp.o
|
||||
[88/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_twilight_highlands.cpp.o
|
||||
[89/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_galvangar.cpp.o
|
||||
[90/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_westfall.cpp.o
|
||||
[91/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_vanndar.cpp.o
|
||||
[92/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/instance_baradin_hold.cpp.o
|
||||
[93/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/boss_alizabal.cpp.o
|
||||
[94/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/boss_occuthar.cpp.o
|
||||
[95/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp.o
|
||||
[96/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/bastion_of_twilight.cpp.o
|
||||
[97/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/instance_bastion_of_twilight.cpp.o
|
||||
[98/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_halfus_wyrmbreaker.cpp.o
|
||||
[99/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_chogall.cpp.o
|
||||
[100/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp.o
|
||||
[101/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp.o
|
||||
[102/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp.o
|
||||
[103/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_ascendant_council.cpp.o
|
||||
[104/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla_herald_of_twilight.cpp.o
|
||||
[105/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_theralion_and_valiona.cpp.o
|
||||
[106/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp.o
|
||||
[107/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp.o
|
||||
[108/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp.o
|
||||
[109/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp.o
|
||||
[110/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp.o
|
||||
[111/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp.o
|
||||
[112/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp.o
|
||||
[113/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp.o
|
||||
[114/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp.o
|
||||
[115/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp.o
|
||||
[116/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp.o
|
||||
[117/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp.o
|
||||
[118/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp.o
|
||||
[119/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp.o
|
||||
[120/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp.o
|
||||
[121/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp.o
|
||||
[122/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp.o
|
||||
[123/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp.o
|
||||
[124/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp.o
|
||||
[125/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp.o
|
||||
[126/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp.o
|
||||
[127/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp.o
|
||||
[128/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp.o
|
||||
[129/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp.o
|
||||
[130/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp.o
|
||||
[131/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp.o
|
||||
[132/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp.o
|
||||
[133/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp.o
|
||||
[134/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp.o
|
||||
[135/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/blackwing_descent.cpp.o
|
||||
[136/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/instance_blackwing_descent.cpp.o
|
||||
[137/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp.o
|
||||
[138/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_atramedes.cpp.o
|
||||
[139/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp.o
|
||||
[140/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_chimaeron.cpp.o
|
||||
[141/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_magmaw.cpp.o
|
||||
[142/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_maloriak.cpp.o
|
||||
[143/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp.o
|
||||
[144/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_omnotron_defense_system.cpp.o
|
||||
[145/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp.o
|
||||
[146/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp.o
|
||||
[147/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_nefarians_end.cpp.o
|
||||
[148/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp.o
|
||||
[149/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp.o
|
||||
[150/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp.o
|
||||
[151/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp.o
|
||||
[152/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp.o
|
||||
[153/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp.o
|
||||
[154/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp.o
|
||||
[155/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp.o
|
||||
[156/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp.o
|
||||
[157/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp.o
|
||||
[158/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp.o
|
||||
[159/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp.o
|
||||
[160/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp.o
|
||||
[161/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp.o
|
||||
[162/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp.o
|
||||
[163/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_admiral_ripsnarl.cpp.o
|
||||
[164/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_captain_cookie.cpp.o
|
||||
[165/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_glubtok.cpp.o
|
||||
[166/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp.o
|
||||
[167/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_vanessa_van_cleef.cpp.o
|
||||
[168/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/deadmines.cpp.o
|
||||
[169/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gilneas/gilneas_chapter_1.cpp.o
|
||||
[170/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/instance_deadmines.cpp.o
|
||||
[171/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_helix_gearbreaker.cpp.o
|
||||
[172/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gilneas/gilneas_chapter_2.cpp.o
|
||||
[173/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gnomeregan/gnomeregan.cpp.o
|
||||
[174/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp.o
|
||||
[175/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_drahga_shadowburner.cpp.o
|
||||
[176/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_erudax.cpp.o
|
||||
[177/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/grim_batol.cpp.o
|
||||
[178/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/instance_grim_batol.cpp.o
|
||||
[179/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_curator.cpp.o
|
||||
[180/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_general_umbriss.cpp.o
|
||||
[181/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp.o
|
||||
[182/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_forgemaster_throngus.cpp.o
|
||||
[183/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_midnight.cpp.o
|
||||
[184/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_moroes.cpp.o
|
||||
[185/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_netherspite.cpp.o
|
||||
[186/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp.o
|
||||
[187/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp.o
|
||||
[188/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_nightbane.cpp.o
|
||||
[189/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/instance_karazhan.cpp.o
|
||||
[190/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp.o
|
||||
[191/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/bosses_opera.cpp.o
|
||||
[192/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/karazhan.cpp.o
|
||||
[193/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp.o
|
||||
[194/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp.o
|
||||
[195/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp.o
|
||||
[196/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp.o
|
||||
[197/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp.o
|
||||
[198/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_2.cpp.o
|
||||
[199/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp.o
|
||||
[200/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp.o
|
||||
[201/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_5.cpp.o
|
||||
[202/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp.o
|
||||
[203/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp.o
|
||||
[204/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_1.cpp.o
|
||||
[205/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp.o
|
||||
[206/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_herod.cpp.o
|
||||
[207/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp.o
|
||||
[208/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp.o
|
||||
[209/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp.o
|
||||
[210/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp.o
|
||||
[211/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_scorn.cpp.o
|
||||
[212/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp.o
|
||||
[213/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp.o
|
||||
[214/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp.o
|
||||
[215/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp.o
|
||||
[216/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp.o
|
||||
[217/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_illucia_barov.cpp.o
|
||||
[218/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp.o
|
||||
[219/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_jandice_barov.cpp.o
|
||||
[220/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp.o
|
||||
[221/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp.o
|
||||
[222/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_kormok.cpp.o
|
||||
[223/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp.o
|
||||
[224/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp.o
|
||||
[225/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_the_ravenian.cpp.o
|
||||
[226/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_vectus.cpp.o
|
||||
[227/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/instance_scholomance.cpp.o
|
||||
[228/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_baron_ashbury.cpp.o
|
||||
[229/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_baron_silverlaine.cpp.o
|
||||
[230/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp.o
|
||||
[231/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp.o
|
||||
[232/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_commander_springvale.cpp.o
|
||||
[233/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp.o
|
||||
[234/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_lord_godfrey.cpp.o
|
||||
[235/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_lord_walden.cpp.o
|
||||
[236/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_balnazzar.cpp.o
|
||||
[237/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp.o
|
||||
[238/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp.o
|
||||
[239/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp.o
|
||||
[240/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp.o
|
||||
[241/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_nerubenkan.cpp.o
|
||||
[242/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp.o
|
||||
[243/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp.o
|
||||
[244/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp.o
|
||||
[245/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp.o
|
||||
[246/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp.o
|
||||
[247/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/instance_stratholme.cpp.o
|
||||
[248/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp.o
|
||||
[249/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunkenTemple/sunken_temple.cpp.o
|
||||
[250/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/stratholme.cpp.o
|
||||
[251/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp.o
|
||||
[252/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp.o
|
||||
[253/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp.o
|
||||
[254/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp.o
|
||||
[255/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp.o
|
||||
[256/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/sunwell_plateau.cpp.o
|
||||
[257/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_muru.cpp.o
|
||||
[258/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/boss_hogger.cpp.o
|
||||
[259/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/boss_lord_overheat.cpp.o
|
||||
[260/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/boss_randolph_moloch.cpp.o
|
||||
[261/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp.o
|
||||
[262/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/instance_the_stockade.cpp.o
|
||||
[263/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_commander_ulthok.cpp.o
|
||||
[264/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_mindbender_gursha.cpp.o
|
||||
[265/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_lady_nazjar.cpp.o
|
||||
[266/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/instance_throne_of_the_tides.cpp.o
|
||||
[267/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/boss_ironaya.cpp.o
|
||||
[268/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/boss_archaedas.cpp.o
|
||||
[269/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/throne_of_the_tides.cpp.o
|
||||
[270/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/uldaman.cpp.o
|
||||
[271/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_ozumat.cpp.o
|
||||
[272/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/instance_uldaman.cpp.o
|
||||
[273/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_daakara.cpp.o
|
||||
[274/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_halazzi.cpp.o
|
||||
[275/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_hexlord.cpp.o
|
||||
[276/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_nalorakk.cpp.o
|
||||
[277/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_akilzon.cpp.o
|
||||
[278/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/instance_zulaman.cpp.o
|
||||
[279/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/zulaman.cpp.o
|
||||
[280/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_janalai.cpp.o
|
||||
[281/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_grilek.cpp.o
|
||||
[282/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_hazzarah.cpp.o
|
||||
[283/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_bloodlord_mandokir.cpp.o
|
||||
[284/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_renataki.cpp.o
|
||||
[285/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp.o
|
||||
[286/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_wushoolay.cpp.o
|
||||
[287/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_high_priestess_kilnara.cpp.o
|
||||
[288/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_high_priest_venoxis.cpp.o
|
||||
[289/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/instance_zulgurub.cpp.o
|
||||
[290/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Events/childrens_week.cpp.o
|
||||
[291/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Events/events_script_loader.cpp.o
|
||||
[292/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_zanzil.cpp.o
|
||||
[293/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/zulgurub.cpp.o
|
||||
[294/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Events/fireworks_show.cpp.o
|
||||
[295/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/kalimdor_script_loader.cpp.o
|
||||
[296/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_ashenvale.cpp.o
|
||||
[297/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_azuremyst_isle.cpp.o
|
||||
[298/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_desolace.cpp.o
|
||||
[299/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_bloodmyst_isle.cpp.o
|
||||
[300/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_durotar.cpp.o
|
||||
[301/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_moonglade.cpp.o
|
||||
[302/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_felwood.cpp.o
|
||||
[303/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_mulgore.cpp.o
|
||||
[304/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_northern_barrens.cpp.o
|
||||
[305/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_southern_barrens.cpp.o
|
||||
[306/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_mount_hyjal.cpp.o
|
||||
[307/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_silithus.cpp.o
|
||||
[308/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_tanaris.cpp.o
|
||||
[309/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_thunder_bluff.cpp.o
|
||||
[310/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_ungoro_crater.cpp.o
|
||||
[311/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_uldum.cpp.o
|
||||
[312/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_winterspring.cpp.o
|
||||
[313/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp.o
|
||||
[314/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp.o
|
||||
[315/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp.o
|
||||
[316/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/boss_kelris.cpp.o
|
||||
[317/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp.o
|
||||
[318/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp.o
|
||||
[319/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp.o
|
||||
[320/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp.o
|
||||
[321/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp.o
|
||||
[322/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp.o
|
||||
[323/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp.o
|
||||
[324/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp.o
|
||||
[325/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp.o
|
||||
[326/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp.o
|
||||
[327/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp.o
|
||||
[328/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp.o
|
||||
[329/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp.o
|
||||
[330/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp.o
|
||||
[331/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp.o
|
||||
[332/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp.o
|
||||
[333/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/DragonSoul/instance_dragon_soul.cpp.o
|
||||
[334/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/end_time.cpp.o
|
||||
[335/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/instance_end_time.cpp.o
|
||||
[336/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp.o
|
||||
[337/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/boss_murozond.cpp.o
|
||||
[338/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp.o
|
||||
[339/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp.o
|
||||
[340/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/boss_echo_of_jaina.cpp.o
|
||||
[341/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp.o
|
||||
[342/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp.o
|
||||
[343/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp.o
|
||||
[344/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/DragonSoul/boss_madness_of_deathwing.cpp.o
|
||||
[345/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp.o
|
||||
[346/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/HourOfTwilight/instance_hour_of_twilight.cpp.o
|
||||
[347/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp.o
|
||||
[348/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp.o
|
||||
[349/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp.o
|
||||
[350/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/WellOfEternity/instance_well_of_eternity.cpp.o
|
||||
[351/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp.o
|
||||
[352/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp.o
|
||||
[353/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/DireMaul/instance_dire_maul.cpp.o
|
||||
[354/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/firelands.cpp.o
|
||||
[355/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_alysrazor.cpp.o
|
||||
[356/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_baleroc.cpp.o
|
||||
[357/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/instance_firelands.cpp.o
|
||||
[358/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_ammunae.cpp.o
|
||||
[359/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_majordomo_staghelm.cpp.o
|
||||
[360/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_anraphet.cpp.o
|
||||
[361/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_lord_rhyolith.cpp.o
|
||||
[362/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp.o
|
||||
[363/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_isiset.cpp.o
|
||||
[364/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_rajh.cpp.o
|
||||
[365/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_setesh.cpp.o
|
||||
[366/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp.o
|
||||
[367/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_ragnaros_firelands.cpp.o
|
||||
[368/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp.o
|
||||
[369/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/halls_of_origination.cpp.o
|
||||
[370/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_lockmaw_and_augh.cpp.o
|
||||
[371/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp.o
|
||||
[372/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_high_prophet_barim.cpp.o
|
||||
[373/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/instance_lost_city_of_the_tolvir.cpp.o
|
||||
[374/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/lost_city_of_the_tolvir.cpp.o
|
||||
[375/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp.o
|
||||
[376/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_landslide.cpp.o
|
||||
[377/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_siamat.cpp.o
|
||||
[378/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_noxxion.cpp.o
|
||||
[379/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_princess_theradras.cpp.o
|
||||
[380/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/instance_maraudon.cpp.o
|
||||
[381/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/OnyxiasLair/boss_onyxia.cpp.o
|
||||
[382/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp.o
|
||||
[383/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp.o
|
||||
[384/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp.o
|
||||
[385/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_glutton.cpp.o
|
||||
[386/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp.o
|
||||
[387/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp.o
|
||||
[388/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp.o
|
||||
[389/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/razorfen_downs.cpp.o
|
||||
[390/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp.o
|
||||
[391/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenKraul/razorfen_kraul.cpp.o
|
||||
[392/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp.o
|
||||
[393/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp.o
|
||||
[394/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp.o
|
||||
[395/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp.o
|
||||
[396/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp.o
|
||||
[397/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp.o
|
||||
[398/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp.o
|
||||
[399/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp.o
|
||||
[400/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp.o
|
||||
[401/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp.o
|
||||
[402/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp.o
|
||||
[403/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp.o
|
||||
[404/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp.o
|
||||
[405/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp.o
|
||||
[406/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp.o
|
||||
[407/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp.o
|
||||
[408/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp.o
|
||||
[409/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp.o
|
||||
[410/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/instance_throne_of_the_four_winds.cpp.o
|
||||
[411/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/throne_of_the_four_winds.cpp.o
|
||||
[412/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/boss_grand_vizier_ertan.cpp.o
|
||||
[413/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/instance_vortex_pinnacle.cpp.o
|
||||
[414/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/boss_altairus.cpp.o
|
||||
[415/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/boss_conclave_of_wind.cpp.o
|
||||
[416/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/boss_alakir.cpp.o
|
||||
[417/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_kresh.cpp.o
|
||||
[418/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/boss_asaad.cpp.o
|
||||
[419/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lady_anacondra.cpp.o
|
||||
[420/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lord_cobrahn.cpp.o
|
||||
[421/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/vortex_pinnacle.cpp.o
|
||||
[422/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lord_pythas.cpp.o
|
||||
[423/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lord_serpentis.cpp.o
|
||||
[424/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_skum.cpp.o
|
||||
[425/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_verdan_the_everliving.cpp.o
|
||||
[426/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp.o
|
||||
[427/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/wailing_caverns.cpp.o
|
||||
[428/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ZulFarrak/boss_zum_rah.cpp.o
|
||||
[429/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/kezan.cpp.o
|
||||
[430/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ZulFarrak/instance_zulfarrak.cpp.o
|
||||
[431/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ZulFarrak/zulfarrak.cpp.o
|
||||
[432/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/maelstrom_script_loader.cpp.o
|
||||
[433/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/zone_deepholm.cpp.o
|
||||
[434/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/instance_stonecore.cpp.o
|
||||
[435/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_corborus.cpp.o
|
||||
[436/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_slabhide.cpp.o
|
||||
[437/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_ozruk.cpp.o
|
||||
[438/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/northrend_script_loader.cpp.o
|
||||
[439/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_high_priestess_azil.cpp.o
|
||||
[440/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_crystalsong_forest.cpp.o
|
||||
[441/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/stonecore.cpp.o
|
||||
[442/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_dalaran.cpp.o
|
||||
[443/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_borean_tundra.cpp.o
|
||||
[444/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_icecrown.cpp.o
|
||||
[445/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_howling_fjord.cpp.o
|
||||
[446/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_dragonblight.cpp.o
|
||||
[447/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_grizzly_hills.cpp.o
|
||||
[448/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_sholazar_basin.cpp.o
|
||||
[449/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_wintergrasp.cpp.o
|
||||
[450/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp.o
|
||||
[451/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_storm_peaks.cpp.o
|
||||
[452/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_zuldrak.cpp.o
|
||||
[453/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp.o
|
||||
[454/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp.o
|
||||
[455/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp.o
|
||||
[456/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp.o
|
||||
[457/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp.o
|
||||
[458/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp.o
|
||||
[459/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp.o
|
||||
[460/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp.o
|
||||
[461/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp.o
|
||||
[462/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp.o
|
||||
[463/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp.o
|
||||
[464/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp.o
|
||||
[465/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp.o
|
||||
[466/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp.o
|
||||
[467/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp.o
|
||||
[468/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp.o
|
||||
[469/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp.o
|
||||
[470/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp.o
|
||||
[471/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp.o
|
||||
[472/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp.o
|
||||
[473/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp.o
|
||||
[474/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp.o
|
||||
[475/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp.o
|
||||
[476/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp.o
|
||||
[477/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp.o
|
||||
[478/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_king_dred.cpp.o
|
||||
[479/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_novos.cpp.o
|
||||
[480/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp.o
|
||||
[481/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp.o
|
||||
[482/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp.o
|
||||
[483/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp.o
|
||||
[484/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp.o
|
||||
[485/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_tharon_ja.cpp.o
|
||||
[486/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_trollgore.cpp.o
|
||||
[487/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp.o
|
||||
[488/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp.o
|
||||
[489/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/boss_horAI.cpp.o
|
||||
[490/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp.o
|
||||
[491/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp.o
|
||||
[492/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp.o
|
||||
[493/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp.o
|
||||
[494/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp.o
|
||||
[495/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp.o
|
||||
[496/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp.o
|
||||
[497/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp.o
|
||||
[498/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp.o
|
||||
[499/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_drakkari_colossus.cpp.o
|
||||
[500/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_eck.cpp.o
|
||||
[501/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp.o
|
||||
[502/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp.o
|
||||
[503/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp.o
|
||||
[504/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_gal_darah.cpp.o
|
||||
[505/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_moorabi.cpp.o
|
||||
[506/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_slad_ran.cpp.o
|
||||
[507/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/instance_gundrak.cpp.o
|
||||
[508/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_festergut.cpp.o
|
||||
[509/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp.o
|
||||
[510/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp.o
|
||||
[511/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp.o
|
||||
[512/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp.o
|
||||
[513/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp.o
|
||||
[514/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_rotface.cpp.o
|
||||
[515/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp.o
|
||||
[516/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_professor_putricide.cpp.o
|
||||
[517/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp.o
|
||||
[518/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp.o
|
||||
[519/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_sindragosa.cpp.o
|
||||
[520/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp.o
|
||||
[521/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/icecrown_citadel.cpp.o
|
||||
[522/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_anubrekhan.cpp.o
|
||||
[523/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp.o
|
||||
[524/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IsleOfConquest/isle_of_conquest.cpp.o
|
||||
[525/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_faerlina.cpp.o
|
||||
[526/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_the_lich_king.cpp.o
|
||||
[527/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_gluth.cpp.o
|
||||
[528/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_grobbulus.cpp.o
|
||||
[529/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_four_horsemen.cpp.o
|
||||
[530/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_heigan.cpp.o
|
||||
[531/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_gothik.cpp.o
|
||||
[532/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_loatheb.cpp.o
|
||||
[533/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_maexxna.cpp.o
|
||||
[534/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_noth.cpp.o
|
||||
[535/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_kelthuzad.cpp.o
|
||||
[536/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_patchwerk.cpp.o
|
||||
[537/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_razuvious.cpp.o
|
||||
[538/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/instance_naxxramas.cpp.o
|
||||
[539/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/naxxramas.cpp.o
|
||||
[540/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_thaddius.cpp.o
|
||||
[541/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_anomalus.cpp.o
|
||||
[542/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp.o
|
||||
[543/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp.o
|
||||
[544/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_sapphiron.cpp.o
|
||||
[545/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_keristrasza.cpp.o
|
||||
[546/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_magus_telestra.cpp.o
|
||||
[547/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp.o
|
||||
[548/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp.o
|
||||
[549/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/instance_nexus.cpp.o
|
||||
[550/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_ormorok.cpp.o
|
||||
[551/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_drakos.cpp.o
|
||||
[552/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_urom.cpp.o
|
||||
[553/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_eregos.cpp.o
|
||||
[554/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_varos.cpp.o
|
||||
[555/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/instance_oculus.cpp.o
|
||||
[556/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp.o
|
||||
[557/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/oculus.cpp.o
|
||||
[558/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp.o
|
||||
[559/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp.o
|
||||
[560/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp.o
|
||||
[561/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp.o
|
||||
[562/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp.o
|
||||
[563/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp.o
|
||||
[564/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp.o
|
||||
[565/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp.o
|
||||
[566/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp.o
|
||||
[567/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_auriaya.cpp.o
|
||||
[568/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_freya.cpp.o
|
||||
[569/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp.o
|
||||
[570/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp.o
|
||||
[571/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_ignis.cpp.o
|
||||
[572/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp.o
|
||||
[573/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_hodir.cpp.o
|
||||
[574/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp.o
|
||||
[575/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_kologarn.cpp.o
|
||||
[576/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_razorscale.cpp.o
|
||||
[577/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp.o
|
||||
[578/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/instance_ulduar.cpp.o
|
||||
[579/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp.o
|
||||
[580/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp.o
|
||||
[581/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp.o
|
||||
[582/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_mimiron.cpp.o
|
||||
[583/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_xt002.cpp.o
|
||||
[584/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_thorim.cpp.o
|
||||
[585/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp.o
|
||||
[586/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp.o
|
||||
[587/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp.o
|
||||
[588/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp.o
|
||||
[589/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp.o
|
||||
[590/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp.o
|
||||
[591/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_emalon.cpp.o
|
||||
[592/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_archavon.cpp.o
|
||||
[593/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp.o
|
||||
[594/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_koralon.cpp.o
|
||||
[595/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_toravon.cpp.o
|
||||
[596/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp.o
|
||||
[597/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_lavanthor.cpp.o
|
||||
[598/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_erekem.cpp.o
|
||||
[599/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_cyanigosa.cpp.o
|
||||
[600/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_ichoron.cpp.o
|
||||
[601/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_moragg.cpp.o
|
||||
[602/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_xevozz.cpp.o
|
||||
[603/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_zuramat.cpp.o
|
||||
[604/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/instance_violet_hold.cpp.o
|
||||
[605/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPHP.cpp.o
|
||||
[606/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPScriptLoader.cpp.o
|
||||
[607/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPTF.cpp.o
|
||||
[608/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/violet_hold.cpp.o
|
||||
[609/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPNA.cpp.o
|
||||
[610/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/boss_doomwalker.cpp.o
|
||||
[611/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPSI.cpp.o
|
||||
[612/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/boss_doomlord_kazzak.cpp.o
|
||||
[613/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPZM.cpp.o
|
||||
[614/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/outland_script_loader.cpp.o
|
||||
[615/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_blades_edge_mountains.cpp.o
|
||||
[616/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_nagrand.cpp.o
|
||||
[617/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_shattrath_city.cpp.o
|
||||
[618/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_hellfire_peninsula.cpp.o
|
||||
[619/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_zangarmarsh.cpp.o
|
||||
[620/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp.o
|
||||
[621/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_terokkar_forest.cpp.o
|
||||
[622/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp.o
|
||||
[623/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_shadowmoon_valley.cpp.o
|
||||
[624/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_netherstorm.cpp.o
|
||||
[625/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp.o
|
||||
[626/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp.o
|
||||
[627/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp.o
|
||||
[628/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp.o
|
||||
[629/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp.o
|
||||
[630/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp.o
|
||||
[631/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp.o
|
||||
[632/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp.o
|
||||
[633/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp.o
|
||||
[634/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp.o
|
||||
[635/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp.o
|
||||
[636/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp.o
|
||||
[637/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp.o
|
||||
[638/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.cpp.o
|
||||
[639/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp.o
|
||||
[640/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/black_temple.cpp.o
|
||||
[641/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_mother_shahraz.cpp.o
|
||||
[642/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_illidari_council.cpp.o
|
||||
[643/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_reliquary_of_souls.cpp.o
|
||||
[644/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_supremus.cpp.o
|
||||
[645/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_shade_of_akama.cpp.o
|
||||
[646/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_illidan.cpp.o
|
||||
[647/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_warlord_najentus.cpp.o
|
||||
[648/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/instance_black_temple.cpp.o
|
||||
[649/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp.o
|
||||
[650/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_teron_gorefiend.cpp.o
|
||||
[651/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp.o
|
||||
[652/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp.o
|
||||
[653/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp.o
|
||||
[654/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp.o
|
||||
[655/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp.o
|
||||
[656/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp.o
|
||||
[657/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp.o
|
||||
[658/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp.o
|
||||
[659/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp.o
|
||||
[660/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp.o
|
||||
[661/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp.o
|
||||
[662/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp.o
|
||||
[663/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp.o
|
||||
[664/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp.o
|
||||
[665/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp.o
|
||||
[666/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp.o
|
||||
[667/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheUnderbog/instance_the_underbog.cpp.o
|
||||
[668/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp.o
|
||||
[669/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/GruulsLair/boss_gruul.cpp.o
|
||||
[670/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/GruulsLair/boss_high_king_maulgar.cpp.o
|
||||
[671/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/GruulsLair/instance_gruuls_lair.cpp.o
|
||||
[672/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp.o
|
||||
[673/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp.o
|
||||
[674/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp.o
|
||||
[675/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp.o
|
||||
[676/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp.o
|
||||
[677/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp.o
|
||||
[678/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp.o
|
||||
[679/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp.o
|
||||
[680/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp.o
|
||||
[681/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp.o
|
||||
[682/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp.o
|
||||
[683/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp.o
|
||||
[684/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp.o
|
||||
[685/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp.o
|
||||
[686/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_alar.cpp.o
|
||||
[687/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp.o
|
||||
[688/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_astromancer.cpp.o
|
||||
[689/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_kaelthas.cpp.o
|
||||
[690/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_void_reaver.cpp.o
|
||||
[691/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/the_eye.cpp.o
|
||||
[692/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/instance_the_eye.cpp.o
|
||||
[693/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp.o
|
||||
[694/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp.o
|
||||
[695/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp.o
|
||||
[696/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp.o
|
||||
[697/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp.o
|
||||
[698/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/instance_mechanar.cpp.o
|
||||
[699/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/arcatraz.cpp.o
|
||||
[700/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp.o
|
||||
[701/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp.o
|
||||
[702/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp.o
|
||||
[703/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp.o
|
||||
[704/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp.o
|
||||
[705/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp.o
|
||||
[706/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp.o
|
||||
[707/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_laj.cpp.o
|
||||
[708/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp.o
|
||||
[709/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/instance_the_botanica.cpp.o
|
||||
[710/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_warp_splinter.cpp.o
|
||||
[711/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_generic.cpp.o
|
||||
[712/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_mage.cpp.o
|
||||
[713/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_dk.cpp.o
|
||||
[714/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_hunter.cpp.o
|
||||
[715/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_paladin.cpp.o
|
||||
[716/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_script_loader.cpp.o
|
||||
[717/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_priest.cpp.o
|
||||
[718/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_shaman.cpp.o
|
||||
[719/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_pet.cpp.o
|
||||
[720/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_holiday.cpp.o
|
||||
[721/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_dk.cpp.o
|
||||
[722/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_hunter.cpp.o
|
||||
[723/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_druid.cpp.o
|
||||
[724/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_mage.cpp.o
|
||||
[725/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_priest.cpp.o
|
||||
[726/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_paladin.cpp.o
|
||||
[727/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_script_loader.cpp.o
|
||||
[728/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/achievement_scripts.cpp.o
|
||||
[729/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/action_ip_logger.cpp.o
|
||||
[730/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_quest.cpp.o
|
||||
[731/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_rogue.cpp.o
|
||||
[732/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/areatrigger_scripts.cpp.o
|
||||
[733/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_item.cpp.o
|
||||
[734/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_warrior.cpp.o
|
||||
[735/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_shaman.cpp.o
|
||||
[736/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/duel_reset.cpp.o
|
||||
[737/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_generic.cpp.o
|
||||
[738/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/guards.cpp.o
|
||||
[739/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/chat_log.cpp.o
|
||||
[740/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_warlock.cpp.o
|
||||
[741/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/mob_generic_creature.cpp.o
|
||||
[742/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/go_scripts.cpp.o
|
||||
[743/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/item_scripts.cpp.o
|
||||
[744/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/npc_innkeeper.cpp.o
|
||||
[745/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/world_map_scripts.cpp.o
|
||||
[746/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/world_script_loader.cpp.o
|
||||
[747/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/npc_professions.cpp.o
|
||||
[748/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/npcs_special.cpp.o
|
||||
[749/751] Linking CXX static library src/server/game/libgame.a
|
||||
ninja: build stopped: interrupted by user.
|
||||
@@ -0,0 +1,61 @@
|
||||
-- Detected 64-bit platform
|
||||
-- UNIX: Using default configuration directory
|
||||
-- UNIX: Configuring uninstall target
|
||||
-- UNIX: Created uninstall target
|
||||
-- UNIX: Detected compiler: /usr/bin/cc
|
||||
-- GCC: Minimum version required is 10.0.0, found 15.2.0 - ok!
|
||||
-- GCC: SFMT enabled, SSE2 flags forced
|
||||
-- GCC: All warnings enabled
|
||||
-- GCC: Debug-flags set (-g3)
|
||||
-- Found MySQL:
|
||||
-- Found MySQL: found components: binary
|
||||
-- Found MySQL executable: /usr/bin/mysql
|
||||
|
||||
* TrinityCore revision : 119d63ed1c37+ 2026-10-26 22:45:38 +0100 (feature/clientless-player-core branch)
|
||||
* TrinityCore buildtype : Debug
|
||||
|
||||
* Install core to : /home/wow_admin/wow_cata_server/server/debug
|
||||
|
||||
* Build world/auth : Yes (default)
|
||||
* Build with scripts : Yes (static)
|
||||
* Build map/vmap tools : No
|
||||
* Build unit tests : No (default)
|
||||
* Unity build enabled : No (default)
|
||||
* Build core w/PCH : Yes (default)
|
||||
* Build scripts w/PCH : Yes (default)
|
||||
* Show all warnings : Yes
|
||||
|
||||
*** WITH_COREDEBUG - WARNING!
|
||||
*** additional core debug logs have been enabled!
|
||||
*** this setting doesn't help to get better crash logs!
|
||||
*** in case you are searching for better crash logs use
|
||||
*** -DCMAKE_BUILD_TYPE=RelWithDebug
|
||||
*** DO NOT ENABLE IT UNLESS YOU KNOW WHAT YOU'RE DOING!
|
||||
* Use coreside debug : Yes
|
||||
* Show source tree : Yes (hierarchical)
|
||||
* Use GIT revision hash : Yes (default)
|
||||
|
||||
-- Found Readline library: /usr/lib/x86_64-linux-gnu/libreadline.so
|
||||
-- Include dir is: /usr/include
|
||||
|
||||
* Script configuration (static):
|
||||
|
|
||||
+- worldserver
|
||||
| +- Battlefield
|
||||
| +- Commands
|
||||
| +- Custom
|
||||
| +- EasternKingdoms
|
||||
| +- Events
|
||||
| +- Kalimdor
|
||||
| +- Maelstrom
|
||||
| +- Northrend
|
||||
| +- OutdoorPvP
|
||||
| +- Outland
|
||||
| +- Pet
|
||||
| +- Spells
|
||||
| +- World
|
||||
|
|
||||
|
||||
-- Configuring done (0.4s)
|
||||
-- Generating done (0.1s)
|
||||
-- Build files have been written to: /home/wow_admin/wow_cata_server/build/debug
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/tmp/vcore-economy-t0vuw0w2/test.cpp: In function ‘bool TargetVisible(Player*, WorldObject*, const std::string&)’:
|
||||
/tmp/vcore-economy-t0vuw0w2/test.cpp:61:57: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
61 | if (!AdventureEconomyPolicy::Economic(kind) && !AdventureProfessionPolicy::Recognized(kind)) return player->IsWithinLOSInMap(target);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_economy.py", line 101, in <module>
|
||||
subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-economy-t0vuw0w2/test.cpp', '-o', '/tmp/vcore-economy-t0vuw0w2/test']' returned non-zero exit status 1.
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp: In static member function ‘static bool AdventureSocialActions::Available(Player*, const AdventureMicroAction&, AdventureSocialContext&)’:
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:50:9: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
50 | if (AdventureProfessionPolicy::Recognized(kind)) return c.Intent=="profession" &&
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:51:9: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
51 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) &&
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:51:51: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’
|
||||
51 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) &&
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:52:10: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty());
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:52:58: error: ‘struct Player’ has no member named ‘IsInWater’
|
||||
52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty());
|
||||
| ^~~~~~~~~
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:52:77: error: ‘struct Player’ has no member named ‘IsFalling’
|
||||
52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty());
|
||||
| ^~~~~~~~~
|
||||
/tmp/vcore-exploration-adul8yl4/test.cpp:52:90: error: ‘AdventureProfessionTargets’ has not been declared
|
||||
52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty());
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_exploration.py", line 60, in <module>
|
||||
subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-exploration-adul8yl4/test.cpp', '-o', '/tmp/vcore-exploration-adul8yl4/test']' returned non-zero exit status 1.
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
/tmp/vcore-adventure-state-4s9vbnjn/test.cpp: In lambda function:
|
||||
/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:22: error: ‘struct AdventureBehaviorMgr::Record::<unnamed>’ has no member named ‘Progressive’
|
||||
82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() &&
|
||||
| ^~~~~~~~~~~
|
||||
/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:48: error: ‘struct AdventureBehaviorMgr::Record::<unnamed>’ has no member named ‘Route’
|
||||
82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() &&
|
||||
| ^~~~~
|
||||
/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:75: error: ‘struct AdventureBehaviorMgr::Record::<unnamed>’ has no member named ‘Step’
|
||||
82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() &&
|
||||
| ^~~~
|
||||
/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:91: error: ‘struct AdventureBehaviorMgr::Record::<unnamed>’ has no member named ‘Route’
|
||||
82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() &&
|
||||
| ^~~~~
|
||||
/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:83:44: error: ‘struct AdventureBehaviorMgr::Record::<unnamed>’ has no member named ‘Route’
|
||||
83 | player->GetExactDist(r.Leisure.Route.back())<=2)
|
||||
| ^~~~~
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_intent_state.py", line 108, in <module>
|
||||
subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-adventure-state-4s9vbnjn/test.cpp', '-o', '/tmp/vcore-adventure-state-4s9vbnjn/test']' returned non-zero exit status 1.
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp: In member function ‘bool AdventureBehaviorMgr::LeisureAvailable(Player*, const Record&, const AdventureMicroAction&) const’:
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:166:95: error: ‘FishingDirection’ was not declared in this scope
|
||||
166 | return rod && rod->GetTemplate()->GetSubClass()==ITEM_SUBCLASS_WEAPON_FISHING_POLE && FishingDirection(p,direction);
|
||||
| ^~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp: In member function ‘bool AdventureBehaviorMgr::StartLeisure(Player*, Record&, const AdventureMicroAction&)’:
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:199:17: error: ‘FishingDirection’ was not declared in this scope
|
||||
199 | if(!FishingDirection(p,direction))return false;
|
||||
| ^~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:216:7: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’
|
||||
216 | s.Progressive=s.Kind=="work_search" || (r.Intent=="adventure" && site->IsArea && foot);
|
||||
| ^~~~~~~~~~~
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:217:10: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’
|
||||
217 | if(s.Progressive)s.Route.resize(s.OutboundSteps);
|
||||
| ^~~~~~~~~~~
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp: In member function ‘bool AdventureBehaviorMgr::UpdateLeisure(Player*, Record&, uint32)’:
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:356:37: error: ‘ProfessionWorkAvailable’ was not declared in this scope
|
||||
356 | if(s.Kind=="work_search" && ProfessionWorkAvailable(p,r))
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:367:20: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’
|
||||
367 | r.Detail=s.Progressive?"area search reached next observation point":"leisure outing completed at starting point";
|
||||
| ^~~~~~~~~~~
|
||||
/tmp/vcore-leisure-l3qqdidj/test.cpp:373:14: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’
|
||||
373 | if(s.Progressive) {s.Route.resize(s.Step);return false;}
|
||||
| ^~~~~~~~~~~
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_leisure.py", line 196, in <module>
|
||||
subprocess.run(['c++','-std=c++17',str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '/tmp/vcore-leisure-l3qqdidj/test.cpp', '-o', '/tmp/vcore-leisure-l3qqdidj/test']' returned non-zero exit status 1.
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp: In member function ‘AdventureSocialContext AdventureBehaviorMgr::SocialContext(Player*, Record&)’:
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:63: error: ‘struct Profile’ has no member named ‘PrimaryProfessions’
|
||||
38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}};
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:82: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}};
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:120: error: expected ‘}’ before ‘{’ token
|
||||
38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}};
|
||||
| ^
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:33:12: note: to match this ‘{’
|
||||
33 | return {r.Anchor,r.AnchorMap,location&&location->Point.Category=="festival",
|
||||
| ^
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:120: note: probably missing a comma or an operator before
|
||||
38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}};
|
||||
| ^
|
||||
/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:122: error: could not convert ‘{r.AdventureBehaviorMgr::Record::Anchor, r.AdventureBehaviorMgr::Record::AnchorMap, ((location != 0) && std::operator==<char, char_traits<char>, allocator<char> >(location->Location::Point.Location::<unnamed struct>::Category, ((const char*)"festival"))), ((profile != 0) ? std::__cxx11::basic_string<char>(profile->Profile::Locale) : std::__cxx11::basic_string<char>(((const char*)"enUS"), std::allocator<char>())), r.AdventureBehaviorMgr::Record::Intent, r.AdventureBehaviorMgr::Record::Random, r.AdventureBehaviorMgr::Record::TargetHistory, r.AdventureBehaviorMgr::Record::VariantHistory, <lambda closure object>AdventureBehaviorMgr::SocialContext(Player*, Record&)::<lambda(const Position&, float)>{((AdventureBehaviorMgr*)this), player, (* & r)}, (std::operator!=<char, char_traits<char>, allocator<char> >(r.AdventureBehaviorMgr::Record::Intent, ((const char*)"rest")) || ((location != 0) && std::operator==<char, char_traits<char>, allocator<char> >(location->Location::Point.Location::<unnamed struct>::Category, ((const char*)"rest_ground")))), (((location != 0) && std::operator==<char, char_traits<char>, allocator<char> >(r.AdventureBehaviorMgr::Record::Intent, ((const char*)"economy"))) ? AdventureEconomyPolicy::LocationRequirement(location->Location::Point.Location::<unnamed struct>::Category) : std::__cxx11::basic_string<char>(((const char*)""), std::allocator<char>())), ((location != 0) ? std::__cxx11::basic_string<char>(location->Location::Point.Location::<unnamed struct>::Category) : std::__cxx11::basic_string<char>(((const char*)""), std::allocator<char>())), <expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘AdventureSocialContext’
|
||||
38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}};
|
||||
| ^
|
||||
| |
|
||||
| <brace-enclosed initializer list>
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_rest_fire.py", line 74, in <module>
|
||||
subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp', '-o', '/tmp/vcore-rest-fire-policy-he3ktm09/test']' returned non-zero exit status 1.
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp: In function ‘std::vector<AdventureSocialFlow::Step> Steps(const std::string&, uint32)’:
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:100:13: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
100 | if (AdventureProfessionPolicy::Recognized(kind)) return AdventureProfessionPolicy::Steps(kind,duration);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:100:65: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
100 | if (AdventureProfessionPolicy::Recognized(kind)) return AdventureProfessionPolicy::Steps(kind,duration);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp: In static member function ‘static bool AdventureSocialActions::Update(Player*, AdventureSocialScene&, uint32, AdventureSocialContext&)’:
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:8: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:60: error: ‘struct AdventureSocialContext’ has no member named ‘Intent’
|
||||
256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false;
|
||||
| ^~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:85: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:129: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’
|
||||
256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:272:12: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
272 | if(AdventureProfessionPolicy::Recognized(s.Kind) && !AdventureProfessionTargets::Valid(p,target,s.Kind,c))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:272:62: error: ‘AdventureProfessionTargets’ has not been declared
|
||||
272 | if(AdventureProfessionPolicy::Recognized(s.Kind) && !AdventureProfessionTargets::Valid(p,target,s.Kind,c))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:363:27: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
363 | auto task=AdventureProfessionPolicy::Find(s.Kind);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:364:30: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
364 | if(!task || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:364:74: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’
|
||||
364 | if(!task || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions))return false;
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:365:30: error: ‘EMOTE_STATE_USE_STANDING’ was not declared in this scope; did you mean ‘EMOTE_ONESHOT_USE_STANDING’?
|
||||
365 | uint32 emote=EMOTE_STATE_USE_STANDING;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| EMOTE_ONESHOT_USE_STANDING
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:368:26: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
368 | case AdventureProfessionPolicy::Motion::Mine:emote=EMOTE_STATE_WORK_MINING;break;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:368:72: error: ‘EMOTE_STATE_WORK_MINING’ was not declared in this scope
|
||||
368 | case AdventureProfessionPolicy::Motion::Mine:emote=EMOTE_STATE_WORK_MINING;break;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:369:26: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
369 | case AdventureProfessionPolicy::Motion::Chop:emote=EMOTE_STATE_WORK_CHOPWOOD;break;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:369:72: error: ‘EMOTE_STATE_WORK_CHOPWOOD’ was not declared in this scope
|
||||
369 | case AdventureProfessionPolicy::Motion::Chop:emote=EMOTE_STATE_WORK_CHOPWOOD;break;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:370:26: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
370 | case AdventureProfessionPolicy::Motion::Kneel:emote=EMOTE_STATE_KNEEL;break;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:370:73: error: ‘EMOTE_STATE_KNEEL’ was not declared in this scope; did you mean ‘EMOTE_STATE_DANCE’?
|
||||
370 | case AdventureProfessionPolicy::Motion::Kneel:emote=EMOTE_STATE_KNEEL;break;
|
||||
| ^~~~~~~~~~~~~~~~~
|
||||
| EMOTE_STATE_DANCE
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:433:8: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
433 | if(AdventureProfessionPolicy::Recognized(s.Kind))
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:435:22: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
435 | if(auto task=AdventureProfessionPolicy::Find(s.Kind))
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:439:38: error: ‘struct Position’ has no member named ‘Relocate’
|
||||
439 | Position departure;departure.Relocate(p);
|
||||
| ^~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:440:29: error: ‘struct WorldObject’ has no member named ‘GetAngle’
|
||||
440 | float angle=target->GetAngle(p);
|
||||
| ^~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:441:19: error: ‘struct Position’ has no member named ‘m_positionX’; did you mean ‘Position’?
|
||||
441 | departure.m_positionX+=std::cos(angle)*2;departure.m_positionY+=std::sin(angle)*2;
|
||||
| ^~~~~~~~~~~
|
||||
| Position
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:441:60: error: ‘struct Position’ has no member named ‘m_positionY’; did you mean ‘Position’?
|
||||
441 | departure.m_positionX+=std::cos(angle)*2;departure.m_positionY+=std::sin(angle)*2;
|
||||
| ^~~~~~~~~~~
|
||||
| Position
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:25: error: ‘struct Player’ has no member named ‘GetMap’
|
||||
442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8);
|
||||
| ^~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:48: error: ‘struct Player’ has no member named ‘GetPhaseShift’
|
||||
442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8);
|
||||
| ^~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:74: error: ‘struct Position’ has no member named ‘GetPositionX’; did you mean ‘Position’?
|
||||
442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8);
|
||||
| ^~~~~~~~~~~~
|
||||
| Position
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:99: error: ‘struct Position’ has no member named ‘GetPositionY’; did you mean ‘Position’?
|
||||
442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8);
|
||||
| ^~~~~~~~~~~~
|
||||
| Position
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:443:19: error: ‘INVALID_HEIGHT’ was not declared in this scope
|
||||
443 | if(height>INVALID_HEIGHT+1 && std::fabs(height-p->GetPositionZ())<=2)
|
||||
| ^~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-test-cy2ndyrb/test.cpp:445:23: error: ‘struct Position’ has no member named ‘m_positionZ’; did you mean ‘Position’?
|
||||
445 | departure.m_positionZ=height;
|
||||
| ^~~~~~~~~~~
|
||||
| Position
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_social.py", line 190, in <module>
|
||||
subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-social-test-cy2ndyrb/test.cpp', '-o', '/tmp/vcore-social-test-cy2ndyrb/test']' returned non-zero exit status 1.
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
/tmp/vcore-social-fire-swu4udr3/test.cpp: In static member function ‘static bool AdventureSocialActions::Available(Player*, const AdventureMicroAction&, AdventureSocialContext&)’:
|
||||
/tmp/vcore-social-fire-swu4udr3/test.cpp:79:9: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
79 | if (AdventureProfessionPolicy::Recognized(kind)) return c.Intent=="profession" &&
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-fire-swu4udr3/test.cpp:80:9: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
80 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) &&
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-fire-swu4udr3/test.cpp:80:51: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’
|
||||
80 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) &&
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-fire-swu4udr3/test.cpp:81:10: error: ‘AdventureProfessionPolicy’ has not been declared
|
||||
81 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty());
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/tmp/vcore-social-fire-swu4udr3/test.cpp:81:90: error: ‘AdventureProfessionTargets’ has not been declared
|
||||
81 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty());
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Traceback (most recent call last):
|
||||
File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_social_fire.py", line 86, in <module>
|
||||
subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-social-fire-swu4udr3/test.cpp', '-o', '/tmp/vcore-social-fire-swu4udr3/test']' returned non-zero exit status 1.
|
||||
@@ -0,0 +1,18 @@
|
||||
from pathlib import Path
|
||||
import os,re,subprocess,sys
|
||||
config=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text()
|
||||
match=re.search(r'^WorldDatabaseInfo\s*=\s*"([^"]+)"',config,re.M)
|
||||
if not match:raise SystemExit('Test world database configuration not found')
|
||||
host,port,user,password,database=match.group(1).split(';')
|
||||
args=['mysql','--protocol=TCP','--host='+host,'--port='+port,'--user='+user,'--database='+database,'--default-character-set=utf8mb4','--batch','--connect-timeout=10']
|
||||
env=os.environ.copy();env['MYSQL_PWD']=password
|
||||
query="SELECT a.action_key,a.kind,a.min_seconds,a.max_seconds,a.requirement,i.intent,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE a.action_key IN ('rest_fire','campfire_rest','social_fire'); SELECT point_key,category,map,position_x,position_y,position_z FROM vcore_clientless_world_point WHERE enabled=1 AND category='rest_ground' LIMIT 10;"
|
||||
if sys.argv[1:] == ['apply']:
|
||||
migration=Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_01_adventure_rest_fire.sql').read_text()
|
||||
query='START TRANSACTION;\n'+migration+'\n'+query+'\nCOMMIT;'
|
||||
elif sys.argv[1:] != ['inspect']:raise SystemExit('Use inspect or apply')
|
||||
result=subprocess.run(args,input=query,text=True,capture_output=True,env=env)
|
||||
print(result.stdout,end='')
|
||||
if result.returncode:
|
||||
print(result.stderr.replace(password,'[redacted]'),file=sys.stderr,end='')
|
||||
raise SystemExit(result.returncode)
|
||||
@@ -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.
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,6 @@
|
||||
TrinityCore rev. 04aa87fcfc13+ 2026-10-28 11:30:47 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
GROUP_BOT_INVITE leader=31 target=29 intent='social' forming=0
|
||||
INTERACTION_INVITE guid=29 leader=31 accepted=1
|
||||
INTERACTION_GROUP_LEAVE guid=31 reason='intent-change'
|
||||
Interactions guid=29 grouped=1 leader=31 partner=0 intent='social' schedule='soc
|
||||
Interactions guid=31 grouped=1 leader=31 partner=0 intent='social' schedule='soc
|
||||
@@ -0,0 +1,3 @@
|
||||
66 clientless test scripts passed; final interaction-manager regression rechecked. Native Lenara31 -> Aelion29 invitation accepted, native grouped1/leader31 observed, later normal intent-change departure. Timer defect discovered during smoke and fixed before final deployment. Full group route/raid/visual acceptance remains open.
|
||||
Latest production plan-signature regression rechecked: different inherited destinations do not trigger personal intent-change departure; restoration returns to the original manual destination.
|
||||
Final corrected Debug build installed; worldserver122595 fresh ready and port8085 verified. All four bots online;29/31 confirmed enabled0/grouped0 in Goldshire,30/32 original social intents,26offline. No temporary profile changes or overrides.
|
||||
@@ -0,0 +1,204 @@
|
||||
|
||||
TEST tests/clientless/test_adventure_area_node.py
|
||||
Production area destination excludes outside and unreachable graph nodes.
|
||||
|
||||
TEST tests/clientless/test_adventure_behavior_policy.py
|
||||
24-hour generation, shared intents with changing destinations, broad location classification and repetition penalties passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_exercise.py
|
||||
Production exercise: stance/charge/melee/casts, native validation delegation, bounded lifetime, invalid targets and unchanged native phases passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_preparation.py
|
||||
Production talent learner: native tiers/dependencies/class gates, all 26 legal level60 points, no capstone bypass and repeat safety passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_reactions.py
|
||||
Production combat focus, damage ordering, risk filters, corpse radius/delay, flight/group override, blocked escape, danger avoidance and malus-free persisted fallback passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_economy.py
|
||||
Economy: native service roles, friendly/phase/LOS/bounds gates, no bot service targets and coherent performative cues passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_economy_catalog.py
|
||||
Economy catalog: eleven actions, three faction-bound service anchors, native flag gates and idempotent preservation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_exploration.py
|
||||
Exploration: visible native props only, no chests/traps/furniture, phase/map/LOS/range gates and contextual preparation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_exploration_catalog.py
|
||||
Exploration catalog: ten actions, shared scenes, default wander replacement, explicit category eligibility and preserved edits passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_equipment.py
|
||||
Production equipment affinity: mana-only/direct/triggered procs, caster/physical stat effects and bounded cycles passed
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_ownership.py
|
||||
Production generator commands: batch bounds, dedicated ownership, persistent/online/removing retirement protection and retired login refusal passed
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_policy.py
|
||||
Production generator: 6144 cultural names and 61440 real Lua profiles, profession coherence, personality ranges, escaping and equipment/armor gates passed
|
||||
|
||||
TEST tests/clientless/test_adventure_graph_handover.py
|
||||
Production graph handover waits for ship/taxi/flight/teleport and stops at safe road/node boundaries.
|
||||
|
||||
TEST tests/clientless/test_adventure_group_plan.py
|
||||
Production group plans: leader meeting/goal/deadline inheritance, untouched personal day, manual preparation and instance-state guards passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_groups.py
|
||||
Production recruitment: capitals, different goals, native inviter leadership, joining existing groups, capacity/reservations, raid conversion, planned transition and local contact passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance.py
|
||||
Production instance lifecycle: time budget, true entry, denied/shared entry, native rear exit, restart, expired copy, late arrival, HP and return replay passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_autoresume.py
|
||||
Instance startup script: no schema/no visits stays idle; saved visitors resume with the Adventure controller and native accounts.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_begin.py
|
||||
Production entrance travel uses the existing location planner, requires mapping and retains normal social/area travel.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_catalog.py
|
||||
Instance migrations: outside entrances only, native graph preserved, disabled/missing transitions excluded, edits and saved visits preserved.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_persistence.py
|
||||
Production instance persistence: phases, original deadline, instance ID, transactional HP marker, failed commit and intent release passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_intent_state.py
|
||||
Production intent arrival, failed/partial travel, deadlines and safe schedule handover passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_interactions.py
|
||||
/tmp/tmp_vzcr4vj/test.cpp: In member function ‘void AdventureInteractionMgr::Leave(Player*, Record&, const char*)’:
|
||||
/tmp/tmp_vzcr4vj/test.cpp:142:69: warning: unused parameter ‘reason’ [-Wunused-parameter]
|
||||
142 | void AdventureInteractionMgr::Leave(Player* p,Record& r,char const* reason)
|
||||
| ~~~~~~~~~~~~^~~~~~
|
||||
production interaction manager: invitations, factions, reservations, follow, AFK and deferred departure passed
|
||||
|
||||
TEST tests/clientless/test_adventure_leisure.py
|
||||
Leisure: substantial curved MMAP routes, mirrored return, interrupted return, rejected corridors, actual arrival, companion follow, riding, flight and fishing passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_leisure_catalog.py
|
||||
Leisure migration: native city anchor, shared scene references, pet-walk mapping and preservation of edited weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_location_import.py
|
||||
Locations: actual Debug SMALLINT reads retain continent IDs; explicit location eligibility and edited weight overrides passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_micro_reset.py
|
||||
Micro cleanup ends physical local movement, preserves transit and does not stand up dead players.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_catalog.py
|
||||
Profession catalog: native workstation roles, no workshop/resource inference, idempotence and preserved edits passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_profile.py
|
||||
Production profession parser, real Lua profiles, primary restrictions and secondary permissions passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_sightline.py
|
||||
Native workstation working-surface sightline and blocked geometry rejection passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_targets.py
|
||||
Production profession targets: native locks, phase/spawn/loot, stations, corpses, history and trainers passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_pvp.py
|
||||
Production PvP selector: level boundaries, radius, factions, native legality, navigation, intent, personality and resources passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_repair_catalog.py
|
||||
Repair action catalog: proper native service requirement, economy-only intent and preserved administrator weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest.py
|
||||
Recovery: authored places, bounds, arrival, occupancy, full rest duration, failure, reload and interruption passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_fire.py
|
||||
Rest fire: shared scene mapping, additive migration, preserved weights and authored creation-place policy passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_space.py
|
||||
Sleep footprint: furniture, body extent, overhead collision, ledges, stairs, missing heights, rotation and scale passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_targets.py
|
||||
Native sleep targets: chair exclusion, phase, despawn, floor search, indoors, water, storey, occupancy, bed/surface preference passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_social.py
|
||||
Production social flow: approach before talk, coherent greeting/talk/listen/farewell, lost targets, native chair confirmation and real fire confirmation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_social_fire.py
|
||||
Shared fire: native detection/provisioning, buildings/city/parent/zone restrictions, existing fires and outdoor/water checks passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supplies.py
|
||||
Production supplies: exact10% boundary, bandage-before-food, native lockout fallback, recovery completion, combat potions, mana-only drinking and daily/post-combat top-ups passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supply_catalog.py
|
||||
Supply migrations: all five roles, level60 netherweave tier, editable/disabled catalog preservation and persistent daily stamp passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supply_items.py
|
||||
Production native-item delegation: usable bandage tiers, native cooldown/lockout gates, real inventory consumption, self targeting and level60 secondary caps passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_training_catalog.py
|
||||
Training catalog: real dummy requirement, leisure-only intent, bounded duration and preserved administrator weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_walk.py
|
||||
Production travel gait reaches native spline, survives repaths, prevents mounting and preserves legacy running defaults.
|
||||
|
||||
TEST tests/clientless/test_clientless_character_factory.py
|
||||
Production native factory: character/profile atomicity, failed preparation/commit, cache publication order, account/security/name/cap gates passed
|
||||
|
||||
TEST tests/clientless/test_clientless_companion.py
|
||||
Native companion: provisioning, delayed summon, ownership, real item target, leash confirmation/timeout, reuse and cleanup passed.
|
||||
|
||||
TEST tests/clientless/test_clientless_damage_notifications.py
|
||||
Production damage handoff: 16 concurrent map-worker writers, ordered GUID-only events, clientless-only/positive damage gates and post-health notification passed.
|
||||
|
||||
TEST tests/clientless/test_clientless_near_teleport_observer.py
|
||||
Production near-teleport observer packet includes actual mover GUID and destination; clientless timestamp refreshed, regular client timestamp preserved.
|
||||
|
||||
TEST tests/clientless/test_clientless_skill_preparation.py
|
||||
Production offline skill preparation: native tier caps, no downgrading, rank/level/race/tier gates and no modification of online players passed
|
||||
|
||||
TEST tests/clientless/test_clientless_social_notifications.py
|
||||
Production social/helper queues: concurrent GUID-only delivery, bounded queues, human/self/zero-damage gates, pet attribution and lethal-cleanup ordering passed
|
||||
|
||||
TEST tests/clientless/test_default_phase.py
|
||||
Native PhaseShift: implicit/default 169 visibility, genuine custom-phase separation and reference updates passed.
|
||||
|
||||
TEST tests/clientless/test_flight_area_query.py
|
||||
Native terrain query map/phase, area/zone ordering and cache passed.
|
||||
|
||||
TEST tests/clientless/test_flight_handoff.py
|
||||
Flight handoff before spline end, terminal landing, return corners, collision stop and actual distance passed.
|
||||
|
||||
TEST tests/clientless/test_flight_policy.py
|
||||
Flight native eligibility, license/profile/zone policy, RP costs and fail-safe return decisions passed.
|
||||
|
||||
TEST tests/clientless/test_follow_spline_velocity.py
|
||||
Native follow: actual player/creature spline velocity, client gait and independent follower speeds passed.
|
||||
|
||||
TEST tests/clientless/test_free_flight.py
|
||||
Flight geometry passed: takeoff/landing, smoothed peak, ceiling, lateral/climbing avoidance, missing terrain and blocked corridors.
|
||||
|
||||
TEST tests/clientless/test_free_flight_planner.py
|
||||
ground planner regressions and dynamic flight/node/location/virtual-exit integration passed
|
||||
|
||||
TEST tests/clientless/test_ground_exit_continuation.py
|
||||
optional exits: repeated probes, retained route, delayed success, forward resume, flight fallback passed
|
||||
|
||||
TEST tests/clientless/test_local_spline_segments.py
|
||||
Production local spline clipping passes native path-length validation, tiny remainders and 1000 sampled paths.
|
||||
|
||||
TEST tests/clientless/test_lua_reload.py
|
||||
Lua reload regression tests passed (production reload/bindings, real Lua 5.4).
|
||||
|
||||
TEST tests/clientless/test_player_pure_max_skill.py
|
||||
Native pure skill cap: learned skills return stored cap; missing/deleted/zero-rank skills return0.
|
||||
|
||||
TEST tests/clientless/test_portal_transfer.py
|
||||
Portal near/far ACK and denied same-map transfer regressions passed.
|
||||
|
||||
TEST tests/clientless/test_portal_use.py
|
||||
Interactive portal native click, near/far/global ACK, denial, timeout and target checks passed.
|
||||
Native portal destination discovery and unsupported/ambiguous spell rejection passed.
|
||||
Production clientless ACK completion sequence increments only after completed near/far transfers.
|
||||
|
||||
TEST tests/clientless/test_shared_group_route.py
|
||||
Production generic shared routes: same edges/taxi/free flight, independent execution state, final local goal, late catch-up, permissions and stale-goal rejection passed.
|
||||
|
||||
TEST tests/clientless/test_taxi_import_disabled.py
|
||||
Taxi importer preserves disabled rows and their reasons.
|
||||
|
||||
TEST tests/clientless/test_transport.py
|
||||
Transport dock, frame, recorder, cross-map copy and ride regressions passed
|
||||
|
||||
TEST tests/clientless/test_transport_grid_loading.py
|
||||
Core transport grid initialization regressions passed (no CPC dependency).
|
||||
@@ -0,0 +1,19 @@
|
||||
from pathlib import Path
|
||||
import os,re,subprocess,sys
|
||||
root=Path('/home/wow_admin/wow_cata_server/source/TrinityCore')
|
||||
conf=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text()
|
||||
def query(kind,sql):
|
||||
h,port,u,p,db=re.search(r'^'+kind+r'DatabaseInfo\s*=\s*"([^"]+)"',conf,re.M).group(1).split(';')
|
||||
env=os.environ.copy();env['MYSQL_PWD']=p
|
||||
r=subprocess.run(['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--connect-timeout=10'],input=sql,text=True,capture_output=True,env=env)
|
||||
if r.returncode:raise SystemExit(r.stderr.replace(p,'[redacted]'))
|
||||
return r.stdout
|
||||
|
||||
mode=sys.argv[1]
|
||||
if mode=='inspect':
|
||||
print(query('World',"SHOW CREATE TABLE vcore_adventure_day; SELECT zone_id,area_id,COUNT(*) n FROM vcore_adventure_location GROUP BY zone_id,area_id ORDER BY n DESC LIMIT 20;"))
|
||||
elif mode=='apply':
|
||||
print(query('World',(root/'sql/custom/world/2026_10_28_01_adventure_groups.sql').read_text()))
|
||||
elif mode=='state':
|
||||
print(query('Character',"SELECT guid,name,online,map,instance_id FROM characters WHERE guid IN(26,29,30,31,32); SELECT guid,leaderGuid,groupType FROM groups; SELECT guid,memberGuid FROM group_member ORDER BY guid,memberGuid;"))
|
||||
else:raise SystemExit('unknown mode')
|
||||
@@ -0,0 +1,5 @@
|
||||
TC> Adventure loader enabled=1 schema=1 busy=0 pools=10/2/10/2 known=25 rotations=0 manager=24 error=''
|
||||
pool=0 faction=alliance persistent=1 target=10 online=10 pending=0 saved=10
|
||||
pool=1 faction=alliance persistent=0 target=2 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=10 online=10 pending=0 saved=10
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
@@ -0,0 +1,13 @@
|
||||
Thread 1 (Thread 0x7ffff7e22380 (LWP 160076) "worldserver"):
|
||||
#0 SpellEffectInfo::CalcBaseValue (this=0x7fffdff27230, caster=0x7fffaa8bd000, target=0x0) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Spells/SpellInfo.cpp:550
|
||||
#1 0x0000555557ebd906 in SpellValue::SpellValue (this=0x7fff12f6a520, proto=0x7fffdff26f00, caster=0x7fffaa8bd000) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Spells/Spell.cpp:539
|
||||
#2 0x0000555557ebdaa1 in Spell::Spell (this=0x7fff4c696000, caster=0x7fffaa8bd000, info=0x7fffdff26f00, triggerFlags=TRIGGERED_FULL_MASK, originalCasterGUID=...) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Spells/Spell.cpp:566
|
||||
#3 0x00005555575d8d49 in WorldObject::CastSpell (this=0x7fffaa8bd000, targets=..., spellId=56342, args=...) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Entities/Object/Object.cpp:2959
|
||||
#4 0x000055555761a312 in Player::AddSpell (this=0x7fffaa8bd000, spellId=56342, active=true, learning=true, dependent=false, disabled=false, loading=false, fromSkill=0) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Entities/Player/Player.cpp:2918
|
||||
#5 0x000055555761b9d5 in Player::LearnSpell (this=0x7fffaa8bd000, spell_id=56342, dependent=false, fromSkill=0) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Entities/Player/Player.cpp:3109
|
||||
#6 0x00005555576a6ccd in Player::LearnTalent (this=0x7fffaa8bd000, talentId=9452, talentRank=0) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/Entities/Player/Player.cpp:25810
|
||||
#7 0x00005555580b2532 in operator() (__closure=0x7fffffffba80, id=9452, rank=0) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World/AdventureGeneratorMgr.cpp:117
|
||||
#8 0x00005555580bca94 in AdventureTalentPolicy::Spend<(anonymous namespace)::Talents(Player*, const AdventureGeneratorPolicy::Archetype&)::<lambda(uint32, unsigned int)>, (anonymous namespace)::Talents(Player*, const AdventureGeneratorPolicy::Archetype&)::<lambda()> >(const std::vector<AdventureTalentPolicy::Talent, std::allocator<AdventureTalentPolicy::Talent> > &, struct {...}, struct {...}) (build=std::vector of length 19, capacity 19 = {...}, learn=..., remaining=...) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World/AdventureTalentPolicy.h:18
|
||||
#9 0x00005555580b28fc in (anonymous namespace)::Talents (p=0x7fffaa8bd000, a=...) at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World/AdventureGeneratorMgr.cpp:117
|
||||
#10 0x00005555580b7385 in AdventureGeneratorMgr::Prepare (this=0x55555a18ff00 <AdventureGeneratorMgr::instance()::mgr>, p=0x7fffaa8bd000, a=..., error="") at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World/AdventureGeneratorMgr.cpp:419
|
||||
#11 0x00005555580bad71 in AdventureGeneratorMgr::Reconcile (this=0x55555a18ff00 <AdventureGeneratorMgr::instance()::mgr>, player=0x7fffaa8bd000, error="") at /home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World/AdventureGeneratorMgr.cpp:601
|
||||
@@ -0,0 +1,11 @@
|
||||
Build: Debug, existing CMake configuration, -j10. Full1046-step rebuild
|
||||
for SpellInfo header fix plus final9-step class refinements succeeded.
|
||||
Installed with cmake --install after verifying no worldserver/authserver active.
|
||||
Third fresh startup: /tmp/vcore-class-combat-20261028-start3.log.
|
||||
Fresh ready marker, persistent worldserver PID167319 and port8085 LISTEN verified.
|
||||
Loader enabled, pools online10/2/10/2, pending0, manager24, error empty.
|
||||
Initial native Hunter44 talent preparation warning recovered: saved level63
|
||||
Survival tree809 with28 talent points, matching NumTalentsAtLevel.dbc.
|
||||
Original inventories21/26 unchanged against pre-task hashes.
|
||||
No in-game tank/healer/player-party acceptance or raid completion claimed.
|
||||
Existing missing-map719 and Into the Wilderness84729 misc9 warnings remain.
|
||||
@@ -0,0 +1,257 @@
|
||||
TEST tests/clientless/test_adventure_area_node.py
|
||||
Production area destination excludes outside and unreachable graph nodes.
|
||||
|
||||
TEST tests/clientless/test_adventure_async_database.py
|
||||
Async creation DB contracts: prepared connection masks, native security column names, no future waits, successful-save cache publication and world-update-only loader hook passed
|
||||
|
||||
TEST tests/clientless/test_adventure_behavior_policy.py
|
||||
24-hour generation, shared intents with changing destinations, broad location classification and repetition penalties passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_class_rotation.py
|
||||
Production class rotations: persistent PvE solo pools, native rank aura IDs, combo/holy power/proc/execute/resource gates, Eclipse and healer coverage passed
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_exercise.py
|
||||
Production exercise: stance/charge/melee/casts, native validation delegation, bounded lifetime, invalid targets and unchanged native phases passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_preparation.py
|
||||
Production talent learner: native tiers/dependencies/class gates, all 26 legal level60 points, no capstone bypass and repeat safety passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_reactions.py
|
||||
Production combat focus, damage ordering, risk filters, corpse radius/delay, flight/group override, blocked escape, danger avoidance and malus-free persisted fallback passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_day_persistence.py
|
||||
Production day planner: all 24 TINYINT slots restored across logins, incomplete/old-day replacement, full transaction and curiosity/level weighting passed
|
||||
|
||||
TEST tests/clientless/test_adventure_economy.py
|
||||
Economy: native service roles, friendly/phase/LOS/bounds gates, no bot service targets and coherent performative cues passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_economy_catalog.py
|
||||
Economy catalog: eleven actions, three faction-bound service anchors, native flag gates and idempotent preservation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_encounter.py
|
||||
Production encounters: bot-only exclusion, mixed mode, extension hook, wait/revive, wipe fallback/reentry/gather/return, living-player priority, kick exit and offline cleanup passed
|
||||
|
||||
TEST tests/clientless/test_adventure_equipment_maintenance.py
|
||||
Production gear maintenance: same birth/retention gate rejects wrong armor/stats, malformed effects, level, temporary, reputation, map, holiday, native-use and slot mismatches passed
|
||||
|
||||
TEST tests/clientless/test_adventure_exploration.py
|
||||
Exploration: visible native props only, no chests/traps/furniture, phase/map/LOS/range gates and contextual preparation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_exploration_catalog.py
|
||||
Exploration catalog: ten actions, shared scenes, default wander replacement, explicit category eligibility and preserved edits passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_equipment.py
|
||||
Production equipment affinity: mana-only/direct/triggered procs, caster/physical stat effects and bounded cycles passed
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_ownership.py
|
||||
Production generator commands: batch bounds, dedicated ownership, persistent/online/removing retirement protection and retired login refusal passed
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_policy.py
|
||||
Production generator: 6144 cultural names and 61440 real Lua profiles, profession coherence, personality ranges, escaping and equipment/armor gates passed
|
||||
|
||||
TEST tests/clientless/test_adventure_graph_handover.py
|
||||
Production graph handover waits for ship/taxi/flight/teleport and stops at safe road/node boundaries.
|
||||
|
||||
TEST tests/clientless/test_adventure_ground_avoidance.py
|
||||
Production ground avoidance: harmful/friendly, phase169, height, reachable safe endpoint, rejected paths and reuse without cast/movement thrashing passed
|
||||
|
||||
TEST tests/clientless/test_adventure_group_plan.py
|
||||
Production group plans: leader meeting/goal/deadline inheritance, untouched personal day, manual preparation and instance-state guards passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_groups.py
|
||||
Production recruitment: capitals, different goals, native inviter leadership, joining existing groups, capacity/reservations, raid conversion, planned transition and local contact passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance.py
|
||||
Production instance lifecycle: time budget, true entry, denied/shared entry, native rear exit, restart, expired copy, late arrival, HP and return replay passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_autoresume.py
|
||||
Deferred instance script: missing schema/visits stays idle; no login work on startup; saved visitors resume with Adventure controllers and native accounts.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_begin.py
|
||||
Production entrance travel uses the existing location planner, requires mapping and retains normal social/area travel.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_catalog.py
|
||||
Instance migrations: outside entrances only, native graph preserved, disabled/missing transitions excluded, edits and saved visits preserved.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_loader.py
|
||||
Production instance recovery: no startup DB/login work, asynchronous delayed/paced manual recovery, generated-bot quota ownership, absent-schema compatibility and existing preparation ticks passed
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_persistence.py
|
||||
Production instance persistence: phases, original deadline, instance ID, transactional HP marker, failed commit and intent release passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_intent_state.py
|
||||
Production intent arrival, failed/partial travel, deadlines and safe schedule handover passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_interactions.py
|
||||
/tmp/tmpefb2v_zu/test.cpp: In member function ‘void AdventureInteractionMgr::Leave(Player*, Record&, const char*)’:
|
||||
/tmp/tmpefb2v_zu/test.cpp:142:69: warning: unused parameter ‘reason’ [-Wunused-parameter]
|
||||
142 | void AdventureInteractionMgr::Leave(Player* p,Record& r,char const* reason)
|
||||
| ~~~~~~~~~~~~^~~~~~
|
||||
production interaction manager: invitations, factions, reservations, follow, AFK and deferred departure passed
|
||||
|
||||
TEST tests/clientless/test_adventure_leisure.py
|
||||
Leisure: substantial curved MMAP routes, mirrored return, interrupted return, rejected corridors, actual arrival, companion follow, riding, flight and fishing passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_leisure_catalog.py
|
||||
Leisure migration: native city anchor, shared scene references, pet-walk mapping and preservation of edited weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_location_import.py
|
||||
Locations: actual Debug SMALLINT reads retain continent IDs; explicit location eligibility and edited weight overrides passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_manager_inventory.py
|
||||
Production inventory maintenance: only full backpacks, native stack trimming, level-appropriate supplies, tools, leash, fishing pole, containers and untouched equipped slots passed
|
||||
|
||||
TEST tests/clientless/test_adventure_micro_reset.py
|
||||
Micro cleanup ends physical local movement, preserves transit and does not stand up dead players.
|
||||
|
||||
TEST tests/clientless/test_adventure_population.py
|
||||
Production population: four independent faction/persistence targets, fair selection, pending reservations, retries, existing inventory, once-per-boot rotation and connected/persistent protection passed
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_catalog.py
|
||||
Profession catalog: native workstation roles, no workshop/resource inference, idempotence and preserved edits passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_profile.py
|
||||
Production profession parser, real Lua profiles, primary restrictions and secondary permissions passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_sightline.py
|
||||
Native workstation working-surface sightline and blocked geometry rejection passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_targets.py
|
||||
Production profession targets: native locks, phase/spawn/loot, stations, corpses, history and trainers passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profile_selection.py
|
||||
Production profile selection: real Lua ID dictionaries, exact 9:1 companion weighting, zero/negative/infinite/NaN/oversized weights rejected and legacy companion fallback passed
|
||||
|
||||
TEST tests/clientless/test_adventure_pvp.py
|
||||
Production PvP selector: level boundaries, radius, factions, native legality, navigation, intent, personality and resources passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_repair_catalog.py
|
||||
Repair action catalog: proper native service requirement, economy-only intent and preserved administrator weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest.py
|
||||
Recovery: authored places, bounds, arrival, occupancy, full rest duration, failure, reload and interruption passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_fire.py
|
||||
Rest fire: shared scene mapping, additive migration, preserved weights and authored creation-place policy passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_space.py
|
||||
Sleep footprint: furniture, body extent, overhead collision, ledges, stairs, missing heights, rotation and scale passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_targets.py
|
||||
Native sleep targets: chair exclusion, phase, despawn, floor search, indoors, water, storey, occupancy, bed/surface preference passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rotation.py
|
||||
/tmp/tmpk5e83d51/test.cpp: In instantiation of ‘std::string Trinity::StringFormat(const char*, A ...) [with A = {}; std::string = std::__cxx11::basic_string<char>]’:
|
||||
/tmp/tmpk5e83d51/test.cpp:22:126: required from ‘void Tx::PAppend(const char*, A ...) [with A = {}]’
|
||||
22 | struct Tx{std::vector<std::string>sql;template<class...A>void PAppend(char const*f,A...a){sql.push_back(Trinity::StringFormat(f,a...));}};
|
||||
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
/tmp/tmpk5e83d51/test.cpp:51:75: required from here
|
||||
51 | auto barrier=CharacterDatabase.BeginTransaction();barrier->PAppend("DO 0");
|
||||
| ~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
/tmp/tmpk5e83d51/test.cpp:11:113: warning: format not a string literal and no format arguments [-Wformat-security]
|
||||
11 | namespace Trinity{template<class...A>std::string StringFormat(char const* f,A...args){char b[4096];std::snprintf(b,sizeof(b),f,args...);return b;}}
|
||||
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
|
||||
Production rotation: connected/native-online protection, ownership refusal, native delete failure, world cleanup failure and journal-retained retry before successful profile/plan/state removal passed
|
||||
|
||||
TEST tests/clientless/test_adventure_social.py
|
||||
Production social flow: approach before talk, coherent greeting/talk/listen/farewell, lost targets, native chair confirmation and real fire confirmation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_social_fire.py
|
||||
Shared fire: native detection/provisioning, buildings/city/parent/zone restrictions, existing fires and outdoor/water checks passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supplies.py
|
||||
Production supplies: exact10% boundary, bandage-before-food, native lockout fallback, recovery completion, combat potions, mana-only drinking and daily/post-combat top-ups passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supply_catalog.py
|
||||
Supply migrations: all five roles, level60 netherweave tier, editable/disabled catalog preservation and persistent daily stamp passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supply_items.py
|
||||
Production native-item delegation: usable bandage tiers, native cooldown/lockout gates, real inventory consumption, self targeting and level60 secondary caps passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_talent_templates.py
|
||||
Canonical Cata PvE builds: 4.3.4 class/tree/rank/prerequisite gates, all 1..41 point budgets, solo selection coverage passed
|
||||
|
||||
TEST tests/clientless/test_adventure_training_catalog.py
|
||||
Training catalog: real dummy requirement, leisure-only intent, bounded duration and preserved administrator weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_walk.py
|
||||
Production travel gait reaches native spline, survives repaths, prevents mounting and preserves legacy running defaults.
|
||||
|
||||
TEST tests/clientless/test_clientless_character_factory.py
|
||||
Production native factory: character/profile atomicity, failed preparation/commit, cache publication order, account/security/name/cap gates passed
|
||||
|
||||
TEST tests/clientless/test_clientless_companion.py
|
||||
Native companion: provisioning, delayed summon, ownership, real item target, leash confirmation/timeout, reuse and cleanup passed.
|
||||
|
||||
TEST tests/clientless/test_clientless_damage_notifications.py
|
||||
Production damage handoff: 16 concurrent map-worker writers, ordered GUID-only events, clientless-only/positive damage gates and post-health notification passed.
|
||||
|
||||
TEST tests/clientless/test_clientless_near_teleport_observer.py
|
||||
Production near-teleport observer packet includes actual mover GUID and destination; clientless timestamp refreshed, regular client timestamp preserved.
|
||||
|
||||
TEST tests/clientless/test_clientless_skill_preparation.py
|
||||
Production offline skill preparation: native tier caps, no downgrading, rank/level/race/tier gates and no modification of online players passed
|
||||
|
||||
TEST tests/clientless/test_clientless_social_notifications.py
|
||||
Production social/helper queues: concurrent GUID-only delivery, bounded queues, human/self/zero-damage gates, pet attribution and lethal-cleanup ordering passed
|
||||
|
||||
TEST tests/clientless/test_default_phase.py
|
||||
Native PhaseShift: implicit/default 169 visibility, genuine custom-phase separation and reference updates passed.
|
||||
|
||||
TEST tests/clientless/test_empty_spell_effect.py
|
||||
Native empty spell effects: poisoned-memory scaling initialization, Lock and Load cleared slot, active effect values and all-empty spell values passed
|
||||
|
||||
TEST tests/clientless/test_flight_area_query.py
|
||||
Native terrain query map/phase, area/zone ordering and cache passed.
|
||||
|
||||
TEST tests/clientless/test_flight_handoff.py
|
||||
Flight handoff before spline end, terminal landing, return corners, collision stop and actual distance passed.
|
||||
|
||||
TEST tests/clientless/test_flight_policy.py
|
||||
Flight native eligibility, license/profile/zone policy, RP costs and fail-safe return decisions passed.
|
||||
|
||||
TEST tests/clientless/test_follow_spline_velocity.py
|
||||
Native follow: actual player/creature spline velocity, client gait and independent follower speeds passed.
|
||||
|
||||
TEST tests/clientless/test_free_flight.py
|
||||
Flight geometry passed: takeoff/landing, smoothed peak, ceiling, lateral/climbing avoidance, missing terrain and blocked corridors.
|
||||
|
||||
TEST tests/clientless/test_free_flight_planner.py
|
||||
ground planner regressions and dynamic flight/node/location/virtual-exit integration passed
|
||||
|
||||
TEST tests/clientless/test_ground_exit_continuation.py
|
||||
optional exits: repeated probes, retained route, delayed success, forward resume, flight fallback passed
|
||||
|
||||
TEST tests/clientless/test_item_equip_cooldown.py
|
||||
Native item equip cooldown: zero/sentinel/missing spells safely skipped, valid use cooldown preserved and longer/disabled cooldowns untouched passed
|
||||
|
||||
TEST tests/clientless/test_local_spline_segments.py
|
||||
Production local spline clipping passes native path-length validation, tiny remainders and 1000 sampled paths.
|
||||
|
||||
TEST tests/clientless/test_lua_reload.py
|
||||
Lua reload regression tests passed (production reload/bindings, real Lua 5.4).
|
||||
|
||||
TEST tests/clientless/test_player_pure_max_skill.py
|
||||
Native pure skill cap: learned skills return stored cap; missing/deleted/zero-rank skills return0.
|
||||
|
||||
TEST tests/clientless/test_portal_transfer.py
|
||||
Portal near/far ACK and denied same-map transfer regressions passed.
|
||||
|
||||
TEST tests/clientless/test_portal_use.py
|
||||
Interactive portal native click, near/far/global ACK, denial, timeout and target checks passed.
|
||||
Native portal destination discovery and unsupported/ambiguous spell rejection passed.
|
||||
Production clientless ACK completion sequence increments only after completed near/far transfers.
|
||||
|
||||
TEST tests/clientless/test_shared_group_route.py
|
||||
Production generic shared routes: same edges/taxi/free flight, independent execution state, final local goal, late catch-up, permissions and stale-goal rejection passed.
|
||||
|
||||
TEST tests/clientless/test_taxi_import_disabled.py
|
||||
Taxi importer preserves disabled rows and their reasons.
|
||||
|
||||
TEST tests/clientless/test_transport.py
|
||||
Transport dock, frame, recorder, cross-map copy and ride regressions passed
|
||||
|
||||
TEST tests/clientless/test_transport_grid_loading.py
|
||||
Core transport grid initialization regressions passed (no CPC dependency).
|
||||
|
||||
TOTAL 80 FAILED []
|
||||
@@ -0,0 +1,4 @@
|
||||
[1/4] cd /home/wow_admin/wow_cata_server/source/TrinityCore && /usr/bin/cmake -DBUILDDIR="/home/wow_admin/wow_cata_server/build/debug" -P /home/wow_admin/wow_cata_server/source/TrinityCore/cmake/genrev.cmake /home/wow_admin/wow_cata_server/build/debug
|
||||
[2/4] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureGeneratorMgr.cpp.o
|
||||
[3/4] Linking CXX static library src/server/game/libgame.a
|
||||
[4/4] Linking CXX executable src/server/worldserver/worldserver
|
||||
@@ -0,0 +1 @@
|
||||
Production equipment affinity: mana-only/direct/triggered procs, caster/physical stat effects and bounded cycles passed
|
||||
@@ -0,0 +1 @@
|
||||
Production native factory: character/profile atomicity, failed preparation/commit, cache publication order, account/security/name/cap gates passed
|
||||
@@ -0,0 +1,30 @@
|
||||
from pathlib import Path
|
||||
import os,re,subprocess,sys
|
||||
root=Path('/home/wow_admin/wow_cata_server/source/TrinityCore')
|
||||
conf=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text()
|
||||
def query(kind,sql):
|
||||
h,port,u,p,db=re.search(r'^'+kind+r'DatabaseInfo\s*=\s*"([^"]+)"',conf,re.M).group(1).split(';')
|
||||
env=os.environ.copy();env['MYSQL_PWD']=p
|
||||
r=subprocess.run(['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--connect-timeout=10'],input=sql,text=True,capture_output=True,env=env)
|
||||
if r.returncode:raise SystemExit(r.stderr.replace(p,'[redacted]'))
|
||||
return r.stdout
|
||||
mode=sys.argv[1]
|
||||
if mode=='inspect':
|
||||
print(query('World',"SHOW COLUMNS FROM trainer; SHOW COLUMNS FROM trainer_spell; SHOW COLUMNS FROM vcore_clientless_world_point; SELECT l.point_key,l.display_name,l.faction,w.map,w.position_x,w.position_y,w.position_z,w.category FROM vcore_adventure_location l JOIN vcore_clientless_world_point w ON w.point_key=l.point_key WHERE w.enabled=1 AND w.category='city' ORDER BY l.point_key LIMIT 25;"))
|
||||
print(query('Character','SELECT account,COUNT(*) AS characters FROM characters WHERE account=6 GROUP BY account;'))
|
||||
elif mode=='migrate':
|
||||
print(query('Character',(root/'sql/custom/characters/2026_10_28_00_adventure_generator.sql').read_text()))
|
||||
elif mode=='baseline':
|
||||
import hashlib
|
||||
text=query('Character',"SELECT ci.guid,ci.bag,ci.slot,ci.item,i.itemEntry FROM character_inventory ci JOIN item_instance i ON i.guid=ci.item WHERE ci.guid IN (21,26) ORDER BY ci.guid,ci.bag,ci.slot,ci.item;")
|
||||
Path('/tmp/vcore-generator-existing-items.tsv').write_text(text)
|
||||
print('Existing item ownership baseline',hashlib.sha256(text.encode()).hexdigest())
|
||||
elif mode=='compare':
|
||||
import hashlib
|
||||
text=query('Character',"SELECT ci.guid,ci.bag,ci.slot,ci.item,i.itemEntry FROM character_inventory ci JOIN item_instance i ON i.guid=ci.item WHERE ci.guid IN (21,26) ORDER BY ci.guid,ci.bag,ci.slot,ci.item;")
|
||||
print('Existing item ownership unchanged:',text==Path('/tmp/vcore-generator-existing-items.tsv').read_text(),hashlib.sha256(text.encode()).hexdigest())
|
||||
elif mode=='details':
|
||||
print(query('Character',"SELECT c.guid,c.name,c.level,c.talentTree,c.map,c.instance_id,c.position_x,c.position_y,c.position_z,c.health,c.power1,g.state,g.persistent FROM characters c JOIN vcore_adventure_generated_bot g ON g.character_guid=c.guid ORDER BY c.guid; SELECT ci.guid,ci.slot,i.itemEntry FROM character_inventory ci JOIN item_instance i ON i.guid=ci.item JOIN vcore_adventure_generated_bot g ON g.character_guid=ci.guid WHERE g.state='ready' AND ci.bag=0 AND ci.slot IN (12,13) ORDER BY ci.guid,ci.slot; SELECT ci.guid,i.itemEntry,SUM(i.count) AS count FROM character_inventory ci JOIN item_instance i ON i.guid=ci.item JOIN vcore_adventure_generated_bot g ON g.character_guid=ci.guid WHERE g.state='ready' AND i.itemEntry IN (21991,22829,22832,27854,28399) GROUP BY ci.guid,i.itemEntry ORDER BY ci.guid,i.itemEntry; SELECT g.character_guid,LENGTH(g.profile_lua) AS profile_bytes,c.name,CONCAT('identity name matches: ',g.profile_lua LIKE CONCAT('%name = ',CHAR(34),c.name,CHAR(34),'%')) AS identity_check FROM vcore_adventure_generated_bot g JOIN characters c ON c.guid=g.character_guid WHERE g.state='ready' ORDER BY g.character_guid;"))
|
||||
elif mode=='audit':
|
||||
print(query('Character',"SELECT g.character_guid,c.name,c.race,c.class,c.gender,c.level,c.online,g.archetype,g.persistent,g.state,g.seed,c.health FROM vcore_adventure_generated_bot g JOIN characters c ON c.guid=g.character_guid ORDER BY g.character_guid; SELECT ci.guid,ci.slot,i.itemEntry,i.durability FROM character_inventory ci JOIN item_instance i ON i.guid=ci.item JOIN vcore_adventure_generated_bot g ON g.character_guid=ci.guid WHERE ci.bag=0 AND ci.slot<23 ORDER BY ci.guid,ci.slot; SELECT s.guid,s.skill,s.value,s.max FROM character_skills s JOIN vcore_adventure_generated_bot g ON g.character_guid=s.guid WHERE s.skill IN (129,185,356,794,164,186,182,171,197,333,165,393) ORDER BY s.guid,s.skill; SELECT t.guid,COUNT(*) AS talent_spells FROM character_talent t JOIN vcore_adventure_generated_bot g ON g.character_guid=t.guid GROUP BY t.guid; SELECT s.guid,COUNT(*) AS spells FROM character_spell s JOIN vcore_adventure_generated_bot g ON g.character_guid=s.guid GROUP BY s.guid;"))
|
||||
else:raise SystemExit('Unknown mode')
|
||||
@@ -0,0 +1,27 @@
|
||||
TrinityCore rev. e333f2f9fc8b+ 2026-10-28 01:11:54 +0100 (feature/clientless-pla
|
||||
yer-core branch) (Unix, Debug, Static) (worldserver-daemon)
|
||||
<Ctrl-C> to stop.
|
||||
|
||||
______ __
|
||||
/\__ _\ __ __/\ \__
|
||||
\/_/\ \/ _ __ /\_\ ___ /\_\ \, _\ __ __
|
||||
\ \ \/\`'__\/\ \ /' _ `\/\ \ \ \/ /\ \/\ \
|
||||
\ \ \ \ \/ \ \ \/\ \/\ \ \ \ \ \_\ \ \_\ \
|
||||
\ \_\ \_\ \ \_\ \_\ \_\ \_\ \__\\/`____ \
|
||||
\/_/\/_/ \/_/\/_/\/_/\/_/\/__/ `/___/> \
|
||||
C O R E /\___/
|
||||
http://TrinityCore.org \/__/
|
||||
|
||||
Using configuration file /home/wow_admin/wow_cata_server/server/debug/etc/worlds
|
||||
erver.conf.
|
||||
Using SSL version: OpenSSL 3.5.5 27 Jan 2026 (library: OpenSSL 3.5.5 27 Jan 2026
|
||||
)
|
||||
Using Boost version: 1.90.0
|
||||
Automatic database updates are disabled for all databases!
|
||||
Could not connect to MySQL database at 10.0.0.1: Can't connect to server on '10.
|
||||
0.0.1' (115)
|
||||
|
||||
DatabasePool Login NOT opened. There were errors opening the MySQL connections.
|
||||
Check your SQLDriverLogFile for specific errors. Read wiki at http://www.trinity
|
||||
core.info/display/tc/TrinityCore+Home
|
||||
server shutdown 0
|
||||
@@ -0,0 +1,176 @@
|
||||
character_guid name race class gender level online archetype persistent state seed health
|
||||
27 Dagri 3 1 1 60 0 warrior 0 retired 20261028 5049
|
||||
28 Jarana 8 1 1 60 0 warrior 0 retired 20261029 5309
|
||||
29 Aelion 4 1 0 60 1 warrior 0 ready 20261101 5189
|
||||
30 Zanzan 8 1 0 60 1 warrior 0 ready 20261102 5409
|
||||
31 Lenara 22 8 1 60 1 mage 0 ready 20261103 3600
|
||||
32 Aldren 5 6 0 60 1 death_knight 0 ready 20261104 5259
|
||||
guid slot itemEntry durability
|
||||
27 0 23314 80
|
||||
27 1 24073 0
|
||||
27 2 21805 80
|
||||
27 4 23300 135
|
||||
27 5 22197 45
|
||||
27 6 13498 100
|
||||
27 7 31125 65
|
||||
27 8 18754 45
|
||||
27 9 22714 45
|
||||
27 10 19873 0
|
||||
27 11 24151 0
|
||||
27 12 19930 0
|
||||
27 13 19930 0
|
||||
27 14 34659 0
|
||||
27 15 31134 100
|
||||
27 19 54443 0
|
||||
27 20 54443 0
|
||||
27 21 54443 0
|
||||
27 22 54443 0
|
||||
28 0 23244 80
|
||||
28 1 24073 0
|
||||
28 2 77868 80
|
||||
28 4 22872 135
|
||||
28 5 22197 45
|
||||
28 6 21495 100
|
||||
28 7 31125 65
|
||||
28 8 22205 45
|
||||
28 9 22868 45
|
||||
28 10 27832 0
|
||||
28 11 24151 0
|
||||
28 12 19930 0
|
||||
28 13 19930 0
|
||||
28 14 22337 0
|
||||
28 15 24044 100
|
||||
28 17 25861 25
|
||||
28 19 54443 0
|
||||
28 20 54443 0
|
||||
28 21 54443 0
|
||||
28 22 54443 0
|
||||
29 0 77867 80
|
||||
29 1 24073 0
|
||||
29 2 23315 80
|
||||
29 4 77858 135
|
||||
29 5 21503 45
|
||||
29 6 13498 100
|
||||
29 7 24064 65
|
||||
29 8 12936 45
|
||||
29 9 22714 45
|
||||
29 10 27834 0
|
||||
29 11 21477 0
|
||||
29 12 13213 0
|
||||
29 13 22321 0
|
||||
29 14 34659 0
|
||||
29 15 31134 100
|
||||
29 19 54443 0
|
||||
29 20 54443 0
|
||||
29 21 54443 0
|
||||
29 22 54443 0
|
||||
30 0 23244 80
|
||||
30 1 24073 0
|
||||
30 2 23243 80
|
||||
30 4 34650 115
|
||||
30 5 19051 45
|
||||
30 6 21475 100
|
||||
30 7 24064 65
|
||||
30 8 77861 45
|
||||
30 9 22868 45
|
||||
30 10 12058 0
|
||||
30 11 24151 0
|
||||
30 12 20072 0
|
||||
30 13 11810 0
|
||||
30 14 22337 0
|
||||
30 15 31134 100
|
||||
30 17 25861 25
|
||||
30 19 54443 0
|
||||
30 20 54443 0
|
||||
30 21 54443 0
|
||||
30 22 54443 0
|
||||
31 0 22720 80
|
||||
31 1 23125 0
|
||||
31 2 21468 80
|
||||
31 4 16700 135
|
||||
31 5 16696 45
|
||||
31 6 19683 100
|
||||
31 7 21489 65
|
||||
31 8 13107 45
|
||||
31 9 16391 45
|
||||
31 10 24045 0
|
||||
31 11 19905 0
|
||||
31 12 11819 0
|
||||
31 13 21473 0
|
||||
31 14 21470 0
|
||||
31 15 20654 100
|
||||
31 17 21801 65
|
||||
31 19 54443 0
|
||||
31 20 54443 0
|
||||
31 21 54443 0
|
||||
31 22 54443 0
|
||||
32 0 22223 80
|
||||
32 1 24073 0
|
||||
32 2 21805 80
|
||||
32 4 10845 135
|
||||
32 5 21503 45
|
||||
32 6 21475 100
|
||||
32 7 24064 65
|
||||
32 8 12936 45
|
||||
32 9 22714 45
|
||||
32 10 11934 0
|
||||
32 11 19510 0
|
||||
32 12 13164 0
|
||||
32 13 1973 0
|
||||
32 14 22337 0
|
||||
32 15 31134 100
|
||||
32 19 54443 0
|
||||
32 20 54443 0
|
||||
32 21 54443 0
|
||||
32 22 54443 0
|
||||
guid skill value max
|
||||
27 129 375 375
|
||||
27 164 375 375
|
||||
27 185 525 525
|
||||
27 186 450 450
|
||||
27 356 525 525
|
||||
27 794 375 375
|
||||
28 129 375 375
|
||||
28 164 375 375
|
||||
28 185 525 525
|
||||
28 186 450 450
|
||||
28 356 525 525
|
||||
28 794 375 375
|
||||
29 129 375 375
|
||||
29 164 375 375
|
||||
29 185 525 525
|
||||
29 186 450 450
|
||||
29 356 525 525
|
||||
29 794 375 375
|
||||
30 129 375 375
|
||||
30 164 375 375
|
||||
30 185 525 525
|
||||
30 186 450 450
|
||||
30 356 525 525
|
||||
30 794 375 375
|
||||
31 129 375 375
|
||||
31 185 525 525
|
||||
31 197 375 375
|
||||
31 333 375 375
|
||||
31 356 525 525
|
||||
31 794 375 375
|
||||
32 129 375 375
|
||||
32 164 375 375
|
||||
32 185 525 525
|
||||
32 186 450 450
|
||||
32 356 525 525
|
||||
32 794 375 375
|
||||
guid talent_spells
|
||||
27 13
|
||||
28 13
|
||||
29 13
|
||||
30 13
|
||||
31 14
|
||||
32 12
|
||||
guid spells
|
||||
27 80
|
||||
28 80
|
||||
29 80
|
||||
30 80
|
||||
31 87
|
||||
32 64
|
||||
@@ -0,0 +1,42 @@
|
||||
guid name level talentTree map instance_id position_x position_y position_z health power1 state persistent
|
||||
27 Dagri 60 746 0 0 0 -5385.04 310.278 394.151 5049 0 retired 0
|
||||
28 Jarana 60 746 0 1 0 -813.097 -4880.08 18.995 5309 0 retired 0
|
||||
29 Aelion 60 746 0 1 0 9808.68 969.19 1309.75 5189 0 ready 0
|
||||
30 Zanzan 60 746 0 1 0 -826.364 -4879.64 19.5037 5409 0 ready 0
|
||||
31 Lenara 60 851 0 0 0 -9470.25 25.9936 56.3394 3600 6813 ready 0
|
||||
32 Aldren 60 400 0 0 0 1095.38 1587.06 28.5303 5259 0 ready 0
|
||||
guid slot itemEntry
|
||||
29 12 13213
|
||||
29 13 22321
|
||||
30 12 20072
|
||||
30 13 11810
|
||||
31 12 11819
|
||||
31 13 21473
|
||||
32 12 13164
|
||||
32 13 1973
|
||||
guid itemEntry count
|
||||
29 21991 20
|
||||
29 22829 20
|
||||
29 22832 20
|
||||
29 27854 20
|
||||
29 28399 20
|
||||
30 21991 20
|
||||
30 22829 20
|
||||
30 22832 20
|
||||
30 27854 20
|
||||
30 28399 20
|
||||
31 21991 20
|
||||
31 22829 20
|
||||
31 22832 20
|
||||
31 27854 20
|
||||
31 28399 20
|
||||
32 21991 20
|
||||
32 22829 20
|
||||
32 22832 20
|
||||
32 27854 20
|
||||
32 28399 20
|
||||
character_guid profile_bytes name identity_check
|
||||
29 873 Aelion identity name matches: 1
|
||||
30 870 Zanzan identity name matches: 1
|
||||
31 858 Lenara identity name matches: 1
|
||||
32 886 Aldren identity name matches: 1
|
||||
@@ -0,0 +1 @@
|
||||
Production generator commands: batch bounds, dedicated ownership, persistent/online/removing retirement protection and retired login refusal passed
|
||||
@@ -0,0 +1 @@
|
||||
Production generator: 6144 cultural names and 61440 real Lua profiles, profession coherence, personality ranges, escaping and equipment/armor gates passed
|
||||
@@ -0,0 +1 @@
|
||||
Production offline skill preparation: native tier caps, no downgrading, rank/level/race/tier gates and no modification of online players passed
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,63 @@
|
||||
test_adventure_area_node.py: PASS
|
||||
test_adventure_behavior_policy.py: PASS
|
||||
test_adventure_combat_exercise.py: PASS
|
||||
test_adventure_combat_preparation.py: PASS
|
||||
test_adventure_combat_reactions.py: PASS
|
||||
test_adventure_economy.py: PASS
|
||||
test_adventure_economy_catalog.py: PASS
|
||||
test_adventure_exploration.py: PASS
|
||||
test_adventure_exploration_catalog.py: PASS
|
||||
test_adventure_generator_equipment.py: PASS
|
||||
test_adventure_generator_ownership.py: PASS
|
||||
test_adventure_generator_policy.py: PASS
|
||||
test_adventure_graph_handover.py: PASS
|
||||
test_adventure_instance.py: PASS
|
||||
test_adventure_instance_autoresume.py: PASS
|
||||
test_adventure_instance_begin.py: PASS
|
||||
test_adventure_instance_catalog.py: PASS
|
||||
test_adventure_instance_persistence.py: PASS
|
||||
test_adventure_intent_state.py: PASS
|
||||
test_adventure_interactions.py: PASS
|
||||
test_adventure_leisure.py: PASS
|
||||
test_adventure_leisure_catalog.py: PASS
|
||||
test_adventure_location_import.py: PASS
|
||||
test_adventure_micro_reset.py: PASS
|
||||
test_adventure_profession_catalog.py: PASS
|
||||
test_adventure_profession_profile.py: PASS
|
||||
test_adventure_profession_sightline.py: PASS
|
||||
test_adventure_profession_targets.py: PASS
|
||||
test_adventure_repair_catalog.py: PASS
|
||||
test_adventure_rest.py: PASS
|
||||
test_adventure_rest_fire.py: PASS
|
||||
test_adventure_rest_space.py: PASS
|
||||
test_adventure_rest_targets.py: PASS
|
||||
test_adventure_social.py: PASS
|
||||
test_adventure_social_fire.py: PASS
|
||||
test_adventure_supplies.py: PASS
|
||||
test_adventure_supply_catalog.py: PASS
|
||||
test_adventure_supply_items.py: PASS
|
||||
test_adventure_training_catalog.py: PASS
|
||||
test_adventure_walk.py: PASS
|
||||
test_clientless_character_factory.py: PASS
|
||||
test_clientless_companion.py: PASS
|
||||
test_clientless_damage_notifications.py: PASS
|
||||
test_clientless_near_teleport_observer.py: PASS
|
||||
test_clientless_skill_preparation.py: PASS
|
||||
test_clientless_social_notifications.py: PASS
|
||||
test_default_phase.py: PASS
|
||||
test_flight_area_query.py: PASS
|
||||
test_flight_handoff.py: PASS
|
||||
test_flight_policy.py: PASS
|
||||
test_follow_spline_velocity.py: PASS
|
||||
test_free_flight.py: PASS
|
||||
test_free_flight_planner.py: PASS
|
||||
test_ground_exit_continuation.py: PASS
|
||||
test_local_spline_segments.py: PASS
|
||||
test_lua_reload.py: PASS
|
||||
test_player_pure_max_skill.py: PASS
|
||||
test_portal_transfer.py: PASS
|
||||
test_portal_use.py: PASS
|
||||
test_taxi_import_disabled.py: PASS
|
||||
test_transport.py: PASS
|
||||
test_transport_grid_loading.py: PASS
|
||||
62/62 passed; failures: []
|
||||
@@ -0,0 +1,17 @@
|
||||
Generator implemented on feature/clientless-player-core, local commit requested by user; no push.
|
||||
Final Debug-j10 build and installation succeeded. Native test worldserver88947 freshly ready, port8085 verified.
|
||||
62/62 test scripts passed.
|
||||
Character migration applied twice successfully (additive/idempotent).
|
||||
Initial offline profession preparation failed without saving a partial character; fixed with validated native DBC skill tier initialization before world insertion.
|
||||
Generated four active temporary level60 characters:29 Aelion night elf warrior;30 Zanzan troll warrior;31 Lenara worgen mage;32 Aldren forsaken death knight.
|
||||
Their profiles load as generated:29..32 after native logout/restart/login. All four online and running local social actions.
|
||||
Native talent trees:746/746/851/400. Stored talent row counts13/13/14/12; spell counts80/80/87/64.
|
||||
All four have FirstAid375, Cooking525, Fishing525, Archaeology375 using current native data. Warriors/DK:Mining450+Blacksmithing375. Mage:Tailoring375+Enchanting375.
|
||||
All four have four22-slot Embersilk Bags and one full20-stack of each of the five supply roles.
|
||||
Equipment affinity checks include stats, native legality, mana/physical/spell-only procs and duplicate avoidance. Native online equipment refresh29..32 saved; all replaced items retained.
|
||||
Own earlier fixture characters27/28 were archived, not deleted. Their inventories/profiles retained.
|
||||
Live generator retirement of Arthoran26 refused (not owned); generator login27 refused (retired).
|
||||
Existing item ownership/entry/slot snapshot for21 and26 unchanged:sha256 dd5869ffb3f10aa7d25dfc93b8de61d0b982715ab27b28e7d6311f562a6d066c.
|
||||
First server start in this task hit transient remote Login DB error10.0.0.1; failed process76094 did not respond to console and was terminated with SIGTERM. Second attempt succeeded. No remote DB configuration modified.
|
||||
Arthoran was logged out for maintenance and remains offline. No temporary profile/source overrides were used. His source profile and Allitester's equipment were not changed.
|
||||
Rotation/deletion/population targets/restart autologin are not enabled. Non-warrior combat/support AI limitations remain. Final visible gameplay acceptance is user-owned.
|
||||
@@ -0,0 +1,6 @@
|
||||
[1/6] cd /home/wow_admin/wow_cata_server/source/TrinityCore && /usr/bin/cmake -DBUILDDIR="/home/wow_admin/wow_cata_server/build/debug" -P /home/wow_admin/wow_cata_server/source/TrinityCore/cmake/genrev.cmake /home/wow_admin/wow_cata_server/build/debug
|
||||
[2/6] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessLuaEngine.cpp.o
|
||||
[3/6] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureGroupTravelMgr.cpp.o
|
||||
[4/6] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessActionExecutorMgr.cpp.o
|
||||
[5/6] Linking CXX static library src/server/game/libgame.a
|
||||
[6/6] Linking CXX executable src/server/worldserver/worldserver
|
||||
@@ -0,0 +1,26 @@
|
||||
TrinityCore rev. a758239da956+ 2026-10-28 22:37:18 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon)
|
||||
World initialized in 0 minutes 15 seconds
|
||||
TrinityCore rev. a758239da956+ 2026-10-28 22:37:18 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=10/2/10/2 known=25 rotations=0 manager=5 error=''
|
||||
pool=0 faction=alliance persistent=1 target=10 online=2 pending=0 saved=10
|
||||
pool=1 faction=alliance persistent=0 target=2 online=1 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=10 online=1 pending=0 saved=10
|
||||
pool=3 faction=horde persistent=0 target=2 online=1 pending=0 saved=2
|
||||
No group travel state.
|
||||
Interactions guid=29 grouped=0 leader=0 partner=0 intent='rest' schedule=''
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=10/2/10/2 known=25 rotations=0 manager=17 error=''
|
||||
pool=0 faction=alliance persistent=1 target=10 online=7 pending=0 saved=10
|
||||
pool=1 faction=alliance persistent=0 target=2 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=10 online=6 pending=0 saved=10
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
No group travel state.
|
||||
Interactions guid=31 grouped=0 leader=0 partner=0 intent='economy' schedule=''
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=10/2/10/2 known=25 rotations=0 manager=24 error=''
|
||||
pool=0 faction=alliance persistent=1 target=10 online=10 pending=0 saved=10
|
||||
pool=1 faction=alliance persistent=0 target=2 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=10 online=10 pending=0 saved=10
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
|
||||
Final: PID183811 remains running; TCP8085 LISTEN.
|
||||
Native ungrouped interaction diagnostics work. No human-led travel acceptance performed.
|
||||
Existing terrain719/config/script warnings remain; no fatal/assertion observed in this startup.
|
||||
@@ -0,0 +1,263 @@
|
||||
TEST tests/clientless/test_adventure_area_node.py
|
||||
Production area destination excludes outside and unreachable graph nodes.
|
||||
|
||||
TEST tests/clientless/test_adventure_async_database.py
|
||||
Async creation DB contracts: prepared connection masks, native security column names, no future waits, successful-save cache publication and world-update-only loader hook passed
|
||||
|
||||
TEST tests/clientless/test_adventure_behavior_policy.py
|
||||
24-hour generation, shared intents with changing destinations, broad location classification and repetition penalties passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_class_rotation.py
|
||||
Production class rotations: persistent PvE solo pools, native rank aura IDs, combo/holy power/proc/execute/resource gates, Eclipse and healer coverage passed
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_exercise.py
|
||||
Production exercise: stance/charge/melee/casts, native validation delegation, bounded lifetime, invalid targets and unchanged native phases passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_preparation.py
|
||||
Production talent learner: native tiers/dependencies/class gates, all 26 legal level60 points, no capstone bypass and repeat safety passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_combat_reactions.py
|
||||
Production combat focus, damage ordering, risk filters, corpse radius/delay, flight/group override, blocked escape, danger avoidance and malus-free persisted fallback passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_day_persistence.py
|
||||
Production day planner: all 24 TINYINT slots restored across logins, incomplete/old-day replacement, full transaction and curiosity/level weighting passed
|
||||
|
||||
TEST tests/clientless/test_adventure_economy.py
|
||||
Economy: native service roles, friendly/phase/LOS/bounds gates, no bot service targets and coherent performative cues passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_economy_catalog.py
|
||||
Economy catalog: eleven actions, three faction-bound service anchors, native flag gates and idempotent preservation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_encounter.py
|
||||
Production encounters: bot-only exclusion, mixed mode, extension hook, wait/revive, wipe fallback/reentry/gather/return, living-player priority, kick exit and offline cleanup passed
|
||||
|
||||
TEST tests/clientless/test_adventure_equipment_maintenance.py
|
||||
Production gear maintenance: same birth/retention gate rejects wrong armor/stats, malformed effects, level, temporary, reputation, map, holiday, native-use and slot mismatches passed
|
||||
|
||||
TEST tests/clientless/test_adventure_exploration.py
|
||||
Exploration: visible native props only, no chests/traps/furniture, phase/map/LOS/range gates and contextual preparation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_exploration_catalog.py
|
||||
Exploration catalog: ten actions, shared scenes, default wander replacement, explicit category eligibility and preserved edits passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_equipment.py
|
||||
Production equipment affinity: mana-only/direct/triggered procs, caster/physical stat effects and bounded cycles passed
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_ownership.py
|
||||
Production generator commands: batch bounds, dedicated ownership, persistent/online/removing retirement protection and retired login refusal passed
|
||||
|
||||
TEST tests/clientless/test_adventure_generator_policy.py
|
||||
Production generator: 6144 cultural names and 61440 real Lua profiles, profession coherence, personality ranges, escaping and equipment/armor gates passed
|
||||
|
||||
TEST tests/clientless/test_adventure_graph_handover.py
|
||||
Production graph handover waits for ship/taxi/flight/teleport and stops at safe road/node boundaries.
|
||||
|
||||
TEST tests/clientless/test_adventure_ground_avoidance.py
|
||||
Production ground avoidance: harmful/friendly, phase169, height, reachable safe endpoint, rejected paths and reuse without cast/movement thrashing passed
|
||||
|
||||
TEST tests/clientless/test_adventure_group_plan.py
|
||||
Production group plans: leader meeting/goal/deadline inheritance, untouched personal day, manual preparation and instance-state guards passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_group_travel.py
|
||||
Production group travel: distinct slots, phase169 cliff safety, width, mounts, flight/kick landing, taxi grace, portal queue, bounded separation and recorded-road validation passed
|
||||
|
||||
TEST tests/clientless/test_adventure_groups.py
|
||||
Production recruitment: capitals, different goals, native inviter leadership, joining existing groups, capacity/reservations, raid conversion, planned transition and local contact passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance.py
|
||||
Production instance lifecycle: time budget, true entry, denied/shared entry, native rear exit, restart, expired copy, late arrival, HP and return replay passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_autoresume.py
|
||||
Deferred instance script: missing schema/visits stays idle; no login work on startup; saved visitors resume with Adventure controllers and native accounts.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_begin.py
|
||||
Production entrance travel uses the existing location planner, requires mapping and retains normal social/area travel.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_catalog.py
|
||||
Instance migrations: outside entrances only, native graph preserved, disabled/missing transitions excluded, edits and saved visits preserved.
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_loader.py
|
||||
Production instance recovery: no startup DB/login work, asynchronous delayed/paced manual recovery, generated-bot quota ownership, absent-schema compatibility and existing preparation ticks passed
|
||||
|
||||
TEST tests/clientless/test_adventure_instance_persistence.py
|
||||
Production instance persistence: phases, original deadline, instance ID, transactional HP marker, failed commit and intent release passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_intent_state.py
|
||||
Production intent arrival, failed/partial travel, deadlines and safe schedule handover passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_interactions.py
|
||||
production interaction manager: invitations, factions, reservations, follow, AFK and deferred departure passed
|
||||
/tmp/tmp4c3prj7a/test.cpp: In member function ‘void AdventureInteractionMgr::Leave(Player*, Record&, const char*)’:
|
||||
/tmp/tmp4c3prj7a/test.cpp:143:69: warning: unused parameter ‘reason’ [-Wunused-parameter]
|
||||
143 | void AdventureInteractionMgr::Leave(Player* p,Record& r,char const* reason)
|
||||
| ~~~~~~~~~~~~^~~~~~
|
||||
|
||||
TEST tests/clientless/test_adventure_leisure.py
|
||||
Leisure: substantial curved MMAP routes, mirrored return, interrupted return, rejected corridors, actual arrival, companion follow, riding, flight and fishing passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_leisure_catalog.py
|
||||
Leisure migration: native city anchor, shared scene references, pet-walk mapping and preservation of edited weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_location_import.py
|
||||
Locations: actual Debug SMALLINT reads retain continent IDs; explicit location eligibility and edited weight overrides passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_manager_inventory.py
|
||||
Production inventory maintenance: only full backpacks, native stack trimming, level-appropriate supplies, tools, leash, fishing pole, containers and untouched equipped slots passed
|
||||
|
||||
TEST tests/clientless/test_adventure_micro_reset.py
|
||||
Micro cleanup ends physical local movement, preserves transit and does not stand up dead players.
|
||||
|
||||
TEST tests/clientless/test_adventure_population.py
|
||||
Production population: four independent faction/persistence targets, fair selection, pending reservations, retries, existing inventory, once-per-boot rotation and connected/persistent protection passed
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_catalog.py
|
||||
Profession catalog: native workstation roles, no workshop/resource inference, idempotence and preserved edits passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_profile.py
|
||||
Production profession parser, real Lua profiles, primary restrictions and secondary permissions passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_sightline.py
|
||||
Native workstation working-surface sightline and blocked geometry rejection passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profession_targets.py
|
||||
Production profession targets: native locks, phase/spawn/loot, stations, corpses, history and trainers passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_profile_selection.py
|
||||
Production profile selection: real Lua ID dictionaries, exact 9:1 companion weighting, zero/negative/infinite/NaN/oversized weights rejected and legacy companion fallback passed
|
||||
|
||||
TEST tests/clientless/test_adventure_pvp.py
|
||||
Production PvP selector: level boundaries, radius, factions, native legality, navigation, intent, personality and resources passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_repair_catalog.py
|
||||
Repair action catalog: proper native service requirement, economy-only intent and preserved administrator weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest.py
|
||||
Recovery: authored places, bounds, arrival, occupancy, full rest duration, failure, reload and interruption passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_fire.py
|
||||
Rest fire: shared scene mapping, additive migration, preserved weights and authored creation-place policy passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_space.py
|
||||
Sleep footprint: furniture, body extent, overhead collision, ledges, stairs, missing heights, rotation and scale passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rest_targets.py
|
||||
Native sleep targets: chair exclusion, phase, despawn, floor search, indoors, water, storey, occupancy, bed/surface preference passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_rotation.py
|
||||
Production rotation: connected/native-online protection, ownership refusal, native delete failure, world cleanup failure and journal-retained retry before successful profile/plan/state removal passed
|
||||
/tmp/tmpthw2w5iq/test.cpp: In instantiation of ‘std::string Trinity::StringFormat(const char*, A ...) [with A = {}; std::string = std::__cxx11::basic_string<char>]’:
|
||||
/tmp/tmpthw2w5iq/test.cpp:22:126: required from ‘void Tx::PAppend(const char*, A ...) [with A = {}]’
|
||||
22 | struct Tx{std::vector<std::string>sql;template<class...A>void PAppend(char const*f,A...a){sql.push_back(Trinity::StringFormat(f,a...));}};
|
||||
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
/tmp/tmpthw2w5iq/test.cpp:51:75: required from here
|
||||
51 | auto barrier=CharacterDatabase.BeginTransaction();barrier->PAppend("DO 0");
|
||||
| ~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
/tmp/tmpthw2w5iq/test.cpp:11:113: warning: format not a string literal and no format arguments [-Wformat-security]
|
||||
11 | namespace Trinity{template<class...A>std::string StringFormat(char const* f,A...args){char b[4096];std::snprintf(b,sizeof(b),f,args...);return b;}}
|
||||
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
TEST tests/clientless/test_adventure_social.py
|
||||
Production social flow: approach before talk, coherent greeting/talk/listen/farewell, lost targets, native chair confirmation and real fire confirmation passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_social_fire.py
|
||||
Shared fire: native detection/provisioning, buildings/city/parent/zone restrictions, existing fires and outdoor/water checks passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supplies.py
|
||||
Production supplies: exact10% boundary, bandage-before-food, native lockout fallback, recovery completion, combat potions, mana-only drinking and daily/post-combat top-ups passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supply_catalog.py
|
||||
Supply migrations: all five roles, level60 netherweave tier, editable/disabled catalog preservation and persistent daily stamp passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_supply_items.py
|
||||
Production native-item delegation: usable bandage tiers, native cooldown/lockout gates, real inventory consumption, self targeting and level60 secondary caps passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_talent_templates.py
|
||||
Canonical Cata PvE builds: 4.3.4 class/tree/rank/prerequisite gates, all 1..41 point budgets, solo selection coverage passed
|
||||
|
||||
TEST tests/clientless/test_adventure_training_catalog.py
|
||||
Training catalog: real dummy requirement, leisure-only intent, bounded duration and preserved administrator weights passed.
|
||||
|
||||
TEST tests/clientless/test_adventure_walk.py
|
||||
Production travel gait reaches native spline, survives repaths, prevents mounting and preserves legacy running defaults.
|
||||
|
||||
TEST tests/clientless/test_clientless_character_factory.py
|
||||
Production native factory: character/profile atomicity, failed preparation/commit, cache publication order, account/security/name/cap gates passed
|
||||
|
||||
TEST tests/clientless/test_clientless_companion.py
|
||||
Native companion: provisioning, delayed summon, ownership, real item target, leash confirmation/timeout, reuse and cleanup passed.
|
||||
|
||||
TEST tests/clientless/test_clientless_damage_notifications.py
|
||||
Production damage handoff: 16 concurrent map-worker writers, ordered GUID-only events, clientless-only/positive damage gates and post-health notification passed.
|
||||
|
||||
TEST tests/clientless/test_clientless_near_teleport_observer.py
|
||||
Production near-teleport observer packet includes actual mover GUID and destination; clientless timestamp refreshed, regular client timestamp preserved.
|
||||
|
||||
TEST tests/clientless/test_clientless_skill_preparation.py
|
||||
Production offline skill preparation: native tier caps, no downgrading, rank/level/race/tier gates and no modification of online players passed
|
||||
|
||||
TEST tests/clientless/test_clientless_social_notifications.py
|
||||
Production social/helper queues: concurrent GUID-only delivery, bounded queues, human/self/zero-damage gates, pet attribution and lethal-cleanup ordering passed
|
||||
|
||||
TEST tests/clientless/test_default_phase.py
|
||||
Native PhaseShift: implicit/default 169 visibility, genuine custom-phase separation and reference updates passed.
|
||||
|
||||
TEST tests/clientless/test_empty_spell_effect.py
|
||||
Native empty spell effects: poisoned-memory scaling initialization, Lock and Load cleared slot, active effect values and all-empty spell values passed
|
||||
|
||||
TEST tests/clientless/test_flight_area_query.py
|
||||
Native terrain query map/phase, area/zone ordering and cache passed.
|
||||
|
||||
TEST tests/clientless/test_flight_handoff.py
|
||||
Flight handoff before spline end, terminal landing, return corners, collision stop and actual distance passed.
|
||||
|
||||
TEST tests/clientless/test_flight_policy.py
|
||||
Flight native eligibility, license/profile/zone policy, RP costs and fail-safe return decisions passed.
|
||||
|
||||
TEST tests/clientless/test_follow_spline_velocity.py
|
||||
Native follow: actual player/creature spline velocity, client gait and independent follower speeds passed.
|
||||
|
||||
TEST tests/clientless/test_free_flight.py
|
||||
Flight geometry passed: takeoff/landing, smoothed peak, ceiling, lateral/climbing avoidance, missing terrain and blocked corridors.
|
||||
|
||||
TEST tests/clientless/test_free_flight_planner.py
|
||||
ground planner regressions and dynamic flight/node/location/virtual-exit integration passed
|
||||
|
||||
TEST tests/clientless/test_ground_exit_continuation.py
|
||||
optional exits: repeated probes, retained route, delayed success, forward resume, flight fallback passed
|
||||
|
||||
TEST tests/clientless/test_group_flight_follow.py
|
||||
Moving-target flight: bounded phased corridors, obstacle hold, ceiling rejection, aerial formation hold, safe landing and return fallback passed
|
||||
|
||||
TEST tests/clientless/test_item_equip_cooldown.py
|
||||
Native item equip cooldown: zero/sentinel/missing spells safely skipped, valid use cooldown preserved and longer/disabled cooldowns untouched passed
|
||||
|
||||
TEST tests/clientless/test_local_spline_segments.py
|
||||
Production local spline clipping passes native path-length validation, tiny remainders and 1000 sampled paths.
|
||||
|
||||
TEST tests/clientless/test_lua_reload.py
|
||||
Lua reload regression tests passed (production reload/bindings, real Lua 5.4).
|
||||
|
||||
TEST tests/clientless/test_player_pure_max_skill.py
|
||||
Native pure skill cap: learned skills return stored cap; missing/deleted/zero-rank skills return0.
|
||||
|
||||
TEST tests/clientless/test_portal_transfer.py
|
||||
Portal near/far ACK and denied same-map transfer regressions passed.
|
||||
|
||||
TEST tests/clientless/test_portal_use.py
|
||||
Interactive portal native click, near/far/global ACK, denial, timeout and target checks passed.
|
||||
Native portal destination discovery and unsupported/ambiguous spell rejection passed.
|
||||
Production clientless ACK completion sequence increments only after completed near/far transfers.
|
||||
|
||||
TEST tests/clientless/test_shared_group_route.py
|
||||
Production generic shared routes: same edges/taxi/free flight, independent execution state, final local goal, late catch-up, permissions and stale-goal rejection passed.
|
||||
|
||||
TEST tests/clientless/test_taxi_import_disabled.py
|
||||
Taxi importer preserves disabled rows and their reasons.
|
||||
|
||||
TEST tests/clientless/test_transport.py
|
||||
Transport dock, frame, recorder, cross-map copy and ride regressions passed
|
||||
|
||||
TEST tests/clientless/test_transport_grid_loading.py
|
||||
Core transport grid initialization regressions passed (no CPC dependency).
|
||||
|
||||
TOTAL 82 FAILED []
|
||||
@@ -0,0 +1,22 @@
|
||||
[1/10] cd /home/wow_admin/wow_cata_server/source/TrinityCore && /usr/bin/cmake -DBUILDDIR="/home/wow_admin/wow_cata_server/build/debug" -P /home/wow_admin/wow_cata_server/source/TrinityCore/cmake/genrev.cmake /home/wow_admin/wow_cata_server/build/debug
|
||||
[2/10] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureCombatMgr.cpp.o
|
||||
[3/10] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessLuaEngine.cpp.o
|
||||
[4/10] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureInteractionMgr.cpp.o
|
||||
[5/10] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureSupplyMgr.cpp.o
|
||||
[6/10] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/viano_bot_commands.cpp.o
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationAdd(ChatHandler*, const char*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2341:20: warning: unused variable ‘loaded’ [-Wunused-variable]
|
||||
2341 | bool const loaded = sClientlessWorldPointMgr->Reload();
|
||||
| ^~~~~~
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationMove(ChatHandler*, const char*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2378:20: warning: unused variable ‘loaded’ [-Wunused-variable]
|
||||
2378 | bool const loaded = sClientlessWorldPointMgr->Reload();
|
||||
| ^~~~~~
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationRemove(ChatHandler*, const char*)’:
|
||||
/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2402:20: warning: unused variable ‘loaded’ [-Wunused-variable]
|
||||
2402 | bool const loaded = sClientlessWorldPointMgr->Reload();
|
||||
| ^~~~~~
|
||||
[7/10] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureBehaviorMgr.cpp.o
|
||||
[8/10] Linking CXX static library src/server/game/libgame.a
|
||||
[9/10] Linking CXX static library src/server/scripts/libscripts.a
|
||||
[10/10] Linking CXX executable src/server/worldserver/worldserver
|
||||
@@ -0,0 +1 @@
|
||||
Production combat focus, damage ordering, risk filters, corpse radius/delay, alternate paths and malus-free persisted fallback passed.
|
||||
@@ -0,0 +1,5 @@
|
||||
/tmp/tmp2j7tsqhj/test.cpp: In member function ‘void AdventureInteractionMgr::Leave(Player*, Record&, const char*)’:
|
||||
/tmp/tmp2j7tsqhj/test.cpp:140:69: warning: unused parameter ‘reason’ [-Wunused-parameter]
|
||||
140 | void AdventureInteractionMgr::Leave(Player* p,Record& r,char const* reason)
|
||||
| ~~~~~~~~~~~~^~~~~~
|
||||
production interaction manager: invitations, factions, reservations, follow, AFK and deferred departure passed
|
||||
@@ -0,0 +1 @@
|
||||
Production social/helper queues: concurrent GUID-only delivery, bounded queues, human/self/zero-damage gates, pet attribution and lethal-cleanup ordering passed
|
||||
@@ -0,0 +1,114 @@
|
||||
Validating spell scripts...
|
||||
Spell `85123` Effect `Index: EFFECT_0 Target: 7` of script `spell_siege_cannon`
|
||||
did not match dbc effect data - handler bound to hook `OnObjectAreaTargetSelect`
|
||||
of SpellScript won't be executed
|
||||
>> Validated 3470 scripts in 12 ms
|
||||
Loading SmartAI scripts...
|
||||
>> Loaded SmartAIMgr Helpers in 16 ms
|
||||
>> Loaded 13506 SmartAI scripts in 167 ms
|
||||
Loading Calendar data...
|
||||
>> Loaded 0 calendar events in 1 ms
|
||||
>> Loaded 0 calendar invites in 0 ms
|
||||
Loading Petitions...
|
||||
>> Loaded 0 petitions.
|
||||
Loading Signatures...
|
||||
>> Loaded 0 Petition signs!
|
||||
Loading Summon Properties parameter data...
|
||||
>> Loaded 78 summon properties parameters in 1 ms
|
||||
Loading Item loot...
|
||||
>> Loaded 0 stored item loots
|
||||
>> Loaded 0 stored item money
|
||||
Initialize query data...
|
||||
>> Initialized query cache data in 1019 ms
|
||||
Initialize commands...
|
||||
Initialize game time and timers
|
||||
Mail timer set to: 1260, mail return is called every 1440 minutes
|
||||
Starting Map System
|
||||
Starting Game Event system...
|
||||
Initialize AuctionHouseBot...
|
||||
Initializing Opcodes...
|
||||
Starting Arena Season...
|
||||
Starting Battleground System
|
||||
>> Loaded 15 battlegrounds in 0 ms
|
||||
Starting Outdoor PvP System
|
||||
>> Loaded 5 outdoor PvP definitions in 1 ms
|
||||
Starting Battlefield System
|
||||
>> Loaded 2 battlefields in 0 ms
|
||||
Loading Warden Checks...
|
||||
Loading Warden Action Overrides...
|
||||
Deleting expired bans...
|
||||
Initializing quest reset times...
|
||||
Calculate random battleground reset time...
|
||||
Calculate guild limitation(s) reset time...
|
||||
Calculate next currency reset time...
|
||||
World initialized in 0 minutes 13 seconds
|
||||
TC>TC>TrinityCore rev. 39a515dbd13e+ 2026-10-27 23:56:43 +0100 (feature/clientle
|
||||
ss-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
clientless login 26
|
||||
TC>Registered clientless session for character GUID 26 (account 6), state=Loadin
|
||||
g.
|
||||
Created clientless player session for character GUID 26 (account 6).
|
||||
ClientlessPlayerMgr started character GUID 26 (account 6).
|
||||
Clientless login started for 'Arthoran' (GUID 26, account 6).
|
||||
TC> Loading saved respawn time of 1790175804 for spawnid (0,323981) - spawn does
|
||||
not exist, ignoring
|
||||
Loading saved respawn time of 1790090644 for spawnid (0,396680) - spawn does not
|
||||
exist, ignoring
|
||||
Loading saved respawn time of 1790019808 for spawnid (0,396681) - spawn does not
|
||||
exist, ignoring
|
||||
Loading saved respawn time of 1790019853 for spawnid (0,396682) - spawn does not
|
||||
exist, ignoring
|
||||
Initialized transport GameObject grids: map=0 instance=0 grids=4 candidates=15
|
||||
Clientless player character GUID 26 (account 6) reached state=Online.
|
||||
ClientlessLua initialized, script root '/home/wow_admin/wow_cata_server/source/T
|
||||
rinityCore/src/server/scripts/Custom/clientless'.
|
||||
[AdventureBot][Profile] loaded guid=26 name='Arthoran' source='/home/wow_admin/w
|
||||
ow_cata_server/source/TrinityCore/src/server/scripts/Custom/clientless/adventure
|
||||
/profiles/arthoran.lua' home='elwynn' canGroundMount=1 mounts=1 mountMinDistance
|
||||
=45.0 mountSpeedRate=1.60 personality=8 regionAffinity=4 activityAffinity=7
|
||||
PROFILE_PROFESSIONS guid=26 primary=2
|
||||
ClientlessLua[26]: Arthoran ready; no automatic test journey queued
|
||||
ClientlessLua[26]: executed adventure override script '/home/wow_admin/wow_cata_
|
||||
server/source/TrinityCore/src/server/scripts/Custom/clientless/adventure/overrid
|
||||
es/arthoran.lua'.
|
||||
ADVENTURE_CATALOG locations=2973 actions=84 lines=76
|
||||
INTENT_TRAVEL guid=26 intent='social' location='goldshire_tavern' area=0
|
||||
[AdventureBot] loaded 3966 clientless world points.
|
||||
[AdventureBot] loaded travel graph: 993 node(s), 1765 directed edge(s).
|
||||
clientless interaction 26
|
||||
TC>Interactions guid=26 grouped=0 leader=0 partner=0 intent='social' schedule=''
|
||||
leaderIdleSeconds=0 afkSeconds=0 sociability=0.65 loyalty=0.35
|
||||
TC> SUPPLY_RESTOCK guid=26 day=20261028 daily=0 afterCombat=1
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf130a1fe000006ce Type: Creature Entry:
|
||||
41470 Low: 1742' training=0 defending=1 until=0
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0x000000000000001a Type: Player Low: 26'
|
||||
spell=6673
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a1fe000006ce Type: Creature Entry:
|
||||
41470 Low: 1742' spell=78
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a1fe000006ce Type: Creature Entry:
|
||||
41470 Low: 1742' spell=12294
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a1fe000006ce Type: Creature Entry:
|
||||
41470 Low: 1742' spell=772
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf130a1fe000006ce Type: Creature Entry: 4
|
||||
1470 Low: 1742' training=0
|
||||
INTENT_TRAVEL guid=26 intent='social' location='goldshire_tavern' area=0
|
||||
SUPPLY_RESTOCK guid=26 day=20261028 daily=0 afterCombat=1
|
||||
COMBAT_START guid=26 target='GUID Full: 0xf130a1ff000006d0 Type: Creature Entry:
|
||||
41471 Low: 1744' training=0 defending=1 until=0
|
||||
COMBAT_CAST guid=26 target='GUID Full: 0xf130a1ff000006d0 Type: Creature Entry:
|
||||
41471 Low: 1744' spell=12294
|
||||
COMBAT_END guid=26 target='GUID Full: 0xf130a1ff000006d0 Type: Creature Entry: 4
|
||||
1471 Low: 1744' training=0
|
||||
SUPPLY_RESTOCK guid=26 day=20261028 daily=0 afterCombat=1
|
||||
INTENT_TRAVEL guid=26 intent='social' location='goldshire_tavern' area=0
|
||||
clientless adventure stop 26
|
||||
TC>Behavior stop requested at a safe point.
|
||||
TC> clientless adventure status 26
|
||||
TC>clientless interaction 26
|
||||
TC>Adventure GUID 26: enabled=1 schedule=0 phase=3 intent='social' location='gol
|
||||
dshire_tavern' micro='' deadline=0 detail='waiting for safe player/transport sta
|
||||
te'
|
||||
TC> Interactions guid=26 grouped=0 leader=0 partner=0 intent='social' schedule='
|
||||
'
|
||||
leaderIdleSeconds=0 afkSeconds=0 sociability=0.65 loyalty=0.35
|
||||
TC>
|
||||
@@ -0,0 +1,968 @@
|
||||
TrinityCore rev. 39a515dbd13e+ 2026-10-27 23:56:43 +0100 (feature/clientless-pla
|
||||
yer-core branch) (Unix, Debug, Static) (worldserver-daemon)
|
||||
<Ctrl-C> to stop.
|
||||
|
||||
______ __
|
||||
/\__ _\ __ __/\ \__
|
||||
\/_/\ \/ _ __ /\_\ ___ /\_\ \, _\ __ __
|
||||
\ \ \/\`'__\/\ \ /' _ `\/\ \ \ \/ /\ \/\ \
|
||||
\ \ \ \ \/ \ \ \/\ \/\ \ \ \ \ \_\ \ \_\ \
|
||||
\ \_\ \_\ \ \_\ \_\ \_\ \_\ \__\\/`____ \
|
||||
\/_/\/_/ \/_/\/_/\/_/\/_/\/__/ `/___/> \
|
||||
C O R E /\___/
|
||||
http://TrinityCore.org \/__/
|
||||
|
||||
Using configuration file /home/wow_admin/wow_cata_server/server/debug/etc/worlds
|
||||
erver.conf.
|
||||
Using SSL version: OpenSSL 3.5.5 27 Jan 2026 (library: OpenSSL 3.5.5 27 Jan 2026
|
||||
)
|
||||
Using Boost version: 1.90.0
|
||||
Automatic database updates are disabled for all databases!
|
||||
Realm running as realm ID 2 region 2 battlegroup 1
|
||||
Using World DB: TDB 434.22011
|
||||
Using enUS DBC Locale
|
||||
Will clear `logs` table of entries older than 1209600 seconds every 10 minutes.
|
||||
Client cache version set to: 22011
|
||||
Using DataDir /home/wow_admin/wow_cata_server/data/
|
||||
WORLD: MMap data directory is: /home/wow_admin/wow_cata_server/data/mmaps
|
||||
VMap support included. LineOfSight: 1, getHeight: 1, indoorCheck: 1
|
||||
VMap data directory is: /home/wow_admin/wow_cata_server/data/vmaps
|
||||
Missing name DungeonFinder.LowPopulation.Enable in config file /home/wow_admin/w
|
||||
ow_cata_server/server/debug/etc/worldserver.conf, add "DungeonFinder.LowPopulati
|
||||
on.Enable = 0" to this file
|
||||
Missing name DungeonFinder.LowPopulation.FallbackDelay in config file /home/wow_
|
||||
admin/wow_cata_server/server/debug/etc/worldserver.conf, add "DungeonFinder.LowP
|
||||
opulation.FallbackDelay = 60" to this file
|
||||
Missing name DungeonFinder.LowPopulation.MinPlayers in config file /home/wow_adm
|
||||
in/wow_cata_server/server/debug/etc/worldserver.conf, add "DungeonFinder.LowPopu
|
||||
lation.MinPlayers = 1" to this file
|
||||
Missing name DungeonFinder.LowPopulation.SoloGroupOutsideTimeout in config file
|
||||
/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf, add "DungeonF
|
||||
inder.LowPopulation.SoloGroupOutsideTimeout = 300" to this file
|
||||
Loading Trinity strings...
|
||||
>> Loaded 991 trinity strings in 7 ms
|
||||
Initialize data stores...
|
||||
>> Initialized 167 DBC data stores in 857 ms
|
||||
>> Initialized 5 DB2 data stores in 200 ms
|
||||
>> Loading Cinematic Camera files
|
||||
>> Loaded 0 cinematic waypoint sets in 0 ms
|
||||
Loading IP Location Database...
|
||||
Initializing PlayerDump tables...
|
||||
>> Initialized tables for PlayerDump in 14 ms.
|
||||
Loading SpellInfo store...
|
||||
>> Loaded SpellInfo store in 110 ms
|
||||
Loading SpellInfo corrections...
|
||||
>> Loaded SpellInfo corrections in 22 ms
|
||||
Loading SkillLineAbilityMultiMap Data...
|
||||
>> Loaded 8384 SkillLineAbility MultiMap Data in 3 ms
|
||||
Loading SpellInfo custom attributes...
|
||||
>> Loaded 195 spell custom attributes from DB in 2 ms
|
||||
>> Loaded SpellInfo custom attributes in 76 ms
|
||||
Loading SpellInfo diminishing infos...
|
||||
>> Loaded SpellInfo diminishing infos in 5 ms
|
||||
Loading SpellInfo immunity infos...
|
||||
>> Loaded SpellInfo immunity infos in 16 ms
|
||||
Loading GameObject models...
|
||||
>> Loaded 3255 GameObject models in 3 ms
|
||||
Loading Script Names...
|
||||
>> Loaded 4057 ScriptNames in 1376 ms
|
||||
Loading Instance Template...
|
||||
>> Loaded 91 instance templates in 0 ms
|
||||
Loading instances...
|
||||
>> Loaded instances in 6 ms
|
||||
Loading character cache store...
|
||||
Loaded character infos for 13 characters in 0 ms
|
||||
Loading Broadcast texts...
|
||||
>> Loaded 73039 broadcast texts in 360 ms
|
||||
>> Loaded 73039 broadcast text locales in 1637 ms
|
||||
Loading Localization strings...
|
||||
>> Loaded 29790 creature locale strings in 405 ms
|
||||
>> Loaded 19670 gameobject_template_locale strings in 226 ms
|
||||
>> Loaded 14986 Quest locale strings in 999 ms
|
||||
>> Loaded 1946 PageText locale strings in 109 ms
|
||||
>> Loaded 453 points_of_interest locale strings in 4 ms
|
||||
>> Loaded 0 quest_greeting locales. DB table `quest_greeting_locale` is empty.
|
||||
>> Localization strings loaded in 1758 ms
|
||||
Loading Account Roles and Permissions...
|
||||
>> Loaded 666 permission definitions, 650 linked permissions and 4 default permi
|
||||
ssions in 343 ms
|
||||
Loading Page Texts...
|
||||
>> Loaded 1962 page texts in 13 ms
|
||||
Loading Game Object Templates...
|
||||
>> Loaded 29501 game object templates in 156 ms
|
||||
Loading Game Object template addons...
|
||||
>> Loaded 29495 game object template addons in 41 ms
|
||||
Loading Transport templates...
|
||||
>> Loaded 43 transport templates in 9 ms
|
||||
Loading Transport animations and rotations...
|
||||
Loading Transport spawns...
|
||||
>> Spawned 0 continent transports in 0 ms
|
||||
Loading Spell Rank Data...
|
||||
>> Loaded 174 spell rank records in 1 ms
|
||||
Loading Spell Required Data...
|
||||
>> Loaded 22 spell required records in 1 ms
|
||||
Loading Spell Group types...
|
||||
>> Loaded 550 spell group definitions in 2 ms
|
||||
Loading Spell Learn Skills...
|
||||
>> Loaded 137 Spell Learn Skills from DBC in 5 ms
|
||||
Loading SpellInfo SpellSpecific and AuraState...
|
||||
>> Loaded SpellInfo SpellSpecific and AuraState in 10 ms
|
||||
Loading Spell Learn Spells...
|
||||
The spell 17002 listed in `spell_learn_spell` attempts learning talent spell 248
|
||||
67, skipped.
|
||||
The spell 24866 listed in `spell_learn_spell` attempts learning talent spell 248
|
||||
64, skipped.
|
||||
The spell 33872 listed in `spell_learn_spell` attempts learning talent spell 471
|
||||
79, skipped.
|
||||
The spell 33873 listed in `spell_learn_spell` attempts learning talent spell 471
|
||||
80, skipped.
|
||||
>> Loaded 24 spell learn spells, 512 found in Spell.dbc and 31 from TalentTab.db
|
||||
c in 7 ms
|
||||
Loading Spell Proc conditions and data...
|
||||
>> Loaded 1556 spell proc conditions and data in 5 ms
|
||||
Generating spell proc data from SpellMap...
|
||||
Spell Id 36488 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 39440 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 47261 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 47262 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 67726 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 67736 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 67740 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 67744 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
Spell Id 85556 has SPELL_ATTR3_CAN_PROC_FROM_PROCS attribute and no restriction
|
||||
on what spells can cause it to proc and no cooldown. This spell can cause infini
|
||||
te proc loops. Proc data for this spell was not generated, data in `spell_proc`
|
||||
table is required for it to function!
|
||||
>> Generated spell proc data for 1620 spells in 8 ms
|
||||
Loading Aggro Spells Definitions...
|
||||
>> Loaded 44 SpellThreatEntries in 2 ms
|
||||
Loading Spell Group Stack Rules...
|
||||
>> Loaded 41 spell group stack rules in 2 ms
|
||||
>> Parsing SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT stack rules...
|
||||
>> Parsed 23 SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT stack rules in 0 ms
|
||||
Loading NPC Texts...
|
||||
>> Loaded 8406 npc texts in 92 ms
|
||||
Loading Enchant Spells Proc datas...
|
||||
>> Loaded 45 enchant proc data definitions in 1 ms
|
||||
Loading Item Random Enchantments Table...
|
||||
>> Loaded 29217 Item Enchantment definitions in 25 ms
|
||||
Loading Disables
|
||||
>> Loaded 5211 disables in 10 ms
|
||||
Loading Items...
|
||||
>> Loaded 54296 item templates in 39 ms
|
||||
Loading Item set names...
|
||||
>> Loaded 622 item addon templates in 2 ms
|
||||
>> Loaded 21 item script names in 0 ms
|
||||
Loading Creature Model Based Info Data...
|
||||
>> Loaded 31775 creature model based info in 33 ms
|
||||
Loading Creature templates...
|
||||
>> Loaded 64891 creature template models in 77 ms
|
||||
>> Loaded 46633 creature definitions in 580 ms
|
||||
Loading Equipment templates...
|
||||
>> Loaded 16167 equipment templates in 23 ms
|
||||
Loading Creature template addons...
|
||||
Creature (Entry: 47203) has SPELL_AURA_CONTROL_VEHICLE aura 87978 defined in `au
|
||||
ras` field in `creature_template_addon`.
|
||||
>> Loaded 46613 creature template addons in 73 ms
|
||||
Loading Reputation Reward Rates...
|
||||
>> Loaded 16 reputation_reward_rate in 0 ms
|
||||
Loading Creature Reward OnKill Data...
|
||||
>> Loaded 2343 creature award reputation definitions in 7 ms
|
||||
Loading Reputation Spillover Data...
|
||||
>> Loaded 28 reputation_spillover_template in 2 ms
|
||||
Loading Points Of Interest Data...
|
||||
>> Loaded 603 Points of Interest definitions in 2 ms
|
||||
Loading Database Game Tables...
|
||||
>> Loaded 0 npc total health game table entries in 5 ms
|
||||
>> Loaded 0 npc damage by class game table entries in 4 ms
|
||||
Loading Creature Base Stats...
|
||||
>> Loaded 400 creature base stats in 8 ms
|
||||
Loading Spawn Group Templates...
|
||||
>> Loaded 98 spawn group templates in 1 ms
|
||||
Loading Creature Data...
|
||||
Table `creature` has creature (GUID: 396679 Entry: 32491) with disallowed `unit_
|
||||
flags` 32768, removing incorrect flag.
|
||||
>> Loaded 221565 creatures in 1182 ms
|
||||
Loading Temporary Summon Data...
|
||||
>> Loaded 869 temp summons in 4 ms
|
||||
Loading pet levelup spells...
|
||||
>> Loaded 263 pet levelup and default spells for 50 families in 8 ms
|
||||
Loading pet default spells additional to levelup spells...
|
||||
>> Loaded addition spells for 0 pet spell data entries in 2 ms
|
||||
Loading summonable creature templates...
|
||||
>> Loaded 427 summonable creature templates in 10 ms
|
||||
Loading Creature Addon Data...
|
||||
>> Loaded 52002 creature addons in 93 ms
|
||||
Loading Creature Movement Overrides...
|
||||
>> Loaded 0 creature movement overrides. DB table `creature_movement_override` i
|
||||
s empty!
|
||||
Loading Creature Movement Info...
|
||||
>> Loaded 270 creature movement info override entries in 1 ms
|
||||
Loading Gameobject Data...
|
||||
>> Loaded 78938 gameobjects in 392 ms
|
||||
Loading Spawn Group Data...
|
||||
>> Loaded 94612 spawn group members in 58 ms
|
||||
Loading instance spawn groups...
|
||||
>> Loaded 27 instance spawn groups in 2 ms
|
||||
Loading GameObject Addon Data...
|
||||
>> Loaded 24493 gameobject addons in 38 ms
|
||||
Loading GameObject Quest Items...
|
||||
>> Loaded 1352 gameobject quest items in 3 ms
|
||||
Loading Creature Quest Items...
|
||||
>> Loaded 5361 creature quest items in 8 ms
|
||||
Loading Creature Sparring Data...
|
||||
>> Loaded 0 creature sparring templates in 1 ms
|
||||
Loading Creature Linked Respawn...
|
||||
>> Loaded 5239 linked respawns in 7 ms
|
||||
Loading Weather Data...
|
||||
>> Loaded 36 weather definitions in 0 ms
|
||||
Loading Quests...
|
||||
Quest 29507 has `RequiredCurrencyId1` = 393 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 29283 has `RequiredCurrencyId1` = 416 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 29281 has `RequiredCurrencyId1` = 416 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 29279 has `RequiredCurrencyId1` = 416 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 29214 has `RequiredCurrencyId1` = 416 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 29199 has `RequiredCurrencyId1` = 416 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 29181 has `RequiredCurrencyId1` = 416 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 13478 has `RequiredCurrencyId1` = 392 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 13476 has `RequiredCurrencyId1` = 392 but `RequiredCurrencyCount1` = 0, qu
|
||||
est can't be done.
|
||||
Quest 8371 has `RequiredCurrencyId1` = 392 but `RequiredCurrencyCount1` = 0, que
|
||||
st can't be done.
|
||||
Quest 8368 has `RequiredCurrencyId1` = 392 but `RequiredCurrencyCount1` = 0, que
|
||||
st can't be done.
|
||||
Quest 8367 has `RequiredCurrencyId1` = 392 but `RequiredCurrencyCount1` = 0, que
|
||||
st can't be done.
|
||||
>> Loaded 14991 quests definitions in 347 ms
|
||||
Checking Quest Disables
|
||||
>> Checked 5124 quest disables in 0 ms
|
||||
Loading Quest POI
|
||||
>> Loaded 13941 quest POI definitions in 189 ms
|
||||
Loading Quest Money Rewards
|
||||
>> Loaded 100 quest money reward entries in 1 ms
|
||||
Loading Quests Starters and Enders...
|
||||
Loading GO Start Quest Data...
|
||||
>> Loaded 618 quest relations from gameobject_queststarter in 2 ms
|
||||
Loading GO End Quest Data...
|
||||
>> Loaded 517 quest relations from gameobject_questender in 2 ms
|
||||
Loading Creature Start Quest Data...
|
||||
>> Loaded 8725 quest relations from creature_queststarter in 10 ms
|
||||
Loading Creature End Quest Data...
|
||||
>> Loaded 9136 quest relations from creature_questender in 12 ms
|
||||
Loading Quests Greetings...
|
||||
>> Loaded 0 quest greetings. DB table `quest_greeting` is empty.
|
||||
Loading Objects Pooling Data...
|
||||
>> Loaded 1721 objects pools in 3 ms
|
||||
Loading Creatures Pooling Data...
|
||||
>> Loaded 835 creatures in pools in 2 ms
|
||||
Loading Gameobject Pooling Data...
|
||||
>> Loaded 7404 gameobject in pools in 10 ms
|
||||
Loading Mother Pooling Data...
|
||||
>> Loaded 1218 pools in mother pools in 3 ms
|
||||
Starting objects pooling system...
|
||||
Loading Quest Pooling Data...
|
||||
>> Loaded 56 daily, 5 weekly and 0 monthly quest pools in 2 ms
|
||||
Loading Game Event Data...
|
||||
>> Loaded 156 holiday dates in 1 ms
|
||||
>> Loaded 78 game events in 1 ms.
|
||||
Loading Game Event Saves Data...
|
||||
>> Loaded 0 game event saves in game events. DB table `game_event_save` is empty
|
||||
.
|
||||
Loading Game Event Prerequisite Data...
|
||||
>> Loaded 0 game event prerequisites in game events. DB table `game_event_prereq
|
||||
uisite` is empty.
|
||||
Loading Game Event Creature Data...
|
||||
>> Loaded 2790 creatures in game events in 2 ms.
|
||||
Loading Game Event GO Data...
|
||||
>> Loaded 21863 gameobjects in game events in 10 ms.
|
||||
Loading Game Event Model/Equipment Change Data...
|
||||
>> Loaded 22 model/equipment changes in game events in 2 ms.
|
||||
Loading Game Event Quest Data...
|
||||
>> Loaded 327 quests additions in game events in 1 ms.
|
||||
Loading Game Event GO Quest Data...
|
||||
>> Loaded 189 quests additions in game events in 1 ms.
|
||||
Loading Game Event Quest Condition Data...
|
||||
>> Loaded 0 quest event conditions in game events. DB table `game_event_quest_co
|
||||
ndition` is empty.
|
||||
Loading Game Event Condition Data...
|
||||
>> Loaded 0 conditions in game events. DB table `game_event_condition` is empty.
|
||||
Loading Game Event Condition Save Data...
|
||||
>> Loaded 0 condition saves in game events. DB table `game_event_condition_save`
|
||||
is empty.
|
||||
Loading Game Event NPCflag Data...
|
||||
>> Loaded 0 npcflags in game events. DB table `game_event_npcflag` is empty.
|
||||
Loading Game Event Seasonal Quest Relations...
|
||||
>> Loaded 690 quests additions in game events in 1 ms.
|
||||
Loading Game Event Vendor Additions Data...
|
||||
>> Loaded 2 vendor additions in game events in 1 ms.
|
||||
Loading Game Event Battleground Holiday Data...
|
||||
>> Loaded 8 battleground holidays in game events in 1 ms.
|
||||
Loading Game Event Pool Data...
|
||||
>> Loaded 2 pools for game events in 0 ms.
|
||||
Loading UNIT_NPC_FLAG_SPELLCLICK Data...
|
||||
>> Loaded 702 spellclick definitions in 3 ms
|
||||
Loading Vehicle Template Accessories...
|
||||
>> Loaded 431 Vehicle Template Accessories in 2 ms
|
||||
Loading Vehicle Accessories...
|
||||
>> Loaded 0 Vehicle Accessories in 0 ms
|
||||
Loading Vehicle Seat Addon Data...
|
||||
>> Loaded 15 Vehicle Seat Addon entries in 1 ms
|
||||
Loading SpellArea Data...
|
||||
>> Loaded 872 spell area requirements in 4 ms
|
||||
Loading AreaTrigger definitions...
|
||||
>> Loaded 316 area trigger teleport definitions in 2 ms
|
||||
Loading Access Requirements...
|
||||
>> Loaded 152 access requirement definitions in 1 ms
|
||||
Loading Quest Area Triggers...
|
||||
>> Loaded 49 quest trigger points in 1 ms
|
||||
Loading Tavern Area Triggers...
|
||||
>> Loaded 175 tavern triggers in 1 ms
|
||||
Loading AreaTrigger script names...
|
||||
>> Loaded 229 areatrigger scripts in 0 ms
|
||||
Loading LFG entrance positions...
|
||||
>> Loaded 68 lfg dungeon templates in 2 ms
|
||||
Loading Dungeon boss data...
|
||||
>> Loaded 617 instance encounters in 2 ms
|
||||
Loading LFG rewards...
|
||||
>> Loaded 20 lfg dungeon rewards in 1 ms
|
||||
Loading Graveyard-zone links...
|
||||
>> Loaded 855 graveyard-zone links in 2 ms
|
||||
Loading Graveyard Orientations...
|
||||
>> Loaded 1016 graveyard orientations in 2 ms
|
||||
Loading spell pet auras...
|
||||
>> Loaded 34 spell pet auras in 1 ms
|
||||
Loading Spell target coordinates...
|
||||
>> Loaded 1438 spell teleport coordinates in 4 ms
|
||||
Loading linked spells...
|
||||
>> Loaded 413 linked spells in 1 ms
|
||||
Loading Player Create Data...
|
||||
>> Loaded 91 player create definitions in 1 ms
|
||||
Loading Player Create Items Data...
|
||||
>> Loaded 1 custom player create items in 1 ms
|
||||
Loading Player Create Skill Data...
|
||||
>> Loaded player create skills in 1 ms
|
||||
Loading Player Create Custom Spell Data...
|
||||
>> Loaded 4507 custom player create spells in 1 ms
|
||||
Loading Player Create Cast Spell Data...
|
||||
>> Loaded 63 player create cast spells in 1 ms
|
||||
Loading Player Create Action Data...
|
||||
>> Loaded 352 player create actions in 1 ms
|
||||
Loading Player Create Level Stats Data...
|
||||
>> Loaded 850 level stats definitions in 5 ms
|
||||
Loading Player Create XP Data...
|
||||
>> Loaded 84 xp for level definitions in 1 ms
|
||||
Loading Exploration BaseXP Data...
|
||||
>> Loaded 80 BaseXP definitions in 1 ms
|
||||
Loading Pet Name Parts...
|
||||
>> Loaded 313 pet name parts in 1 ms
|
||||
Loading the max pet number...
|
||||
>> Loaded the max pet number: 28 in 0 ms
|
||||
Loading pet level stats...
|
||||
>> Loaded 2720 level pet stats definitions in 5 ms
|
||||
Loading Player level dependent mail rewards...
|
||||
>> Loaded 24 level dependent mail rewards in 1 ms
|
||||
Loading creature loot templates...
|
||||
>> Loaded 528193 creature loot templates in 634 ms
|
||||
Loading fishing loot templates...
|
||||
>> Loaded 266 fishing loot templates in 2 ms
|
||||
Loading gameobject loot templates...
|
||||
>> Loaded 19834 gameobject loot templates in 32 ms
|
||||
Loading item loot templates...
|
||||
>> Loaded 5031 item loot templates in 16 ms
|
||||
Loading mail loot templates...
|
||||
>> Loaded 90 mail loot templates in 0 ms
|
||||
Loading milling loot templates...
|
||||
>> Loaded 51 milling loot templates in 4 ms
|
||||
Loading pickpocketing loot templates...
|
||||
>> Loaded 10981 pickpocketing loot templates in 20 ms
|
||||
Loading skinning loot templates...
|
||||
>> Loaded 3390 skinning loot templates in 10 ms
|
||||
Loading disenchanting loot templates...
|
||||
>> Loaded 180 disenchanting loot templates in 1 ms
|
||||
Loading prospecting loot templates...
|
||||
>> Loaded 43 prospecting loot templates in 4 ms
|
||||
Loading spell loot templates...
|
||||
>> Loaded 292 spell loot templates in 3 ms
|
||||
Loading reference loot templates...
|
||||
>> Loaded refence loot templates in 48 ms
|
||||
Loading Skill Discovery Table...
|
||||
>> Loaded 347 skill discovery definitions in 3 ms.
|
||||
Loading Skill Extra Item Table...
|
||||
>> Loaded 225 spell specialization definitions in 1 ms
|
||||
Loading Skill Perfection Data Table...
|
||||
>> Loaded 72 spell perfection definitions in 0 ms.
|
||||
Loading Skill Fishing base level requirements...
|
||||
>> Loaded 95 areas for fishing base skill level in 0 ms
|
||||
Loading Archaeology store...
|
||||
>> Loaded 180 archaeology sites in 1 ms
|
||||
>> Loaded 180 archaeology site polygons in 157 ms
|
||||
>> Loaded 9 archaeology branches in 0 ms
|
||||
>> Loaded 139 archaeology projects in 1 ms
|
||||
>> Calculated 9 archaeology branch chances in 0 ms
|
||||
Loading Achievements...
|
||||
>> Loaded 47 achievement references in 0 ms.
|
||||
Loading Achievement Criteria Lists...
|
||||
>> Loaded 9803 achievement criteria and 952 guild achievement crieteria in 5 ms.
|
||||
Loading Achievement Criteria Data...
|
||||
>> Loaded 1291 additional achievement criteria data in 2 ms
|
||||
Loading Achievement Rewards...
|
||||
>> Loaded 120 achievement rewards in 1 ms.
|
||||
Loading Achievement Reward Locales...
|
||||
>> Loaded 0 achievement reward locale strings. DB table `achievement_reward_loc
|
||||
ale` is empty.
|
||||
Loading Completed Achievements...
|
||||
>> Loaded 77 realm first completed achievements in 1 ms.
|
||||
Loading Item Auctions...
|
||||
>> Loaded 0 auction items. DB table `auctionhouse` or `item_instance` is empty!
|
||||
Loading Auctions...
|
||||
>> Loaded 0 auctions. DB table `auctionhouse` is empty.
|
||||
Loading Guild XP for level...
|
||||
>> Loaded 24 xp for guild level definitions in 1 ms
|
||||
Loading Guild rewards...
|
||||
>> Loaded 42 guild reward definitions in 0 ms
|
||||
Initializing Guild Profession Data Store...
|
||||
Loading Guild Challenges...
|
||||
>> Loaded 4 guild challenge definitions in 1 ms
|
||||
Loading Guilds...
|
||||
Loading guilds definitions...
|
||||
>> Loaded 1 guild definitions in 2 ms
|
||||
Loading guild ranks...
|
||||
>> Loaded 5 guild ranks in 0 ms
|
||||
Loading guild members...
|
||||
>> Loaded 4 guild members in 5 ms
|
||||
Loading bank tab rights...
|
||||
>> Loaded 30 bank tab rights in 1 ms
|
||||
Loading guild event logs...
|
||||
>> Loaded 8 guild event logs in 2 ms
|
||||
Loading guild bank event logs...
|
||||
>> Loaded 22 guild bank event logs in 0 ms
|
||||
Loading Guild News...
|
||||
>> Loaded 0 guild event logs. DB table `guild_newslog` is empty.
|
||||
Loading guild bank tabs...
|
||||
>> Loaded 6 guild bank tabs in 0 ms
|
||||
>> Loaded 22 guild bank tab items in 1 ms
|
||||
>> Validated data of loaded guilds in 0 ms
|
||||
Loading guild finder guild-related settings...
|
||||
>> Loaded 0 guild finder guild-related settings. Table `guild_finder_guild_setti
|
||||
ngs` is empty.
|
||||
Loading guild finder membership requests...
|
||||
>> Loaded 0 guild finder membership requests. Table `guild_finder_applicant` is
|
||||
empty.
|
||||
Loading ArenaTeams...
|
||||
>> Loaded 0 arena teams. DB table `arena_team` is empty!
|
||||
Loading Groups...
|
||||
>> Loaded 0 group definitions. DB table `groups` is empty!
|
||||
Loading ReservedNames...
|
||||
>> Loaded 0 reserved player names. DB table `reserved_name` is empty!
|
||||
Loading GameObjects for quests...
|
||||
>> Loaded 2750 GameObjects for quests in 5 ms
|
||||
Loading BattleMasters...
|
||||
>> Loaded 171 battlemaster entries in 3 ms
|
||||
Loading GameTeleports...
|
||||
>> Loaded 1531 GameTeleports in 5 ms
|
||||
Loading Trainers...
|
||||
>> Loaded 88 Trainers in 10 ms
|
||||
Loading Gossip menu...
|
||||
>> Loaded 8225 gossip_menu IDs in 10 ms
|
||||
Loading Gossip menu options...
|
||||
>> Loaded 5837 gossip_menu_option entries in 18 ms
|
||||
Loading Creature Template Gossip...
|
||||
creature_template_gossip has gossip definitions for menu id 55002 but this menu
|
||||
doesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 55002 but this menu
|
||||
doesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 6268 but this menu d
|
||||
oesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 9856 but this menu d
|
||||
oesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 10844 but this menu
|
||||
doesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 10852 but this menu
|
||||
doesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 2522 but this menu d
|
||||
oesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 12720 but this menu
|
||||
doesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 12718 but this menu
|
||||
doesn't exist
|
||||
creature_template_gossip has gossip definitions for menu id 13160 but this menu
|
||||
doesn't exist
|
||||
>> Loaded 5435 creature template gossip menus in 8 ms
|
||||
Loading Creature trainers...
|
||||
>> Loaded 1187 default trainers in 4 ms
|
||||
Loading Vendors...
|
||||
Table `(game_event_)npc_vendor` for Vendor (Entry: 44972) have in item list non-
|
||||
existed item (60822, type 1), ignore
|
||||
>> Loaded 48278 Vendors in 71 ms
|
||||
Loading Waypoints...
|
||||
>> Loaded 110626 waypoints in 177 ms
|
||||
Loading Waypoint Addons...
|
||||
>> Loaded 639 waypoint addon data in 2 ms
|
||||
Loading SmartAI Waypoints...
|
||||
>> Loaded 586 SmartAI waypoint paths (total 7064 waypoints) in 10 ms
|
||||
Loading Creature Formations...
|
||||
>> Loaded 2517 creatures in formations in 5 ms
|
||||
Loading World State templates...
|
||||
Table `world_state` contains a world state 3490 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3490 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3491 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3491 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1134), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1504), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1505), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1552), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1672), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1825), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (1911), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (2167), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (2373), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (2509), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (2511), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3600 with invalid MapID (2547), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1134), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1504), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1505), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1552), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1672), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1825), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (1911), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (2167), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (2373), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (2509), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (2511), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3601 with invalid MapID (2547), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1134), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1504), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1505), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1552), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1672), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1825), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (1911), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (2167), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (2373), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (2509), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (2511), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3610 with invalid MapID (2547), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3680 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3680 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3681 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3681 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3698 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3698 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3699 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3699 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3700 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3700 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3701 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3701 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3702 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3702 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3703 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3703 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3704 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3704 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3705 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3705 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3706 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3706 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3710 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3710 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3711 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3711 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3712 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3712 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3713 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3713 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3714 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3714 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3749 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3749 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3750 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3750 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3751 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3751 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3752 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3752 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3753 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3753 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3754 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3754 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3755 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3755 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3756 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3756 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3757 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3757 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3758 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3758 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3759 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3759 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3760 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3760 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3761 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3761 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3762 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3762 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3763 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3763 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3764 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3764 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3765 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3765 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3766 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3766 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3767 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3767 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3768 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3768 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3769 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3769 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3770 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3770 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3771 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3771 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3772 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3772 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3773 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3773 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3781 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3781 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3801 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3801 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3802 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3802 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3803 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3803 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 3815 with invalid MapID (1544), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 3816 with invalid MapID (1544), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 4022 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 4022 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 4023 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 4023 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 4024 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 4024 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 4025 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 4025 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
Table `world_state` contains a world state 4354 with invalid MapID (2118), map i
|
||||
gnored
|
||||
Table `world_state` contains a world state 4354 with invalid AreaID (10176), are
|
||||
a ignored
|
||||
>> Loaded 526 world state templates 4 ms
|
||||
>> Loaded 41 saved world state values 24 ms
|
||||
Loading Persistend World Variables...
|
||||
>> Loaded 9 world variables in 4 ms
|
||||
Loading Terrain World Map definitions...
|
||||
>> Loaded 4 terrain world maps in 0 ms.
|
||||
Loading Terrain Swap Default definitions...
|
||||
>> Loaded 4 terrain swap defaults in 1 ms.
|
||||
Loading Phase Area definitions...
|
||||
>> Loaded 25 phase areas in 1 ms.
|
||||
Loading Conditions...
|
||||
>> Loaded 15912 conditions in 45 ms
|
||||
Loading faction change achievement pairs...
|
||||
>> Loaded 124 faction change achievement pairs in 2 ms
|
||||
Loading faction change spell pairs...
|
||||
>> Loaded 113 faction change spell pairs in 1 ms
|
||||
Loading faction change quest pairs...
|
||||
>> Loaded 250 faction change quest pairs in 1 ms
|
||||
Loading faction change item pairs...
|
||||
>> Loaded 752 faction change item pairs in 2 ms
|
||||
Loading faction change reputation pairs...
|
||||
>> Loaded 17 faction change reputation pairs in 1 ms
|
||||
Loading faction change title pairs...
|
||||
>> Loaded 22 faction change title pairs in 1 ms
|
||||
Loading GM tickets...
|
||||
>> Loaded 2 GM tickets in 0 ms
|
||||
Loading GM surveys...
|
||||
>> Loaded GM Survey count from database in 1 ms
|
||||
Loading client addons...
|
||||
>> Loaded 35 known addons in 0 ms
|
||||
Returning old mails...
|
||||
>> No expired mails found.
|
||||
Loading Autobroadcasts...
|
||||
>> Loaded 0 autobroadcasts definitions. DB table `autobroadcast` is empty for th
|
||||
is realm!
|
||||
Loading spell_scripts...
|
||||
>> Loaded 143 script definitions in 1 ms
|
||||
Loading event_scripts...
|
||||
>> Loaded 461 script definitions in 2 ms
|
||||
Loading waypoint_scripts...
|
||||
>> Loaded 422 script definitions in 2 ms
|
||||
Loading spell script names...
|
||||
Scriptname: `spell_vcore_dungeon_horn` spell (Id: 120000) does not exist.
|
||||
Scriptname: `spell_vcore_dungeon_horn` spell (Id: 120001) does not exist.
|
||||
Scriptname: `spell_vcore_dungeon_horn` spell (Id: 120002) does not exist.
|
||||
Scriptname: `spell_vcore_dungeon_horn` spell (Id: 120003) does not exist.
|
||||
>> Loaded 3282 spell script names in 7 ms
|
||||
Loading Creature Texts...
|
||||
>> Loaded 16797 creature texts for 3997 creatures in 53 ms
|
||||
Loading Creature Text Locales...
|
||||
Loading creature StaticFlags overrides...
|
||||
>> Loaded 133 creature static flag overrides in 1 ms
|
||||
Loading Taxi node level definitions...
|
||||
>> Loaded 274 taxi node level definitions in 1 ms
|
||||
Initializing Scripts...
|
||||
Loading Script Waypoints for 54 creature(s)...
|
||||
>> Loaded 1377 Script Waypoint nodes in 4 ms
|
||||
>> Loaded spline chain data for 85 chains, consisting of 272 splines with 1414 w
|
||||
aypoints in 4 ms
|
||||
Loading C++ scripts
|
||||
Script named 'world_map_set_faction_worldstates_609' does not have a script name
|
||||
assigned in database.
|
||||
Script named 'item_gor_dreks_ointment' does not have a script name assigned in d
|
||||
atabase.
|
||||
>> Loaded 4106 C++ scripts in 146 ms
|
||||
Validating spell scripts...
|
||||
Spell `85123` Effect `Index: EFFECT_0 Target: 7` of script `spell_siege_cannon`
|
||||
did not match dbc effect data - handler bound to hook `OnObjectAreaTargetSelect`
|
||||
of SpellScript won't be executed
|
||||
>> Validated 3470 scripts in 12 ms
|
||||
Loading SmartAI scripts...
|
||||
>> Loaded SmartAIMgr Helpers in 16 ms
|
||||
>> Loaded 13506 SmartAI scripts in 167 ms
|
||||
Loading Calendar data...
|
||||
>> Loaded 0 calendar events in 1 ms
|
||||
>> Loaded 0 calendar invites in 0 ms
|
||||
Loading Petitions...
|
||||
>> Loaded 0 petitions.
|
||||
Loading Signatures...
|
||||
>> Loaded 0 Petition signs!
|
||||
Loading Summon Properties parameter data...
|
||||
>> Loaded 78 summon properties parameters in 1 ms
|
||||
Loading Item loot...
|
||||
>> Loaded 0 stored item loots
|
||||
>> Loaded 0 stored item money
|
||||
Initialize query data...
|
||||
>> Initialized query cache data in 1019 ms
|
||||
Initialize commands...
|
||||
Initialize game time and timers
|
||||
Mail timer set to: 1260, mail return is called every 1440 minutes
|
||||
Starting Map System
|
||||
Starting Game Event system...
|
||||
Initialize AuctionHouseBot...
|
||||
Initializing Opcodes...
|
||||
Starting Arena Season...
|
||||
Starting Battleground System
|
||||
>> Loaded 15 battlegrounds in 0 ms
|
||||
Starting Outdoor PvP System
|
||||
>> Loaded 5 outdoor PvP definitions in 1 ms
|
||||
Starting Battlefield System
|
||||
>> Loaded 2 battlefields in 0 ms
|
||||
Loading Warden Checks...
|
||||
Loading Warden Action Overrides...
|
||||
Deleting expired bans...
|
||||
Initializing quest reset times...
|
||||
Calculate random battleground reset time...
|
||||
Calculate guild limitation(s) reset time...
|
||||
Calculate next currency reset time...
|
||||
World initialized in 0 minutes 13 seconds
|
||||
TC>TC>TrinityCore rev. 39a515dbd13e+ 2026-10-27 23:56:43 +0100 (feature/clientle
|
||||
ss-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
clientless login 26
|
||||
TC>Registered clientless session for character GUID 26 (account 6), state=Loadin
|
||||
g.
|
||||
Created clientless player session for character GUID 26 (account 6).
|
||||
ClientlessPlayerMgr started character GUID 26 (account 6).
|
||||
Clientless login started for 'Arthoran' (GUID 26, account 6).
|
||||
TC> Loading saved respawn time of 1790175804 for spawnid (0,323981) - spawn does
|
||||
not exist, ignoring
|
||||
Loading saved respawn time of 1790090644 for spawnid (0,396680) - spawn does not
|
||||
exist, ignoring
|
||||
Loading saved respawn time of 1790019808 for spawnid (0,396681) - spawn does not
|
||||
exist, ignoring
|
||||
Loading saved respawn time of 1790019853 for spawnid (0,396682) - spawn does not
|
||||
exist, ignoring
|
||||
Initialized transport GameObject grids: map=0 instance=0 grids=4 candidates=15
|
||||
Clientless player character GUID 26 (account 6) reached state=Online.
|
||||
ClientlessLua initialized, script root '/home/wow_admin/wow_cata_server/source/T
|
||||
rinityCore/src/server/scripts/Custom/clientless'.
|
||||
[AdventureBot][Profile] loaded guid=26 name='Arthoran' source='/home/wow_admin/w
|
||||
ow_cata_server/source/TrinityCore/src/server/scripts/Custom/clientless/adventure
|
||||
/profiles/arthoran.lua' home='elwynn' canGroundMount=1 mounts=1 mountMinDistance
|
||||
=45.0 mountSpeedRate=1.60 personality=8 regionAffinity=4 activityAffinity=7
|
||||
PROFILE_PROFESSIONS guid=26 primary=2
|
||||
ClientlessLua[26]: Arthoran ready; no automatic test journey queued
|
||||
ClientlessLua[26]: executed adventure override script '/home/wow_admin/wow_cata_
|
||||
server/source/TrinityCore/src/server/scripts/Custom/clientless/adventure/overrid
|
||||
es/arthoran.lua'.
|
||||
ADVENTURE_CATALOG locations=2973 actions=84 lines=76
|
||||
INTENT_TRAVEL guid=26 intent='social' location='goldshire_tavern' area=0
|
||||
[AdventureBot] loaded 3966 clientless world points.
|
||||
[AdventureBot] loaded travel graph: 993 node(s), 1765 directed edge(s).
|
||||
clientless interaction 26
|
||||
TC>Interactions guid=26 grouped=0 leader=0 partner=0 intent='social' schedule=''
|
||||
leaderIdleSeconds=0 afkSeconds=0 sociability=0.65 loyalty=0.35
|
||||
TC> SUPPLY_RESTOCK guid=26 day=20261028 daily=0 afterCombat=1
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
test_adventure_area_node.py: PASS
|
||||
test_adventure_behavior_policy.py: PASS
|
||||
test_adventure_combat_exercise.py: PASS
|
||||
test_adventure_combat_preparation.py: PASS
|
||||
test_adventure_combat_reactions.py: PASS
|
||||
test_adventure_economy.py: PASS
|
||||
test_adventure_economy_catalog.py: PASS
|
||||
test_adventure_exploration.py: PASS
|
||||
test_adventure_exploration_catalog.py: PASS
|
||||
test_adventure_graph_handover.py: PASS
|
||||
test_adventure_instance.py: PASS
|
||||
test_adventure_instance_autoresume.py: PASS
|
||||
test_adventure_instance_begin.py: PASS
|
||||
test_adventure_instance_catalog.py: PASS
|
||||
test_adventure_instance_persistence.py: PASS
|
||||
test_adventure_intent_state.py: PASS
|
||||
test_adventure_interactions.py: PASS
|
||||
test_adventure_leisure.py: PASS
|
||||
test_adventure_leisure_catalog.py: PASS
|
||||
test_adventure_location_import.py: PASS
|
||||
test_adventure_micro_reset.py: PASS
|
||||
test_adventure_profession_catalog.py: PASS
|
||||
test_adventure_profession_profile.py: PASS
|
||||
test_adventure_profession_sightline.py: PASS
|
||||
test_adventure_profession_targets.py: PASS
|
||||
test_adventure_repair_catalog.py: PASS
|
||||
test_adventure_rest.py: PASS
|
||||
test_adventure_rest_fire.py: PASS
|
||||
test_adventure_rest_space.py: PASS
|
||||
test_adventure_rest_targets.py: PASS
|
||||
test_adventure_social.py: PASS
|
||||
test_adventure_social_fire.py: PASS
|
||||
test_adventure_supplies.py: PASS
|
||||
test_adventure_supply_catalog.py: PASS
|
||||
test_adventure_supply_items.py: PASS
|
||||
test_adventure_training_catalog.py: PASS
|
||||
test_adventure_walk.py: PASS
|
||||
test_clientless_companion.py: PASS
|
||||
test_clientless_damage_notifications.py: PASS
|
||||
test_clientless_near_teleport_observer.py: PASS
|
||||
test_default_phase.py: PASS
|
||||
test_flight_area_query.py: PASS
|
||||
test_flight_handoff.py: PASS
|
||||
test_flight_policy.py: PASS
|
||||
test_follow_spline_velocity.py: PASS
|
||||
test_free_flight.py: PASS
|
||||
test_free_flight_planner.py: PASS
|
||||
test_ground_exit_continuation.py: PASS
|
||||
test_local_spline_segments.py: PASS
|
||||
test_lua_reload.py: PASS
|
||||
test_player_pure_max_skill.py: PASS
|
||||
test_portal_transfer.py: PASS
|
||||
test_portal_use.py: PASS
|
||||
test_taxi_import_disabled.py: PASS
|
||||
test_transport.py: PASS
|
||||
test_transport_grid_loading.py: PASS
|
||||
56/56 passed; failures: []
|
||||
@@ -0,0 +1,8 @@
|
||||
Debug build -j10 and installation succeeded. Test worldserver59086 freshly ready, port8085 listening.
|
||||
56/56 full suite passed; additional new social notification concurrency test passed (57 scripts total).
|
||||
Final expanded combat test with player focus also passed.
|
||||
Native login26 and interaction diagnostic succeeded; sociability0.65 loyalty0.35.
|
||||
Real creature defense after restart observed. No live player invitation/PvP/pet/portal/ten-minute AFK claim.
|
||||
Normal initial Goldshire trip started on login; behavior stop requested at safe point, last observed switching/waiting for safe state.
|
||||
OLD executable shutdown observed Object.h:448 GetMap ASSERTION FAILED m_currMap; process49765 exited before installation. Cause not investigated; new startup succeeded.
|
||||
Local commit requested by user; no push. No DB migrations. No temporary profile overrides.
|
||||
@@ -0,0 +1,11 @@
|
||||
Clientless.Adventure.Loader.Enabled = 0
|
||||
Clientless.Adventure.Loader.Alliance.Persistent = 0
|
||||
Clientless.Adventure.Loader.Alliance.Temporary = 0
|
||||
Clientless.Adventure.Loader.Horde.Persistent = 0
|
||||
Clientless.Adventure.Loader.Horde.Temporary = 0
|
||||
Clientless.Adventure.Loader.IntervalMs = 2000
|
||||
Clientless.Adventure.Loader.MinLevel = 1
|
||||
Clientless.Adventure.Loader.MaxLevel = 85
|
||||
Clientless.Adventure.Loader.RotationPercent = 15
|
||||
Clientless.Adventure.Loader.RotationMinAgeHours = 24
|
||||
Clientless.Adventure.Manager.IntervalSeconds = 300
|
||||
@@ -0,0 +1,20 @@
|
||||
zones
|
||||
78
|
||||
Table Create Table
|
||||
vcore_adventure_day CREATE TABLE `vcore_adventure_day` (\n `character_guid` int(10) unsigned NOT NULL,\n `local_date` int(10) unsigned NOT NULL,\n `hour_slot` tinyint(3) unsigned NOT NULL,\n `intent` varchar(32) NOT NULL,\n `location_key` varchar(100) NOT NULL,\n PRIMARY KEY (`character_guid`,`local_date`,`hour_slot`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
|
||||
character_guid name level race class online persistent state profile_bytes
|
||||
27 Dagri 60 3 1 0 0 retired 871
|
||||
28 Jarana 60 8 1 0 0 retired 870
|
||||
29 Aelion 60 4 1 1 0 ready 1761
|
||||
30 Zanzan 60 8 1 1 0 ready 1749
|
||||
31 Lenara 60 22 8 1 0 ready 1740
|
||||
32 Aldren 60 5 6 1 0 ready 1765
|
||||
33 Tinkbin 1 7 1 0 1 ready 1456
|
||||
34 Sylaria 1 10 4 0 1 ready 1478
|
||||
35 Karggan 85 3 5 0 1 ready 1530
|
||||
36 Edwin 85 5 1 0 1 ready 1543
|
||||
38 Renaarna 85 22 5 0 0 ready 1497
|
||||
account_id faction
|
||||
7 1
|
||||
8 2
|
||||
@@ -0,0 +1,4 @@
|
||||
TrinityCore rev. d6fea6ee6831+ 2026-10-28 15:00:41 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon)
|
||||
World initialized in 0 minutes 11 seconds
|
||||
TrinityCore rev. d6fea6ee6831+ 2026-10-28 15:00:41 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
No clientless sessions auto-started with all four targets zero, despite saved generated instance visit36.
|
||||
@@ -0,0 +1,25 @@
|
||||
World initialized in 0 minutes 11 seconds
|
||||
Adventure GUID 29: enabled=0 schedule=0 phase=0 intent='' location='' micro='' deadline=0 detail='stopped'
|
||||
TC> Adventure GUID 31: enabled=0 schedule=0 phase=0 intent='' location='' micro='' deadline=0 detail='stopped'
|
||||
Interactions guid=29 grouped=0 leader=0 partner=0 intent='' schedule=''
|
||||
Interactions guid=31 grouped=0 leader=0 partner=0 intent='' schedule=''
|
||||
TC> Adventure GUID 30: enabled=1 schedule=0 phase=1 intent='social' location='poi_npc_300050' micro='' deadline=1793208319 detail='travelling to poi_npc_300050'
|
||||
TC> Adventure GUID 32: enabled=1 schedule=0 phase=1 intent='social' location='poi_npc_321922' micro='' deadline=1793208319 detail='waiting for safe player/transport state'
|
||||
TC> Adventure loader enabled=0 schema=0 busy=0 pools=0/0/0/0 known=0 rotations=0 manager=4 error=''
|
||||
pool=0 faction=alliance persistent=1 target=0 online=0 pending=0 saved=0
|
||||
pool=1 faction=alliance persistent=0 target=0 online=0 pending=0 saved=0
|
||||
pool=2 faction=horde persistent=1 target=0 online=0 pending=0 saved=0
|
||||
pool=3 faction=horde persistent=0 target=0 online=0 pending=0 saved=0
|
||||
TC> All players saved.
|
||||
TC>Adventure GUID 29: enabled=0 schedule=0 phase=0 intent='' location='' micro='' deadline=0 detail='stopped'
|
||||
TC> Adventure GUID 31: enabled=0 schedule=0 phase=0 intent='' location='' micro='' deadline=0 detail='stopped'
|
||||
Interactions guid=29 grouped=0 leader=0 partner=0 intent='' schedule=''
|
||||
Interactions guid=31 grouped=0 leader=0 partner=0 intent='' schedule=''
|
||||
TC> Adventure GUID 30: enabled=1 schedule=0 phase=2 intent='social' location='poi_tele_823' micro='social_comment' deadline=1793208765 detail='social scene: comment'
|
||||
TC>Adventure GUID 32: enabled=1 schedule=0 phase=2 intent='social' location='poi_npc_321922' micro='social_listen' deadline=1793208766 detail='social scene: listen'
|
||||
TC> Adventure loader enabled=0 schema=0 busy=0 pools=0/0/0/0 known=0 rotations=0 manager=4 error=''
|
||||
pool=0 faction=alliance persistent=1 target=0 online=0 pending=0 saved=0
|
||||
pool=1 faction=alliance persistent=0 target=0 online=0 pending=0 saved=0
|
||||
pool=2 faction=horde persistent=1 target=0 online=0 pending=0 saved=0
|
||||
pool=3 faction=horde persistent=0 target=0 online=0 pending=0 saved=0
|
||||
TC> All players saved.
|
||||
@@ -0,0 +1,5 @@
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=10/2/10/2 known=25 rotations=0 manager=24 error=''
|
||||
pool=0 faction=alliance persistent=1 target=10 online=10 pending=0 saved=10
|
||||
pool=1 faction=alliance persistent=0 target=2 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=10 online=10 pending=0 saved=10
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
@@ -0,0 +1,117 @@
|
||||
guid name level talentTree persistent state
|
||||
33 Tinkbin 1 0 0 1 ready
|
||||
34 Sylaria 1 0 0 1 ready
|
||||
35 Karggan 85 795 0 1 ready
|
||||
36 Edwin 85 746 0 1 ready
|
||||
37 Elaisia 60 845 0 0 ready
|
||||
guid slot itemEntry
|
||||
33 0 63278
|
||||
33 1 27945
|
||||
33 2 59113
|
||||
33 4 3733
|
||||
33 5 65705
|
||||
33 6 6087
|
||||
33 7 57417
|
||||
33 8 60907
|
||||
33 9 15463
|
||||
33 10 56714
|
||||
33 11 59116
|
||||
33 12 12846
|
||||
33 13 40483
|
||||
33 14 60927
|
||||
33 15 65687
|
||||
33 16 56691
|
||||
33 19 54443
|
||||
33 20 54443
|
||||
33 21 54443
|
||||
33 22 54443
|
||||
34 0 9978
|
||||
34 1 27945
|
||||
34 2 59112
|
||||
34 4 61050
|
||||
34 5 59091
|
||||
34 6 56699
|
||||
34 7 2033
|
||||
34 8 60929
|
||||
34 9 60939
|
||||
34 10 57717
|
||||
34 11 59114
|
||||
34 12 12846
|
||||
34 13 40483
|
||||
34 14 65721
|
||||
34 15 56679
|
||||
34 16 6504
|
||||
34 17 28979
|
||||
34 19 54443
|
||||
34 20 54443
|
||||
34 21 54443
|
||||
34 22 54443
|
||||
35 0 75073
|
||||
35 1 58699
|
||||
35 2 75091
|
||||
35 4 75088
|
||||
35 5 75086
|
||||
35 6 75072
|
||||
35 7 75095
|
||||
35 8 75098
|
||||
35 9 75063
|
||||
35 10 75068
|
||||
35 11 56432
|
||||
35 12 58614
|
||||
35 13 56351
|
||||
35 14 75065
|
||||
35 15 63461
|
||||
35 17 65172
|
||||
35 19 54443
|
||||
35 20 54443
|
||||
35 21 54443
|
||||
35 22 54443
|
||||
36 0 75126
|
||||
36 1 75078
|
||||
36 2 75119
|
||||
36 4 75135
|
||||
36 5 75123
|
||||
36 6 75136
|
||||
36 7 75120
|
||||
36 8 75124
|
||||
36 9 75122
|
||||
36 10 58648
|
||||
36 11 75071
|
||||
36 12 56132
|
||||
36 13 73164
|
||||
36 14 75077
|
||||
36 15 56342
|
||||
36 19 54443
|
||||
36 20 54443
|
||||
36 21 54443
|
||||
36 22 54443
|
||||
37 0 77867
|
||||
37 1 21809
|
||||
37 2 21805
|
||||
37 4 23300
|
||||
37 5 22197
|
||||
37 6 13498
|
||||
37 7 31125
|
||||
37 8 22205
|
||||
37 9 77734
|
||||
37 10 12058
|
||||
37 11 19873
|
||||
37 12 19947
|
||||
37 13 21488
|
||||
37 14 22337
|
||||
37 15 19104
|
||||
37 16 18756
|
||||
37 19 54443
|
||||
37 20 54443
|
||||
37 21 54443
|
||||
37 22 54443
|
||||
guid spells
|
||||
33 24
|
||||
34 15
|
||||
35 109
|
||||
36 110
|
||||
37 85
|
||||
guid talent_spells
|
||||
35 22
|
||||
36 21
|
||||
37 13
|
||||
@@ -0,0 +1,3 @@
|
||||
guid items inventory_hash
|
||||
21 26 c684ea37abcbdce68e151d144c823fb43abd94f0ec860e03e35738845e37172a
|
||||
26 24 e1094ed84b20084243dac5338d88814eb54c3bc4ddd3ed64a1a4bca455013a93
|
||||
@@ -0,0 +1,3 @@
|
||||
guid items inventory_hash
|
||||
21 26 c684ea37abcbdce68e151d144c823fb43abd94f0ec860e03e35738845e37172a
|
||||
26 24 e1094ed84b20084243dac5338d88814eb54c3bc4ddd3ed64a1a4bca455013a93
|
||||
@@ -0,0 +1,11 @@
|
||||
guid name online map position_x position_y position_z
|
||||
26 Arthoran 0 0 -11683.5 -2317.07 25.1635
|
||||
29 Aelion 1 0 -9448.55 68.236 56.3225
|
||||
30 Zanzan 1 1 -826.364 -4879.64 19.5037
|
||||
31 Lenara 1 0 -9448.55 68.236 56.3225
|
||||
32 Aldren 1 0 1082.5 1578.14 27.8342
|
||||
33 Tinkbin 0 0 -5144.9 453.528 393.232
|
||||
34 Sylaria 0 530 8713 -6649.58 72.7513
|
||||
35 Karggan 0 0 -8622.47 407.783 102.924
|
||||
36 Edwin 0 0 -7065.2 -2602.84 256.074
|
||||
38 Renaarna 0 0 -8733.04 543.374 101.123
|
||||
@@ -0,0 +1,6 @@
|
||||
character_guid local_date slots day_hash
|
||||
33 20261028 24 ae72eb55c08e2d19c7de777e50778181a1ec37e7a7ca26aeb576b1255bcd0571
|
||||
34 20261028 24 ba3246dc3dbffed593e26672ec4d15dace181d2bd8b121fa9b34e2a96b60a964
|
||||
35 20261028 24 5fe768de3439ffc9adf00b9694f9bcdd5e91f1a2d1aa46724d04173300203536
|
||||
36 20261028 24 81c6f2da21e74edda3ff32e25cb3af0764f8ec13461e8a40d6efcf816a749cd0
|
||||
37 20261028 24 5d0052af0910553f70e9ccf411da0386b58e8911a63d2ff540358cb1fe8d1f3f
|
||||
@@ -0,0 +1,6 @@
|
||||
character_guid local_date slots day_hash
|
||||
33 20261028 24 ae72eb55c08e2d19c7de777e50778181a1ec37e7a7ca26aeb576b1255bcd0571
|
||||
34 20261028 24 ba3246dc3dbffed593e26672ec4d15dace181d2bd8b121fa9b34e2a96b60a964
|
||||
35 20261028 24 5fe768de3439ffc9adf00b9694f9bcdd5e91f1a2d1aa46724d04173300203536
|
||||
36 20261028 24 81c6f2da21e74edda3ff32e25cb3af0764f8ec13461e8a40d6efcf816a749cd0
|
||||
37 20261028 24 5d0052af0910553f70e9ccf411da0386b58e8911a63d2ff540358cb1fe8d1f3f
|
||||
@@ -0,0 +1,13 @@
|
||||
Profile/planner/population implementation complete on feature/clientless-player-core.
|
||||
75/75 production-code regression scripts passed; final Debug j10 built and installed.
|
||||
Worldserver139425 ready after11s, port8085 listening. No push/commit of this WIP.
|
||||
Loader disabled; four targets0, level1..85, rotation15%, minimum age24h.
|
||||
Aelion29 and Lenara31 manually online/stopped/ungrouped in Goldshire.
|
||||
Zanzan30 and Aldren32 restored to native Durotar/Silverpine home anchors/social goals.
|
||||
New33..36 persistent and38 temporary offline. Dedicated37 rotated/deleted.
|
||||
Native level1/85 both factions, protection60, profile-level repair, day relog/restart,
|
||||
expired-day replacement and native rotation/profile+day cleanup verified.
|
||||
Generated saved instance visitor36 does not auto-start under disabled/zero quotas;
|
||||
legacy unowned recovery remains asynchronous and paced. Existing21/26 inventory hashes match.
|
||||
Large populations, visual gameplay, complete role AI and navigation improvements await acceptance.
|
||||
See population.md and SESSION-RESUME.md for contracts, caveats and exact state.
|
||||
@@ -0,0 +1,167 @@
|
||||
TEST tests/clientless/test_adventure_area_node.py
|
||||
Production area destination excludes outside and unreachable graph nodes.
|
||||
TEST tests/clientless/test_adventure_async_database.py
|
||||
Async creation DB contracts: prepared connection masks, native security column names, no future waits, successful-save cache publication and world-update-only loader hook passed
|
||||
TEST tests/clientless/test_adventure_behavior_policy.py
|
||||
24-hour generation, shared intents with changing destinations, broad location classification and repetition penalties passed.
|
||||
TEST tests/clientless/test_adventure_combat_exercise.py
|
||||
Production exercise: stance/charge/melee/casts, native validation delegation, bounded lifetime, invalid targets and unchanged native phases passed.
|
||||
TEST tests/clientless/test_adventure_combat_preparation.py
|
||||
Production talent learner: native tiers/dependencies/class gates, all 26 legal level60 points, no capstone bypass and repeat safety passed.
|
||||
TEST tests/clientless/test_adventure_combat_reactions.py
|
||||
Production combat focus, damage ordering, risk filters, corpse radius/delay, flight/group override, blocked escape, danger avoidance and malus-free persisted fallback passed.
|
||||
TEST tests/clientless/test_adventure_day_persistence.py
|
||||
Production day planner: all 24 TINYINT slots restored across logins, incomplete/old-day replacement, full transaction and curiosity/level weighting passed
|
||||
TEST tests/clientless/test_adventure_economy.py
|
||||
Economy: native service roles, friendly/phase/LOS/bounds gates, no bot service targets and coherent performative cues passed.
|
||||
TEST tests/clientless/test_adventure_economy_catalog.py
|
||||
Economy catalog: eleven actions, three faction-bound service anchors, native flag gates and idempotent preservation passed.
|
||||
TEST tests/clientless/test_adventure_equipment_maintenance.py
|
||||
Production gear maintenance: same birth/retention gate rejects wrong armor/stats, malformed effects, level, temporary, reputation, map, holiday, native-use and slot mismatches passed
|
||||
TEST tests/clientless/test_adventure_exploration.py
|
||||
Exploration: visible native props only, no chests/traps/furniture, phase/map/LOS/range gates and contextual preparation passed.
|
||||
TEST tests/clientless/test_adventure_exploration_catalog.py
|
||||
Exploration catalog: ten actions, shared scenes, default wander replacement, explicit category eligibility and preserved edits passed.
|
||||
TEST tests/clientless/test_adventure_generator_equipment.py
|
||||
Production equipment affinity: mana-only/direct/triggered procs, caster/physical stat effects and bounded cycles passed
|
||||
TEST tests/clientless/test_adventure_generator_ownership.py
|
||||
Production generator commands: batch bounds, dedicated ownership, persistent/online/removing retirement protection and retired login refusal passed
|
||||
TEST tests/clientless/test_adventure_generator_policy.py
|
||||
Production generator: 6144 cultural names and 61440 real Lua profiles, profession coherence, personality ranges, escaping and equipment/armor gates passed
|
||||
TEST tests/clientless/test_adventure_graph_handover.py
|
||||
Production graph handover waits for ship/taxi/flight/teleport and stops at safe road/node boundaries.
|
||||
TEST tests/clientless/test_adventure_group_plan.py
|
||||
Production group plans: leader meeting/goal/deadline inheritance, untouched personal day, manual preparation and instance-state guards passed.
|
||||
TEST tests/clientless/test_adventure_groups.py
|
||||
Production recruitment: capitals, different goals, native inviter leadership, joining existing groups, capacity/reservations, raid conversion, planned transition and local contact passed.
|
||||
TEST tests/clientless/test_adventure_instance.py
|
||||
Production instance lifecycle: time budget, true entry, denied/shared entry, native rear exit, restart, expired copy, late arrival, HP and return replay passed.
|
||||
TEST tests/clientless/test_adventure_instance_autoresume.py
|
||||
Deferred instance script: missing schema/visits stays idle; no login work on startup; saved visitors resume with Adventure controllers and native accounts.
|
||||
TEST tests/clientless/test_adventure_instance_begin.py
|
||||
Production entrance travel uses the existing location planner, requires mapping and retains normal social/area travel.
|
||||
TEST tests/clientless/test_adventure_instance_catalog.py
|
||||
Instance migrations: outside entrances only, native graph preserved, disabled/missing transitions excluded, edits and saved visits preserved.
|
||||
TEST tests/clientless/test_adventure_instance_loader.py
|
||||
Production instance recovery: no startup DB/login work, asynchronous delayed/paced manual recovery, generated-bot quota ownership, absent-schema compatibility and existing preparation ticks passed
|
||||
TEST tests/clientless/test_adventure_instance_persistence.py
|
||||
Production instance persistence: phases, original deadline, instance ID, transactional HP marker, failed commit and intent release passed.
|
||||
TEST tests/clientless/test_adventure_intent_state.py
|
||||
Production intent arrival, failed/partial travel, deadlines and safe schedule handover passed.
|
||||
TEST tests/clientless/test_adventure_interactions.py
|
||||
/tmp/tmpwuo364tp/test.cpp: In member function ‘void AdventureInteractionMgr::Leave(Player*, Record&, const char*)’:
|
||||
/tmp/tmpwuo364tp/test.cpp:142:69: warning: unused parameter ‘reason’ [-Wunused-parameter]
|
||||
142 | void AdventureInteractionMgr::Leave(Player* p,Record& r,char const* reason)
|
||||
| ~~~~~~~~~~~~^~~~~~
|
||||
production interaction manager: invitations, factions, reservations, follow, AFK and deferred departure passed
|
||||
TEST tests/clientless/test_adventure_leisure.py
|
||||
Leisure: substantial curved MMAP routes, mirrored return, interrupted return, rejected corridors, actual arrival, companion follow, riding, flight and fishing passed.
|
||||
TEST tests/clientless/test_adventure_leisure_catalog.py
|
||||
Leisure migration: native city anchor, shared scene references, pet-walk mapping and preservation of edited weights passed.
|
||||
TEST tests/clientless/test_adventure_location_import.py
|
||||
Locations: actual Debug SMALLINT reads retain continent IDs; explicit location eligibility and edited weight overrides passed.
|
||||
TEST tests/clientless/test_adventure_manager_inventory.py
|
||||
Production inventory maintenance: only full backpacks, native stack trimming, level-appropriate supplies, tools, leash, fishing pole, containers and untouched equipped slots passed
|
||||
TEST tests/clientless/test_adventure_micro_reset.py
|
||||
Micro cleanup ends physical local movement, preserves transit and does not stand up dead players.
|
||||
TEST tests/clientless/test_adventure_population.py
|
||||
Production population: four independent faction/persistence targets, fair selection, pending reservations, retries, existing inventory, once-per-boot rotation and connected/persistent protection passed
|
||||
TEST tests/clientless/test_adventure_profession_catalog.py
|
||||
Profession catalog: native workstation roles, no workshop/resource inference, idempotence and preserved edits passed.
|
||||
TEST tests/clientless/test_adventure_profession_profile.py
|
||||
Production profession parser, real Lua profiles, primary restrictions and secondary permissions passed.
|
||||
TEST tests/clientless/test_adventure_profession_sightline.py
|
||||
Native workstation working-surface sightline and blocked geometry rejection passed.
|
||||
TEST tests/clientless/test_adventure_profession_targets.py
|
||||
Production profession targets: native locks, phase/spawn/loot, stations, corpses, history and trainers passed.
|
||||
TEST tests/clientless/test_adventure_profile_selection.py
|
||||
Production profile selection: real Lua ID dictionaries, exact 9:1 companion weighting, zero/negative/infinite/NaN/oversized weights rejected and legacy companion fallback passed
|
||||
TEST tests/clientless/test_adventure_pvp.py
|
||||
Production PvP selector: level boundaries, radius, factions, native legality, navigation, intent, personality and resources passed.
|
||||
TEST tests/clientless/test_adventure_repair_catalog.py
|
||||
Repair action catalog: proper native service requirement, economy-only intent and preserved administrator weights passed.
|
||||
TEST tests/clientless/test_adventure_rest.py
|
||||
Recovery: authored places, bounds, arrival, occupancy, full rest duration, failure, reload and interruption passed.
|
||||
TEST tests/clientless/test_adventure_rest_fire.py
|
||||
Rest fire: shared scene mapping, additive migration, preserved weights and authored creation-place policy passed.
|
||||
TEST tests/clientless/test_adventure_rest_space.py
|
||||
Sleep footprint: furniture, body extent, overhead collision, ledges, stairs, missing heights, rotation and scale passed.
|
||||
TEST tests/clientless/test_adventure_rest_targets.py
|
||||
Native sleep targets: chair exclusion, phase, despawn, floor search, indoors, water, storey, occupancy, bed/surface preference passed.
|
||||
TEST tests/clientless/test_adventure_rotation.py
|
||||
/tmp/tmpn8583ajg/test.cpp: In instantiation of ‘std::string Trinity::StringFormat(const char*, A ...) [with A = {}; std::string = std::__cxx11::basic_string<char>]’:
|
||||
/tmp/tmpn8583ajg/test.cpp:22:126: required from ‘void Tx::PAppend(const char*, A ...) [with A = {}]’
|
||||
22 | struct Tx{std::vector<std::string>sql;template<class...A>void PAppend(char const*f,A...a){sql.push_back(Trinity::StringFormat(f,a...));}};
|
||||
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
/tmp/tmpn8583ajg/test.cpp:51:75: required from here
|
||||
51 | auto barrier=CharacterDatabase.BeginTransaction();barrier->PAppend("DO 0");
|
||||
| ~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
/tmp/tmpn8583ajg/test.cpp:11:113: warning: format not a string literal and no format arguments [-Wformat-security]
|
||||
11 | namespace Trinity{template<class...A>std::string StringFormat(char const* f,A...args){char b[4096];std::snprintf(b,sizeof(b),f,args...);return b;}}
|
||||
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
|
||||
Production rotation: connected/native-online protection, ownership refusal, native delete failure, world cleanup failure and journal-retained retry before successful profile/plan/state removal passed
|
||||
TEST tests/clientless/test_adventure_social.py
|
||||
Production social flow: approach before talk, coherent greeting/talk/listen/farewell, lost targets, native chair confirmation and real fire confirmation passed.
|
||||
TEST tests/clientless/test_adventure_social_fire.py
|
||||
Shared fire: native detection/provisioning, buildings/city/parent/zone restrictions, existing fires and outdoor/water checks passed.
|
||||
TEST tests/clientless/test_adventure_supplies.py
|
||||
Production supplies: exact10% boundary, bandage-before-food, native lockout fallback, recovery completion, combat potions, mana-only drinking and daily/post-combat top-ups passed.
|
||||
TEST tests/clientless/test_adventure_supply_catalog.py
|
||||
Supply migrations: all five roles, level60 netherweave tier, editable/disabled catalog preservation and persistent daily stamp passed.
|
||||
TEST tests/clientless/test_adventure_supply_items.py
|
||||
Production native-item delegation: usable bandage tiers, native cooldown/lockout gates, real inventory consumption, self targeting and level60 secondary caps passed.
|
||||
TEST tests/clientless/test_adventure_training_catalog.py
|
||||
Training catalog: real dummy requirement, leisure-only intent, bounded duration and preserved administrator weights passed.
|
||||
TEST tests/clientless/test_adventure_walk.py
|
||||
Production travel gait reaches native spline, survives repaths, prevents mounting and preserves legacy running defaults.
|
||||
TEST tests/clientless/test_clientless_character_factory.py
|
||||
Production native factory: character/profile atomicity, failed preparation/commit, cache publication order, account/security/name/cap gates passed
|
||||
TEST tests/clientless/test_clientless_companion.py
|
||||
Native companion: provisioning, delayed summon, ownership, real item target, leash confirmation/timeout, reuse and cleanup passed.
|
||||
TEST tests/clientless/test_clientless_damage_notifications.py
|
||||
Production damage handoff: 16 concurrent map-worker writers, ordered GUID-only events, clientless-only/positive damage gates and post-health notification passed.
|
||||
TEST tests/clientless/test_clientless_near_teleport_observer.py
|
||||
Production near-teleport observer packet includes actual mover GUID and destination; clientless timestamp refreshed, regular client timestamp preserved.
|
||||
TEST tests/clientless/test_clientless_skill_preparation.py
|
||||
Production offline skill preparation: native tier caps, no downgrading, rank/level/race/tier gates and no modification of online players passed
|
||||
TEST tests/clientless/test_clientless_social_notifications.py
|
||||
Production social/helper queues: concurrent GUID-only delivery, bounded queues, human/self/zero-damage gates, pet attribution and lethal-cleanup ordering passed
|
||||
TEST tests/clientless/test_default_phase.py
|
||||
Native PhaseShift: implicit/default 169 visibility, genuine custom-phase separation and reference updates passed.
|
||||
TEST tests/clientless/test_flight_area_query.py
|
||||
Native terrain query map/phase, area/zone ordering and cache passed.
|
||||
TEST tests/clientless/test_flight_handoff.py
|
||||
Flight handoff before spline end, terminal landing, return corners, collision stop and actual distance passed.
|
||||
TEST tests/clientless/test_flight_policy.py
|
||||
Flight native eligibility, license/profile/zone policy, RP costs and fail-safe return decisions passed.
|
||||
TEST tests/clientless/test_follow_spline_velocity.py
|
||||
Native follow: actual player/creature spline velocity, client gait and independent follower speeds passed.
|
||||
TEST tests/clientless/test_free_flight.py
|
||||
Flight geometry passed: takeoff/landing, smoothed peak, ceiling, lateral/climbing avoidance, missing terrain and blocked corridors.
|
||||
TEST tests/clientless/test_free_flight_planner.py
|
||||
ground planner regressions and dynamic flight/node/location/virtual-exit integration passed
|
||||
TEST tests/clientless/test_ground_exit_continuation.py
|
||||
optional exits: repeated probes, retained route, delayed success, forward resume, flight fallback passed
|
||||
TEST tests/clientless/test_item_equip_cooldown.py
|
||||
Native item equip cooldown: zero/sentinel/missing spells safely skipped, valid use cooldown preserved and longer/disabled cooldowns untouched passed
|
||||
TEST tests/clientless/test_local_spline_segments.py
|
||||
Production local spline clipping passes native path-length validation, tiny remainders and 1000 sampled paths.
|
||||
TEST tests/clientless/test_lua_reload.py
|
||||
Lua reload regression tests passed (production reload/bindings, real Lua 5.4).
|
||||
TEST tests/clientless/test_player_pure_max_skill.py
|
||||
Native pure skill cap: learned skills return stored cap; missing/deleted/zero-rank skills return0.
|
||||
TEST tests/clientless/test_portal_transfer.py
|
||||
Portal near/far ACK and denied same-map transfer regressions passed.
|
||||
TEST tests/clientless/test_portal_use.py
|
||||
Interactive portal native click, near/far/global ACK, denial, timeout and target checks passed.
|
||||
Native portal destination discovery and unsupported/ambiguous spell rejection passed.
|
||||
Production clientless ACK completion sequence increments only after completed near/far transfers.
|
||||
TEST tests/clientless/test_shared_group_route.py
|
||||
Production generic shared routes: same edges/taxi/free flight, independent execution state, final local goal, late catch-up, permissions and stale-goal rejection passed.
|
||||
TEST tests/clientless/test_taxi_import_disabled.py
|
||||
Taxi importer preserves disabled rows and their reasons.
|
||||
TEST tests/clientless/test_transport.py
|
||||
Transport dock, frame, recorder, cross-map copy and ride regressions passed
|
||||
TEST tests/clientless/test_transport_grid_loading.py
|
||||
Core transport grid initialization regressions passed (no CPC dependency).
|
||||
TOTAL 75 FAILED []
|
||||
@@ -0,0 +1,41 @@
|
||||
from pathlib import Path
|
||||
import os,re,subprocess,sys
|
||||
root=Path('/home/wow_admin/wow_cata_server/source/TrinityCore')
|
||||
conf=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text()
|
||||
def query(kind,sql):
|
||||
h,port,u,p,db=re.search(r'^'+kind+r'DatabaseInfo\s*=\s*"([^"]+)"',conf,re.M).group(1).split(';')
|
||||
env=os.environ.copy();env['MYSQL_PWD']=p
|
||||
r=subprocess.run(['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--connect-timeout=10'],input=sql,text=True,capture_output=True,env=env)
|
||||
if r.returncode:raise SystemExit(r.stderr.replace(p,'[redacted]'))
|
||||
return r.stdout
|
||||
|
||||
mode=sys.argv[1]
|
||||
if mode=='apply':
|
||||
for kind,name in [('World','sql/custom/world/2026_10_29_00_adventure_population.sql'),('Character','sql/custom/characters/2026_10_29_00_adventure_population.sql')]:
|
||||
print(query(kind,(root/name).read_text()))
|
||||
elif mode=='audit':
|
||||
print(query('World',"SELECT COUNT(*) AS zones FROM vcore_adventure_zone; SHOW CREATE TABLE vcore_adventure_day;"))
|
||||
print(query('Character',"SELECT g.character_guid,c.name,c.level,c.race,c.class,c.online,g.persistent,g.state,LENGTH(g.profile_lua) profile_bytes FROM vcore_adventure_generated_bot g JOIN characters c ON c.guid=g.character_guid ORDER BY c.guid; SELECT * FROM vcore_adventure_rotation; SELECT * FROM vcore_adventure_bot_account;"))
|
||||
elif mode=='originals':
|
||||
print(query('Character',"SELECT ci.guid,COUNT(*) items,SHA2(GROUP_CONCAT(CONCAT(ci.item,':',ii.itemEntry) ORDER BY ci.item SEPARATOR ','),256) inventory_hash FROM character_inventory ci JOIN item_instance ii ON ii.guid=ci.item WHERE ci.guid IN(21,26) GROUP BY ci.guid;"))
|
||||
elif mode=='dayhash':
|
||||
print(query('World',"SELECT character_guid,local_date,COUNT(*) slots,SHA2(GROUP_CONCAT(CONCAT(hour_slot,':',intent,':',location_key) ORDER BY hour_slot SEPARATOR '|'),256) day_hash FROM vcore_adventure_day WHERE character_guid BETWEEN 33 AND 50 GROUP BY character_guid,local_date;"))
|
||||
elif mode=='details':
|
||||
print(query('Character',"SELECT c.guid,c.name,c.level,c.talentTree,g.persistent,g.state FROM characters c JOIN vcore_adventure_generated_bot g ON g.character_guid=c.guid WHERE c.guid>=33; SELECT ci.guid,ci.slot,i.itemEntry FROM character_inventory ci JOIN item_instance i ON i.guid=ci.item WHERE ci.guid>=33 AND ci.bag=0 AND ci.slot<23 ORDER BY ci.guid,ci.slot; SELECT s.guid,COUNT(*) spells FROM character_spell s WHERE s.guid>=33 GROUP BY s.guid; SELECT t.guid,COUNT(*) talent_spells FROM character_talent t WHERE t.guid>=33 GROUP BY t.guid;"))
|
||||
elif mode=='expire37':
|
||||
row=query('Character',"SELECT c.online FROM characters c JOIN vcore_adventure_generated_bot g ON c.guid=g.character_guid WHERE c.guid=37 AND g.persistent=0 AND g.state='ready';")
|
||||
if row.strip().splitlines()!=['online','0']:raise SystemExit('Test bot37 must be offline and temporary')
|
||||
print(query('World',"UPDATE vcore_adventure_day SET local_date=20261027 WHERE character_guid=37; SELECT character_guid,local_date,COUNT(*) slots FROM vcore_adventure_day WHERE character_guid=37 GROUP BY character_guid,local_date;"))
|
||||
elif mode=='positions':
|
||||
print(query('Character',"SELECT guid,name,online,map,position_x,position_y,position_z FROM characters WHERE guid IN(26,29,30,31,32,33,34,35,36,38);"))
|
||||
elif mode=='visits':
|
||||
print(query('Character',"SELECT character_guid,phase,block_end,location_key FROM vcore_adventure_instance_visit ORDER BY character_guid;"))
|
||||
elif mode=='homes':
|
||||
print(query('World',"SELECT id,name,map,position_x,position_y,position_z FROM game_tele WHERE id=823 OR name LIKE '%sepul%' OR name='Brill'; SELECT point_key,map,position_x,position_y,position_z FROM vcore_clientless_world_point WHERE point_key='poi_npc_321922';"))
|
||||
elif mode=='near_home':
|
||||
print(query('World',"SELECT id,name,map,position_x,position_y,position_z FROM game_tele WHERE map=0 ORDER BY POW(position_x-1097.57,2)+POW(position_y-1587.29,2) LIMIT 3;"))
|
||||
elif mode=='zone_names':
|
||||
print(query('World',"SELECT DISTINCT zone_id,region_key FROM vcore_adventure_location WHERE zone_id IN(210,33,5287,5288,616,4709,493,2817,4755,5144,5145,4815,11,51,3) ORDER BY zone_id;"))
|
||||
elif mode=='plans':
|
||||
print(query('World',"SELECT character_guid,local_date,COUNT(*) slots,MIN(hour_slot),MAX(hour_slot),COUNT(DISTINCT location_key) locations FROM vcore_adventure_day GROUP BY character_guid,local_date;"))
|
||||
else:raise SystemExit('unknown mode')
|
||||
@@ -0,0 +1,58 @@
|
||||
BOT_LOADER_LOGIN guid=33 pool=0
|
||||
Clientless player character GUID 33 (account 7) reached state=Online.
|
||||
DAY_PLAN guid=33 date=20261028 slots=24
|
||||
BOT_LOADER_LOGIN guid=34 pool=2
|
||||
Clientless player character GUID 34 (account 8) reached state=Online.
|
||||
DAY_PLAN guid=34 date=20261028 slots=24
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=1/0/1/0 known=6 rotations=0 manager=2 error=''
|
||||
pool=0 faction=alliance persistent=1 target=1 online=1 pending=0 saved=1
|
||||
pool=1 faction=alliance persistent=0 target=0 online=0 pending=0 saved=2
|
||||
pool=2 faction=horde persistent=1 target=1 online=1 pending=0 saved=1
|
||||
pool=3 faction=horde persistent=0 target=0 online=0 pending=0 saved=2
|
||||
TC> Adventure loader enabled=1 schema=1 busy=1 pools=2/0/2/0 known=6 rotations=0 manager=2 error=''
|
||||
pool=0 faction=alliance persistent=1 target=2 online=1 pending=0 saved=1
|
||||
pool=1 faction=alliance persistent=0 target=0 online=0 pending=0 saved=2
|
||||
pool=2 faction=horde persistent=1 target=2 online=1 pending=0 saved=1
|
||||
pool=3 faction=horde persistent=0 target=0 online=0 pending=0 saved=2
|
||||
BOT_LOADER_LOGIN guid=35 pool=0
|
||||
Clientless player character GUID 35 (account 7) reached state=Online.
|
||||
DAY_PLAN guid=35 date=20261028 slots=24
|
||||
BOT_LOADER_LOGIN guid=36 pool=2
|
||||
Clientless player character GUID 36 (account 8) reached state=Online.
|
||||
DAY_PLAN guid=36 date=20261028 slots=24
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=2/0/2/0 known=8 rotations=0 manager=4 error=''
|
||||
pool=0 faction=alliance persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=0 online=0 pending=0 saved=2
|
||||
pool=2 faction=horde persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=0 online=0 pending=0 saved=2
|
||||
TC>You changed level of Tinkbin to 5.
|
||||
BOT_LOADER_LOGIN guid=33 pool=0
|
||||
Clientless player character GUID 33 (account 7) reached state=Online.
|
||||
TC> Adventure loader enabled=1 schema=1 busy=1 pools=2/2/2/2 known=8 rotations=0 manager=4 error=''
|
||||
pool=0 faction=alliance persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=2 online=0 pending=0 saved=2
|
||||
pool=2 faction=horde persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=2 online=0 pending=0 saved=2
|
||||
BOT_LOADER_LOGIN guid=29 pool=1
|
||||
Clientless player character GUID 29 (account 6) reached state=Online.
|
||||
DAY_PLAN guid=29 date=20261028 slots=24
|
||||
BOT_LOADER_LOGIN guid=30 pool=3
|
||||
Clientless player character GUID 30 (account 6) reached state=Online.
|
||||
DAY_PLAN guid=30 date=20261028 slots=24
|
||||
BOT_LOADER_LOGIN guid=31 pool=1
|
||||
Clientless player character GUID 31 (account 6) reached state=Online.
|
||||
DAY_PLAN guid=31 date=20261028 slots=24
|
||||
BOT_LOADER_LOGIN guid=32 pool=3
|
||||
Clientless player character GUID 32 (account 6) reached state=Online.
|
||||
DAY_PLAN guid=32 date=20261028 slots=24
|
||||
Generated Elaisia guid=37 race=1 class=1 level=60 archetype=warrior persistent=0 seed=2 home=poi_npc_280710 (offline).
|
||||
TC>return { identity = { name = "Elaisia", home_region = "elwynn", profile_version = 2, level = 60, class = 1, specialization = 2, role = "tank", seed = 2, home_zone = 12, home_capital = 1519, favorite_zone = 1377, favorite_region = "silithus", vocation = "Wandernder Waffenschmied", background = "Herkunft: Elwynn. Sucht auf Reisen Arbeit, neue Wege und Begegnungen." }, behavior = { enabled = true, daily_schedule = true, initial_intent = 'social', initial_location = "poi_npc_280710", initial_duration_seconds = 3600, locale = 'deDE' }, professions = { primary = { "mining", "blacksmithing" } }, personality = { sociability = 0.786, adventurousness = 0.328, aggression = 0.575, home_attachment = 0.418, wanderlust = 0.713, group_loyalty = 0.603, tavern_affinity = 0.311, wilderness_affinity = 0.457, city_affinity = 0.593, danger_tolerance = 0.496 }, region_affinity = { ["elwynn"] = 2.5 }, zone_affinity = { [12] = 4.0, [1377] = 5.0, [1519] = 4.0, }, activity_affinity = { social = 0.589, adventure = 0.761, profession = 0.483, leisure = 0.267, economy = 0.351, rest = 0.513, instance = 0.643, raid = 0.180 }, inventory = { keep_items = {37460,6256,5956,2901,7005,6217} }, movement = { can_ground_mount = true, ground_mount_speed_rate = 2, ground_mounts = {[2404]=1,[2402]=2,[2409]=1,}, ground_mount_count = 3, can_free_fly = true, flight_mounts = {[32235]=2,[32239]=10,[32240]=6,}, flight_mount_count = 3, companions = {[10673]=1,}, companion_count = 1, companion_leash_item = 37460 } }
|
||||
Clientless player character GUID 37 (account 7) reached state=Online.
|
||||
DAY_PLAN guid=37 date=20261028 slots=24
|
||||
Clientless player character GUID 37 (account 7) reached state=Online.
|
||||
DAY_PLAN guid=37 date=20261028 slots=24
|
||||
TC> Adventure loader enabled=0 schema=1 busy=0 pools=2/2/2/2 known=9 rotations=0 manager=8 error=''
|
||||
pool=0 faction=alliance persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=2 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
@@ -0,0 +1,41 @@
|
||||
Clientless player character GUID 36 (account 8) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=33 pool=0
|
||||
Clientless player character GUID 33 (account 7) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=29 pool=1
|
||||
Clientless player character GUID 29 (account 6) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=34 pool=2
|
||||
Clientless player character GUID 34 (account 8) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=30 pool=3
|
||||
Clientless player character GUID 30 (account 6) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=35 pool=0
|
||||
Clientless player character GUID 35 (account 7) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=31 pool=1
|
||||
Clientless player character GUID 31 (account 6) reached state=Online.
|
||||
BOT_LOADER_LOGIN guid=32 pool=3
|
||||
Clientless player character GUID 32 (account 6) reached state=Online.
|
||||
TC>Adventure loader enabled=1 schema=1 busy=0 pools=2/2/2/2 known=9 rotations=0 manager=8 error=''
|
||||
pool=0 faction=alliance persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=2 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
TC> Adventure loader enabled=1 schema=0 busy=1 pools=2/3/2/2 known=9 rotations=0 manager=8 error=''
|
||||
pool=0 faction=alliance persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=3 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=2 online=2 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=2 online=2 pending=0 saved=2
|
||||
BOT_ROTATED_REMOVED guid=37
|
||||
BOT_LOADER_LOGIN guid=38 pool=1
|
||||
Clientless player character GUID 38 (account 7) reached state=Online.
|
||||
DAY_PLAN guid=38 date=20261028 slots=24
|
||||
TC> Adventure loader enabled=0 schema=1 busy=0 pools=0/0/0/0 known=9 rotations=0 manager=9 error=''
|
||||
pool=0 faction=alliance persistent=1 target=0 online=2 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=0 online=3 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=0 online=2 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=0 online=2 pending=0 saved=2
|
||||
TC> Clientless player character GUID 29 (account 6) reached state=Online.
|
||||
TC>Clientless player character GUID 31 (account 6) reached state=Online.
|
||||
TC>Adventure loader enabled=0 schema=1 busy=0 pools=0/0/0/0 known=9 rotations=0 manager=4 error=''
|
||||
pool=0 faction=alliance persistent=1 target=0 online=0 pending=0 saved=2
|
||||
pool=1 faction=alliance persistent=0 target=0 online=2 pending=0 saved=3
|
||||
pool=2 faction=horde persistent=1 target=0 online=0 pending=0 saved=2
|
||||
pool=3 faction=horde persistent=0 target=0 online=2 pending=0 saved=2
|
||||
@@ -0,0 +1,10 @@
|
||||
TrinityCore rev. 0173a434f49d+ 2026-10-29 01:36:35 +0100 (feature/clientless-player-core branch) (Unix, Debug, Static) (worldserver-daemon) ready...
|
||||
pool=1 faction=alliance persistent=0 target=5 online=5 pending=0 saved=5
|
||||
pool=2 faction=horde persistent=1 target=50 online=48 pending=0 saved=50
|
||||
pool=3 faction=horde persistent=0 target=5 online=5 pending=0 saved=5
|
||||
[?2004hTC>Adventure loader enabled=1 schema=1 busy=0 pools=50/5/50/5 known=110 rotations=0 manager=110 error=''
|
||||
pool=0 faction=alliance persistent=1 target=50 online=50 pending=0 saved=50
|
||||
pool=1 faction=alliance persistent=0 target=5 online=5 pending=0 saved=5
|
||||
pool=2 faction=horde persistent=1 target=50 online=50 pending=0 saved=50
|
||||
pool=3 faction=horde persistent=0 target=5 online=5 pending=0 saved=5
|
||||
PID247021; TCP8085 listening; no ADVENTURE_DISABLED, assertion or SQL collation error in this startup.
|
||||
@@ -0,0 +1,16 @@
|
||||
[
|
||||
"Area access GUID 26: revision=1 map=0 area=1497 factionMask=2 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=2 allowed=0",
|
||||
"Area access GUID 26: revision=1 map=0 area=5342 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=1 allowed=1",
|
||||
"Area access GUID 26: revision=1 map=0 area=5144 factionMask=0 minLevel=80 maxLevel=82 gap=5 knownLevel=1 preferFlight=0 nodeMask=2 allowed=0",
|
||||
"Area access GUID 32: revision=1 map=369 area=2257 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=1 allowed=0",
|
||||
"Area access GUID 32: revision=1 map=0 area=4411 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=1 allowed=0",
|
||||
"Area access GUID 32: revision=1 map=0 area=1519 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=3 allowed=0",
|
||||
"Area access GUID 26: revision=1 map=530 area=3703 factionMask=3 minLevel=60 maxLevel=85 gap=5 knownLevel=1 preferFlight=1 nodeMask=3 allowed=1",
|
||||
"Area access GUID 32: revision=1 map=530 area=3703 factionMask=3 minLevel=60 maxLevel=85 gap=5 knownLevel=1 preferFlight=1 nodeMask=3 allowed=1",
|
||||
"Area access GUID 26: revision=1 map=571 area=4564 factionMask=3 minLevel=68 maxLevel=85 gap=5 knownLevel=1 preferFlight=1 nodeMask=3 allowed=0",
|
||||
"Adventure catalogs reloaded.",
|
||||
"Area access GUID 26: revision=2 map=0 area=5342 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=0 allowed=0",
|
||||
"Area access GUID 26: revision=3 map=0 area=5342 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=1 allowed=1",
|
||||
"Adventure catalog reload failed; check migration.",
|
||||
"Area access GUID 26: revision=3 map=0 area=5342 factionMask=1 minLevel=1 maxLevel=85 gap=5 knownLevel=1 preferFlight=0 nodeMask=1 allowed=1"
|
||||
]
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"online_generated_bots": 110,
|
||||
"checked_day_slots": 2640,
|
||||
"empty_locations": 0,
|
||||
"positions_without_declared_area": 298,
|
||||
"violations": []
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
test_adventure_area_policy.py
|
||||
Area inheritance, faction intersection, level limits, flight overrides and invalid data passed.
|
||||
|
||||
test_adventure_area_segment.py
|
||||
Segment geography cache, faction isolation, reload permissions, lazy completion and terrain swaps passed.
|
||||
|
||||
test_adventure_behavior_policy.py
|
||||
24-hour generation, shared intents with changing destinations, broad location classification and repetition penalties passed.
|
||||
|
||||
test_adventure_day_persistence.py
|
||||
Production day planner: all 24 TINYINT slots restored across logins, incomplete/old-day replacement, full transaction and curiosity/level weighting passed
|
||||
|
||||
test_adventure_intent_state.py
|
||||
Production intent arrival, failed/partial travel, deadlines and safe schedule handover passed.
|
||||
|
||||
test_graph_probe_cache.py
|
||||
Graph probe cache: exact directed/map/instance keys, successful geometry only, invalidation and bounded storage passed
|
||||
|
||||
test_free_flight_planner.py
|
||||
ground planner regressions and dynamic flight/node/location/virtual-exit integration passed
|
||||
|
||||
test_flight_policy.py
|
||||
Flight native eligibility, license/profile/zone policy, RP costs and fail-safe return decisions passed.
|
||||
|
||||
test_adventure_group_plan.py
|
||||
Production group plans: leader meeting/goal/deadline inheritance, untouched personal day, manual preparation and instance-state guards passed.
|
||||
Production group travel: distinct slots, phase169 cliff safety, width, mounts, flight/kick landing, taxi grace, portal queue, bounded separation and recorded-road validation passed
|
||||
ground planner regressions and dynamic flight/node/location/virtual-exit integration passed
|
||||
@@ -0,0 +1,88 @@
|
||||
# Gebietskatalog: technische Abnahme vom 29.10.2026
|
||||
|
||||
Branch `feature/clientless-player-core`, Basiscommit `0173a434f4`, Änderungen
|
||||
noch nicht committet. Ausschließlich dedizierter Testserver und dessen Datenbank.
|
||||
|
||||
## Implementierung
|
||||
|
||||
- Gebietskatalog und Vorfahren: Fraktionsschnittmenge, Mindestlevel mit
|
||||
konfigurierbarer Toleranz, ererbte Flugpräferenz; unbekannte Freiland-Levelbereiche
|
||||
unter Stufe85 gesperrt. Keine obere Sperre für Heimkehrer über dem Gebietslevel.
|
||||
- Tagesplanung prüft Metadaten und native Gebietsauflösung der Zielkoordinaten.
|
||||
Beim Laden/Reload nur illegale Ziele ersetzen; Intents/Stunden bleiben bestehen.
|
||||
Die neuen Levelbereiche ersetzen die alte Tabelle als Laufzeitquelle.
|
||||
- Nodefreigaben für sämtliche Nodearten, automatische Flugmeisterzuordnung aus
|
||||
nativen NPC-Fraktionsvorlagen einschließlich Spawn-NPCflag-Overrides. Neutrale
|
||||
Meister bleiben beidseitig erreichbar; ungeklärte Zuordnungen werden gesperrt.
|
||||
- TravelGraph, virtuelle Brücken/Ein-/Ausstiege, tatsächliche MMAP-/aufgezeichnete
|
||||
Bodenwege, Flugtaxiabschnitte und freie Flüge berücksichtigen Zugangsregeln.
|
||||
Tiefenbahn und Sturmwind–Rut'theran-Schiff explizit Allianz. Hauptstadtportale
|
||||
prüfen ihr Zielgebiet, einschließlich direkter Portalfolge bei Spielergruppen.
|
||||
- `clientless adventure reload` übernimmt Regeln ohne Build/Installation/Restart.
|
||||
Ein ungültiger Gebietssnapshot ersetzt den bisherigen nicht.
|
||||
- Geometrieproben werden zwischen Bots wiederverwendet, inklusive nativer
|
||||
Terrain-Swaps. Berechtigungen bleiben von Fraktion/Level/aktuellem Katalog
|
||||
abhängig. Die Fluggraphsuche verwirft vor Terrainproben mathematisch sicher
|
||||
Verbindungen, die eine schon gefundene Route nicht verbessern können.
|
||||
|
||||
## Nachweise
|
||||
|
||||
Build mit unveränderter Debug-CMake-Konfiguration erfolgreich. Letztes Buildlog
|
||||
`/tmp/vcore-area-build-verified.log`; Installation jeweils erst nach beendetem
|
||||
Worldserver. Zehn Testprogramme bestanden (siehe `tests.log`), darunter echte
|
||||
Produktionsfunktionen für Planwiederherstellung, verbotene virtuelle Routen trotz
|
||||
Geometriecache, Segmentcache/Fraktionswechsel/Reload, Flugpolitik und Gruppenreise.
|
||||
|
||||
`live-access.json` dokumentiert native Serverdiagnosen:
|
||||
|
||||
- Arthoran: Unterstadt verboten, Eisenschmiede erlaubt, Vashj'ir verboten.
|
||||
- Aldren: Tiefenbahn und Allianzschiff verboten.
|
||||
- Neutraler Portalnode nach Sturmwind: nodeMask3, dennoch Horde verboten.
|
||||
- Neutraler Shattrath-Flugknoten: beide Fraktionen erlaubt.
|
||||
- Dalaran: Arthoran mit Stufe60 wegen Mindestlevel68/Toleranz5 ausgeschlossen.
|
||||
- Taxi6 im laufenden Betrieb gesperrt, per Reload wirksam, Originalwert wieder
|
||||
hergestellt und erneut erlaubt. Kein Build/Restart zwischen diesen Schritten.
|
||||
- Absichtlich ungültige Flugpräferenz2: Reload abgewiesen, gültiger Snapshot
|
||||
weiter verwendet; DB-Originalwert anschließend wiederhergestellt.
|
||||
|
||||
`plans-110.json`: Alle110 Bots geladen, 2640 persistierte Tagesplanblöcke geprüft,
|
||||
keine leeren Ziele und keine Verstöße in den hinterlegten Gebietszuordnungen.
|
||||
298Slots hatten keine explizite Gebiets-ID; diese Zahl umfasst Mehrfachnutzung
|
||||
derselben Location. Ihre Koordinaten prüft der Produktionsplaner nativ, sie sind
|
||||
nicht Teil der zusätzlichen Metadatenprüfung dieses SQL-Audits. Instanzeingänge
|
||||
können als Metadatum die Instanz-Area führen, obwohl ihr tatsächlicher Worldpoint
|
||||
außerhalb liegt; Kartentypen sind deshalb im Audit berücksichtigt.
|
||||
|
||||
## Grenzen und aufgetretene Probleme
|
||||
|
||||
Keine visuelle Gameplay-Abnahme. Wegpunkte werden mit höchstens40Yards Abstand
|
||||
geprüft, nicht jeder mathematische Punkt einer Gebietsgrenze. Bereits laufende
|
||||
native Flüge/Transporte werden bei Reload nicht gewaltsam abgebrochen. Bereits
|
||||
gestrandete Bots werden nicht teleportiert. Die früher beobachteten Taxi-Hänger
|
||||
und Todesschleifen sind damit nicht als generell behoben nachgewiesen.
|
||||
|
||||
141der455 aktiven Taxinodes konnten keinem benutzbaren statischen Flugmeister
|
||||
zugeordnet werden und bleiben zunächst geschlossen;314 wurden zugeordnet.
|
||||
Explizite NPC-Spawn-Bindungen sind über die Nodezugangstabelle möglich.
|
||||
|
||||
Ein anfänglicher SQL-Kollationskonflikt wurde durch die zur bestehenden
|
||||
Nodetabelle passende `utf8mb4_unicode_ci`-Kollation behoben. In einem frühen
|
||||
Testshutdown mit zuvor deaktivierten Botkatalogen erschien ein `GetMap`-Assert
|
||||
nach `Halting process`; bei den nachfolgenden Shutdowns nicht reproduziert.
|
||||
Rohlog dafür: `/tmp/vcore-area-start-20261029.log`. Kein solcher Assert während
|
||||
des anschließenden Laufs mit110Bots beobachtet.
|
||||
|
||||
Kalte und große Routenprüfungen verursachen im Debug-Build weiterhin einzelne
|
||||
mehrsekündige Pausen. Die Caches und Kostenuntergrenze begrenzen Zusatzarbeit,
|
||||
ersetzen aber keine gesonderte weitere Performancearbeit. Bekannte fehlende
|
||||
Mapdateien719/736 und Worlddatenfehler bleiben unabhängig davon vorhanden.
|
||||
|
||||
## Letzter installierter Stand
|
||||
|
||||
Nach dem abschließenden Gruppenportal-Guard und der nativen NPCflag-Override-
|
||||
Korrektur erneut gebaut und installiert. Frischer Start in
|
||||
`/tmp/vcore-area-start-verified-20261029.log`, PID247021. Ready-Meldung, Prozess,
|
||||
Port8085 und native Population110/0pending/errorleer geprüft. Alle vier Pools
|
||||
50/5/50/5 vollständig online. Erneuter Audit2640Slots ohne leere Ziele oder
|
||||
Metadatenverstöße. Frische Zugriffsproben siehe `final-server-smoke.log`.
|
||||
Keine ADVENTURE_DISABLED-, Assertion- oder SQL-Kollationsmeldung in diesem Start.
|
||||
@@ -0,0 +1,13 @@
|
||||
gameobject_spawn_id gameobject_entry spell_id id enabled from_node_key to_node_key allowed_factions
|
||||
200624 207692 94565 1798 1 portal_go_200624_source portal_go_200624_target 1
|
||||
200625 207693 84515 1799 1 portal_go_200625_source portal_go_200625_target 1
|
||||
200626 207695 94564 1800 1 portal_go_200626_source portal_go_200626_target 1
|
||||
200627 207694 85545 1801 1 portal_go_200627_source portal_go_200627_target 1
|
||||
211257 207690 90244 1808 1 portal_go_211257_source portal_go_211257_target 2
|
||||
211258 207689 84513 1803 1 portal_go_211258_source portal_go_211258_target 2
|
||||
211259 207687 94564 1804 1 portal_go_211259_source portal_go_211259_target 2
|
||||
211260 207686 82621 1805 1 portal_go_211260_source portal_go_211260_target 2
|
||||
211264 206595 88341 1806 1 portal_go_211264_source portal_go_211264_target 2
|
||||
219028 207688 94565 1807 1 portal_go_219028_source portal_go_219028_target 2
|
||||
220365 206594 88339 1802 1 portal_go_220365_source portal_go_220365_target 1
|
||||
220366 207691 90245 1809 1 portal_go_220366_source portal_go_220366_target 1
|
||||
|
+20
@@ -0,0 +1,20 @@
|
||||
Native portal click sent: bot=35 spawn=200624 entry=207692. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=35 spawn=200625 entry=207693. Check teleport completion and cast diagnostics.
|
||||
[?2004hTC>Native portal click sent: bot=35 spawn=200626 entry=207695. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=35 spawn=200627 entry=207694. Check teleport completion and cast diagnostics.
|
||||
[?2004hTC>Native portal click sent: bot=35 spawn=220365 entry=206594. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=35 spawn=220366 entry=207691. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=36 spawn=219028 entry=207688. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=36 spawn=211258 entry=207689. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=36 spawn=211259 entry=207687. Check teleport completion and cast diagnostics.
|
||||
[?2004hTC>Native portal click sent: bot=36 spawn=211260 entry=207686. Check teleport completion and cast diagnostics.
|
||||
TC> Area access GUID 35: revision=1 map=0 area=5057 factionMask=0 minLevel=80 maxLevel=82 gap=5 knownLevel=1 preferFlight=0 nodeMask=-1 allowed=0
|
||||
TC> Area access GUID 35: revision=1 map=0 area=5057 factionMask=0 minLevel=80 maxLevel=82 gap=5 knownLevel=1 preferFlight=0 nodeMask=-1 allowed=0
|
||||
Native portal click sent: bot=36 spawn=211264 entry=206595. Check teleport completion and cast diagnostics.
|
||||
Native portal click sent: bot=36 spawn=211257 entry=207690. Check teleport completion and cast diagnostics.
|
||||
TC> Action GUID 35: state=Failed action='travel_to_node' target='' targetGuid=0 entry=0 detail='destination node denied by area/node catalog'
|
||||
[?2004hTC>Native portal click sent: bot=36 spawn=211264 entry=206595. Check teleport completion and cast diagnostics.
|
||||
[?2004hTC>Native portal click sent: bot=36 spawn=211264 entry=206595. Check teleport completion and cast diagnostics.
|
||||
Area access GUID 36: revision=1 map=0 area=5057 factionMask=0 minLevel=80 maxLevel=82 gap=5 knownLevel=1 preferFlight=0 nodeMask=3 allowed=0
|
||||
TC> Area access GUID 36: revision=1 map=0 area=5057 factionMask=0 minLevel=80 maxLevel=82 gap=5 knownLevel=1 preferFlight=0 nodeMask=3 allowed=0
|
||||
Action GUID 36: state=Failed action='travel_to_node' target='' targetGuid=0 entry=0 detail='destination node denied by area/node catalog'
|
||||
Loaded 100 of 759 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user