Commit graph

59 commits

Author SHA1 Message Date
Antz
9d20fe2b32 Initial project location adjustment 2020-02-17 09:22:43 +00:00
Antz
f1c9e0f94b [Sync] Project header sync 2020-02-17 09:22:26 +00:00
Schmoozerd
ae7348f6b0 [12774] Merged cmangos last changes, special thanks for xfurry, Dramacydal, cala, Schmoozerd,
I'm not taking any credits of this commit.

Implement spell effects 62042, 62278 and 64767
Also limit the targets for 62577 and 62603
----------
Update git_id to reflect recent sql formatting changes
----------
Update to a safer code version and also add GO caster scenarios
----------
Allow aura 62038 to stack at every 3 seconds
----------
Improve handling of TargetMMGen
This will have impact on Chase and Follow Movement.
----------
* Refactor code to check if a new position is required for the MMGen into the new function RequiresNewPosition
* Refactor code to get the current targeted distance into function GetDynamicTargetDistance
* Change ChaseMMGen (angle = 0.0f case) chase to best contact point, not zero angle.

Thanks to Cala and X-Savior for testing. Special thanks to cala for also suggesting improved values for the magic numbers
----------
Improve ObjectPosSelector
Now a spot already occupied by the searcher will be prefered
----------
Get rid of bounding radius in GetNearPoint[2D] and ObjectPosSelector
----------
This changes how ObjectPosSelector is used.
It changes the way how the functions Object::GetNearPoint and Object::GetNearPoint2d behave.
----------
So you need to check all places where these functions are used if they are still used correctly.
----------
Especially check your scripts!
----------
Remove not required duplicate indexes
----------
Implement TARGET_92 as TARGET_SUMMONER
This target is used only as TargetA and the related spells are used only by temporary summoned creatures
----------
Implement some spell effects used by Hodir in Ulduar
Dummy spells 62797, 63499, 63545 and 64543
Periodic dummy auras: 61968, 62038, 62039 and 65272
Limit targets for spells: 62797, 63545, 64543, 62476 and 62477
----------
Implement some spells used at Algalon encounter
Spell aura entries 64345, 62018 and 64412
Positive target exception for spell 64996
Aura stacking exception for spells 62169, 62168, 65250 and 64417
----------
Implement effect for spell 63633
----------
EventAI - Ingame output of script state
----------
With this the command .npc aiinfo will give more output about the current state.
Remark that this output is only given if the LogFilter for EventAIDev mode is disabled
----------
FindGit.cmake already ships with CMake
No reason for us to ship it too. Also, we had an outdated version which
had not been used anyway, because we set the include path in such a way,
that the CMake delivered version is always found first.
----------
FindOpenSSL.cmake already ships with CMake
No reason for us to ship it too. Also, we had an outdated version which
had not been used anyway, because we set the include path in such a way,
that the CMake delivered version is always found first.
----------
EventAI - Add more developing error output
----------
Fix some target-type handling for EventAI
Also increase log-output for bad target-types
----------
Fix crash due to bad compiler (author Xfurry)
----------
Add special condition id for Ulduar
Will be used to check the availability of the siege vehicles for players
----------
Update spells 62374 and 62907
* limit spell targets of spell 62374
* implement spell effect for spell 62907
----------
Remove effect for spell 64503
Will be handled in script library. For details please check 8502cdfa64
----------
Implement spells 64489 and 64673
Both are used by Auriaya (Ulduar)
----------
Implement some spells for Ignis the Furnace Master
Spell entries: 62717, 62381, 62488, 62707, 64475 and 64503
----------
Implement spells 61187 and 61190
----------
CMake: generic way to build a script library
Added new parameter INCLUDE_BINDINGS_DIR which can be set to the name of a
folder inside src/bindings/.

Includes the script library in src/bindings/ with the defined name.
The name must correspond to the name of the folder and the folder must contain
a valid CMakeLists.txt

Note: if you currently use a script library, you will probably get a merge
problem on src/bindings/CMakeLists.txt as you will have modified this file
manually. Please use the new version of this file and rerun CMake once with the
parameter -DINCLUDE_BINDINGS_DIR=ScriptDev2 (if you are not using SD2 but
another script library, replace ScriptDev2 with the name of the folder in
src/bindings/).

