Commit Graph

32441 Commits

Author SHA1 Message Date
ariel-
4ab07ae4e1 Core/SmartAI: Allow scripting GameObjects by spawn id too
(cherrypicked from 05d99c5f58)
2019-08-17 20:04:14 +02:00
ariel-
7f30b474a3 DB/Conditions: fix Sablemane's Sleeping Powder exploit 2019-08-17 20:04:14 +02:00
ariel-
3d52ba93fc Core/Creature: redo some logical checks in _IsTargetAcceptable
- Check against current creature victim, don't check potential victim attacking list.
- Neutral creatures with aggressive reactstate were triggered to attack from MoveInLineOfSight because of this check
- Prevents attack from a distance after right clicking an npc

Closes #19235

(cherrypicked from 15a207fcac)
2019-08-17 20:04:14 +02:00
ariel-
fa46e7c406 Core/Spells: fix some db errors
(cherrypicked from ebba8dcba8)
2019-08-17 20:04:14 +02:00
ariel-
378de1fde0 Core/Game: fix dynamic linking
(cherrypicked from 2a6fe27cad)
2019-08-17 20:04:14 +02:00
ariel-
c8f4e59921 Core/Misc: remove unneeded semicolon
(cherrypicked from f612b1cb48)
2019-08-17 20:04:14 +02:00
ariel-
a098405a73 Core/Spell: disable proc for magnet auras, they're handled differently
Closes #19208

