Commit Graph

435 Commits

Author SHA1 Message Date
Naios
445746c402 Core/Scripting: Fix acquiring of references between script swaps
* Delay unloading of shared libraries to the next update tick
  to prevent crashes in the destructor of the last referenced
  script instance.
* Closes #17557
2016-07-13 21:58:50 +02:00
Naios
d68316fcd2 Core/Scripting: Don't force event cancellation when swapping creatures.
* EventProcessor::KillAllEvents(force = false) should only be used
  by the EventProcessor.
2016-07-03 00:14:22 +02:00
Naios
851c73b3e4 Core/Scripting: Kill pending unit events when swapping AI's 2016-05-01 17:49:37 +02:00
Naios
86b0fcf67a Core/Scripting: Use the path of the worldserver executable to search for the scripts dir
* Fixes issues when starting the worldserver not in the bin directory
  or the CMAKE_INSTALL_PREFIX directory using the -c option.
2016-04-18 21:02:01 +02:00
Naios
081720b5dd Core/Scripting: Use the systems temporary path for caching shared libs
* Disables the shared library caching on platforms completely which
  never block files on usage (like linux).
2016-04-18 21:02:00 +02:00
Naios
11b5de63cb Core/Scripting: Add the info how much time the system took to reload 2016-04-17 18:11:05 +02:00
Naios
1e0a93d3d8 Core/Scripting: Improve the error message when the script reloader fails to create a cache entry
(cherry picked from commit 8fa52860ab)
2016-04-16 22:09:25 +02:00
Vincent-Michael
fe90fdcba1 Core: Removed Whitespaces
(cherry picked from commit 3cd19d3b30)

# Conflicts:
#	src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
#	src/server/game/Handlers/NPCHandler.cpp
#	src/server/game/Server/Packets/ChatPackets.cpp
#	src/server/game/Server/Packets/NPCPackets.h
#	src/server/game/Server/Packets/PartyPackets.h
#	src/server/game/Server/Packets/PetPackets.cpp
#	src/server/game/Server/Packets/PetPackets.h
#	src/server/game/Server/Packets/TicketPackets.h
#	src/server/game/Server/Packets/VoicePackets.h
#	src/server/game/Server/Packets/WardenPackets.h
#	src/server/scripts/Commands/cs_cheat.cpp
2016-04-16 16:52:23 +01:00
Naios
ea627589d6 Core/Scripting: Fix a typo in b970a684 2016-04-14 22:14:06 +02:00
Naios
b970a68473 Core/Scripting: Wait until the debugger is detached before rebuilding scripts.
* Thanks Shauren for the IsDebuggerPresent() hint.
2016-04-14 21:27:39 +02:00
Naios
42eeb28a8b Core/Scripting: Disallow the build directory to contain spaces
* I wasn't able to work arround a path which contains spaces,
  since it seems like a CMake specific issue.