If you do not use a script library you should not have any merge problems
and you don't need to do anything.
----------
Add CMake source groups to target 'game'
This is the exact same grouping as it is currently in the VC 2012 files.
These groupings will have to be refactored at some point as they are not
very logical.
----------
Add CMake source groups to target 'framework'
This is the exact same grouping as it is currently in the VC 2012 files.
This is part of cmangos/issues#67
----------
Add CMake source groups to target 'shared'
This is the exact same grouping as it is currently in the VC 2012 files.
----------
Add new parameter 'expansion' to command 'account create'
----------
Update some Sunwell Plateau spells

Limit targets and allow positive effect for spell 46650
Implement effect for spells 46289 and 46637
Remove effect for spell 44845 - will be handled in script library
----------
Implement some custom use for Effect Activate Object spells
This will fix the summoning events for the Wind Stones, Ice Stones, Skettis bosses and quest 11865
----------
Sync mangos.sql with other versions
----------
Redump sql databases to unify formatting
The main reason for this was because classic/cata has updated the sql formatting and manually syncing would be a pain so redumping from master->tbc->classic->cata is easier.

Only the formatting was changed. The values were not changed at all.

mysqldump was used however manual modifications had to be done.

Dump the database:
C:/mysql/bin/mysqldump.exe mangos > sql/mangos.sql

Split insert values into multiple rows:
Replace "),(" with "),\n("
Replace "VALUES (" with "VALUES\n("

Remove the character sets by replacing them with an empty string

Custom formatting of mangos.sql:
Move db_version to the very top
Create all dbscripts_on_* tables based on dbscripts_on_creature_movement
Preserve our custom insert formatting of spell_affect (tbc/classic), spell_bonus_data, spell_chain, spell_elixir, spell_proc_event, spell_proc_item_enchant, spell_template, spell_threat
Remove autoincrement values from insert values of pet_name_generation and remove AUTO_INCREMENT=261 value from its table structure

Custom formatting of characters.sql:
Move character_db_version to the very top

Custom formatting of realmd.sql:
Move realmd_db_version to the very top
----------
Immediately remove corpses when ForcedDespawn is used
Thanks to Neotmiren for pointing, special thanks to cala for testing!
----------
Fix use of config values related to quest-status and level
This fixes use of negative value in config values Quests.LowLevelHideDiff and Quests.HighLevelHideDiff
Also add some documentation around the related code
Thanks to Neotmiren for pointing and to cala for testing.
----------
Loot-System: Fix reference loading check
This fixes a false error output for loot references that are only used with spell loot.
Thanks to X-Savior for properly reporting both error messages and use case
----------
Add missing spell 61437 to playercreate spells for bloodelves
Thanks to NeatElves for porting from TC and pointing to this
----------
Fix load bar step for alendarMgr::LoadCalendarsFromDB
----------
Cody Style Improvements
Also remove an unused variable (thanks to Den for this!)
----------
Implement the spells used in the Chess Event encounter
Combat spell entries: 37775, 37824, 39338, 39342, 39341, 39344, 45260
Melee spells: 37142, 37143, 37147, 37149, 37150, 37220, 37227, 37228, 37337, 37339, 37345, 37348
Chess movement spells: 30012, 32312, 37388, 30284, 37144, 37146, 37148, 37151, 37152, 37153
Aura stacking exception: 32261 and 39400
----------
And more hotfixes with these format strings
----------
Hotfix to recent text loading functions
----------
Use possible changed model names with vmap extraction
----------
Fix some warnings
----------
Store how many texts are loaded for validity checks. Use this with EventAI
----------
EventAI: Use generic DoDisplayText and loading of additional text data
----------
Add generic DoDisplayText function and use additional data of dbscripts table
----------
Add const-correctness to Text related functions
----------
Add database changes to support more data for DB Script texts
----------
Add stacking exception for spells 39993 and 40041
----------
Allow spell effect 86 - Activate Object to use the misc value
----------
Allow player pets to swim
----------
Enable resummoning of warlock pets
----------
Do not remove FLY auras on Evade
Also consider npcs which have SPELL_AURA_FLY as being able to fly
----------
EventAI: Improve code
* Drop rather pointless bool to check if the number of assigned events is empty
* Before the phase was resetted on death if and only if the npc has Events defined
* DoMeleeAttackIfReady could have been called even though combat state could have changed while processing events
----------
EventAI: Implement ACTION_T_SET_THROW_MASK (46)
This Action can be used to set which AIEvents should be thrown automatically, if you need more flexibility, you can always use the manual ACTION_TH_THROW_AI_EVENT version.
* Also clean some error-log output a bit.
----------
Forward original caster GUID to script library
----------
Fixup commit 12511 Thanks to Zakamurite for pointing
Also thanks to him for giving a helping hand in correcting the commit
----------
Implement some spells for Felmyst encounter
Spell entries: 45714, 45717 and 45918. Limit targets of spell 45391
Also add stacking exception for auras 45068 and 45582
----------
Fix invisible spirit healers & such on death near them
This fixes an issue that occurs if you die close to a spirit healer/guide.
----------
Fix take ammo for most ranged spells
Fix spells like Arcane Shot not taking ammo while they should
----------
Check cast spell 51690
----------
Fix SpellDamage modifier of SPELL_AURA_MOD_DAMAGE_DONE_CREATURE
This aura modifies a flat value, not a percent value.
----------
Implement proc effect of spells 67712, 67758
related to items 47316, 47477.
----------
Improve proc of spell 50421
----------
Add and implement server-side spell 23770
----------
EventAI: Improve TargetSelection related ErrorLog output
----------
DBScripts Engine: Change behaviour to search for a different npc when using buddy-search
With this an npc buddy will be interpreted as "another npc with entry"
Also toggle command 31 - TERMINATE_SCRIPT to also look only for other npcs of entry
----------
DBScripts Engine: Allow pets as buddy
Add new flag SCRIPT_FLAG_BUDDY_IS_PET (0x20) that will search not for a normal npc with buddy-search, but also for pets
----------
DBScripts Engine: Support buddy search by guid
* Add new `data_flags` flag SCRIPT_FLAG_BUDDY_BY_GUID (0x10)
If this flag is set, the content of `search_distance` is interpreted as db-guid of the requested buddy
* Also switch most error log output to DB-error log output (though this will include false positives)
----------
2020-02-17 09:20:48 +00:00
Schmoozerd
5e944a2c12 [12669] Add GO-Casting to SCRIPT_COMMAND_CAST_SPELL
Close cmangos/issues#203

