Akkadius
4b6ce1c19e
[Performance] Reworked how client to NPC aggro checks are made
...
- Before when reverse aggro checks were done (client to NPC), checks would happen every 750 millseconds where a client would
check an entire entity list with distance calcs and other checks for aggro, with many clients in a zone and many NPC's this would
add a lot of unecessary overhead. A temporary adjustment on 3/25 was made and upped the check to 6 seconds.
- Now, there is a new methodology to scanning. The client will build a cache list of NPC's within close range as defined in new rule:
RULE_INT(Range, ClientNPCScan, 300) and will also get any NPC that has an aggro range beyond that defined range to use in
the frequent checks for aggro, the result is far less overhead
- Client scanning changes when moving versus not moving, the client will scan aggro every 500 milliseconds while moving, and
3000 millseconds aggro check when not moving, with a 6000ms re-fetch for close NPC's
- A demo of these changes can be found here:
https://youtu.be/aGroiwLSTVU
2017-03-28 01:30:42 -05:00
Uleat
940f3b03e8
Fix for bot shadowknights casting ranger spells
2017-03-26 16:19:53 -04:00
Uleat
05e97f4c64
Oops! (don't attempt a commit when you have to go to the restroom...)
2017-03-26 13:51:03 -04:00
Uleat
8febc906a5
Merge branch 'master' of https://github.com/EQEmu/Server
2017-03-26 13:41:23 -04:00
Uleat
7309c11630
Updated glm library to 0.9.8.4 (from 0.9.6.1)
2017-03-26 13:41:14 -04:00
Akkadius
aa25946dc2
[Performance] Reduced CPU footprint in cases where a client is checking for aggro excessively every 750 millseconds. This has
...
been adjusted to 6 seconds per new rule RULE_INT(Aggro, ClientAggroCheckInterval)
- When zones have many players, with many NPC's, this adds up quickly
2017-03-26 00:03:51 -05:00
Uleat
e8a8647424
Fix for bots db update 9015 not triggering where update 9011 has not applied
2017-03-22 03:45:50 -04:00
Uleat
fa1edee790
Added clamp for EQEmuLogSys::LogSettings database values load
2017-03-17 20:37:48 -04:00
Michael Cook (mackal)
d04d6750a2
Allow base damage of 0 (ex slam) min damage done to 1
2017-03-15 13:22:45 -04:00
Uleat
2d24237aac
Added los movement logic to combat and follow code (los is rule-based and can by disabled by applying the optional 2017_03_14_mercs_use_pathing_rule.sql)
2017-03-14 23:23:42 -04:00
E Spause
79f9433dfa
Merc logic fix for heal spells - allows mercs to select fast healing spells as a 'standard' healing spell & new rule for unsuspend
2017-03-13 06:26:48 -04:00
E Spause
67a95b59a7
Merge remote-tracking branch 'refs/remotes/origin/master' into 2002_fixes
2017-03-12 23:20:55 -04:00
E Spause
09b9d398e2
Rule itself for MaxClientsSimplifiedLogic. Defaults to disabled (false)
2017-03-12 23:19:50 -04:00
E Spause
3dd0d43e96
Add a rule, MaxClientsSimplifiedLogic which allows for P99-style IP restrictions if enabled. Opcode handler for OP_WorldLogout in char sel.
...
Only uses ExemptAccountLimitStatus and MaxClientsPerIP. Also adds in an
opcode handler so CLEs are cleaned up at char select when ESC is
pressed.
2017-03-12 23:19:24 -04:00
Michael Cook (mackal)
bd364a4049
Merge pull request #591 from EQEmu/2002_fixes
...
Added an optional rule value that forces startzones to be the same as…
2017-03-12 19:21:05 -04:00
Akkadius
ab372b0f6b
- Implemented range rules for packets and other functions
...
RULE_INT ( Range, Say, 135 )
RULE_INT ( Range, Emote, 135 )
RULE_INT ( Range, BeginCast, 200)
RULE_INT ( Range, Anims, 135)
RULE_INT ( Range, SpellParticles, 135)
RULE_INT ( Range, DamageMessages, 50)
RULE_INT ( Range, SpellMessages, 75)
RULE_INT ( Range, SongMessages, 75)
RULE_INT ( Range, MobPositionUpdates, 600)
RULE_INT ( Range, CriticalDamage, 80)
- (Readability) Also cleaned up some formatting in messaging and packets so it is easier to understand what is going on with the code
2017-03-12 16:10:53 -05:00
Akkadius
14d09485eb
Implement new rule based ranges for various range based packet operations (performance)
...
- the defaults are set in the code and can be tweaked by sourcing utils/sql/git/optional/rule_values_range_update.sql
- Thanks to mackal for gathering live ranges, thanks to takp for initial numbers
- We would send 200 for combat updates and the client will only display <= range 54 anyways, these should help a lot in spammy combat
RULE_CATEGORY( Range )
RULE_INT ( Range, Say, 135 )
RULE_INT ( Range, Emote, 135 )
RULE_INT ( Range, BeginCast, 200)
RULE_INT ( Range, Anims, 135)
RULE_INT ( Range, DamageMessages, 50)
RULE_INT ( Range, SpellMessages, 75)
RULE_INT ( Range, SongMessages, 75)
RULE_CATEGORY_END()
2017-03-12 14:38:14 -05:00
Uleat
8cd6416754
Added ItemData::CheckLoreConflict()
2017-03-12 14:20:22 -04:00
E Spause
04ce4f66ed
Added an optional rule value that forces startzones to be the same as the bind zone and enabled bind xyz once again.
2017-03-12 03:41:21 -04:00
Uleat
226a49cb42
Merge branch 'master' of https://github.com/EQEmu/Server
2017-03-10 18:41:14 -05:00
Uleat
bf3d9b2d02
Couple of critical fixes for bot trade code
2017-03-10 18:41:04 -05:00
Michael Cook (mackal)
3d229e1da1
Aggro Meter on by default now (seemed fine on PEQ)
2017-03-10 18:15:08 -05:00
Uleat
37d22e17a3
First step of implementing inventory v2.0
2017-03-09 02:46:09 -05:00
Uleat
999650d368
Fixed a few glitches related to bot trading and other affected code
2017-03-09 01:55:01 -05:00
Uleat
09bbfbcc31
Complete rework of the bot trading system (see changelog.txt)
2017-03-08 08:12:04 -05:00
Michael Cook (mackal)
a8a1c3f809
Better comment some group shit
2017-02-28 02:21:44 -05:00
Uleat
b1be667884
Update bot spell casting chances table and implemented 'pre-combat' mode for all bots (only bard is actively coded atm)
2017-02-26 22:13:41 -05:00
Uleat
ec9af74dc9
Update bot spells entries for new npc spells id values
2017-02-26 07:00:24 -05:00
Uleat
a49e3d6471
Update for saved bot data to use new spells id values
2017-02-26 06:26:59 -05:00
Uleat
9ae585dd81
Moved bot npc spells entries to the 3000 + class id range
2017-02-26 05:47:10 -05:00
Uleat
c61c275221
Added position update packet in out-of-combat movement code when movement occurs (rule-based; default: false) - appears to help with rubber-banding effect
2017-02-25 09:02:20 -05:00
Uleat
7a6d5d46f4
Added node pathing to the bot movement dilemma...
2017-02-25 03:48:02 -05:00
Uleat
4e8a03f7b4
Migrated bot spell casting chance data to the database
2017-02-23 19:16:36 -05:00
Michael Cook (mackal)
9a157fa028
Turn aggro meter off by default until more tested
...
Reports of it being too spammy and causing DCs
2017-02-21 17:54:25 -05:00
Michael Cook (mackal)
056725b9bd
Make timer for aggro meter not a magic number
...
you can edit AGGRO_METER_UPDATE_MS in common/features.h if you want to
see if a different number would work better
2017-02-21 13:38:00 -05:00
Uleat
b41bb8e179
Merge branch 'master' of https://github.com/EQEmu/Server
2017-02-20 21:41:25 -05:00
Uleat
d9633dfee4
Bard bot song twisting update
2017-02-20 21:41:15 -05:00
Michael Cook (mackal)
08c2f73e37
Implement aggro meter for RoF2 (RoF wasn't tested)
...
I didn't test RoF, so it's disabled for now (change AggroMeterAvaliable if you want to test)
Group member meters probably buggy ... but do later
The "lock target" feature isn't working currently either
2017-02-18 22:27:34 -05:00
Uleat
8177f7d9bb
Activation of bot_spells_entries table
2017-02-15 19:04:36 -05:00
Uleat
4ec3fda59d
Merge branch 'master' of https://github.com/EQEmu/Server
2017-02-15 18:38:45 -05:00
Uleat
e3c8b75259
Moved bot spell entries out of npc spell entries (easier to manage bot changes by committing to non-bot manifest)
2017-02-15 07:42:17 -05:00
JJ
5b8ad902ce
Add character_tasks to the list when deleting a character.
2017-02-13 16:00:39 -05:00
Akkadius
ef16522473
Implement Rule Zone:GlobalLootMultiplier (Default 1) - Sets Global Loot drop multiplier for database based drops, useful for double, triple loot etc.
2017-02-13 02:16:40 -06:00
Akkadius
fe21564659
Apply KLS' tweaks to Log.Out (CPU saves) 1d055b5364
2017-02-13 01:38:23 -06:00
Uleat
ed717add29
Added a few more SpellType enumerations (uncoded)
2017-02-11 18:33:58 -05:00
Uleat
38651258fc
Updated npc spell types to 32-bit mask
2017-02-09 17:57:55 -05:00
Uleat
3d1bb6bd08
Updated SpellAffectIndex enumeration remarks [skip ci]
2017-02-06 17:48:44 -05:00
Uleat
5dbbc5f21c
Added some additional SpellAffectIndex declarations to the enumeration (no reference.) Added dev script for function to retrieve spell affect index id labels for spells from queries
2017-02-06 07:14:50 -05:00
Uleat
51eaf25ea0
Merge branch 'master' of https://github.com/EQEmu/Server
2017-02-05 16:18:16 -05:00
Michael Cook (mackal)
592f9a9cb9
Add rule to allow non-PC pet NPCs to crit
...
NPCs can't crit at all ever on live
2017-02-05 13:44:04 -05:00