Every failed scheduled start overwrote the rolled Min/MaxInterval with a hard-coded 5 minutes and never restored it, so on a server that sits empty the scheduler degenerated into a permanent 5-minute poll. The moment the first player logged in, an event fired within one retry window and anchored on their exact position, with a server-wide announcement -- login ambush rather than a scheduled world event. It also wrote a retry line to gold-rush.log every 5 minutes forever (Debug defaults to 1). StartEvent now counts eligible anchors when the schedule expires, holds without consuming the interval while below MinPlayersOnline, and inserts GraceMinutes once the world repopulates. The count runs only on schedule expiry, never per world tick. New config: GoldRush.RetryMinutes (5), GoldRush.GraceMinutes (15), GoldRush.MinPlayersOnline (1). GraceMinutes = 0 rolls a fresh interval instead. GM-forced starts pass scheduled=false and bypass both gates. Verified with clang -fsyntax-only against the live build's compile flags. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019vTNrJGsprcjdjjjDJD5ZM
64 lines
3.2 KiB
Markdown
64 lines
3.2 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to `mod-gold-rush` will be documented in this file.
|
|
|
|
## [Unreleased — hallsworth fork]
|
|
|
|
### Fixed
|
|
- Bot routing is no longer a silent no-op. `Engine::ChangeStrategy` dispatches on the
|
|
first character of the strategy name and ignores anything without a `+`/`-`/`~`/`?`
|
|
prefix, so the bare `"new rpg"` calls did nothing. Now sends `"+new rpg"`, and only
|
|
to the non-combat engine, which is the only engine `AiFactory` ever adds it to.
|
|
- Temporary node lifetime is no longer 1000x too long. The `respawnTime` argument to
|
|
`Map::SummonGameObject` reaches `GameObject::SetRespawnTime(int32)`, which is in
|
|
seconds; the module was passing milliseconds, turning a 20-minute event into a
|
|
~14-day one. Nodes never expired on their own.
|
|
- A config reload during a live event no longer orphans its gameobjects. `LoadConfig`
|
|
cleared the tracked node list without despawning, leaving nodes in the world with
|
|
nothing left to remove them.
|
|
- Nodes are placed on real ground. Spawns previously reused the anchor's exact Z for
|
|
every scattered X/Y, so on sloped terrain they floated or sank. Placement now probes
|
|
ground height, rejects cliffs and lower floors, requires line of sight to the anchor,
|
|
and retries a few times before giving up on a node.
|
|
|
|
### Added
|
|
- `GoldRush.RetryMinutes` (default 5), `GoldRush.GraceMinutes` (default 15) and
|
|
`GoldRush.MinPlayersOnline` (default 1).
|
|
|
|
### Changed
|
|
- The scheduler no longer collapses to a fixed retry poll on an empty server. Previously
|
|
every failed attempt overwrote the rolled Min/MaxInterval with a hard-coded 5 minutes
|
|
and stayed there, so the first player to log in got an event announced on top of them
|
|
within one retry window. It now holds while the world is below `MinPlayersOnline`, and
|
|
waits `GraceMinutes` once the world repopulates before running. GM-forced starts
|
|
(`.goldrush start` / `teststart`) bypass both checks.
|
|
- Node scatter uses a square-root radius so points spread evenly across the disc
|
|
instead of bunching near the anchor.
|
|
- `DespawnHotspotNodes` resolves the map once instead of per node, and warns if the
|
|
map cannot be resolved.
|
|
- Dropped the redundant `SetRespawnTime` / `SetSpawnedByDefault` calls after
|
|
`Map::SummonGameObject`, which already does both.
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
- Standalone repository documentation in `README.md`.
|
|
- Initial `CHANGELOG.md` for tracking module releases.
|
|
- Clear documentation that `mod-playerbots` is a required dependency.
|
|
- Added a compatibility section describing the AzerothCore + Playerbots
|
|
expectations for this module.
|
|
|
|
### Changed
|
|
- Loosened Gold Rush hotspot selection so events can fall back to eligible
|
|
live-player zones when configured hotspots are unavailable.
|
|
- Improved GM messaging for zone eligibility failures.
|
|
- Allowed zone-based fallback when an exact configured sub-area anchor is not
|
|
available.
|
|
|
|
### Fixed
|
|
- Fixed `GoldRush.NodeEntries` parsing so configured node IDs are actually
|
|
loaded from `gold_rush.conf`.
|
|
- Fixed startup behavior where Gold Rush could appear to have no valid node
|
|
entries even when configuration values were present.
|
|
- Fixed `teststart` and scheduler flows that were overly strict about allowed
|
|
zones.
|