Commit Graph

525 Commits

Author SHA1 Message Date
ariel- 590009b084 Core/Scripts: converted Argent Tournament pennants to AI
Closes #14616

(cherrypicked from 804257b99a)
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
jackpoz 154f9a03e7 Core/Misc: Fix static analysis issues
(cherrypicked from 6940071994)
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
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
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
Shauren e8e89f58fb Core/DBLayer: Prevent using prepared statements on wrong database 2019-07-27 01:00:37 +02:00
Shauren 82c7b6c568 Core/Items: Drop item random property and suffix - all random stats must be given using bonus lists 2019-06-08 17:09:20 +02:00
Shauren 455959c606 Core/PacketIO: Rewrite updatefield handling 2019-06-08 17:06:57 +02:00
vincent-michael 5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Traesh 9d210476e5 Core/Creatures: Update creature model handling with new display scale (#22567) 2018-11-07 20:23:30 +01:00
Shauren 921235b3e9 Core/Misc: Fixed rotation of many gameobjects summoned in tol barad, garrison and various scripts 2018-05-07 17:45:09 +02:00
sirikfoll 2378266acd Scripts/Events Implement Pilgrim's Bounty Bountiful Table
(cherry picked from commit 75df296bb6)

Rename SQL file
(cherry picked from commit 13031f300f)
2018-03-12 16:39:45 +01:00
Mihapro 8199eef81c Core/Misc: Added helper function Unit::SetFullPower
* Also renamed Unit::getPowerType and Unit::setPowerType to follow style guidelines

Ref #20981
2018-01-03 16:39:32 +01:00
vincent-michael 7d00ae4045 Update copyright note for 2018
auto happy = new year(2018);
2018-01-01 00:40:17 +01:00
Aokromes 90badf9d7e Misc: More cleanup 2017-11-25 02:50:29 +01:00
Aokromes c547627d95 Misc: Kill trailing white spaces 2017-11-25 01:40:43 +01:00
funjoker 465012978f Core/Scripting: Implemented Conversation scripts (#20758) 2017-11-18 12:40:56 +01:00
joschiwald 2c4246f341 Fixed build 2017-09-06 16:10:32 +02:00
Kittnz a755a78f9c Core/Event: Change Midsummer Music container to vector
(cherry picked from commit e0c2482fa1)
2017-09-06 16:04:47 +02:00
Kittnz c41a4f39f6 Core/Event: Change Midsummer Music to search grid only
(cherry picked from commit 30a3a93ef9)
2017-09-06 16:04:23 +02:00
Kittnz 58fa54801f Core/Scripts: Initialize rnd and remove where it was not needed
(cherry picked from commit eee7fa3fa7)
2017-09-05 11:20:44 +02:00
Kittnz bd938d643d Core/Event: Pirate Day Music during the event
(cherry picked from commit 963278459a)
2017-09-05 11:10:56 +02:00
Kittnz 8fb07040ac Core/Event: Add Darkmoon Fair Music during the event
(cherry picked from commit e3560f3f51)
2017-09-05 11:05:51 +02:00
Kittnz c06d6b290e Core/Event: Add Midsummer Music during the event
(cherry picked from commit 19f8acdb61)
2017-09-05 10:42:08 +02:00
Kittnz 2a3a68dfab Core/Event: Fix Brewfest Music
Was only playing the same song over and over again.

(cherry picked from commit 3eacc25e5d)
2017-08-21 21:19:52 +02:00
Kittnz b8479333c2 Core/Event: Add Brewfest Music during the event
Note: Dark Iron invasion music can be added with a trigger at a later stage
(cherry picked from commit 002b0a7a65)

Update 2016_10_05_11_world_335.sql
(cherry picked from commit cccb1c5dde)

Fix non PCH build.
(cherry picked from commit 81d4c02f34)
2017-08-20 23:23:47 +02:00
Shauren 1de03622c5 Scripts: Delete broken multi profession trainer script (can now be done in db)
* Build fix
2017-08-20 15:06:59 +02:00
Shauren b85d46138b Core/Creatures: Deleted obsolete pet trainer script and fixed build 2017-07-27 00:04:37 +02:00
Shauren b453e12423 Core/Game: Include cleanup part 5
* ObjectMgr.h
* Player.h
* Unit.h
* G3D should no longer propagate everywhere from Spline/MotionMaster
2017-06-04 01:00:45 +02:00
Shauren a0a158b5b8 Core/Scripts: Include cleanup 2017-05-28 16:34:44 +02:00
Shauren 2200b4b0e1 Nopch fix 2017-05-24 21:30:43 +02:00
Shauren c5d3dd90be Core/Game: Include cleanup
* Mostly aimed at removing Log/DatabaseEnv includes from other headers
* Fix most packet headers including other packet headers - moved common structures such as ItemInstance to their own files
* Moved SAI function definitions to source files (massive or requiring many different dependencies)
2017-05-18 23:53:25 +02:00
Shauren 9299e9bde0 Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50 2017-05-13 19:37:33 +02:00
Aokromes 7717b833c2 missing part 2017-04-16 17:22:52 +02:00
Aokromes 98dc10c580 Core/Trainers: Fix Multiprofession Trainers
By Malcrom, cherry pick from https://gitlab.com/trinitycore/TrinityCore_434/commit/6fef0d2eb2cf85a631be29885f6c3908038ba4f4
2017-04-16 16:09:40 +02:00
joschiwald e465465c67 Fixed build 2017-03-03 23:28:12 +01:00
tkrokli 958665ab2e Core/Scripts: move npc_lunaclaw_spirit to SAI
This PR moves the core script `npc_lunaclaw_spirit` to SAI, removing hardcoded text.
The quests 6001 + 6002 are druid class quests to get bear form, removed in patch 4.0.3a

Changes in this PR:
- remove core script, including hardcoded text (with typo)
- use gossip_menu_option for each faction (Alliance & Horde)
- add SAI script to complete quest 6001 or 6002 based on option
- add gossip option conditions for team A (469) or team H (67)
- add gossip option conditions for quest 6001/6002 not completed

(cherry picked from commit 3ad76dea7b)
2017-03-03 21:57:23 +01:00
tkrokli e4e1f4152f Core/Scripts: simplified npc_pet_trainer gossip script
This is what the script changes should have been in PR #17746
(also updates issue #14719 with a correct solution).

- remove OnGossipHello() to use DB conditions
- replace OnGossipSelect() with sGossipSelect()
- focus script on the confirming gossip option
- let the other gossip menus be handled in DB

(cherry picked from commit a475033c76)
2017-02-28 20:40:49 +01:00
treeston dd0df772df Scripts/Events: Globally fix all ExecuteEvent loops to check UNIT_STATE_CASTING after each iteration, instead of just checking it once initially.
Fixes and closes #17892.

(cherry picked from commit ac62d7156f)

Drycoding is bad, mmkay?
(cherry picked from commit ed83a35fbe)
2017-02-19 15:09:02 +01:00
treeston bbbf8df8e5 Entities/Gossip: The Big One™ that gets rid of all uses of The Bad™ and The Ugly™, e.g. gossip preprocessor macros, and replaces them with the new-and-shiny gossip functions.
(cherry picked from commit d55426f5b4)
2017-02-18 17:50:00 +01:00
tkrokli ac88c6ec17 Core/Scripts: move npc_experience hardcoded text to DB
(cherry picked from commit 8df4706992)

Rename 2016_08_28_17750_world.sql to 2016_08_25_05_world.sql
(cherry picked from commit 9c41af16ca)
2017-02-18 16:23:19 +01:00
Gustavo e8df5babe6 Scripts/Pet Implemented Argent Squire/Gruntling and Argent Pony Bridle
(cherry picked from commit 989aaaa8b5)

Rename 2016_08_15_17779_world.sql to 2016_08_25_00_world.sql
(cherry picked from commit 526dfca864)
2017-02-18 16:00:52 +01:00
tkrokli d8befaf68b Core/Scripts: npc_wormhole #define text moved to DB (#17805)
Another core script hardcoded text removal:
- removed #define text from script
- added the text to gossip_menu_option
- added and renamed enum to match DB entries
- minor additional adjustments and comments

Closes #6841
(cherry picked from commit 8a0990376d)
2017-02-18 14:42:03 +01:00
tkrokli fcd46dd70c Core/Scripts: move Pet Trainer gossip to DB
SQL content based  on issue 14719 by Killyana,
conditions output from Malcrom's Condition Creator

- remove hardcoded #define gossip options
- enum gossip menu IDs from DB
- remove outdated SD comments at the top of the file

Closes #14719
(cherry picked from commit 03bafe334c)
2017-02-12 15:16:58 +01:00
tkrokli bf896fe2b0 Core/Scripts: remove 2 unused scripts (#17759)
These scripts are no longer in use:
- generic_creature
- trigger_death
(cherry picked from commit 2507b9f8af)

# Conflicts:
#	src/server/scripts/World/mob_generic_creature.cpp
2017-02-12 13:30:29 +01:00
ariel- c429e7d489 Core/Entities: debloat SummonGameObject parameter list using proper wrappers and enable GO rotation in scripts
- There's still an overload allowing for x, y, z, o to be passed directly
- Fixed default animstate for GameObject creation in many places, it should be 255, not 100 (checked in sniffs)

(cherry picked from commit 62bfee37cb)

# Conflicts:
#	src/server/game/Battlefield/Battlefield.cpp
#	src/server/game/Battlegrounds/Battleground.cpp
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/GameObject/GameObject.h
#	src/server/game/Entities/Object/Object.cpp
#	src/server/game/Entities/Object/Object.h
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/scripts/Commands/cs_gobject.cpp
#	src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp
#	src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
#	src/server/scripts/Kalimdor/zone_feralas.cpp
#	src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
#	src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
#	src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
2017-02-11 20:50:29 +01:00
SnapperRy 623215ce31 Event/Midsummer: improve pole ribbon functionality (#17464)
Event/Midsummer: improve pole ribbon functionality:

- Bunny creature should hover, which puts it in the intended position.
- Use correct visual and internal spells to handle cosmetics and timers.
(cherry picked from commit 03b15d968b)

Rename 9999_99_99_99_world.sql to 2016_07_05_03_world.sql
(cherry picked from commit 8edc1caf32)
2017-02-04 23:37:59 +01:00
tkrokli 34d310aff8 Core/Scripts: remove hardcoded text from npc_sayge
- remove hardcoded (and wrong) text from the script
- copy valid text from broadcast_text to gossip_menu_option
- gossip_menu / npc_text is already correct in TDB 335.61
- sort + clean up core script enum list and add new entries
- keep gossip handling unchanged in the script (low prio)

(cherry picked from commit 582af02509)

Core/Scripts/DB: move npc_gregan_brewspewer to DB

- Remove npc_gregan_brewspewer, thereby removing hardcoded text
`#define GOSSIP_HELLO "Buy somethin', will ya?"`
- Move all gossip handling to DB (gossip texts already exist in TDB)
(cherry picked from commit 3acf6f36d1)

Core/Scripts: npc_grandmother gossip text moved to DB

Removing one more hardcoded text line from core scripts.
Also adding correct gossip to the npc_grandmother script.

Gossip changes in this script:
- remove hardcoded text from core script
- use existing npc_text IDs in gossip enum
- add missing text rows to gossip_menu_option
- use values from gossip_menu_option in enum
- replace spawn coordinates 0.0f with GetPosition()
(cherry picked from commit c214f987d7)

Core/Scripts: remove hardcoded text from npc_locksmith

- remove hardcoded text from script
- move the gossip handling to DB SQL
- move the script conditions to DB SQL
- use correct gossip from broadcast_text
- remove options not existing in broadcast_text
- add Key to Searing Gorge option (related spell)
- add The Eye of Haramad option (related spell)
(cherry picked from commit e6ee6e2ae8)
2017-01-12 23:37:37 +01:00
vincent-michael 86b98686a9 Update copyright note for 2017
Happy new year
2017-01-01 16:23:13 +01:00