2032 Commits

Author SHA1 Message Date
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
KimLS
de777fc90f Merge fix 2017-03-26 17:25:01 -07: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
KimLS
cfdbca6f12 Fix for unreliable packets (kind of a hack but it works) being flagged as corrupt 2017-03-20 00:22:50 -07: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
KimLS
db210ba70e Merge fix 2017-03-14 21:18:35 -07:00
KimLS
1ce1073930 Change resend timeout to 1 min instead of 10 missed packets, added a close buffer for end of connection 2017-03-14 21:15:41 -07: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
KimLS
159706efa9 Merge branch 'master' into eqstream 2017-03-12 18:39:15 -07:00
KimLS
310d27c0bd Some changes to tic rates and default values 2017-03-12 18:38:33 -07: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
KimLS
73dc6b090b Merge remote-tracking branch 'origin' into eqstream 2017-03-11 14:51:33 -08:00
KimLS
742806158c Some changes to sync sending, dont even bother sending them now just wait to reply 2017-03-11 14:50:10 -08:00
KimLS
56fdc6aaac Change default settings 2017-03-10 23:31:51 -08: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
KimLS
d494048ff6 Tweaks to make server more lag tolerant and also send less packets. 2017-03-07 18:13:17 -08:00
KimLS
da81b7a76d No longer buffer ack packets to resolve an issue where the client was hanging slightly on connection termination 2017-03-05 19:09:27 -08:00
KimLS
0b4484b36b Some reverts and changes to default values and a bug fix 2017-03-01 13:00:48 -08:00
KimLS
25cbdf5f2c Merge branch 'master' into eqstream 2017-02-28 23:18:35 -08:00
KimLS
66c1fd9369 Revert some changes that were causing more harm than good 2017-02-28 23:17:30 -08: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
KimLS
0d1e63c92a Merge remote-tracking branch 'origin/master' into eqstream 2017-02-25 15:31:40 -08:00
KimLS
6033f48b47 Update libuv 2017-02-25 14:30:35 -08: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
KimLS
d402b25d69 Merge fix 2017-02-21 21:20:33 -08:00