Commit Graph
100 Commits
Author SHA1 Message Date
Akkadius d0e612b5ff Fix some lua calls/variables in legacy_combat.lua 2017-06-20 02:31:29 -05:00
Akkadius 27fd6316f1 Merge pull request #624 from noudess/master
Fixed a typo in #object command query and fixed a fishing bug.
2017-06-15 17:15:34 -05:00
Akkadius c1ee88a90e Update eqemu_server.pl to use wget for windows for more reliable web requests that don't hang infinitely [skip ci] 2017-05-04 01:57:27 -05:00
Akkadius 757c7f5b00 Merge pull request #615 from N0ctrnl/patch-4
Sodium library install on Debian
2017-04-24 21:31:56 -05:00
Akkadius 69fd5cd249 Merge pull request #613 from Natedog2012/master
Fix effects over int16 on items and fix aeduration spells
2017-04-23 19:49:56 -05:00
Akkadius 051fd1b77b Merge pull request #614 from N0ctrnl/patch-3
Update Fedora package install method
2017-04-23 19:36:47 -05:00
Akkadius 77a2a249c2 Update README.md 2017-04-20 16:22:45 -05:00
Akkadius bba646a2c6 Merge pull request #612 from N0ctrnl/patch-2
Added wget to Debian/Ubuntu section
2017-04-19 19:45:12 -05:00
Akkadius 989a638693 Merge pull request #608 from spdkils/BotXTarget
Adding AutoXTarget for bot owner when hate is added to bot's owner.
2017-04-13 18:20:28 -05:00
Akkadius 15f8683530 Merge pull request #606 from spdkils/master
** Fix for groups with multiple players and bots.
2017-04-13 18:13:56 -05:00
Akkadius 474f59e269 Re-add variable client aggro scanning timers missing from merge 2017-04-12 16:44:49 -05:00
Akkadius fac75b6f16 Fix merge issue with Marquee check 2017-04-12 16:26:16 -05:00
Akkadius 478a9d115b Merge branch 'master' of https://github.com/EQEmu/Server 2017-04-10 19:55:38 -05:00
Akkadius b5b6145786 Fix initialization issues with loading 'disable_timer' from the database for doors 2017-04-10 19:55:17 -05:00
Akkadius 080f6c5c3e Merge pull request #605 from AthrogatePEQ/master
Graveyards!!!
2017-04-10 13:06:52 -05:00
Akkadius 2030278116 Fix manifest for Robregen [skip ci] 2017-04-07 22:09:20 -05:00
Akkadius f9ecabfdcf Merge pull request #597 from regneq/master
Added ignore_despawn column to npc_types to have NPCs ignore the despawn timer.
2017-04-07 22:01:07 -05:00
Akkadius 9161921bf0 Fix for Loginserver log messages 2017-04-04 22:07:25 -05:00
Akkadius d7dfc18c54 Cleaned up some of the NPC to NPC aggro code, only do aggro checks to other NPC's when the NPC is flagged for it 2017-04-01 23:16:27 -05:00
Akkadius 52a43a3edb Fix Travis 2017-04-01 03:59:24 -05:00
Akkadius 7aa1d243b0 [Performance] Reworked how all log calls are made in the source, see changelog.txt for more details 2017-04-01 03:51:46 -05:00
Akkadius a801f296b5 Merge branch 'master' of https://github.com/EQEmu/Server 2017-03-30 05:23:19 -05:00
Akkadius 9d0308c9bf [Performance] Fixed an overhead issue where many hot paths would trigger quest subroutines and beneath that the code would try to see if a quest existed perpetually (checking if file exists) even though it should have determined the quest didn't exist the first time.
- This caused a lot of overhead in an instance where an entire zone of NPC's is pathing, triggering EVENT_WAYPOINT_ARRIVE and EVENT_WAYPOINT_DEPART when there is no global_npc.pl/lua, or all NPC's pathing don't have a quest assigned, similar behavior would occur. This goes for any other type of quests: spells, items, encounters etc.
2017-03-30 05:22:47 -05:00
Akkadius af9a34e4e7 [Performance] Slow dynamic zones down when no clients are in them 2017-03-28 21:10:57 -05:00
Akkadius 01d7a2a0a7 Merge branch 'master' of https://github.com/EQEmu/Server 2017-03-28 19:07:30 -05:00
Akkadius fe8e907b08 [Performance] Remove unecessary log calls from EQStream hot paths (read/write) 2017-03-28 15:52:51 -05:00
Akkadius a06d5fab89 [Performance] Adjust HP marquee call checks 2017-03-28 15:49:13 -05:00
Akkadius d777b1048d [Performance] Don't process ProjectileAttack checks for NPC's that are not engaged in any combat 2017-03-28 03:05:46 -05:00
Akkadius f931ef7bcb [Performance] Disabled enraged timer checks for NPC's that do not actually have enrage as a special attack 2017-03-28 02:45:07 -05:00
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