166 Commits

Author SHA1 Message Date
KayenEQ
fc306bbc1d Fix for special attack NPC_CHASE_DISTANCE to now work correctly
Perl export: NPC GetAttackDelay
Perl export: NPC GetAvoidanceRating
Perl export: NPC AddMeleeProc
Special Attacks will no longer be able to hit immune to melee / bane only flagged NPCs.
2014-12-16 18:53:15 -05:00
Michael Cook (mackal)
b5c60d8123 Bot compile fix 2014-12-15 20:08:46 -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
Michael Cook (mackal)
820f99067d Make use of the targetable_with_hotkey flag for SoF+ 2014-12-10 01:19:44 -05: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
Michael Cook (mackal)
9636ef3499 Update to new random functions 2014-12-02 14:09:14 -05:00
Michael Cook (mackal)
dc0eb0f6b5 Merge branch 'master' into random
Conflicts:
	zone/command.cpp
	zone/merc.cpp
2014-12-02 14:05:55 -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
Michael Cook (mackal)
395be050a3 Switch random function to std::mt19937
Added class EQEmu::Random
Functions:
EQEmu::Random::Int(int low, int high)
EQEmu::Random::Real(double low, double high)
EQEmu::Random::Roll(int required)
EQEmu::Random::Roll(double required)
EQEmu::Random::Reseed()

For zone, you will access the random object through the zone object
ex.
	zone->random.Int(0, 100);

Int returns a random int between low and high
Real returns a random double between low and high
Roll(int) returns true if Int(0, 99) < required is true
Roll(double) returns true if Real(0.0, 1.0) <= required is true
2014-12-01 18:13:12 -05:00
KayenEQ
8dfd61bbcf fix 2014-11-30 01:58:23 -05:00
KayenEQ
e04496188b Spell Projectiles have been revamped to use new system. 2014-11-30 01:43:51 -05:00
KayenEQ
ad2fd9e4d5 update to projectile move check 2014-11-29 21:10:51 -05:00
KayenEQ
e8ae28b439 Merge git://github.com/EQEmu/Server into Development 2014-11-29 20:56:13 -05:00
akkadius
fde9517247 mob.cpp #include cleanup
mob.h declarations
mob.h #include cleanup
2014-11-29 16:55:35 -06:00
KayenEQ
ac0933719a Sanity check added before calculating distance. 2014-11-28 05:42:36 -05:00
KayenEQ
6b45b2bc52 Fix for better ammo slot sync check. 2014-11-27 23:14:49 -05:00
KayenEQ
191aa575f8 Projectiles (ie Arrows) fired from an archery attacks will do damage upon
actually hitting the target, instead of instantly when fired. Consistent
with live.

Optional SQL added to disable this.

Throwing will be implemented in a future update.
2014-11-27 22:12:13 -05:00
Natedog2012
daec5bde66 Item Transformation now works! 2014-11-26 17:23:04 -05:00
Michael Cook (mackal)
ee7f88d247 Merge pull request #301 from KayenEQ/Development
Fix for numhits counter being decreased 2x for Outgoing Hit Success from...
2014-11-26 15:27:43 -05:00
Akkadius
b43cfa126f Renamed SetPKItem to SetPlayerKillItemID
Renamed AllowMobLoot to AllowPlayerLoot
Renamed DepopCorpse (PC) to DepopPlayerCorpse
Renamed GetPKItem to GetPlayerKillItem
Renamed Corpse class variable 'orgname' to 'corpse_name'
Renamed CompleteRezz to CompleteResurrection
Renamed GetDBID to GetCorpseDBID

Removed CorpseToServerSlot as it is unnecessary
Removed ServerToCorpseSlot as it is unnecessary

Reogrganized corpse.h header
2014-11-25 23:54:59 -06:00
KayenEQ
3ca282abfa Fix for numhits counter not working where buffslot was 0 in some situations. 2014-11-23 22:06:15 -05:00
KayenEQ
94231b62a3 Updated swarm pet AI to be consistent with live.
*OLD AI: Swarm pet would lock on to target until target died, then depop as soon as target died.

*NEW AI: Swarm pet will attack cast on target, NOT perma locked it can change targets if attacked
by something else that generate more hate. When target dies swarm pet will follow owner, if owner is
attacked by something else the swarm pet will attack it (until duration timer despawns the pet).

Updated perl quest function: MakeTempPet(Tspell_id, name=nullptr, duration=0, target=nullptr, sticktarg=0)
Implemented perl quest function:  Mob::TypesTempPet(npctypesid, name=nullptr, duration=0, follow=0, target=nullptr, sticktarg=0)
Note: 'sticktarg' field will cause the swarm pet to use the OLD AI