(based on commit [12467] - c10539a)
2020-02-17 09:20:21 +00:00
Antz
1997c1e903 Rebase resync 2020-02-17 09:19:44 +00:00
billy1arm
ef445ea523 [12632] Revert previous commit (see Notes) 2020-02-17 00:54:15 +00:00
jethro84530
d24770cf34 [c12608] Fix typo. 2020-02-17 00:21:08 +00:00
Schmoozerd
af1c665095 [c12607] Implement SCRIPT_COMMAND_TERMINATE_COND 2020-02-17 00:13:53 +00:00
NeatElves
e0192deaf6 [c12582] Add support for XP-Gain disabling 2020-02-16 23:26:00 +00:00
Xfurry
18de1279eb [c12580] Fix possible crash due to [12409] 2020-02-16 23:20:00 +00:00
Xfurry
dcc087a360 [c12571] Allow spell effect 77 (ScriptEffect) and aura 226 (PeriodicDummy) to be handled by script library 2020-02-16 23:18:34 +00:00
Dramacydal
bf5c6b1ddd [c12562] Cleanup Style 2020-02-16 23:12:16 +00:00
Xfurry
7fec4dacae [c12559] DBScripts - Add Map/Zone wide sound support to COMMAND_PLAY_SOUND 2020-02-16 22:41:04 +00:00
Schmoozerd
a27787851c [c12537] Update Authorship information
(based on commit [12388] - 037f217)

Signed-off-by: Xfurry <xfurry@scriptdev2.com>
2020-02-16 21:27:46 +00:00
Schmoozerd
a05738717a [c12536] Happy New Year 2013
Update authorship information and prepare for easier ways next year

Signed-off-by: Schmoozerd <schmoozerd@cmangos>

