402 Commits

Author SHA1 Message Date
Michael Cook (mackal)
ec77e3a6fd Add show_name and untargetable to npc_types fixes #637
Note the bodytype hack is still there since I was having issues with
some npcs still showing names
2017-07-19 02:17:08 -04:00
Akkadius
855796448c Raid/Group/XTarget HP/Mana/Endurance updates now only send when percentage changes
Raid/Group Mana/Endurance updates should now update real-time once again
Fixed an issue with clients looking like they are 'skipping' when they are moving in view of another client
Fixed an issue with NPC's who are ghosted in plain view of a client when they are not really there
2017-07-11 17:54:46 -05:00
Paul Coene
5542107f02 Remove names 2017-07-05 21:26:10 -04:00
Paul Coene
4a84c311b2 Change to allow pets to use better of db/oocregen if oocregen is turned
on in the rule_set.
2017-07-05 18:26:50 -04:00
KimLS
1d1ee1ccbf Merge fix 2017-04-11 21:48:01 -07:00
regneq
4600844336 Added ignore_despawn column to npc_types to have NPCs ignore the despawn column in spawngroup. 2017-04-07 19:45:26 -07:00
KimLS
281483efc1 Merge of a monster 2017-04-02 20:03:51 -07: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
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
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
KimLS
0736ce43bd Merge branch 'master' into eqstream 2017-02-06 21:46:34 -08:00
Michael Cook (mackal)
2c6e11b464 Have modify NPC stat AC/AGI recache AC 2017-01-19 23:17:14 -05:00
Michael Cook (mackal)
9e824876ba Combat Revamp - MAJOR BREAKING CHANGE
This commit makes combat much more live like. This is based on a lot of parses
done by TAKP and myself. There are numerous things based on dev quotes and
hints. Pretty much all combat has changed, spell effects correct, stacking
correct, etc.

This is the fist stage of the revamp, I will be trying to remove some code
duplication and make things generally cleaner.

Server ops will have to rebalance their NPCs. AC actually means something now.
Rough recommendations?
Level 50 "classic" trash should be no more than 115.
Classic raid mobs should be more 200+ etc
Other "classic" NPCs should be a lot lower as well.
PoP trash probably shouldn't exceed 120 AC
PoP raids should be higher
Devs have said the vast majority of NPCs didn't exceed 600 AC until very
recently. The exceptions were mostly raid encounters.