* Closes #16947
2016-04-14 20:31:04 +02:00
Naios
10bc41c91e Core/Scripting: Fix detection of source changes when using inotify.
* This fixes the source change detection in linux.
* Also simplifies the detection of observed modules
* Fixes the script rebuilding on linux
* Escape windows paths to (maybe) fix paths with spaces (#16947)
2016-04-13 13:59:24 +02:00
Naios
e82a934387 Core/Scripting: Fix an assertion which was triggered at lazy unloading
* Also fixes 2 warnings
2016-04-12 16:52:29 +02:00
Naios
410cf0dd05 Core/Scripting: Fix loading of spell/aurascripts
* Broken since 9cc97f226d
* There is still a crash when using lazy unloading which I
  will fix in a later commit (this commit should fix at least
  the static build and normal usage of the dynamic build).
* Closes #16948
2016-04-12 15:42:16 +02:00
Naios
498c1e22ca Core/Scripting: Fix another warning when building statically 2016-04-11 22:13:13 +02:00
Naios
1b909f9dac Core/Scripting: Fix a warning when building statically 2016-04-11 21:58:56 +02:00
Naios
eaf102b3c5 Core/Game: Rewrote the ScriptMgr to support script reloading.
* Finally this commit enables dynamic script hotswapping
  and finished the PR #15671.
* Split the storage layout to use optimized storages
  for database bound and unbound scripts.
* Add several unload workers to reload scripts correctly
  -> Requires further investigation.
* Fixes memory leaks in ScriptMgr when dropping invalid scripts.
* Fixes VehicleScripts
* Makes OutdoorPvP scripts reloadable
* Makes InstanceMapScripts reloadable
* Makes CommandScripts reloadable

(cherry picked from commit 9cc97f226d)
2016-04-11 21:42:28 +02:00
Naios
3123c278b9 Core/Game: Add a dynamic script reloader which reloads scripts modules on changes.
* is responsible for registering plain modules.
* requires compilation with the `WITH_DYNAMIC_LINKING` flag.
* requires further support of the ScriptMgr.

(cherry picked from commit bc0f2b6e5a)
2016-04-11 21:42:16 +02:00
Naios
775e0764e8 Core/Game: Move scheduled map scripts counter methods into MapManager
* Since those have nothing to do with core scripts and are
  not wished inside the ScriptMgr

(cherry picked from commit 59e3cf82ac)
2016-04-11 21:40:38 +02:00
Naios
518692b4cb Core/Game: Move MapScripts to game/Maps
* Since this class implements methods of the Map class

(cherry picked from commit 26dcde94b3)
2016-04-11 21:39:31 +02:00
Rochet2
2348613f7b Add missing GAME_API exports 2016-03-27 17:02:31 +03:00
Naios
9f61b72679 Core/Game: Converted the game library to a shared library.
* There is still the possibility to static link against game.

(cherry picked from commit bf33159a70)
2016-03-24 02:46:42 +01:00
Naios
96bc31924a CMake: Use inherited dependencies in scripts
* Removes the circular dependency between game <-> scripts
2016-03-18 02:53:00 +01:00
Shauren
5a6db6e84d Core/Misc: Minimize differences between branches in WorldSession::Update
This commit removes OnUnknownPacketReceive script hook - it could never be fired anyway at that point
2016-03-13 00:12:09 +01:00
Naios
b7f936891a Core/Game: Move singleton instances into compilation units
* Fixes issues when building shared libraries
  (prevents gcc and clang from providing several instance)

(cherry picked from commit 329225b40d)
2016-03-11 20:03:12 +01:00
Naios
9e43365b3d Core/Scripts: Split the huge scriptloader into smaller pieces
* Each subdirectory contains it's own translation unit now
  which is responsible for loading it's directory
* Improves merging & decoupling between 3.3.5 <-> 6.x
* Removes unused Battleground loader
* Ref #15671

(cherry picked from commit 5534915f74)
2016-02-22 16:25:54 +01:00
Shauren
7f817a4fc0 Core/Scripts: Fixed calling UnitScript hooks
Closes #16543

(cherry picked from commit f809e5e13e)
2016-02-11 16:36:08 +01:00
treeston
6102a7937d Maps/Instances: Implement handling of CMSG_SET_SAVED_INSTANCE_EXTEND 2016-02-10 19:35:11 +01:00
velinath
d87f504b53 Core/Scripts/DB: Migrate specially scripted taxi NPC's to SmartAI 2016-01-09 14:39:07 -05:00
jackpoz
841ce54a0d Scripts/Commands: Fix ".help" command to show commands in alphabetical order 2016-01-04 23:30:46 +01:00
Rushor
923a368ac7 Update copyright note for 2016 2016-01-01 12:02:33 +01:00
Naios
97dd18cb78 Core/ScriptMgr: Improve commit 155a289f05
(cherry picked from commit 30c421bf57)
2015-11-07 13:10:21 +01:00
Naios
d81784194c Core/ScriptMgr: Fix "conditional expression is constant" warning.
* introduced in commit 12d1993994

(cherry picked from commit 155a289f05)
2015-11-07 13:10:04 +01:00
Naios
3a3a6bbfd2 Core/Globals: Use std::string rather than char* to pass script names around.
(cherry picked from commit b7b49fe35f)

Conflicts:
	src/server/game/Battlegrounds/BattlegroundMgr.cpp
	src/server/game/Globals/ObjectMgr.cpp
2015-11-07 13:09:10 +01:00
Naios
23153c8bf1 Core/ScriptMgr: Replace IsDatabaseBound() methods through traits.
(cherry picked from commit 12d1993994)
2015-11-07 12:34:15 +01:00
Incorrect
d98037a75d Core/Misc: Remove unneeded files
These 3 BlackRock Mountain scripts can be removed from source:

- boss_anubshiah.cpp
- boss_gorosh_the_dervish.cpp
- boss_grizzle.cpp

They already removed from the creatures in DB, and are currently causing
DBErrors.
2015-11-02 02:11:52 +02:00
Shauren
cba122ad94 Core/Conditions: Optimizations part 3 removed copying condition containers all over the place
(cherry picked from commit b09e63e9de)
2015-10-31 20:26:40 +01:00
Shauren
c92faf6277 Core/Commands: Refactored chat command script hook, fixes a crash when building with gcc 5
Closes #15616
Closes #15740

(cherry picked from commit 2d942ddcc5)

# Conflicts:
#	src/server/scripts/Commands/cs_battlenet_account.cpp
#	src/server/scripts/Commands/cs_cast.cpp
#	src/server/scripts/Commands/cs_debug.cpp
#	src/server/scripts/Commands/cs_go.cpp
#	src/server/scripts/Commands/cs_misc.cpp
#	src/server/scripts/Commands/cs_mmaps.cpp
#	src/server/scripts/Commands/cs_modify.cpp
#	src/server/scripts/Commands/cs_npc.cpp
#	src/server/scripts/Commands/cs_reload.cpp
#	src/server/scripts/Commands/cs_ticket.cpp
2015-10-22 22:34:16 +02:00
ShinDarth
c6c3e72b55 Core/Scripts: convert the Duel Cooldown Reset feature to scripts 2015-10-18 18:41:58 +02:00
pete318
b1032ed620 Change many uint32 to ObjectGuid::LowType in line with 6.x changes. 2015-10-12 23:10:41 +02:00
pete318
dcb7082277 Map local guids 6.x -> 3.3.35:
Implemented:
  ca83e14f8b
  ee1c1b97be
  18e4ab6911
  bf37446b3c
  cb854a2b7b

* This adds separate (per map) guid sequences depending on object type
* Ported map object container from cmangos/mangos-wotlk@a2d396e
* Added type container visitor for TypeUnorderedMapContainer
* Implemented helper function to erase unique pairs from multimap containers
* Moved object storage of all objects except players and transports to map level
* Added containers linking database spawn id with creature/gameobject in world
* Renamed DBTableGuid to spawnId
* Added a separate spawn id sequence generator for creatures and gameobjects - this will be used in db tables
* Moved building SMSG_UPDATE_OBJECT - updatefields changes broadcast to map update
* Added new function to return but not increment guid
* Adjusted .debug loadcells to show low guid in map before/after load
* Added debug messages for creature spawn/destroy, for map guid debugging
* Store all Gameobjects and Creatures added to OutdoorPvP, so the callback script can be removed when OutdoorPvP instance is destroyed.
2015-09-22 21:33:57 +02:00
StormBytePP
7b245a0b6b Core: Added ABORT() macro to prevent the usage of ASSERT(false) as a quick hack to crash the core misusing assert 2015-09-21 15:11:06 +02:00
jackpoz
efc4c60c53 Scripts/Kalimdor: Remove unused script
Remove unused C++ script replaced by d69a31d238
2015-08-08 19:36:41 +02:00
DDuarte
b63082971f Build: Add missing include to MapScripts.cpp
Fixes linker error in GCC/Clang
2015-07-27 01:37:04 +01:00
Vincent-Michael
d2d4bc2668 Core: Header cleanup in game/*/*.cpp
(cherry picked from commit 2e586bc520)

Conflicts:
	src/server/game/Battlegrounds/Battleground.cpp
	src/server/game/Battlegrounds/BattlegroundMgr.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundBFG.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundTP.cpp
	src/server/game/Chat/Chat.cpp
	src/server/game/Combat/ThreatManager.cpp
	src/server/game/DataStores/DB2Stores.cpp
	src/server/game/DataStores/DBCStores.cpp
	src/server/game/Entities/Creature/Creature.cpp
	src/server/game/Entities/Creature/GossipDef.cpp
	src/server/game/Entities/Object/Object.cpp
	src/server/game/Entities/Object/ObjectGuid.cpp
	src/server/game/Entities/Object/Updates/UpdateData.cpp
	src/server/game/Entities/Pet/Pet.cpp
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
	src/server/game/Globals/ObjectAccessor.cpp
	src/server/game/Handlers/BankHandler.cpp
	src/server/game/Handlers/CombatHandler.cpp
	src/server/game/Handlers/GroupHandler.cpp
	src/server/game/Handlers/GuildHandler.cpp
	src/server/game/Handlers/ItemHandler.cpp
	src/server/game/Handlers/MiscHandler.cpp
	src/server/game/Handlers/MovementHandler.cpp
	src/server/game/Handlers/PetitionsHandler.cpp
	src/server/game/Handlers/QueryHandler.cpp
	src/server/game/Handlers/SpellHandler.cpp
	src/server/game/Handlers/TokenHandler.cpp
	src/server/game/Handlers/VoiceChatHandler.cpp
	src/server/game/Maps/Map.cpp
	src/server/game/Movement/Spline/MoveSplineInit.cpp
	src/server/game/Quests/QuestDef.cpp
	src/server/game/Server/Packet.cpp
	src/server/game/Server/Packets/SpellPackets.cpp
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSocket.cpp
	src/server/game/Spells/Auras/SpellAuraEffects.cpp
	src/server/game/Spells/Spell.cpp
	src/server/game/Spells/SpellEffects.cpp
	src/server/game/Spells/SpellScript.cpp
	src/server/game/Warden/Warden.cpp
	src/server/game/Warden/WardenWin.cpp
	src/server/game/Weather/WeatherMgr.cpp
2015-07-25 21:53:30 +01:00
ariel-
36cdc47e8f Fixed some issues with PR #14157, kudos to @Nyeriah @Warpten:
* Moved scripts to other source file instead of having them on the instance cpp
* Removed magic number, use of DoAction instead of SetData to do the yelling
* Added spellscript for Remove Kargath's Executioner
* Saved victim GUIDs in instance script instead of checking nearby area
* Returning position as const-reference (by Naios)
2015-05-08 22:58:33 -03:00
leak
7010671931 Core/Misc: Remove unused headers 2015-03-30 17:16:50 +02:00
Shauren
bba8555a29 Build fix 2015-03-18 11:47:30 +01:00
Naios
301ec0be56 Core/Game: Fix some issues detected by static analysis.
* Possible inefficient checking for 'list' emptiness.

* Variable '_scheduledScripts' is assigned in constructor body.
  Consider performing initialization in initialization list.

* Variable 'Text' is assigned in constructor body.
  Consider performing initialization in initialization list.

* Possible inefficient checking for 'm_loadedScripts' emptiness.

(cherry picked from commit 9a61049f88)

Conflicts:
	src/server/game/Server/Packets/TicketPackets.cpp
2015-03-18 01:13:47 +00:00
MitchesD
5009d67f0c Scripts/Nexus: commanders converted from SAI to C++ 2015-03-07 11:38:10 +01:00