Commit Graph

19844 Commits

Author SHA1 Message Date
xinef1
9142c778dd Corrected points per level calculation for some spells (#19105) 2017-02-19 02:30:04 -03:00
xinef1
e261754c9c Fixed setting and unsetting of m_spellModTakingSpell (#19116)
- A problem when a different spell tries to overwrite existing ModTakingSpell should no longer happen
2017-02-19 02:10:50 -03:00
jackpoz
76f3e0edea Core/WorldSocket: Handle unhandled exceptions
Properly handle unhandled exceptions happening with malformed packets.
Fix #19128
2017-02-18 11:36:02 +01:00
xinef1
b0ae5fadd1 Core/SmartAI: Various fixes and extensions for smart scripts: (#18673)
- Possible crashes fixed
- Memory leak fixed
- Implemented checking of vehicle conditions
- Extended eventphasemask to 12 bits (sql required to change DB field type)
- SMART_EVENT_GOSSIP_HELLO - added possibility to detect for gameobject reportUse call
- Renamed action SMART_ACTION_SET_FLY to SMART_ACTION_SET_DISABLE_GRAVITY (to reflect actual functionality)
- Added targetsLimit to action SMART_ACTION_CAST and SMART_ACTION_INVOKER_CAST to limit max amount of targets (selected randomly)
- Action SMART_ACTION_TALK corrected to always work as intended
- Properly call GroupEventHappens in action SMART_ACTION_CALL_GROUPEVENTHAPPENS if invoker was charmed or owned by the player
- Properly utilize followAngle in action SMART_ACTION_FOLLOW (db orientation should be in degrees), but keep backward compatibility
- Added action SMART_ACTION_SET_CAN_FLY (119) 0/1
- Added action SMART_ACTION_REMOVE_AURAS_BY_TYPE (120) AuraType, can be used to exit vehicle for example
- Added action SMART_ACTION_SET_SIGHT_DIST (121) sightDist
- Added action SMART_ACTION_FLEE (122) fleeTime
- Added action SMART_ACTION_ADD_THREAT (123) +threat, -threat
- Added action SMART_ACTION_LOAD_EQUIPMENT (124) equipmentId
- Added action SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT (125) minId, maxId
- Added action SMART_ACTION_REMOVE_ALL_GAMEOBJECTS (126), removes all owned gameobjects
- Added action SMART_ACTION_STOP_MOTION (127), stopMoving, movementExpired
- Extended target SMART_TARGET_HOSTILE_SECOND_AGGRO with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_LAST_AGGRO with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_RANDOM with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_RANDOM_NOT_TOP with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_THREAT_LIST with maxdist
- Extended target SMART_TARGET_OWNER_OR_SUMMONER to be able to get charmer/owner of current owner
- Added new target SMART_TARGET_FARTHEST with maxDist, playerOnly, isInLos restrictions
- Added SpellHit hook to GameObjectAI and extended SmartGameObjectAI to call SMART_EVENT_SPELLHIT when gameobject is hit by spell
- Call GameObjectAI Reset hook on gameobject respawn (for ex. to reset one time events in smart scripts)
- Fixed some logic errors in code
- SmartAI Escorts properly despawn escortee if no players are in range
- Disable Evading while charming creature with SmartAI
- Don't call SMART_EVENT_RESPAWN for dead units before they actually respawn
- Don't call SMART_EVENT_RESPAWN for not spawned gameobjects
- Properly call SMART_EVENT_RESPAWN for gameobject respawn
- Allow action SMART_ACTION_SET_IN_COMBAT_WITH_ZONE to utilize targetlist
- Allow action SMART_ACTION_CALL_FOR_HELP to utilize targetList
- Allow action SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL to utilize targetList
- Allow action SMART_ACTION_SET_VISIBILITY to utilize targetList
- Allow action SMART_ACTION_SET_ACTIVE to utilize targetList
- Allow action SMART_ACTION_ATTACK_START to select random attack target instead of first on the list
- Allow gameobjects to summon gameobjects with action SMART_ACTION_SUMMON_GO
- Properly store action invokers for action SMART_ACTION_WP_START, if no player invokers are found, distance despawn check won't be used
- Allow action SMART_ACTION_WP_RESUME to compensate for the state the unit actually is in (eg. combat)
- Allow action SMART_ACTION_MOVE_TO_POS to select random of the avaiable targets, not only the first one.
- Allow action SMART_ACTION_MOVE_TO_POS to utilize x, y, z parameters as an offset to calculated coordinates
- Action SMART_ACTION_RESPAWN_TARGET should never modify respawntime of already spawned gameobjects, use dedicated function
- Properly delete ontime events created by SMART_ACTION_CREATE_TIMED_EVENT
- If action could not be started because conditions were not satisfied, do not recalculate the waittime to action repeattime, use smaller value to recheck more frequently
- Allow target SMART_TARGET_CLOSEST_PLAYER to be used by gameobjects
- Allow target SMART_TARGET_OWNER_OR_SUMMONER to be used by gameobjects
- Fixed SMART_EVENT_COUNTER_SET to be only called for the id that was incremented
- Changed the way counters work
- Protect PhaseInc from surpassing maximum phase
- Added loading checks for missing NON_REPEATABLE flag if no repeatmin, repeatmax is set
- Added spell validation for SMART_ACTION_CROSS_CAST
2017-02-17 21:33:18 +01:00
Kittnz
9d74252e8d Reverting: Game/Scripting: Add OnGameEvent hook for game objects. 2017-02-17 20:30:52 +01:00
Kittnz
a5ccbe9906 Fix tabs 2017-02-17 20:19:05 +01:00
Kittnz
343d2c7f91 Game/Scripting: Add OnGameEvent hook for game objects.
Called when specific game event starts
2017-02-17 20:16:22 +01:00
Aokromes
da3e38d5ff Update MapScripts.cpp 2017-02-17 10:10:55 +01:00
Aokromes
c63f3788d9 Update ObjectMgr.h 2017-02-15 10:09:44 +01:00
Aokromes
e50e3b36a7 Update ObjectMgr.h 2017-02-15 07:14:57 +01:00
xinef1
949b38b048 Core/Creatures: Remove template immunities only for hunter pets (#19100) 2017-02-14 20:34:19 +01:00
xinef1
e7a9549422 Core/Spells: Fixed some item ranged spells dealing wrong damage (#19104) 2017-02-13 21:52:51 +01:00
xinef1
b3f04ec157 Added some missing SetFallInformation calls (#19121)
Fixed HP drop bug on zeppelins
Fixed possible packet relocation problems on huge transports
2017-02-13 21:05:32 +01:00
xinef1
2412886ef6 Core/Misc: Fixed player corpse looting, added player corpse loot and some more (#19122)
* Fixed corpse looting in wintergrasp
Added corpse loot for wintergrasp quests and To the Looter Go the Spoils (1166) achievement
Don't generate money for loot if no loot mode is available
Simplified few things
2017-02-13 20:42:06 +01:00
Gustavo
4536846d7d Core/Scripts Update boss Skadi the Ruthless (#19114) 2017-02-12 05:43:55 -03:00
jackpoz
865a3a47ea Core/Misc: Fix static analysis issues 2017-02-11 21:01:11 +01:00
Afgann
e865e5cf8e Core/Auras: Clamlette Magnifique mana regeneration (#19083)
- adding drink aura to AuraEffect::UpdatePeriodic(Unit* caster)
- making Clamlette Magnifique regenerate mana as well as hp

Closes #19075
2017-02-11 05:55:12 +01:00
Shauren
090546a80a Core/Auras: Allow passive auras from items to stack
(cherry picked from commit 8453d7dae2)
2017-02-10 02:04:38 -03:00
Gustavo
87f2cb04ca Core/Scripts Rework boss Terestian Illhoof (Karazhan) (#19057) 2017-02-09 23:01:39 -03:00
Keader
8f00aa92de Build fix and codestyle 2017-02-09 21:12:12 -03:00
Afgann
21b5a377e4 Core/Scripts: Moorabi encounter updated. (#19013) 2017-02-09 21:07:29 -03:00
Treeston
94a6dd7b3c Merge pull request #18827 from Treeston/3.3.5-bossrespawn 2017-02-09 23:38:26 +01:00
ariel-
149e449506 Update spell_item.cpp
Small indent and codestyle fixes
2017-02-09 16:01:43 -03:00
Shauren
09cc6b3c33 fix typo 2017-02-08 20:39:44 +01:00
Shauren
74bb92a582 Core/Maps: Adjusted WorldObject::GetGridActivationRange() to never be less than map visibility distance for active objects to ensure equal ranges for activation/deactivation of grids
Updates #19072
2017-02-08 20:23:37 +01:00
ariel-
3a65c70657 Core/Spell: properly add SPELLMOD_COOLDOWN to spells without initial cooldown
Closes #15605
2017-02-07 17:34:42 -03:00
Kittnz
d550ba7392 Game/Scripting: Add OnPlayerRepop hook
Called when a player presses release when he died
2017-02-07 17:28:16 +01:00
treeston
3ddcf40037 Core/Creature: Prevent boss creatures from ever respawning naturally. 2017-02-07 14:42:54 +01:00
ariel-
57798b649c Core/Scripts: fix dynamic build 2017-02-06 21:32:40 -03:00
Shauren
860ff849dc Core/Auras: Prevent infinite stacking of passive auras with the same id from the same caster on the same target
Closes #18475

(cherry picked from commit 8867612058)
2017-02-06 21:12:51 -03:00
Shauren
bf2121680f Core/Misc: Added regex compatibility layer to fall back to boost::regex for really old compiler
(cherry picked from commit b6f1f8405f)
2017-02-06 21:12:27 -03:00
Rushor
85357c75c4 Game/Mapscripts: Implement SCRIPT_COMMAND_MOVEMENT 2017-02-07 00:54:32 +01:00
ariel-
9e65fead38 Core/RBAC: sync enum with master 2017-02-06 20:47:12 -03:00
ariel-
aa7ef797d6 Core/SmartAI: Delay SMART_ACTION_FORCE_DESPAWN by at least one world tick
- Restore old despawn behavior of SmartAI despawning (without reintroducing the run time logs caused by IsSmart)
- Some SAIs relied on this to function (for example #1249)

Partial reverts commit 4fc4c81e89
2017-02-06 19:28:44 -03:00
xinef1
c6060dd0c5 Core/Spells: Remade trajectory target selection (#19048)
* Remade trajectory target selection
* Added possibility to apply conditions to trajectory spells
* Properly recalculate delay time if CMSG_UPDATE_PROJECTILE_POSITION is received
2017-02-05 21:10:15 -03:00
Gustavo
d06391d062 Core/Scripts Update boss Maiden of Virtue (#19058) 2017-02-05 19:45:13 -03:00
xinef1
14dfc377b4 Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes

* Correction
2017-02-05 23:42:31 +01:00
Aokromes
075f0e26cc Coding standards 2017-02-05 23:25:33 +01:00
Shauren
fbff3e5b3a Build fix 2017-02-05 23:17:29 +01:00
xinef1
59ce3d6c9b Core/Misc: Moved CharacterInfo out of world to separate class
Closes #19030
2017-02-05 23:14:19 +01:00
xinef1
3c605ba614 Core/Spells: Added SPELL_FAILED_NOTHING_TO_STEAL error (#19036)
Corrected Dispel check in sanctuary area
Added root check for SPELL_EFFECT_JUMP and SPELL_EFFECT_JUMP_DEST
2017-02-05 22:29:23 +01:00
xinef1
227d5a9288 Core/Spells: Corrected summon category SUMMON_CATEGORY_VEHICLE (#19052) 2017-02-05 22:24:23 +01:00
Gustavo
169e150628 Core/Scripts: boss The Curator (Karazhan) rework (#19040)
Closes #16099
2017-02-05 17:52:14 -03:00
xinef1
c1ca852e16 Core/Spells: Corrected execution time calculation for dst targets (#19039) 2017-02-05 21:05:00 +01:00
Keader
8731975187 Core/Scripts: Illidan Stormrage Rewrite (#18963)
Closes #5018
2017-02-05 12:45:29 -03:00
Xinef
7c7b877c3f Core/Achievements: Optimized resetting achievement criteria by condition and changed the functionality to properly reset all possible criteria with given condition
Closes #18905
2017-02-05 16:41:45 +01:00
xinef1
78a729b6a4 Corrected immunity checking after recent changes (#19049)
- Shouldn't compare immunity to spells without schoolmask
2017-02-05 12:36:42 -03:00
xinef1
e1f14215d8 Core/Creatures: Various fixes for creatures, regarding combat conditions, despawning, and few others (#18998)
* Made some changes to kiting mechanics, simplified code and made taunt auras prolong combat no matter the distance from the spawn
Unified some creature despawning code, removed some brutal direct calls in scripts
Don't play death anim on forced despawn
Removed some redundant visibility changes on creature despawn
Fixed possible problem with pet initializing template info from difficulty greater than normal
Properly keep UNIT_FLAG_IN_COMBAT on UpdateEntry call
Moved RegenerateMana function to general Regenerate(Power) function
Fixed increased health regeneration from polymorph for pets
Implemented CREATURE_TYPE_FLAG_GHOST_VISIBLE, those creatures will be properly seen when player is dead also
Removed hackfix from Gaeriyan and Franclorn Forgewright, fixed properly
Simplified ForcedRespawnTime code in ForcedDespawn
Do not allow to assist unit while evading or when enemy is evading
Do not allow to attack other units when evading or when the unit is evading
Corrected distance checking code before creature is allowed to evade, should fix some common problems
Properly return summon position for summoned creatures as their respawn position
Properly stop all moving units on gossip hello, no matter their npc flags
2017-02-05 15:39:22 +01:00
xinef1
93746e8c4a Implemented binary resistances and some more (#18933)
- Fixed possible exploit with tamed pets having template immunities
- Implemented binary resistances
- Corrected resistances calculations
- Pets properly inherit players spell penetration
- Fixed doubled block calculation for damaging melee spells
- Auras removing snare effects will only remove the snaring component
- Shapeshifting will properly remove movement impairing auras only and not crowd control (dragon's breath)
- Immunities are properly checked versus all schools appearing in spell, unit is immune only if immune to all schools
- Spells with melee and magic school mask should compare armor reduction with resistances and select smaller reduction
- Demonic Circle: Teleport no longer removes root effects
2017-02-04 19:50:32 -03:00
xinef1
86da1a19bb Core/Misc: Fix various crashes, also related to multithreading (#19012)
* When iterating groups we have to either do it not in multithreaded context (map updates) or start with checking maps (they are guaranteed to change in single thread update).
* Properly clear ComboPoint references on player remove 
* remove some possible references item may have when it is deleted during save. 
* Also clear all hostile references when unit is removed from map.
2017-02-04 22:37:16 +01:00