292 Commits

Author SHA1 Message Date
Michael Cook (mackal)
23bc535e23 Tweaks to most likely wrong PVP damage reduction 2017-03-15 15:07:28 -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
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
Uleat
d559e9da10 Fix for bot auto-combat damage (please post any abnormalities) 2017-03-04 14:50:32 -05:00
Michael Cook (mackal)
14a5ff399a clear xtarget manager on death 2017-02-25 02:37:57 -05:00
Michael Cook (mackal)
9f4604ec3e Rework how XTarget auto haters work
This should cause the auto haters to be shared with other toons who might be
interested (group/raid) like live.

There maybe some bugs since there is a lot of complex interactions here.
2017-02-17 21:04:48 -05:00
Michael Cook (mackal)
d043c38f71 Make it so enraged NPCs can't be riposted
This should prevent infinite loops
2017-02-14 16:47:22 -05:00
Michael Cook (mackal)
ef8b4754ea Fix min damage issue 2017-02-06 00:11:26 -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
Michael Cook (mackal)
37e87e8cef Rework combat to make use of a struct to fix some bugs 2017-01-28 19:38:44 -05:00
Michael Cook (mackal)
8f21b01b7e Tweak to accuracy based on newer clients 2017-01-17 02:52:16 -05:00
Michael Cook (mackal)
e03a90b05d Refactor CheckHitChance
Pulled the accuracy/avoidance spell bonuses into their own functions so
we can show the total values in #showstats
2017-01-15 16:08:22 -05:00
Michael Cook (mackal)
c030e1ce8d Add rule Combat:LevelToStopDamageCaps
Setting this to 1 will effectively disable damage caps
Setting this to 20 will give similar results to old incorrect default rules
2017-01-15 15:39:12 -05:00
Michael Cook (mackal)
7e49a21b3b Change NPC skill AC bonus
Basically, live doesn't have an NPC's skill at the max for their class like we
do. So for now, we'll just set their SkillDefense bonus to value / 5
2017-01-15 13:54:10 -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
Michael Cook (mackal)
f5827174ee Make CheckHitChance much more live like
This should be fairly close to live-like.

Based on client decompiling, Torven's write up and parses and more parses.

It will probably break your server.
2016-12-25 21:11:10 -05:00
Michael Cook (mackal)
26985496d1 Fix Shield Specialist related SPAs 2016-12-08 22:36:47 -05: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
Michael Cook (mackal)
343c41bb18 Elemental dmg shouldn't allow you to hit bane only 2016-10-13 23:54:56 -04:00
Michael Cook (mackal)
7c40bcff53 Fix enrage for NPC classes that can't ripo 2016-09-02 18:16:09 -04:00
Michael Cook (mackal)
c2b31bd6e2 Fix EVENT_ATTACK crash (thanks image)
Note: I guess we need to check if it's null in the actual quest too
2016-08-21 20:26:54 -04:00
Michael Cook (mackal)
00cfe2d25f Fix potential crashes in attack.cpp 2016-08-13 15:26:07 -04:00
Michael Cook (mackal)
66fec40169 Move Enrage check to after the immune ripo check 2016-08-03 22:38:33 -04:00
Michael Cook (mackal)
60f2d14caa Rework bash/kick stun based on client
This is what the client is doing. It doesn't reuse all the old rules, so those
can't be tweaked unless someone wants to add them back in
2016-08-03 17:37:09 -04:00
Michael Cook (mackal)
ef2c17748e Implement extra spell gems!
New limits:
    Tit: 9
    SoF: 9
    SoD: 10
    UF: 12
    RoF: 12
    RoF2: 12

The SoF client doesn't actually support 10 like SoF should
RoF/RoF2 actually have 4 extra broken spell gems in the UI. They don't work and
will likely crash your client

Quest stuff assumes you are passing in valid slots.
(note the old default of 10 should be 22)

There are still somethings to do like clean up the memmed spells if one switches
to an older client that doesn't support as many as their previous client.
2016-07-31 17:16:23 -04:00
Michael Cook (mackal)
343b781e74 Implement cast_not_standing and fix Cazic Touch
No idea why this spell field does this, but that's what the client
is doing with it ...
2016-07-23 18:40:17 -04:00
Michael Cook (mackal)
37b46d1289 Make more usage of CancelSneakHide 2016-06-30 21:49:00 -04:00
Michael Cook (mackal)
3e0af2928b Remove duped code from CommonBreakInvisibleFromCombat 2016-06-30 01:30:51 -04:00
Uleat
ea8f81feec Converted enumeration MaterialSlots to EQEmu::textures::TextureSlot 2016-05-31 22:07:02 -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
Michael Cook (mackal)
c159b89e79 Rewrite VarCache_Struct
Basically just remove manual memory management
2016-05-09 14:25:54 -04:00
KayenEQ
57b483f697 ExtraAttackOptions (for npc special attacks) additions.
melee_damage_bonus_flat //(+/-) damage percent applied to out going damage
skilldmgtaken_bonus_flat //(+/-) mitigation percent applied to out going damage

*Note: These have not been applied to any ingame functions set.
2016-05-03 08:25:36 -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
Uleat
e75a53b775 Rework of eq_dictionary 2016-04-07 17:21:55 -04:00
KayenEQ
b369bb1793 Fixed defensive procs so they now only trigger once per attack round like live.
Added live like proc chance modifer based on level difference to target.
"Anything above your level will receive full mod. Starting 6 levels below PC level there is a negative 10 % mod applied each level until it reaches 0 and will not proc on anything 15 levels below you or lower."
Thanks to Huffin from PEQ for the parse data
2016-03-25 13:02:59 -04:00
Uleat
1e344f2ad2 Added 'Open Chest' animation for LDoN chest death (thanks Natedog!) 2016-03-21 18:35:11 -04:00
Uleat
09589edcdd Fix for LDoN treasure npcs poofing - please report any issues 2016-03-01 18:23:36 -05:00
Uleat
141d6e3e8b Fix for two possible crash points in NPC::Death() 2016-03-01 16:55:31 -05:00
Uleat
1b7841f683 Fix for Berserker 'Piercing' skill issues 2016-01-26 15:08:41 -05:00
Michael Cook (mackal)
600866f573 Rewrite Bane and Elemental Dmg stuff and GetWeaponDamage (client version) 2016-01-16 18:29:17 -05:00
Michael Cook (mackal)
5bcb9f0b35 Fix classic h2h dmg/delay also support for revamp
The revamp was implemented during SoF
Set Combat:UseRevampHandToHand to true to enable
2016-01-03 14:38:50 -05:00
Michael Cook (mackal)
05de206ace Rework quiver haste 2016-01-03 01:58:37 -05:00