Implement AdventureBot class rotations, group roles and instance encounters
This commit is contained in:
1 parent
d3273c677e
commit
a758239da9
33 files changed
+5102
-66
No files matched your search
@@ -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 []
|
||||
Reference in new issue
Block a user