* 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)
* 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>
* 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>
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>
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
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>
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>
* 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>
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>
* 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
* 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>
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>
* 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.
- Script library presence is now optional.
- Some script hooks have new names. Scripting libraries need to be adjusted accordingly.
Signed-off-by: zergtmn <zerg@myisp.com>