Skip to content

Releases: ResurrectedTrader/d2bsng

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 19:44
5a205f3

API extended for Reign of the Warlock

  • Methods: StashTab.withdraw(), StashTab.deposit(), getDesecratedZones(), an optional gameType argument on createCharacter()
  • Enums: GameType.RotW, CharacterClass.Warlock, StashWithdrawTarget, DesecratedZoneSource, the Chronicle bits in ItemFlag

1.14d API changes

  • createCharacter works on 1.14d: types the name, sets hardcore / ladder / expansion and confirms, also from an empty character list (#86, #87)
  • me.ladder is a boolean from the character's Ladder flag; it was a number that was always 0 (#69)
  • me.maxdiff no longer includes the weapon-switch bit (#69)
  • getTradeInfo(1) returns the trade partner's name instead of your own (#77)
  • createGame defaults to the highest available difficulty (#64)
  • sendDDE throws when DDE cannot be set up, as d2bs did (#85)
  • StashTab.click(item) (#65)
  • unit.preciseX / preciseY, and fractional drawable positions (#66)
  • SQLite reads and binds BLOBs as ArrayBuffer (#73)
  • legacySkillNames flag (on by default): getSkillByName keeps the 1.14d skill names (#67)

Fixes

  • quitOnError leaves the game on an error in the bot's own script; it only fired for console scripts (#85)
  • say() no longer overruns the game's stack or chat buffers; long messages are cut to what the game accepts (#85)
  • getUIFlag() with an id past the game's UI table returns false instead of reading past it (#85)
  • Room data shared between scripts is no longer freed while another script still uses it (#84)

Improvements

  • Teleport paths: about 40% fewer casts, no more one-cell hops along walls (#72)
  • "Pause all" keeps heartbeat scripts running (#75)
  • Character-state snapshot: adds backend, gameType, lastUsedSkill and stack counts; the backend version string is now "LOD/1.14d" (#68)

Docs and typings

  • Enum-typed values in the docs and d2bsng.d.ts where they were plain numbers (#60, #64)
  • A description for every enum (#82)
  • Corrected docs for revive, clickMap, getMouseCoords and screenToAutomap (#76)

Full changelog: v2.2.0...v2.3.0

Full Changelog: v2.2.0...v2.3.0

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 21:48
6e262d9

Breaking

  • The [settings] keys V8Flags, V8ThreadPoolSize and V8SingleThreaded in d2bs.ini are now EngineFlags, EngineThreadPoolSize and EngineSingleThreaded. The old names are not read, so rename them or the defaults apply.
  • d2bs launch switches are removed from the process command line after they are parsed, so the game no longer sees them.

Scripting

  • scriptBroadcast() and script.send() no longer throw DataCloneError for an argument that cannot be cloned. That argument arrives as undefined, the others still arrive, and the sender sees no error, as in the original d2bs.
  • Screen-hook click and hover handlers are looked up when the event runs, so a handler cleared or replaced after the click is no longer called.

Fixes

  • Game state is read under the game lock for the whole read, not only for the lookup. A unit that disappears while a script reads it now reads as gone (undefined) instead of 0 or "".
  • These no longer read game memory unlocked: clickItem, belt size, scrolling-text checks, collision checks and party clicks.
  • A failed speedhack install no longer leaves it half-installed, which had broken later installs and removals.
  • Startup stops cleanly if the input hooks fail to install.

Engine and dependencies

  • V8 14.0 → 15.6.8.
  • SQLite 3.53.4, ImGui 1.92.9, ixwebsocket 12.0.1, spdlog 1.17, fmt 12.2 and a newer Microsoft Detours.

Logging and console

  • Each profile writes a rotating log file next to d2bs.ini, so instances running side by side don't share one.
  • Enum values print by name in logs.
  • The Settings panel shows the V8 version.

Full Changelog: v2.1.6...v2.2.0

v2.1.6

Choose a tag to compare

@github-actions github-actions released this 15 Sep 07:15
a1cff11

Commits

  • build: finish the LTO and CI-parallelism change (#20) (a1cff11)

Full Changelog: v2.1.5...v2.1.6

v2.1.5

Choose a tag to compare

@github-actions github-actions released this 13 Sep 18:37
706469f

Commits

  • perf: Speed up CI + proper LTO (706469f)

Full Changelog: v2.1.4...v2.1.5

v2.1.4

Choose a tag to compare

@github-actions github-actions released this 13 Sep 17:35
db163e5

Commits

  • perf: Reduce CPU usage by implementing -sleepy (db163e5)
  • feat: Explain how to use PlugY (d324fdf)
  • feat(lod114d): PlugY multi-page stash through the StashTab contract (#19) (06b26c7)
  • feat(stash): StashTab contract, in preparation for D2R and PlugY support (#18) (cdeab58)

Full Changelog: v2.1.3...v2.1.4

v2.1.3

Choose a tag to compare

@github-actions github-actions released this 12 Sep 19:08
fef1ad1

Commits

  • perf(capture): stream the character-state fingerprint instead of building JSON (fixes #11) (#17) (fef1ad1)
  • fix: Commit missed files preventing analytics (91f8a20)
  • feat: Add CPU usage profiler (#16) (fdff333)

Full Changelog: v2.1.2...v2.1.3

v2.1.2

Choose a tag to compare

@github-actions github-actions released this 08 Sep 21:53
7c3e178

Commits

  • style: apply clang-format (69bf828)
  • fix(capture): report equip dimensions, and fingerprint the dimensions (707904c)
  • feat(lod114d): answer GetGridSize for the equip slots and the store (17f380c)
  • fix(capture): report the belt's real row count (d9f94bb)
  • feat(lod114d): register belts.txt in the table schema (3c5a6e6)
  • docs(api): correct what the instance tracker's row recording guards (00c6e2e)
  • fix(api): return an instance count to the row that took it (06b9376)
  • refactor(txt): build the schema index without a raw new (5d31445)
  • refactor(utils): extract CaseInsensitiveMap out of MPQStats (0446dcd)
  • refactor(txt): one nested map instead of two parallel statics (af57d91)
  • refactor(capture): name the equip-slot size, correct the belt comment (294aa1f)
  • fix(txt): decode the affixes transform column (7ca74d5)
  • perf(txt): index table and column lookups instead of scanning (a757848)
  • perf(api): count V8 instances without a global lock (5c9ccfa)
  • refactor(capture): call GetGridSize directly, name the constant sizes (4f057fb)
  • fix(capture): keep dimensions out of the container fingerprint (93f7db3)
  • fix(capture): report the layout size only, no fallback or fit-to-items (9329bc2)
  • fix(capture): report container grid size from the game layout (4280f97)

Full Changelog: v2.1.1...v2.1.2

v2.1.1

Choose a tag to compare

@github-actions github-actions released this 01 Sep 21:53
e3dedf2

Commits

  • fix: Small performance improvements (6000b35)
  • fix: Remove unsued analyticuser flag (8289c74)
  • feat: Post releases to discord (e7c1698)

Full Changelog: v2.1.0...v2.1.1

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 15:25
ffb67ed

Commits

  • feat: Code cache for fast startup (ffb67ed)
  • feat: Performance improvements (456451c)
  • feat: Viewer (1dc9239)
  • feat: Expose new APIs needed for new character state (4adadff)
  • fix: Bump MOO fork version (3503975)
  • feat: Add analytics support (3c724f3)
  • fix: Fold constants (fe95eb4)

Full Changelog: v2.0.8...v2.1.0

v2.0.8

Choose a tag to compare

@github-actions github-actions released this 22 Jul 21:39
fffbe30

Commits

  • feat: Document command line options in docs (fffbe30)
  • feat: Add getRealms (b492481)
  • feat: Restructure project to better support new frontends and backends (2db46b1)
  • fix: Fix sockss5 proxy (credit to PresidentStyx) (3a2c3fb)

Full Changelog: v2.0.7...v2.0.8