Commit Graph
3371 Commits
Author SHA1 Message Date
luis 0a20248cb4 Scripts/FSB: AB combat and state improvement
- bots will now roll an attack/defend state based on rules and on how many active attackers/defenders there. this is to avoid tons of bots clamping on 1 capture point and ignoring the others
- bots will not focus on combat when enemies are detected at capture point defense state.
2026-07-16 18:41:39 -03:00
Céfiro_Caecias 8b09ade04b DB/World: Stormwind Fixes 2026-07-16 18:36:59 -03:00
luis e3663418eb Scripts/FSB: recovery handler now actually handles the new storage flag isRecovering 2026-07-16 18:36:44 -03:00
stevebone a5fbf6d971 Scripts/FSB: rewrite buffing sequence to avoid loops for druid form - buff - form and so on
Signed-off-by: luis <[email protected]>
2026-07-16 18:31:26 -03:00
luis 91ce237705 Scripts/FSB: fixed but with walking corpses of dead bots and merge more 2026-07-16 18:30:53 -03:00
stevebone 7824ce2d7b Scripts/FSB: add a botGenericData storage for various fields bots need instead of adding via separate base ai fields
Signed-off-by: luis <[email protected]>
2026-07-16 18:25:12 -03:00
luis 95c2d4ba8a Scripts/FSB: Start work on AB capturing points and changing state from attack to defend 2026-07-16 18:24:29 -03:00
luis 36fd542b6f Core/GO: update capture point objects to be used with Unit instead of only Player 2026-07-16 18:14:08 -03:00
luis d4ee0a4ecf Gen ai bot bg 2026-07-16 16:19:03 -03:00
stevebone aa60ec645b Update Followship_bots_chatter_handler.h
add missing include

Signed-off-by: luis <[email protected]>
2026-07-16 16:10:03 -03:00
luis d99e16a241 Scripts/FSB: initial bot movement in AB 2026-07-16 14:59:57 -03:00
luis 3a91186dd3 Scripts/FSB: move state bg chat to the new bg chat handler 2026-07-16 14:41:19 -03:00
stevebone 9c5aed82a6 Scripts/FSB: remove initial weird states from bots at init (stand, emote state, auras).
Signed-off-by: luis <[email protected]>
2026-07-16 14:34:25 -03:00
luis 39eaae3929 Scripts/FSB: moving bg chat to its own handler 2026-07-16 14:33:48 -03:00
stevebone b16792706b Scripts/AB: enable scoreboard for FSB in AB BG
Signed-off-by: luis <[email protected]>
2026-07-16 13:46:23 -03:00
luis 05fab8a699 Scripts/FSB: init Arathi Basin BG 2026-07-16 13:45:52 -03:00
luis 2abd6868a3 remove crash 2026-07-16 12:54:27 -03:00
Céfiro_Caecias 7a42c15a8e DB/World: Death Knigth Starting Zone Part 4 2026-07-15 14:18:08 -03:00
Céfiro_Caecias 90b139482e Update worldserver.conf.dist 2026-07-15 11:09:10 -03:00
Céfiro_Caecias 81622d18b4 DB/World: DBErrors 2026-07-15 10:25:46 -03:00
Céfiro_Caecias bde2702f70 Update README.md 2026-07-15 09:25:26 -03:00
luis 1a859413e2 CMSG_OPEN_MISSION_NPC tested working 2026-07-15 04:34:47 -03:00
luis cae9bfef2d garr mission table opcode 2026-07-15 04:08:00 -03:00
luis b9d11e06ba shadowmoon part 2 2026-07-15 02:11:54 -03:00
luis b895df4a29 shadowmoon valley sniff fix 2026-07-15 01:41:37 -03:00
luis 16e56d3001 spawn de neuvo shadowmoon valley 2026-07-14 19:35:50 -03:00
luis 58f6c7195e CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS 2026-07-14 17:12:30 -03:00
luis 2cd13abaca CURRENCY_TRADERS_TENDER fix 2026-07-14 17:09:24 -03:00
luis 9f41d2fc27 debug 2026-07-14 17:02:16 -03:00
Céfiro_Caecias 64e7b91c1b DB/World: Orgrimmar Fixes 2026-07-14 16:44:35 -03:00
Céfiro_Caecias 442e9cf8ec DB/World: Death Knigth Starting Zone Part 3 2026-07-14 16:44:05 -03:00
luis 34486da6d6 fix bot issues 2026-07-14 16:33:56 -03:00
luis 8a638a8e5e Scripts/FSB: added bot pet teleport for non hired bots for now used in BG 2026-07-14 16:31:22 -03:00
luis 1b7a4cfcd9 Scripts/FSB: moved code from the main bot ai to dedicated methods 2026-07-14 16:29:37 -03:00
luis b459fb858c misc 2026-07-14 16:22:38 -03:00
luis f62bd72a87 commentator CMSG_COMMENTATOR_START_WARGAME 2026-07-14 16:02:33 -03:00
luis 1f3ee20d48 GET_PLAYER_INFO/COOLDOWNS -> SMSG_COMMENTATOR_PLAYER_INFO
Commentator player statistics for the spectated arena, wire byte-exact per the client
deserializer sub_7FF7290A19D0 / the 152-byte per-player record reader sub_7FF72906EFA0.

- CommentatorPlayerInfo (SMSG) writer: LeadingId, tracked-spell triple, PackedId, count, a
  trailing flag byte, then per player: PackedGuid, faction, specialization, two extra wire
  bytes, kills/deaths (u16), damage done/taken + healing done/taken (u32), solo-shuffle round
  win/loss (u8), and the four tracked-spell/cooldown array counts.