(based on commit [12325] - b7dbcda)
2020-02-16 21:25:01 +00:00
Reamer
147a1b04fe [12126] Implement SPELL_EFFECT_KNOCKBACK_FROM_POSITION (144)
Also fix a missing break in db-script engine

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2020-02-16 20:41:03 +00:00
Schmoozerd
aacb838e60 [0063] Fix a bug with SCRIPT_COMMAND_KILL_CREDIT
This bug can happen if a (group) kill credit is provided without involved creature.
Thanks to Atari for pointing!
2020-02-16 08:29:02 +00:00
Salja
22bfaa12b0 Mage 400 INTO master/434
Signed-off-by: Salja <salja2012@hotmail.de>
2020-02-16 01:59:51 +00:00
Schmoozerd
835d1c7479 [12069] Cleanup comment style 2012-07-22 14:39:31 +02:00
Schmoozerd
84080ee5d3 [12065] Fix various warnings 2012-07-20 21:17:04 +02:00
Schmoozerd
e32b9953a1 Cleanup Operator padding 2012-07-20 17:38:23 +02:00
Schmoozerd
08fd085549 Various Cleanups (game S) 2012-07-19 21:52:06 +02:00
Schmoozerd
f24fa870c5 [12057] Add some static wrappers for Lookup access to SQLStorages 2012-07-19 01:14:02 +02:00
Reamer
6b6b2379a3 [12030] Support Random Movement around a point
* Remove unused MoveRandom function
* Add MotionMaster::MoveRandomAroundPoint function
* Toggle DB-command COMMAND_MOVEMENT to be able to move around current position or respawn position (depending on data_flags)
2012-07-12 19:15:14 +02:00
Schmoozerd
414d432d24 [11990] More db-script command changes
* Allow SCRIPT_COMMAND_KILL_CREDIT to give the kill of an involved npc.
  This is marked by datalong (creature-entry) == 0
* Remove immediate execution of commands. This will prevent infinite loops when db-scripts trigger db-scripts which are executed immediately
* Add check for SCRIPT_COMMAND_PLAY_SOUND
* Add check to catch an invalid command

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2012-05-09 23:09:12 +02:00
Schmoozerd
83d7d86255 [11989] Add support to call spell_scripts in more cases
* Support to script Dummy spells with spell_scripts
* Support to script TriggerSpell spells which have no existing triggered spell
Note that the order which spell-effect actually triggers the DB script is well-defined (SCRIPT_EFFECT before DUMMY before other)

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2012-05-08 17:31:09 +02:00
Schmoozerd
dd1d913ff2 [11988] Fix a bug in SCRIPT_COMMAND_TEMP_SUMMON_CREATURE
Now despawn-time will be treated as TEMPSUMMON_DEAD_DESPAWN as expected. Thanks to Xfurry for pointing.
Also make the DB-scripts work only with players on the map. This might affect a few rare scripts, especially related to far-teleport

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2012-05-08 17:07:09 +02:00
Schmoozerd
010d29d1ed [11985] Implement support for go_template_scripts
Add a new table `gameobject_template_scripts` to start scripts for any type gameobject.
Scripts in this table are triggered for all gameobjects on GameObject::Use

Note: The table `gameobject_scripts` is expected to not be required very much longer, and will most likely be removed someday
2012-05-04 20:39:48 +02:00
Schmoozerd
4e6fbf5e9e [11984] Add new SCRIPT_COMMAND_SEND_TAXI_PATH to trigger a taxi path
Idea for this patch by Klark20 (maybe he also was the author of this patch as well, I cannot check in this moment)

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2012-05-04 17:47:12 +02:00
Xfurry
ea08f7c5d7 [11947] Improve SCRIPT_COMMAND_MOVE_TO
This changes the handling of SCRIPT_COMMAND_MOVE_TO, to not expect some travel-time, but directly provide the speed for the movement (*100).

Attention to DB-Devs, please check your MOVE_TO scripts.

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2012-04-10 23:44:17 +02:00
Schmoozerd
b828d003bc [11943] Fix non-pch compile, thanks to NeatElves for pointing 2012-04-07 12:27:03 +02:00
Schmoozerd
a42a55da84 [11942] Add option to NearestCreatureEntryWithLiveState.. GridSearcher to be able to also search for both alive and corpse creatures 2012-04-07 00:00:21 +02:00
Schmoozerd
8e0edc0383 [11940] Rewrite and cleanup DB Script Engine
* Moved actual script processing code to ScriptMgr
* Unifed and improved log output. Now table-name is passed to each script execution
* Added the "buddy concept" to all commands (except the outdated direct field change commands):
Now all commands support to search a creature (or go for some commands) in a radius, with which to do some stuff.
See doc/script_commands.txt for more details and information

