Implement clientless transports, Lua reload and same-map portals

Add native transport recording and execution with grid lifecycle handling, clientless teleport acknowledgements, and regression tests. Support targeted same-map portal imports and preserve disabled taxi nodes. Document live transport and portal verification and the remaining portal inventory.
This commit is contained in:
Nico committed 2026-10-26 11:27:56 +01:00
1 parent 01a9ba4b0b
commit 1164a72ea3
40 files changed
+4533 -163

No files matched your search

+2
View File
@@ -1 +1,3 @@
*.sql
!2026_10_25_00_clientless_transport.sql
!2026_10_26_00_clientless_disable_taxi_585.sql
@@ -0,0 +1,27 @@
-- Vcore CPC: one shared embark/disembark node per physical stop.
-- Apply explicitly to the dedicated test world database. No routes are seeded.
CREATE TABLE IF NOT EXISTS vcore_clientless_transport_stop (
node_key varchar(100) NOT NULL,
transport_entry int unsigned NOT NULL,
transport_spawn int unsigned NOT NULL,
map int unsigned NOT NULL,
dock_x float NOT NULL, dock_y float NOT NULL, dock_z float NOT NULL, dock_o float NOT NULL,
period_ms int unsigned NOT NULL,
stand_name varchar(100) NOT NULL,
PRIMARY KEY (node_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS vcore_clientless_transport_point (
node_key varchar(100) NOT NULL,
point_index int unsigned NOT NULL,
on_transport tinyint unsigned NOT NULL,
x float NOT NULL, y float NOT NULL, z float NOT NULL, o float NOT NULL,
PRIMARY KEY (node_key,point_index)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS vcore_clientless_transport_stand (
transport_entry int unsigned NOT NULL,
name varchar(100) NOT NULL,
x float NOT NULL, y float NOT NULL, z float NOT NULL, o float NOT NULL,
PRIMARY KEY (transport_entry,name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@@ -0,0 +1,11 @@
-- Explicit test-TravelGraph correction. No changes to WoW taxi definitions/NPCs.
START TRANSACTION;
UPDATE vcore_clientless_travel_node
SET enabled=0,comment='Disabled: taxi 585 is not a regular player flight point (GM verified in Ruttheran)'
WHERE node_key='taxi_585';
UPDATE vcore_clientless_world_point
SET enabled=0,comment='Disabled: taxi 585 is not a regular player flight point (GM verified in Ruttheran)'
WHERE point_key='taxi_585';
UPDATE vcore_clientless_travel_edge SET enabled=0
WHERE from_node_key='taxi_585' OR to_node_key='taxi_585';
COMMIT;