Skip to content

improved RunRate handling for players - #2417

Merged
gmriggs merged 5 commits into
ACEmulator:masterfrom
gmriggs:sync-runrate
Nov 15, 2019
Merged

gmriggs merged 5 commits into
ACEmulator:masterfrom
gmriggs:sync-runrate

Conversation

@gmriggs

@gmriggs gmriggs commented Nov 14, 2019 •

Copy link
Copy Markdown
Collaborator

this PR builds on top of #2415

key scenario: if i cast Slowness on another player who is running, that player's RunRate should be affected immediately on both the server and client

currently in master, the player will continue to run at the same speed, until they release/re-press a movement key on their client

some temporary developer debug commands have been added to help test this, /fast and /slow, which invisibly cast QuicknessSelf8 and SlownessSelf8, respectively. The /dispel command is also useful.

Other scenarios handled: any spells which affect quickness/run/strength, and the player raising their quickness/run/strength while running/sidestepping

The previous Exhaustion detection system has been updated with this, and hooks have been added for both the player going into and out of stamina==0. The exact behavior for stamina in retail when exhausted/burdened needs to be confirmed.

Update: it appears retail had the runrate update hooks for spells which affected quickness/run/strength, and for 'exhaustion start', but it was missing the automatic hooks for 'exhaustion done' and player clicking button to raise quickness/run/strength attributes/skills while running.

The server now defaults to retail runrate hooks by default (spells and exhaustion start), and a custom server option 'runrate_add_hooks' can be enabled if the server operators wants to add the missing events.

@gmriggs
gmriggs merged commit 641b09d into ACEmulator:master Nov 15, 2019
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