Commit Graph
100 Commits
Author SHA1 Message Date
Akkadius 47691c2102 [Performance] Removed a timer where clients would constantly calculate light amount on equipment every 600ms, instead clients will update light when changing equipment or entering a zone 2017-03-28 02:36:51 -05:00
Akkadius bf45a5a44f [Performance] Fixed a large overhead issue where every single NPC in a zone was checking to depop themselves
as a swarm pet every 3ms regardless of being a swarm pet or not. Swarm pets now check to depop only when their timer is up
2017-03-28 02:30:06 -05:00
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
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
Akkadius 719098a97c [Performance] Reduced CPU footprint in non-combat zones doing constant checks for combat related activities 2017-03-25 23:32:49 -05:00
Akkadius 8bdefa17b5 Fix README.md 2017-03-22 13:39:12 -05:00
Akkadius 41b1634199 Update proper file name utils/sql/git/optional/2017_03_12_rule_values_range_update.sql [skip ci] 2017-03-12 17:19:42 -05:00
Akkadius 0159e1cc72 Fix some crapped out formatting [skip ci] 2017-03-12 16:42:26 -05: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
Akkadius 5213e4c7d4 Remove table that doesn't exist anymore (PEQ Dumps) [skip ci] 2017-03-01 15:19:56 -06:00
Akkadius e098836934 Upload table lists that PEQ uses in daily database dump 2017-02-22 22:49:23 -06:00
Akkadius 8bbf099636 Merge fix 2017-02-21 03:57:10 -06:00
Akkadius a884639534 Reduce the initial telnet console prompt timer 2017-02-21 03:55:21 -06:00
Akkadius f0f5c41c30 Fixed an issue where clients would sell x1000 stacks of items where the price overflows data sizes, the code will now make sure not to sell too many items that go over this data size 2017-02-19 21:12:18 -06: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) https://github.com/EQEmu/Server/commit/1d055b5364a4183a327683dfa13cf33954874616 2017-02-13 01:38:23 -06:00
Akkadius e3173d04d4 Merge branch 'master' of https://github.com/EQEmu/Server 2017-02-13 01:26:44 -06:00
Akkadius 92d4468326 Put a category enabled filter on default switch case so we're not chewing up extra cpu cycles 2017-02-13 01:26:19 -06:00
Akkadius 0f32f780a9 Revert previous change to keep installation memory safe and independent [skip ci] 2017-02-12 23:31:25 -06:00
Akkadius 955514c20f eqemu_server.pl Linux make routine compile with the amount of cores available [skip ci] 2017-02-12 23:16:38 -06:00
Akkadius 4605540955 Update login_opcodes.conf 2017-02-09 01:33:41 -06:00
Akkadius c83bc038f3 Fix issue with installer pulling down the wrong opcodes for SOD+ clients on Linux Loginserver 2017-02-09 01:32:26 -06:00
Akkadius d3dff3760a Merge pull request #587 from N0ctrnl/patch-1
Update for Ubuntu 16.04
2017-02-08 19:04:29 -06:00
Akkadius a81212e1b4 Allow admin telnet connections from localhost without requiring credentials to world 2017-02-08 18:00:38 -06:00
Akkadius 57d75572b2 Heavily reduce idle cpu footprint with many zone processes loaded simultaneously and not active 2017-02-08 17:28:54 -06:00
Akkadius 30157a37a2 Merge pull request #583 from noudess/master
Alliance spell line for chanters was not working.
2017-01-10 14:09:02 -06:00
Akkadius 06279b18a3 Fix Hero Forge model not showing up at character select 2016-12-18 05:36:30 -06:00
Akkadius c482738d79 Merge branch 'master' of https://github.com/EQEmu/Server 2016-12-01 22:42:35 -06:00
Akkadius a4c9fa6a65 eqemu_server.pl windws_server_latest - now grabs both pdb's and regular binaries [skip ci] 2016-12-01 22:42:22 -06:00
Akkadius 3e50491619 Update eqemu_server.pl to use new AppVeyor build link [skip ci] 2016-12-01 19:46:43 -06:00
Akkadius de92c277e0 Update eqemu_server.pl to use new AppVeyor build link
Adjust pet zoning to occur before zone spawns are sent in bulk
2016-12-01 19:41:12 -06:00
Akkadius b5e324af83 eqemu_server.pl windows_server_latest - Now pulls down latest unstable binaries built from AppVeyor (x86) [skip ci] 2016-11-28 16:46:38 -06:00
Akkadius 04c8fe7d2c Fix map loading paths for both platforms 2016-11-11 22:39:08 -06:00
Akkadius e8d80a436e Add map debugging [skip ci] 2016-11-11 22:31:54 -06:00
Akkadius 34ffb5b908 Create shared_memory directory from the config file if it doesn't exist on launch of shared_memory.exe 2016-11-10 12:00:44 -06:00
Akkadius e7e379c71b Fix map loading logic so that case sensitive checks are made in the following order: maps, Maps, and if neither of those two exist, then <maps> value would take precedence.
- Added some log messages for what version of map is being loaded versus MMF
2016-11-10 11:28:06 -06:00
Akkadius 462dea67e1 Merge pull request #566 from N0ctrnl/hott-test
Optional rule to grant HoTT to newly created characters
2016-11-06 16:11:02 -06:00
Akkadius e23fd269d5 Merge pull request #570 from zerosum0x0/potential_makeplat
fix potential plat creation exploit
2016-11-06 16:10:43 -06:00
Akkadius 60406ebcc1 Test build notification 2016-10-25 02:52:31 -05:00
Akkadius 409bad8108 Update eqemu_server.pl [skip ci] - not sure why formatting is getting thrown off 2016-10-18 16:52:51 -05:00
Akkadius 97999a63b7 Update eqemu_server.pl [skip ci] - Fix eqemu_config.xml tag parsing scenarios 2016-10-18 16:49:47 -05:00
Akkadius fe968f83a3 Update eqemu_server.pl [skip ci] - undo previous quote commit 2016-10-18 16:21:21 -05:00
Akkadius 16fa32e65b Update eqemu_server.pl [skip ci] 2016-10-18 14:16:53 -05:00
Akkadius 195bc03645 Update eqemu_server.pl [skip ci] - Make eqemu_config.xml parsing more strict to look inside the database section 2016-10-17 00:56:17 -05:00
Akkadius 2188be24e4 Merge pull request #559 from TheGrandPackard/master
Fix Random Ground Spawn Z
2016-10-15 14:56:49 -05:00
Akkadius 70b9ff384c Merge pull request #562 from noudess/master
Fix rogue merchant usage under sneak.
2016-10-15 14:55:28 -05:00
Akkadius 56babc1801 Update client_process.cpp 2016-10-15 14:54:57 -05:00
Akkadius 3ba199e052 Merge pull request #558 from Xackery/master
Exp Raw Value / % Gain
2016-10-15 14:53:27 -05:00
Akkadius 8496bf16ff eqemu_server.pl [skip ci] Make the internet connection check more multi-lingual friendly 2016-10-14 14:37:25 -05:00
Akkadius b15ada974f Merge pull request #555 from noudess/master
Task experience based on % of level did not take into effect hell level rule
2016-09-18 20:38:08 -05:00
Akkadius 06dfba3c81 Merge pull request #557 from KinglyKrab/master
Added quest global support for zone_controller.
2016-09-14 15:34:16 -05:00
Akkadius a9070b1327 Merge pull request #556 from KinglyKrab/master
#summon will now work when you are in an instance.
2016-09-12 01:42:53 -05:00
Akkadius 745510ea75 Massive overhaul of the update system and EQEmu Server management utility framework
(known as eqemu_update.pl) now known as eqemu_server.pl
	- eqemu_server.pl is now a general EQEmu Server management utiltiy framework that can be used
		to extend to many purposes. It's main purpose is to simplify server management
	- eqemu_server.pl changes:
		- Menu has been completely changed, instead of a number based (enter number and hit enter)
		you now type commands within the menu (Ex: 'database')
		- Handles last mile installation for Windows Servers (See Github Readme)
		- Handles last mile installation for Linux Servers (See Github Readme)
			- Ubuntu
			- Debian
			- Fedora
			- CentOS
		- Now checks for Internet connection before performing web requests
		- Database:
			- Regular schema updates now happen automatically, if new binaries present updated
				database schema changes, script will backup first, auto update database, and continue
				world bootup
			- Regular bots database schema changes now happen automatically similarily to the above
			- Database checks can also be ran manually via the script menu
		- CLI Arguments
			- Arguments passed to eqemu_server.pl can execute the same name-based operations that
				are present in the interactive menu
					- Example: "perl eqemu_server.pl opcodes" will download opcodes
					- Example: "perl eqemu_server.pl backup_player_tables" will backup and export player tables
		- Bots
			- Bots can now be automatically setup in Linux or Windows via the 'setup_bots' command
				- Windows will auto download binaries and install, along with installing bots db schema
				- Linxu will auto compile binaries and install, along with installings bots db schema
		- Utility scripts
			- Linux now has the following utility scripts for download, available via menu 'utility_scripts'
				and via Linux default install:
					- server_launcher.pl
					- server_start_dev.sh
					- server_start.sh
					- server_status.sh
					- server_stop.sh
		- Usage analytics
			- eqemu_server.pl now collects usage analytics, this is very helpful for our developers
				- Example: We can see how many installs have been performed:
					https://github.com/EQEmu/Server#server-installs
				- This helps us see how often certain utilities are used as well
		- Console Messages
			- All script messages have been prefixed with a bracket action Ex: [Update] [Database] [Info]
				to be more consistent with our log conventions
		- 'New Server' Utility
			- Running 'new_server' from the main menu or 'perl eqemu_server.pl new_server' while in
				a completely new folder with just the script present, will allow a server operator
				to initiate a full clean PEQ install in that folder. Pulling down all assets and
				installing a PEQ database with the name the server operator gives the prompts in the
				script
