Skip to content

add support for negative HealOverTime spells - #4304

Merged
LtRipley36706 merged 2 commits into
ACEmulator:masterfrom
gmriggs:ghostwalk
Apr 6, 2025
Merged

LtRipley36706 merged 2 commits into
ACEmulator:masterfrom
gmriggs:ghostwalk

Conversation

@gmriggs

@gmriggs gmriggs commented Mar 27, 2025 •

Copy link
Copy Markdown
Collaborator

Thanks to @OptimShi for tracking retail / wiki information

https://asheron.fandom.com/wiki/Spectral_Fountain_Sip

@LtRipley36706
LtRipley36706 merged commit 2961304 into ACEmulator:master Apr 6, 2025
WarlockHolmez added a commit to daralet-ac/ACE that referenced this pull request Oct 7, 2026
…m upstream ACE (#1284)

* Port exploit and security fixes from upstream ACEmulator/ACE

- Block allegiance mansion recall / house actions targeting an Apartment
  (HouseType < Villa let Apartment through) - upstream ACEmulator#4330
- Clear a stale IsAdvocate flag left over from a former Advocate account
  access level; command access trusts this flag - upstream ACEmulator#4502
- Make acehelp lookups case-insensitive, stop the console command thread
  when stdin is closed instead of spinning, and tidy reportbug/house-select
  - upstream ACEmulator#4502
- Re-check split amount with <= after the walk/pickup delay so a stack that
  shrank meanwhile cannot be split down to a zero-size source - upstream ACEmulator#4434
- Refuse attribute transfers while wielding items with attribute, vital or
  skill wield requirements; refuse lowering a skill below an equipped item's
  Training requirement; enforce ItemSpecializedOnly - upstream ACEmulator#4476
- Treat invincible creatures (not just players) as immune to spell
  projectiles, DoTs and spells; fix inverted fellow_kt_killer check; pass
  isWeaponSpell for new enchantment layers; trigger exhaustion when stamina
  hits 0 from an overdraw - upstream ACEmulator#4501
- Restrict GetMultiplicativeMod(PropertyFloat) to Float single-stat
  enchantments so other stat keys can't collide - upstream ACEmulator#4479
- Hotspots skip dead creatures and Health-type hotspots kill at 0 health
  - upstream ACEmulator#4408

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LDKfgWjXHL7EKz8foWrd5e

* Port bug fixes from upstream ACEmulator/ACE

- Cache ServerVersion.AutoDetect per connection string instead of opening an
  extra connection for every DbContext - upstream ACEmulator#4256
- Deep-copy book pages when creating a biota from a weenie, and return the
  correct index from AddPage - upstream ACEmulator#4470
- GDLE/Lifestoned adapter fixes (IID requirements, spellbook dedupe, emote
  Display/Amount64, empty cookbooks, IgnoreAuthor) - upstream ACEmulator#4470, ACEmulator#4471
- TimedEventHistory divide-by-zero / shortest event, drain the serialized
  shard queue fully, avoid double Destroy on generator reset - upstream ACEmulator#4471
- Treat Fellow* spells missing the FellowshipSpell flag (Kiss of the Grave,
  etc.) as fellowship spells - upstream ACEmulator#4425
- Null guards for Position distance helpers, fellowship full update and
  body part tables; WeenieClassName no longer throws for deleted weenies
  - upstream ACEmulator#4341, ACEmulator#4303
- Force log off characters stuck logging out for 15 minutes (only if that
  same player object is still online) - upstream ACEmulator#4175
- Support negative HealOverTime spells (record damage, harm message, death)
  - upstream ACEmulator#4304
- Set the slumlord ParentLink when loading a house and show purchase items
  as paid for owned houses - upstream ACEmulator#4238
- Fix jump_is_allowed null/creature check - upstream ACEmulator#4473
- Dat reader ends on the last sector via the next-sector pointer rather
  than size < blockSize - upstream ACEmulator#4275
- Give failure message shows the amount offered, not the whole stack
  - upstream ACEmulator#4486

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LDKfgWjXHL7EKz8foWrd5e

* Port HighRes DAT support from upstream ACEmulator/ACE

Adds the allow_highres_dat server property (off by default). When enabled,
the DDD interrogation advertises highres support (product id 0x4) so
clients use client_highres.dat, and the server validates and patches the
client's highres iterations like the other dats. The highres dat shares
DatFileId 1 with the portal dat, so interrogation responses are now told
apart by DatFileType ("HiFi").

Clients reporting 0 iterations for the cell or highres dat are no longer
treated as missing iterations (cells are downloaded on demand; a client
without the highres dat just doesn't use it).

Highres iterations are only built at startup when client_highres.dat is
present in the dat folder.

Upstream ACEmulator#4469

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LDKfgWjXHL7EKz8foWrd5e

* Port property allowlist for client appraisal/login from upstream

Appraisals used to send every property not marked [ServerOnly] (a
blocklist). They now send only properties tagged [AssessmentProperty], and
the login PlayerDescription Int64 properties now use [SendOnLogin] like the
other property types (an allowlist), matching upstream ACEmulator#4258.

- Retail properties take upstream's pcap-verified [AssessmentProperty] /
  [SendOnLogin] tags. [Ephemeral] (persistence) is unchanged.
- The fork's own properties keep their current behavior: those that were
  sent before are tagged [AssessmentProperty], those marked [ServerOnly]
  are not.
- WeaponOffense, SlayerDamageBonus and ProcSpellRate stay tagged because
  this server's custom appraisal text reads them.
- AppraisalHasAllowedWielder/Activator and the DefaultLocked unlocked state
  now read from the object, since those properties are no longer in the
  appraisal property bags (upstream ACEmulator#4474, ACEmulator#4475).
- Remove ClientProperties, ServerOnlyProperties and ServerOnlyAttribute.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LDKfgWjXHL7EKz8foWrd5e

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants