192 Commits

Author SHA1 Message Date
KayenEQ
bc6199a86f Implemented a better method for developers who want to have additivie
worn bonuses than what was prior implemented.

Removed old rule RuleB(Spells, AdditiveBonusValues)

Replaced with new rule RuleI(AdditiveBonusWornType)

The rule value denotes a specific 'worntype' that is to be
checked on items. If the items 'worntype' matches the rules worntype
then any worn effect on that item will be cacluated additively
instead of taking the highest value. This will also stack with
regular worn effects that take highest value. Unless the value
is set to (2) which is what all live items use. If set to 2 then
all worn effects will be calculated additively (same as what the old
rule did).

In laymans terms. You can take 3 Cleave I items and put them on a character
and they will all add together if you set the worn type = 3 and the rule = 3.
Which would also add to any regular cleave set to worn type = 2.

Hope you enjoyed the novel.
2015-02-06 02:49:42 -05:00
KayenEQ
b169544711 Merge pull request #365 from KayenEQ/Development
Calc focus effects from worn slots, for an additive foci bonus [NOT LIVE LIKE]
2015-02-05 06:24:43 -05:00
KayenEQ
dd17597c92 Implemented non-live like feature to allow focus effects to be placed in worn slot
to provide an additive focus bonus that stacks with regular focus effects.
This is opposed to how regular focus effects work in which the highest
value is always taken. Please note, focus calculated from worn slot
will only use only the focuses base value (ie ignores all limit checks).

Example (Hypothetical).
Improved Heal I (10 pct focus) in Helm Worn Slot
Improved Heal I (10 pct focus) in Glove Worn Slot
Improved Heal V (50 pct focus) in Glove Focus Slot
Total Heal Focus would be 50 + 10 + 10