- CommentatorGetPlayerInfo / CommentatorGetPlayerCooldowns (CMSG) readers (the cooldowns
  request carries the player GUID + a {spellID, category} list).
- Handlers (commentator-gated) answer for the arena the session is spectating (the request's
  context fields are opaque offline, but the spectated instance identifies the match
  unambiguously). Scalar stats are filled from the live BattlegroundScore
  (KillingBlows/Deaths/DamageDone/HealingDone) + spec/faction from the player.

The four per-player tracked-spell/cooldown arrays are sent empty (count = 0): their structure
is known but the 44-byte cooldown record's optional-field layout is not confirmed, so we do
not fabricate cooldown timings (empty arrays are byte-exact regardless of array ordering).
This is documented in the dossier as the sole residual. Builds clean.
2026-07-14 15:52:34 -03:00
luis 77a57fd5f7 spectator entry (ENTER/EXIT/SPECTATE + Battleground spectators)
The observable core: a commentator can now enter a live arena as an invisible observer,
follow a player, and leave. Wire from the client serializers (see dossier).

Battleground spectator support:
- Adds a spectator set (Add/Remove/HasSpectator/GetSpectators). Spectators are not
  participants (never in m_Players), so EndBattleground now explicitly ejects them - restoring
  GM state, clearing SpectateTarget + BattlegroundId, and teleporting them to their entry point.

Handlers (RBAC/commentator-gated):
- ENTER_INSTANCE { MapID, InstanceIDLow, InstanceIDHigh, bit }: resolves the arena from
  BattlegroundMgr::GetActiveArenas by instance+map, saves the entry point, sets the
  commentator's BattlegroundId so BattlegroundMap::CannotEnter admits them, becomes an inert
  game-master observer, and teleports into the arena start location.
- EXIT_INSTANCE {}: only acts on a tracked spectator - removes it, clears SpectateTarget,
  drops GM, teleports back to the entry point.
- SPECTATE { string TargetName }: sets the native PlayerData::SpectateTarget UF to the named
  player, but only if they are in the arena being spectated (else clears it).
- New Player::SetSpectateTarget writes the PlayerData::SpectateTarget update field.
2026-07-14 15:46:14 -03:00
luis 3fcf584bd1 feat(commentator): GET_MAP_INFO -> SMSG_COMMENTATOR_MAP_INFO from live arenas
Now that the wire is fully recovered offline (see dossier), this builds the first real
data path: a commentator queries the active-match catalogue and the server answers from
live arena state.

- CommentatorMapInfo (SMSG) writer, byte-exact per the client deserializer sub_7FF7290A1700:
  uint64 DirectoryId, uint32 MapCount, Maps[]{ TeamSize, MinLevel, MaxLevel, uint16 Field3,
  Instances[]{ MapID, {u32,u32,u8}, uint64 InstanceID, Status, Team[2]{ PackedGuid,
  Players[]{ PackedGuid, {u32,u32,u8} } } } }. All fixed-width LE; guids PackedGuid.
- CommentatorGetMapInfo (CMSG) reader: { string TargetPlayer } (6-bit length prefix, matching
  the client serializer - the extractor had mislabelled this as u8).
- BattlegroundMgr::GetActiveArenas(): new accessor enumerating in-progress arena instances
  from bgDataStore.
- HandleCommentatorGetMapInfo (RBAC/commentator-gated): groups active arenas by map into the
  client's map->instances catalogue, filling TeamSize (arena type), min/max level, instanceID,
  status, and each of the 2 teams' players by GUID (+ best-guess spec/faction in the per-player
  triple). Routed STATUS_LOGGEDIN/THREADUNSAFE; SMSG registered STATUS_NEVER (sendable).

The handful of fields with no C_Commentator getter (the opaque u64 blob id, the uint16 map
field, and the {u32,u32,u8} triples) are named FieldN and sent as honest best-guesses/0 - not
fabricated - and documented in the dossier as the only residual sniff items. Builds clean.
2026-07-14 15:40:07 -03:00
Céfiro_Caecias 7d9a0141c8 DB/World: Death Knigth Starting Zone Part 2 2026-07-14 15:36:46 -03:00
luis aa160f5761 Commentator system part 1 2026-07-14 15:16:09 -03:00
luis 9117de2f75 CMSG_CHROMIE_TIME_SELECT_EXPANSION, CMSG_CHANGE_MONUMENT_APPEARANCE 2026-07-14 14:40:27 -03:00
luis f23c769dbf CMSG_BATTLEMASTER_JOIN_SKIRMISH 2026-07-14 14:33:51 -03:00
luis b69a1ca60c CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE 2026-07-14 14:32:51 -03:00
luis df7f27810f CMSG_BATTLEMASTER_JOIN_RATED_BG_BLITZ 2026-07-14 14:31:50 -03:00
luis 462d7c102b CMSG_BATTLEMASTER_JOIN_BRAWL 2026-07-14 14:30:32 -03:00
luis b502398137 CMSG_ACCEPT_SOCIAL_CONTRACT 2026-07-14 14:28:04 -03:00
luis aa6fdf27ca inertia opcodes 2026-07-14 14:12:23 -03:00
luis 8280ec5e84 Core/Misc: Update Emote enum for 12.0.7 2026-07-14 14:02:53 -03:00
luis acaa2c9fc7 crashlogs 2026-07-14 13:48:30 -03:00