2016-09-12 01:31:35 -05:00
Akkadius 9a3af63f65 Update readme [skip ci] 2016-09-07 15:10:16 -05:00
Akkadius 5679f45f5b Update readme [skip ci] 2016-09-07 12:45:14 -05:00
Akkadius 66c0da85e6 Take out Linux source build from the install.sh file since eqemu_server.pl is flexibly taking care of it 2016-09-06 22:51:29 -05:00
Akkadius 4246e4f79b Fix linux installs when in new_server routine [skip ci] 2016-09-06 22:44:37 -05:00
Akkadius 90dc7a4e38 Fix linux installs [skip ci] 2016-09-06 22:36:50 -05:00
Akkadius bf28354301 Upload Linux installer for Debian/Ubuntu/CentOS/Fedora utils/scripts/linux_installer/install.sh [skip ci] 2016-09-06 22:14:14 -05:00
Akkadius 5f1141dfb1 eqemu_server.pl - Auto update bots database on world bootup if bots enabled [skip ci] 2016-09-06 22:04:38 -05:00
Akkadius 5b03fba463 Update eqemu_server.pl - Fix windows installs [skip ci] 2016-09-06 20:04:21 -05:00
Akkadius 0efd0c5f73 Update eqemu_server.pl [skip ci] 2016-09-05 15:26:12 -05:00
Akkadius 2947e3f39f Update eqemu_server.pl [skip ci] 2016-09-05 02:33:18 -05:00
Akkadius 77974c83d7 Update eqemu_server.pl [skip ci] 2016-09-05 02:31:28 -05:00
Akkadius ec87656d58 Add rule Spells:NPCInnateProcOverride, defaults to true 2016-09-01 01:05:06 -05:00
Akkadius 5c43f2d80e Merge pull request #549 from KinglyKrab/master
Fixed quantity in merchant purchase.
2016-08-27 16:59:58 -05:00
Akkadius dd0d15e134 More testing [skip ci] 2016-08-27 03:20:22 -05:00
Akkadius 29d6817019 More testing [skip ci] 2016-08-27 03:19:33 -05:00
Akkadius 46bb559af1 Updated db_dumper.pl script print output formats [skip ci] 2016-08-27 01:41:09 -05:00
Akkadius 031a37baa1 Set eqemu_server.pl to check database manifest for only updates that are higher than the local database version - this will prevent false previous match conditions [skip ci] 2016-08-27 01:25:22 -05:00
Akkadius 62a4ce76b6 Merge branch 'master' of https://github.com/EQEmu/Server 2016-08-27 01:23:23 -05:00
Akkadius d85e6ae495 Set eqemu_server.pl to check database manifest for only updates that are higher than the local database version - this will prevent false previous match conditions [skip ci] 2016-08-27 01:23:03 -05:00
Akkadius 32c4c360bd Add IsHorse to default false in Mob constructor 2016-08-27 01:21:23 -05:00
Akkadius f2a075d432 Keep eqemu_server.pl from chown'ing the script to a pre-fixed user [skip ci] 2016-08-27 00:52:48 -05:00
Akkadius 2dee62c850 Refactor didn't save (oops) 2016-08-27 00:47:55 -05:00
Akkadius db380944ac Prevent horses (player mounts) from being depopped during a #repop 2016-08-27 00:46:45 -05:00
Akkadius 6db350790e Merge branch 'master' of https://github.com/EQEmu/Server 2016-08-26 15:02:43 -05:00
Akkadius 3f8ff1373c Fix script call issue [skip ci] 2016-08-26 15:02:12 -05:00
Akkadius d6ee505c63 Merge pull request #548 from Natedog2012/master
Add TiltX and TiltY manipulation to objects (Perl)
2016-08-26 14:28:28 -05:00
Akkadius e84b2ba224 Merge pull request #546 from noudess/master
Mobs that path and then despawn do so whether zone idle or active
2016-08-26 14:26:50 -05:00
Akkadius 385823461b Update eqemu_server.pl [skip ci] 2016-08-25 18:30:04 -05:00
Akkadius 85c28185a2 Update eqemu_server.pl - Add internet connection checks for people who are using EQEmu locally [skip ci] 2016-08-25 18:01:17 -05:00
Akkadius 25de25a777 Update eqemu_server.pl - Add internet connection checks for people using EQEmu locally [skip ci] 2016-08-25 18:00:13 -05:00
Akkadius 357a92dfee Update eqemu_server.pl [skip ci] 2016-08-25 16:46:34 -05:00
Akkadius 35c83db432 eqemu_server.pl - Run script after self upgrade regardless of OS [skip ci] 2016-08-25 16:43:35 -05:00
Akkadius f7cc1053f1 eqemu_server.pl - Update regardless of run condition [skip ci] 2016-08-25 16:39:35 -05:00
Akkadius d5864aea3e Few more adjustments [skip ci] 2016-08-25 16:36:48 -05:00
Akkadius 2b2d6e1ef5 Less fail [skip ci] 2016-08-25 16:33:50 -05:00
Akkadius f99523dc48 Migration to new EQEmu Server management script interface 2016-08-25 16:32:21 -05:00
Akkadius 69913c0897 Update eqemu_server.pl [skip ci] - More cleanup 2016-08-25 15:01:59 -05:00
Akkadius 75694e8797 Update eqemu_server.pl [skip ci] Testing self update 2016-08-25 13:00:57 -05:00
Akkadius 24856b6a2d Update eqemu_server.pl [skip ci] Testing self update 2016-08-25 12:56:30 -05:00
Akkadius a70291f20f Update eqemu_server.pl [skip ci] 2016-08-25 12:50:26 -05:00
Akkadius 6e1a5eac94 Update eqemu_server.pl [skip ci] 2016-08-25 12:17:24 -05:00
Akkadius 37b87e98f4 Update eqemu_server.pl [skip ci] 2016-08-25 01:18:03 -05:00
Akkadius 3afc5d0890 Update eqemu_server.pl [skip ci] 2016-08-24 21:03:23 -05:00
Akkadius f6b6fcc2c5 Update eqemu_server.pl 2016-08-24 20:38:56 -05:00
Akkadius 2c3107fbe9 Uploading initial eqemu_server.pl (was eqemu_update.pl) to start deprecrating of eqemu_update.pl and re-working of the structure of the script, more to come. 2016-08-22 16:07:44 -05:00
Akkadius a8ba563632 Update eqemu_update.pl [skip ci] 2016-08-20 23:50:59 -05:00