Added optional rule which is OFF by default.
UseAdditiveFocusFromWornSlot
2015-02-05 04:27:33 -05:00
KimLS
ecd05d821e Merge and fix the loot update branch, ready for merge I think 2015-02-04 23:13:02 -08:00
KayenEQ
cafd0eaba1 Added perl function function: CanClassEquipItem(item_id)
Returns a bool if can equip or not.
2015-02-04 22:46:02 -05:00
KayenEQ
33767aeb91 Improvements to the pet type (5) code. 2015-02-03 07:59:29 -05:00
KayenEQ
379219aff1 Implemented new pet type (5) which summons a regular pet that locks onto
the casters target exclusively until the target dies, when target dies
the pet is killed. (Pets don't respond to commands except get lost).
This does not stack with regular pets.

Note: On live these pets cast an actual spell (Unsummon) that kills them for 20k damage,
due to how limiting that is to be hard coded, the pets will simply just
kill themselves instead.

Pending, will needd to add an optional SQL to update pet tables to convert
known live spells that use this.
2015-02-03 06:40:51 -05:00
JJ
96925f0dde Some minor cleanup. [skip ci] 2015-01-31 17:03:44 -05:00
KayenEQ
ccbaf337f4 Fix for minimum charm and root resist chances (was always returning 0).
Fix for pacification not doing a proper second resist check upon resisting intial pacification.
2015-01-30 18:47:27 -05:00
Michael Cook (mackal)
5f545df312 Remove const 2015-01-27 21:48:11 -05:00
Michael Cook (mackal)
99164fe3f9 Switch AI timers to smart pointers 2015-01-27 21:28:38 -05:00
Uleat
cc1d7d54c2 Implemented mob equipment light sources 2015-01-24 22:00:06 -05:00
KimLS
34bec5913b Merge plus changed getposition to return a reference 2015-01-24 11:48:06 -08:00
KimLS
17af9e3808 Merge fixes, hopefully didn't break anything. 2015-01-23 13:36:27 -08:00
KimLS
269d56e1d0 Switched out our kinda juryrigged vector types for glm::vec types since we use that as a 3d math library already but never switched out the types 2015-01-23 00:01:10 -08:00
Akkadius
c5447778a6 Merge remote-tracking branch 'remotes/origin/master' into logging_changes
Conflicts:
	world/client.cpp
	world/worlddb.cpp
	zone/aggro.cpp
	zone/bot.cpp
	zone/client.cpp
	zone/client_packet.cpp
	zone/client_process.cpp
	zone/doors.cpp
	zone/entity.cpp
	zone/inventory.cpp
	zone/mob_ai.cpp
	zone/perl_client.cpp
	zone/spells.cpp
	zone/waypoints.cpp
	zone/zone.cpp
	zone/zonedb.cpp
	zone/zoning.cpp
2015-01-21 17:29:30 -06:00
Akkadius
3d74035e24 Merge remote-tracking branch 'remotes/origin/master' into logging_changes
Conflicts:
	zone/command.cpp
	zone/command.h
	zone/inventory.cpp
2015-01-21 16:40:46 -06:00
Arthur Ice
53862713f9 Switched to position based GetReciprocalHeading instead of Mob::GetReciprocalHeading 2015-01-18 12:38:27 -08:00
Arthur Ice
1e2198f5f4 Removed Mob::DistNoZ 2015-01-17 17:53:41 -08:00
Arthur Ice
ee0b9edc21 Removed Mob::Dist 2015-01-17 17:49:16 -08:00
Arthur Ice
f1759421d1 Removed Mob::DistNoRoot(x,y,z) 2015-01-17 15:51:26 -08:00
Arthur Ice
9f8dad894c Added 'GetTargetRingLocation' which will eventualy replace the individual GetTargetRing methods 2015-01-17 15:22:46 -08:00
Michael Cook (mackal)
fd77fbf163 Merge pull request #313 from addtheice/data_bundling
Data bundling
2015-01-17 17:30:14 -05:00
Michael Cook (mackal)
f9a7da61b8 Switch NUMHIT_ enum to a strongly typed enum 2015-01-17 16:18:09 -05:00
Akkadius
d21466566e Remove some mlog related functions in Mob:: 2015-01-16 21:53:56 -06:00
KayenEQ
c84dc13d53 Merge pull request #334 from KayenEQ/Development
Command #tune
2015-01-11 01:21:02 -05:00
KayenEQ
d57d463818 New Command
#tune
Used to return ideal values for tuning NPC/Client combat statistics.
2015-01-11 00:45:37 -05:00
Arthur Ice
cd9ca65587 merge upstream 2015-01-08 19:40:00 -08:00
JJ
cde406a496 Add PhR to #showstats and a few places that can/should be implemented in the future. 2015-01-06 13:51:36 -05:00
Akkadius
18f9a06f06 Re-Push Refactoring changes before without broken functionality 2014-12-27 23:44:15 -06:00
Akkadius
4f65066274 Reverting some hate stuff so things work again 2014-12-27 23:19:48 -06:00
Akkadius
73fe229e25 More hate changes 2014-12-27 20:23:49 -06:00
Akkadius
3a488e3a61 Changed hate counter to uint32 to prevent negative rollback, this most likely can will be an issue but more uncommon
Renamed and refactored most functions and variables in hate_list.h/cpp for readability
Refactored how hate works in some local functions mixing the use of hate variable and split it out into different status variables
hate_list.cpp/.h style cleanup
hate_list.h header function sort, comment erase
functions should clearly state their function
2014-12-27 18:24:42 -06:00
Arthur Ice
f409d39f1a merge upstream 2014-12-21 13:57:20 -08:00
Michael Cook (mackal)
ce9bcef620 std::deque is a much better fit, should have bit better performance 2014-12-18 02:20:03 -05:00
Michael Cook (mackal)
a14f8058da Switch path stuff to vectors
This should be more CPU cache friendly compared to lists so should
be faster. (profiling looked promising)
2014-12-17 01:52:00 -05:00
Trevius
9056008342 (RoF+) Implemented Armor Ornamentation using Hero's Forge Armor Models. To use, create an ornamentation augment and set the herosforgemodel field in the items table.
(RoF+) Added command #heromodel (#hm for short) - Usage: #heromodel [hero forge model] [ [slot] ] (example: #heromodel 63)
2014-12-13 13:53:55 -06:00
Trevius
37951d09c7 (RoF+) Implemented Hero's Forge Armor Models for Items. To use, set herosforgemodel field in the item table to a model number such as 63 (for example). 2014-12-09 21:18:56 -06:00
KayenEQ
70f570dbd9 Implemented support for allowing most focus effects to now be usable
by NPCs (ie Heal/Damage focus, cast time, spell range ect) from
both spell buffs and items.
Rule for enabling spell focus is TRUE by default
Rule for enabling item focus is FALSE by default.

Consilidated a number of redundant client / mob functions
to use the same pathway for calculating effect values.
2014-12-08 01:22:01 -05:00
Arthur Ice
2aa287fe3c Merge 2014-12-05 20:16:13 -08:00
KayenEQ
052b41fbb2 Ranged attacks will now much more accurately calculate max distance server side
via accounting for differences in attacker/target size. This
fixes a very common issue of player hitting range attack and
nothing happening due to server improperly calculating
max range.
2014-12-04 02:40:51 -05:00
Trevius
24ea7a0d45 Mercenaries now spawn as the same Gender and Size of the Merchant they are purchased from.
Mercenaries now spawn with randomized facial features when purchased.
Setting a lastname for NPCs will now override any hard coded lastname (such as GM Trainers).
2014-12-01 19:54:01 -06:00
Arthur Ice
6b1b083802 mob constructor converted to xyz_heading 2014-11-30 18:57:50 -08:00
KayenEQ
e04496188b Spell Projectiles have been revamped to use new system. 2014-11-30 01:43:51 -05:00
Arthur Ice
82cc830297 converted Warp to xyz_location instead of x,y,z 2014-11-29 21:24:57 -08:00
Arthur Ice
4b48ed7cbc SetDeltas converted to SetDelta 2014-11-29 21:07:08 -08:00
KayenEQ
e8ae28b439 Merge git://github.com/EQEmu/Server into Development 2014-11-29 20:56:13 -05:00
Arthur Ice
607e28dcbf added GetPosition to mob 2014-11-29 16:43:24 -08:00
akkadius
fde9517247 mob.cpp #include cleanup
mob.h declarations
mob.h #include cleanup
2014-11-29 16:55:35 -06:00
KayenEQ
ca3b5a3221 Merge git://github.com/EQEmu/Server into Development
Conflicts:
	changelog.txt
2014-11-29 03:22:11 -05:00