(cherrypicked from 7072bf8c02)
2019-08-17 20:04:14 +02:00
ariel-
b3df95807e Core/Game: fix non-pch include
(cherrypicked from b902f0c1b0)
2019-08-17 20:04:14 +02:00
xinef1
73ee82e92c Make ObjectMgrs _mailId and _hiPetNumber atomic (#19129)
- They can be accessed from multiple threads simultaneously

(cherrypicked from 3fe03392d7)
2019-08-17 20:04:14 +02:00
ariel-
d131bd1da0 Core/Database: Prepared statement parameter preallocation (#18999)
- Pass prepared statement size to the helper class to prevent runtime resizing.
- Rename CheckValidIndex -> AssertValidIndex
- Cached prepared size on the worker pool as it's shared among all connections
- Cached query data only for each connection, done lookup in map instead of possibly creating a new element
- Kill the prepared statement map, and store raw sql string on the MySQLPreparedStatement class
(This info is only used for logging, and there is no need of keeping a second container just for it)

(cherrypicked from affee140c6)
2019-08-17 20:04:14 +02:00
xinef1
60663d1374 Ensure that all actions are compared to fixed point in time (ie. world update start) (#18910)
- Actions will not be dependent on processing moment
- Increased GameObjects cooldown resolution to milliseconds, fixes arming time of traps to be exactly one second and not something from range (1000, 1999)
- Created GameTime namespace and UpdateTime class and moved there some code out of world

(cherrypicked from 7567cafec8)
2019-08-17 20:04:14 +02:00
xinef1
98180ecdc1 Core/GameObject: regenerate GO loot if respawn time passed since last loot generation time and not all items were taken (#19101)
(cherrypicked from 7011aabb56)
2019-08-17 20:04:14 +02:00
xinef1
6cd254d83b Corrected calculation for SPELL_AURA_PERIODIC_DAMAGE_PERCENT (#19060)
(cherrypicked from ce1108b8a2)
2019-08-17 20:04:14 +02:00
xinef1
825719c25c Remove auras interrupted by falling when we fall to the ground or water (#19115)
(cherrypicked from 9b284ab329)
2019-08-17 20:04:14 +02:00
ariel-
aaefda6100 Core/Scripts: Change null-check to assert
- ToPlayer() should never be null in this context

(cherrypicked from 12c680f9b1)
2019-08-17 20:04:14 +02:00
Keader
f087fbbcc6 Core/Scripts: Fixed crash in Sindragosa
Closes #19227

(cherrypicked from ecfb346d1a)
2019-08-17 20:04:14 +02:00
ariel-
9e840d05c4 Core/Misc: always output client cache version on loading
* Do same with hotfix

(cherrypicked from bb553743af)
2019-08-17 20:04:14 +02:00
ariel-
a24cb8a057 Core/Entities: spawned movementtype should override template movementtype
Core/SmartAI: pass the CreatureData pointer (if any) on updating template

(cherrypicked from ff43a74822)

Closes #19223
2019-08-17 20:04:14 +02:00
ariel-
396457e36a Core/Movement: Corrected all speed checks after 23b6991273
Ref issue #19210

(cherrypicked from 2e68736afc)
2019-08-17 20:04:14 +02:00
ariel-
5934f53717 Core/Scripts: implement Moss Covered Feet
Closes #19022

(cherrypicked from f302b3d68d)
2019-08-17 20:04:14 +02:00
Naios
5add0c004e Dep: Use the anonymous namespace free definition of boost::none.
* Fixes MSVC linking errors after the recent changes:

    "class boost::none_t const & const boost::`anonymous namespace'
    ::none" (?none@?A0x518851d0@boost@@3AEBVnone_t@2@EB)
    already defined in scripts_commands.lib...

* Sets the required version of boost on windows to 1.66
  according to the wiki.

(cherrypicked from 3da60f8400)
2019-08-17 20:04:14 +02:00
jackpoz
6f1b13e5c4 Core/Misc: Fix static analysis issues
(cherrypicked from 8f2bcd79da)
2019-08-17 20:04:14 +02:00
jackpoz
154f9a03e7 Core/Misc: Fix static analysis issues
(cherrypicked from 6940071994)
2019-08-17 20:04:14 +02:00
jackpoz
9780d23f47 Core/Misc: Fix static analysis issues
(cherrypicked from b375bab225)
2019-08-17 20:04:14 +02:00
ariel-
e050a7444e Core/Scripts: kill a warning
(cherrypicked from ace2a75197)
2019-08-17 20:04:14 +02:00
ariel-
beda1c2466 Core/Scripts: Thrusting Hodir's Spear
- Everything is sniffed, enjoy this hell of a quest!

Closes #12808

(cherrypicked from 01f5befcec)
2019-08-17 20:04:14 +02:00
Gustavo
1d2f20d59a Core/Unit: Correct speed calculus when affected by SPELL_AURA_MOD_MINIMUM_SPEED (#18136)
(cherrypicked from 4224259d83)
2019-08-17 20:04:14 +02:00
ariel-
38ea7154ad Core/Dep: update zlib to 1.2.11
Changelog:

Changes in 1.2.11 (15 Jan 2017)
- Fix deflate stored bug when pulling last block from window
- Permit immediate deflateParams changes before any deflate input

Changes in 1.2.10 (2 Jan 2017)
- Avoid warnings on snprintf() return value
- Fix bug in deflate_stored() for zero-length input
- Fix bug in gzwrite.c that produced corrupt gzip files
- Remove files to be installed before copying them in Makefile.in
- Add warnings when compiling with assembler code

Changes in 1.2.9 (31 Dec 2016)
- Fix contrib/minizip to permit unzipping with desktop API [Zouzou]
- Improve contrib/blast to return unused bytes
- Assure that gzoffset() is correct when appending
- Improve compress() and uncompress() to support large lengths
- Fix bug in test/example.c where error code not saved
- Remedy Coverity warning [Randers-Pehrson]
- Improve speed of gzprintf() in transparent mode
- Fix inflateInit2() bug when windowBits is 16 or 32
- Change DEBUG macro to ZLIB_DEBUG
- Avoid uninitialized access by gzclose_w()
- Allow building zlib outside of the source directory
- Fix bug that accepted invalid zlib header when windowBits is zero
- Fix gzseek() problem on MinGW due to buggy _lseeki64 there
- Loop on write() calls in gzwrite.c in case of non-blocking I/O
- Add --warn (-w) option to ./configure for more compiler warnings
- Reject a window size of 256 bytes if not using the zlib wrapper
- Fix bug when level 0 used with Z_HUFFMAN or Z_RLE
- Add --debug (-d) option to ./configure to define ZLIB_DEBUG
- Fix bugs in creating a very large gzip header
- Add uncompress2() function, which returns the input size used
- Assure that deflateParams() will not switch functions mid-block
- Dramatically speed up deflation for level 0 (storing)
- Add gzfread(), duplicating the interface of fread()
- Add gzfwrite(), duplicating the interface of fwrite()
- Add deflateGetDictionary() function
- Use snprintf() for later versions of Microsoft C
- Fix *Init macros to use z_ prefix when requested
- Replace as400 with os400 for OS/400 support [Monnerat]
- Add crc32_z() and adler32_z() functions with size_t lengths
- Update Visual Studio project files [AraHaan]

(cherrypicked from d939018371)
2019-08-17 20:04:14 +02:00
ariel-
07d43783f6 Core/Conditions: CONDITION_SOURCE_TYPE_QUEST_ACCEPT should not prevent completed question mark from showing (#18151 follow up)
Closes #19188

(cherrypicked from 6c9bda6093)
2019-08-17 20:04:14 +02:00
ariel-
5da9f724c3 Core/Entities: Fix null-dereference crash
Closes #19191

(cherrypicked from d61e0f79c4)
2019-08-17 20:04:14 +02:00
Keader
b428bfbd14 Core/Scripts: Fixed Illidan epic sounds again (#19184)
(cherrypicked from bb3c964e7c)
2019-08-17 20:04:14 +02:00
ariel-
420f2e8ec2 Core/Spells: refactor spell_enchant_proc_data table
- Renamed fields to mimic those in spell_proc
- Added Enchant proc attributes for controlling specific enchant features

Ref #7789

(cherrypicked from f609e7a08b)
2019-08-17 20:04:14 +02:00
ariel-
5f70be050f Core/Scripts: fix Nightfall proc chance and reduce it for victims with level above 60
Closes #15734

(cherrypicked from eac9c1f0b9)
2019-08-17 20:04:14 +02:00
treeston
8e4f5e1627 Core/Creature: Fix SetSpawnHealth so it cooperates with the colossal hack that is Battleground::AddCreature. *puke*
(cherrypicked from b3b4054eb4)
2019-08-17 20:04:14 +02:00
ariel-
b91eac6a1c Core/Spells: fix Hand of Justice proc chance and reduce it past level 60.
Ref #7789

(cherrypicked from f4ae639961)
2019-08-17 20:04:14 +02:00
ariel-
77fc6ceea8 Core/Spell: Added the possibility to explicitly disable auraEffect procs using attributes
- Renamed IsProcTriggeredOnEvent to GetProcEffectMask, since long ago this function returned bool, new name should better reflect its use

(cherrypicked from e7ccd8ea3f)
2019-08-17 20:04:14 +02:00
funjoker
b4d30bb92c QueryCache port
partial port of:
(ae9d01a324)
(dd1aa64563)
2019-08-17 20:04:14 +02:00
xinef1
4380fe2751 Properly stop attacking after player leaves ffa area (like Gurubashi Arena) (#18952)
(cherrypicked from 4eae29d421)
2019-08-17 20:04:14 +02:00
ariel-
025ffe11d1 DB/Loot: remove some incorrect drops of three quest reward items
- Items reward of the Hakkari Urn, it must always contain the 3 items (previous had a very little chance of being less than 3)
- Hakkari Urn is the reward from "Secret of the Circle (3447)"

(cherrypicked from e9d527b70f)
2019-08-17 20:04:14 +02:00
Keader
ae0a429e52 Core/Scripts: Fixed epic sounds on Illidan Fight (#19172)
Thanks Kittnz for notice <3

(cherrypicked from 50973e9d6f)
2019-08-17 20:04:14 +02:00
Killyana
491d67fb4e DB/Creature: Fix respawn time for some npcs added in a previous commit
(cherrypicked from 0666740086)
2019-08-17 20:04:14 +02:00
Dr-J
aa8c52d9dd DB/SAI: Zangen Stonehoof
Remove part of script which rings bell at start of nights event when his nightly script activates as this should no longer be needed.

(cherrypicked from d535b98b05)
2019-08-17 20:04:14 +02:00
Kittnz
1c926d0171 Script/GO: Alliance Bell, Horde Bell and Karazhan Bell will now send a bell sound on the start of each hour. (#19145)
* Script/GO: Alliance Bell, Horde Bell and Karazhan Bell will now send a bell sound on the start of each hour.

How many times it rings depence on the hour.

* fix little things from pr comments

* Added OnGameEvent

* Fix braces

* almost finished

* fix enum

* Add gameobjects to the game event

Fix override for InitializeAI

* enum squash

* remove braces

* Rename 9999_99_99_99_world.sql to 2017_02_19_01_world.sql

(cherrypicked from 495339a2c7)
2019-08-17 20:04:14 +02:00
Shauren
973c97777d Add missing sql to previous commit
(cherrypicked from 0bd0602948)
2019-08-17 20:04:14 +02:00
xinef1
a32d5cfa17 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

(cherrypicked from b0ae5fadd1)
2019-08-17 20:04:14 +02:00
Riztazz
2caec4f4d2 Revert "[3.3.5][master] Core/Movement: Smooth movement #13467 (#18020)"
This reverts commit 05fb27dae4.

(cherrypicked from a3c6880579)
2019-08-17 20:04:14 +02:00
KobeSagami
7d60b9a289 Core/Misc: Minor change to racial wisp handling to make custom easier (or so i heard) (#22954) 2019-08-17 17:07:16 +02:00
Ovah
9bd8d90728 Core/Spells: implement SPELL_AURA_OVERRIDE_AUTOATTACK_WITH_MELEE_SPELL (#23467) 2019-08-17 14:56:22 +02:00
Shauren
b054a3f526 Core/Items: Defined new item flags 2019-08-15 12:03:38 +02:00
Shauren
f884e5a856 Core: Updated allowed build to 8.2.0.31429 2019-08-11 12:19:56 +02:00