There really isn't a good "default" for every server, so this will be up to
the devs to find where they want their server stats to be.
2017-01-15 00:03:02 -05:00
KimLS
f6ca59fbc6 Working zone and world communication yay 2017-01-03 22:23:03 -08:00
Kinglykrab
cb1d0a0bef Fixed #npcspawn update. 2016-11-10 15:47:18 -05:00
Uleat
aabf7b9b5a Switched NPC::QueryLoot() from ItemData model to ServerLootItem model (allows saylinks with augments) 2016-10-23 20:51:07 -04:00
Uleat
04f4fd652b Renamed class Inventory to EQEmu::InventoryProfile 2016-10-17 04:59:00 -04:00
Uleat
bfd07b1010 Added class EQEmu::InventorySlot 2016-10-16 21:36:39 -04:00
Uleat
8b5dd58e96 Renamed struct EQEmu::ItemBase to EQEmu::ItemData and class ItemInst to EQEmu::ItemInstance 2016-10-16 05:10:54 -04:00
Uleat
16642b7c4c Filename changes to facilitate future updates 2016-10-15 22:14:03 -04:00
Kinglykrab
8aa942cd27 Added quest global support for zone_controller. 2016-09-14 16:31:52 -04:00
Michael Cook (mackal)
039e0fbb83 NPC innate procs overwrite TargetType to ST_Target 2016-08-12 21:53:14 -04:00
Michael Cook (mackal)
d53d569020 Port EQMacEmu's improved NPC stat scaling formula
Old formula can be used by setting NPC::NewLevelSacling to false
2016-08-04 22:12:33 -04:00
Uleat
cd8cd90a38 Implemented EQEmu::TextureProfile 2016-06-01 08:54:26 -04:00
Uleat
ea8f81feec Converted enumeration MaterialSlots to EQEmu::textures::TextureSlot 2016-05-31 22:07:02 -04:00
Uleat
6c1af93f58 Another lightsource/saylink/skills pass 2016-05-30 08:39:49 -04:00
Uleat
a089820464 Merged client_version and inventory_version into emu_versions files 2016-05-28 04:44:14 -04:00
Uleat
579efe83af Renamed EQEmu::Item_Struct to EQEmu::ItemBase to coincide with new inventory naming conventions (re-run shared_memory.exe) 2016-05-27 22:22:19 -04:00
Uleat
71f128731f Renamed and moved SkillUseTypes enumeration to EQEmu::skills::SkillType; eq_dictionary work 2016-05-25 18:50:26 -04:00
Michael Cook (mackal)
60da544d3a clang-tidy modernize-use-auto 2016-05-25 16:10:28 -04:00
Uleat
3031365e1f Moved struct Item_Struct into namespace EQEmu 2016-05-21 04:54:18 -04:00
Uleat
ebe6f95e6e LightSourceProfile relocation and some more formatting changes 2016-05-20 04:26:32 -04:00
Uleat
e304fe6558 Clang appeasement 2016-05-04 22:33:52 -04:00
Uleat
1890d006a2 Delinked current inventory slot enumeration and constants from EQEmu::constants and global definition 2016-04-22 07:34:55 -04:00
Uleat
b3475d7b50 Reworked ClientVersion into EQEmu::versions; Added EQEmu::versions::InventoryVersion 2016-04-22 03:49:17 -04:00
Uleat
8edb6e9595 Eliminated the nested class design of recent EQEmu work; Some more inv2 convergence work 2016-04-19 04:02:53 -04:00
Natedog2012
53c7abf16e Fix for ModifyNPCStat when checking PhR as it would never be true as the check is set to lowercase 2016-04-17 16:27:29 -07:00
Uleat
1b3cfc9a5c Reworked EQDictionary into namespace EQEmu 2016-04-15 22:11:53 -04:00
Uleat
e75a53b775 Rework of eq_dictionary 2016-04-07 17:21:55 -04:00
Uleat
63cce6875f Rework of NPC::PickPocket() - added stacking ability 2016-02-27 20:27:11 -05:00
Akkadius
9174ccd635 Another slight adjustment [skip ci] 2016-01-04 17:11:59 -06:00
Akkadius
2155a53a0d Another slight adjustment [skip ci] 2016-01-04 11:16:26 -06:00
Akkadius
6a404a5a26 Put the zone controller somewhere where people can't see it even with a terrible GlobalLoad.txt [skip ci] 2016-01-04 11:04:56 -06:00
Akkadius
8425607460 Implemented standardized zone controller scripts (Rule Zone, UseZoneController) Defaulted to true
- When a zone boots, it will spawn an invisible npc by the name of zone_controller
	- Lua and Perl scripts can be represented with this npc as zone_controller.pl/lua
	- This NPC's ID is ruled be define ZONE_CONTROLLER_NPC_ID 10
	- Two EVENT's uniquely are handled with this NPC/controller (They only work with the zone_controller NPC)
		- EVENT_SPAWN_ZONE :: All NPC spawns in the zone trigger the controller and pass the following variables:
			$spawned_entity_id
			$spawned_npc_id
		- EVENT_DEATH_ZONE :: All NPC deaths in the zone trigger the controller event and pass the following variables:
			$killer_id
			$killer_damage
			$killer_spell
			$killer_skill
			$killed_npc_id
2015-12-29 04:08:10 -06:00
Akkadius
9757c38017 Adjust manifest [skip ci] 2015-12-29 01:30:20 -06:00
Michael Cook (mackal)
03592e58f9 Port EQMacEmu's Assist Aggro code
This code also allows you to toggle on Tick Pulling (Aggro:AllowTickPulling)
which was a pulling technique (exploit) fixed sometime in 2006

This code also implements assist caps to cut down on trains (5 by default)
Unsure if live what this number is (it exists) or if it's a per NPC basis

An NPC with Assist Aggro will not call for help, only NPCs with Primary Aggro will
2015-12-18 17:41:57 -05:00
Akkadius
624c7341c5 Refactor cfp to currently_fleeing for readability 2015-11-01 16:02:41 -06:00
Akkadius
33917fe2a9 - Add Zone Process ID (OS PID) as information passed back to world, ultimately with the ability to display it in the telnet console under 'zonestatus'
- Refactored some zoneserver/worldserver code for readability
2015-10-31 20:19:57 -05:00
Natedog2012
ec36a3787d Allow ModifyNPCStat to change npc spell effects lists 2015-10-21 01:24:51 -07:00