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