Attention DB Devs:
Current DB-Scripts are converted automatically as far as possible, but some old target selecting mechanics were not reasonable to do automated.
For such cases the command is marked with data_flags & 0x10 (==16), which will throw DB-Errors to track them down faster

Thanks to NeatElves and especially Grz3s for testing!

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2012-04-06 22:04:30 +02:00
Schmoozerd
8068dcf6dd [11875] Update Copyright notice to year 2012
Start timemachine and a Happy new year to all!
2012-01-16 17:43:59 +01:00
Klark20
bcc470ac43 [11864] Fix SCRIPT_COMMAND_SET_FACTION to check for expected Faction Templates and not factions
Please check your scripts! Note: Similar problems exist in other cases as well.

Signed-off-by: Klark20 <Klark20@online.de>
Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2011-12-16 02:49:15 +01:00
Schmoozerd
4c82458874 [11852] Add support for db scripts assigned to gossip menus 2011-11-30 20:30:52 +01:00
Schmoozerd
46e604a089 [11823] Add SCRIPT_COMMAND_MODIFY_NPC_FLAG to change NPC flags by db-script
Note that the npc flags will be restored when the npc respawns

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
2011-10-14 20:35:55 +02:00
VladimirMangos
8c560ebd97 [11593] Use MAX_UNIT_STAND_STATE instead client dependent last value in enum. 2011-06-03 16:24:06 +04:00
VladimirMangos
c870ef324d [11590] Cleanups for barGoLink
* Rename barGoLink -> BarGoLink as expected by mangos code style
* Add uint32/uint6 constructor versions for BarGoLink,
  and remove lot casts required before for BarGoLink use
2011-06-03 12:02:49 +04:00
NoFantasy
70d9d4ef24 [11582] Implement SCRIPT_COMMAND_STAND_STATE to use in *_scripts tables
Set the stand state (enum UnitStandStateType) of any Unit*

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-06-01 09:28:47 +02:00
Schmoozerd
0de4e302b3 [11558] Fixes and way work chnages for GO lock/interact state
* Not reset lock/interact state in instances (so until instance reset)
* Do unti-cheating checks for use attempts locked/non-intareactive GOs
* Implement SCRIPT_COMMAND_GO_LOCK_STATE for control lock/interact state of GOs from scripts.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-05-29 04:31:34 +04:00
VladimirMangos
7e79c611ec [11477] Correctly unload scriptlib at errors.
This will prevent unexpected call some handlers
for "unloaded" sriptlib DLL.
2011-05-12 21:39:23 +04:00
VladimirMangos
341379e1ab [11432] Provide access to some script data (names, count) for script DLL 2011-05-07 18:27:43 +04:00
NoFantasy
acb6372d29 [11311] Add SCRIPT_COMMAND_ATTACK_START to initiate attack by creature.
../docs/script_commands.txt updated for details

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-04-03 19:52:43 +02:00
NoFantasy
c93256e477 [11309] Extend SCRIPT_COMMAND_EMOTE, allow search for nearby creature to do the emote
Also allow play emote on Player when player is source.
Gameobject may be source of script but are only allowed as searcher for creature when defined.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-04-03 17:55:53 +02:00
NoFantasy
d79d348af1 [11296] Load and check GAMEOBJECT_TYPE_CAPTURE_POINT event id's
Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-03-28 09:25:25 +02:00
zergtmn
a6d155fc54 [11259] Move scheduled scripts counter to ScriptMgr
Also cleanup forward declarations.
2011-03-16 20:01:10 +05:00
VladimirMangos
f73868a703 [11117] Allow for non-instancable maps have InstanceData and instance scripts.
* New table added for non-instanced maps (except BG/arena):
    - `mangos`.`world_template` (script mapping to non instanced data)
    - `characters`.`world` (saved script data string storage)

* InstancedData created for any map types including BGs/arenas, that allow have scripts
  state for any maps, but BG/arena instance data not saved.

Note: Possible structures will renamed later for clarify apply to any type maps,
but avoid for now for simplify changes and hard affect to script library sources.
2011-02-08 04:15:13 +03:00
Skirnir
75b4f75f4d [11066] Remove tail whitespaces.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-01-25 00:22:29 +03:00
VladimirMangos
d2b3977fee [10988] Propertly note for not loaded script library version.
* Better support localization in case built-in version notes.
* Move script library version functions to ScriptMgr
2011-01-09 06:06:52 +03:00