Rule to use OLD AI only - default is disabled.
Optional SQL: utils/sql/git/optional/2014_11_15_SwarmPetTargetLock.sql
2014-11-15 23:01:26 -05:00
KayenEQ
fabe93e548 Implemented target type (44) 'Beams' (which projects an AE infront of caster with a specified length and width).
Clean up of target type direction code, implemented use of aemaxtargets field for it.
2014-11-13 02:25:18 -05:00
KayenEQ
59bcd031c8 Added a simple check to prevent DoEnduranceUpkeep (1 sec persistent timer)
from constantly checking when client has no endurance drain effects.
This was running 24/7 for all classes.
2014-11-12 01:54:21 -05:00
KayenEQ
d656db843a Implemented spell Target Type (45) 'Target Rings' on Underfoot.
Thanks to Lecht for figuring out op code side of it.
2014-11-09 22:37:12 -05:00
SecretsOTheP
d8a8b8e6dc Merge branch 'master' of https://github.com/EQEmu/Server 2014-11-09 03:40:59 -05:00
Natedog2012
efdc177b78 Implement RoF + UF ornament augmentation.. thanks for the help Drajor! 2014-11-09 03:33:58 -05:00
KayenEQ
4446a1ed08 Mez spells will no longer attempt memblur each tic, just on initial cast.
reverted change to calcmaxhp due to potential overflow issues.
2014-11-08 02:07:05 -05:00
KayenEQ
0c4a32246b Fix for CalcMaxHP 2014-11-06 21:00:03 -05:00
SecretsOTheP
3ac0f1506c Fixed melee lifetap overflows - Because being healed for uint16s is not cool. 2014-11-03 16:45:36 -05:00
JJ
a9f7af59a2 Merge pull request #277 from KayenEQ/Development
Few more minor compiler warnings and code clean up.
2014-11-02 09:00:23 -05:00
KayenEQ
51a3302288 Few more minor compilier warnings and code clean up. 2014-11-02 00:43:01 -04:00
JJ
5decde0af9 (RicardoCampos) End looting before zoning. 2014-11-02 00:10:19 -04:00
KayenEQ
adb8175654 Support for spells_new field 'viral_range' 2014-10-26 02:05:36 -04:00
KayenEQ
6474e1353f Fix for a few spell triggers using correct resist dif 2014-10-07 22:54:12 -04:00
Michael Cook (mackal)
5ffb6bdee7 Reworked blind running around
This should be more in line with how we do current fearpath stuff
and with live.
2014-09-29 16:32:48 -04:00
Michael Cook (mackal)
fc1eca0f31 Merge pull request #254 from noudess/master
Changes so that blind effects like those in Flash of Light work.
2014-09-29 14:26:51 -04:00
Michael Cook (mackal)
3be7d45d36 Revamp attack delays / hastes / slows based on dev quotes
See changelog
2014-09-27 23:14:11 -04:00
KayenEQ
8567fd928a Perl Mob function GetSpellStat(spellid, identifier, slot)
indentifier is the spell_new field
slot is used for effectids,base,base2, max ect where 1 = first slot.
Will add a wiki page
2014-09-27 16:12:10 -04:00
Paul Coene
73a23e9f9d Changes so that blind effects like those in Flash of Light work. 2014-09-27 13:00:07 -04:00
KayenEQ
c03a70651c SE_ApplySpell and SE_TriggerSpell will now be applied based on which effect slot they are used in (instead of always before all spell effects are checked).
Note: If a spell has multiple SE_TriggerSpell effects within it. Only one will be able to trigger. (If you want multiple spells use SE_ApplySpell)
2014-09-23 09:15:02 -04:00
KayenEQ
1f155690d8 Fix to SE_ApplyEffect - Will now trigger spell from this effect at correct time. 2014-09-22 19:42:59 -04:00
akkadius
34c3b8628e Merge from master 2014-09-17 20:16:37 -05:00
Michael Cook (mackal)
11ce399e0d Mob::ProcessSpecialAbilities pass by reference 2014-09-15 20:31:45 -04:00
KayenEQ
03485ef1e0 Nimbus effects will now be reapplied after zoning.
Nimbus effects will now fade when associated buff is removed.
Fix for ReduceAllDamage function.
2014-09-15 16:05:57 -04:00
Michael Cook (mackal)
ed4e762f03 Change NPCs to have their attack delay set in DB
This gives us a much more straight forward way of setting mob
attack delay with respect to live.

The attack_delay column is in 10ths of seconds, just like weapons are
The attack_speed is left for references for now.
2014-09-09 22:42:54 -04:00
Michael Cook (mackal)
fa1e33783a Split Mob::SetAttackTimer into Client and NPC methods
This was the easiest way to NPCs delay settings to be sane in the database.
The functions are cleaner since there is no specific logic to change
behavior depending on if they're a client or not.
2014-09-09 22:13:30 -04:00
Michael Cook (mackal)
506b3ca4a0 Fix slow calculation
Full details: http://www.eqemulator.org/forums/showthread.php?t=38734
2014-09-08 21:43:25 -04:00
akkadius
54c89d69f6 Merge remote-tracking branch 'remotes/origin/master' into blob_conversion
Conflicts:
	common/database.cpp
	common/mysql_request_result.h
	common/shareddb.cpp
2014-09-07 04:11:09 -05:00