ariel-
f913f3bb89
Core/Scripts: unified scripted gossip/quest api
...
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)
2017-05-01 18:19:36 -03:00
ariel-
b6b59f6c23
Core/Scripts: remove OnDummyEffect hook/sOnDummyEffect ai hook
...
- Duplicated logic never used, sometimes only ScriptMgr version was called, sometimes only AI
- They only encourage bad scripting practices
- You can still use OnSpellHit or a SpellScript
2017-04-28 18:59:14 -03:00
ariel-
eac9c1f0b9
Core/Scripts: fix Nightfall proc chance and reduce it for victims with level above 60
...
Closes #15734
2017-02-21 22:38:30 -03:00
Kittnz
9d74252e8d
Reverting: Game/Scripting: Add OnGameEvent hook for game objects.
2017-02-17 20:30:52 +01:00
Kittnz
a5ccbe9906
Fix tabs
2017-02-17 20:19:05 +01:00
Kittnz
343d2c7f91
Game/Scripting: Add OnGameEvent hook for game objects.
...
Called when specific game event starts
2017-02-17 20:16:22 +01:00
Kittnz
d550ba7392
Game/Scripting: Add OnPlayerRepop hook
...
Called when a player presses release when he died
2017-02-07 17:28:16 +01:00
tkrokli
6a51a88767
Update Copyright notice for 2017
...
Happy new year!
2017-01-02 19:52:45 +01:00
ariel-
cbb5c073ce
Core/ScriptMgr: use vector instead of list to contain Spell and Aura scripts and hooks
2016-11-14 02:05:51 -03:00
Rochet2
c52566a888
Core/Scripts: Enhance quest status hook by making it catch more status changes ( #17865 )
2016-09-09 21:11:36 +02:00
treeston
a9f1151f2c
Build fix.
2016-09-09 19:43:29 +02:00
treeston
91c2b3162d
Game/Scripting: Follow-up to b3d44d6. Fix script selection for creatures on difficulty > 0.
2016-09-09 19:37:04 +02:00
treeston
3c32086b81
Core/Maps: Add override to allow InstanceMap const* -> InstanceScript const*.
...
Also tighten const-ness on CanSpawn method of CreatureScript.
2016-09-09 18:08:43 +02:00
treeston
b3d44d6c36
Creature/Scripting: Move CreatureAI::CanRespawn to CreatureScript::CanSpawn. Now also applies to initial spawn. Dynamic spawning prep.
2016-09-09 16:21:27 +02:00
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
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
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
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
Rushor
923a368ac7
Update copyright note for 2016
2016-01-01 12:02:33 +01:00
Naios
23153c8bf1
Core/ScriptMgr: Replace IsDatabaseBound() methods through traits.
...
(cherry picked from commit 12d1993994 )
2015-11-07 12:34:15 +01: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
pete318
b1032ed620
Change many uint32 to ObjectGuid::LowType in line with 6.x changes.
2015-10-12 23:10:41 +02:00
Shauren
bba8555a29
Build fix
2015-03-18 11:47:30 +01:00
Vincent-Michael
f3e86d3e68
Update copyright note for 2015
...
Happy new year
Conflicts:
src/server/bnetserver/Authentication/AuthCodes.h
src/server/bnetserver/Authentication/BattlenetPacketCrypt.cpp
src/server/bnetserver/Authentication/BattlenetPacketCrypt.h
src/server/bnetserver/Packets/AchievementPackets.h
src/server/bnetserver/Packets/AuthenticationPackets.cpp
src/server/bnetserver/Packets/AuthenticationPackets.h
src/server/bnetserver/Packets/BitStream.cpp
src/server/bnetserver/Packets/BitStream.h
src/server/bnetserver/Packets/CachePackets.cpp
src/server/bnetserver/Packets/CachePackets.h
src/server/bnetserver/Packets/ChatPackets.h
src/server/bnetserver/Packets/ConnectionPackets.cpp
src/server/bnetserver/Packets/ConnectionPackets.h
src/server/bnetserver/Packets/FriendsPackets.cpp
src/server/bnetserver/Packets/FriendsPackets.h
src/server/bnetserver/Packets/PacketManager.cpp
src/server/bnetserver/Packets/PacketManager.h
src/server/bnetserver/Packets/Packets.h
src/server/bnetserver/Packets/PacketsBase.cpp
src/server/bnetserver/Packets/PacketsBase.h
src/server/bnetserver/Packets/PresencePackets.cpp
src/server/bnetserver/Packets/PresencePackets.h
src/server/bnetserver/Packets/ProfilePackets.h
src/server/bnetserver/Packets/SupportPackets.h
src/server/bnetserver/Packets/WoWRealmPackets.cpp
src/server/bnetserver/Packets/WoWRealmPackets.h
src/server/bnetserver/Realms/RealmList.cpp
src/server/bnetserver/Realms/WorldListener.cpp
src/server/bnetserver/Realms/WorldListener.h
src/server/bnetserver/Server/ComponentManager.cpp
src/server/bnetserver/Server/ComponentManager.h
src/server/bnetserver/Server/ModuleManager.cpp
src/server/bnetserver/Server/ModuleManager.h
src/server/bnetserver/Server/Session.cpp
src/server/bnetserver/Server/Session.h
src/server/bnetserver/Server/SessionManager.cpp
src/server/bnetserver/Server/SessionManager.h
src/server/game/Accounts/BattlenetAccountMgr.cpp
src/server/game/Accounts/BattlenetAccountMgr.h
src/server/game/Battlegrounds/Zones/BattlegroundBFG.cpp
src/server/game/Battlegrounds/Zones/BattlegroundBFG.h
src/server/game/Battlegrounds/Zones/BattlegroundTP.cpp
src/server/game/Battlegrounds/Zones/BattlegroundTP.h
src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
src/server/game/Entities/AreaTrigger/AreaTrigger.h
src/server/game/Entities/Item/ItemTemplate.cpp
src/server/game/Guilds/GuildFinderMgr.cpp
src/server/game/Guilds/GuildFinderMgr.h
src/server/game/Handlers/GuildFinderHandler.cpp
src/server/game/Handlers/VoidStorageHandler.cpp
src/server/game/Movement/MovementStructures.cpp
src/server/game/Movement/MovementStructures.h
src/server/game/Movement/PathGenerator.cpp
src/server/game/Server/BattlenetServerManager.cpp
src/server/game/Server/BattlenetServerManager.h
src/server/game/Server/Packet.cpp
src/server/game/Server/Packet.h
src/server/game/Server/Packets/AchievementPackets.cpp
src/server/game/Server/Packets/AchievementPackets.h
src/server/game/Server/Packets/AuctionHousePackets.cpp
src/server/game/Server/Packets/AuctionHousePackets.h
src/server/game/Server/Packets/AuthenticationPackets.cpp
src/server/game/Server/Packets/AuthenticationPackets.h
src/server/game/Server/Packets/BattlegroundPackets.cpp
src/server/game/Server/Packets/BattlegroundPackets.h
src/server/game/Server/Packets/ChannelPackets.cpp
src/server/game/Server/Packets/ChannelPackets.h
src/server/game/Server/Packets/CharacterPackets.cpp
src/server/game/Server/Packets/CharacterPackets.h
src/server/game/Server/Packets/ChatPackets.cpp
src/server/game/Server/Packets/ChatPackets.h
src/server/game/Server/Packets/ClientConfigPackets.cpp
src/server/game/Server/Packets/ClientConfigPackets.h
src/server/game/Server/Packets/CombatLogPackets.cpp
src/server/game/Server/Packets/CombatLogPackets.h
src/server/game/Server/Packets/CombatPackets.cpp
src/server/game/Server/Packets/CombatPackets.h
src/server/game/Server/Packets/EquipmentSetPackets.cpp
src/server/game/Server/Packets/EquipmentSetPackets.h
src/server/game/Server/Packets/GameObjectPackets.cpp
src/server/game/Server/Packets/GameObjectPackets.h
src/server/game/Server/Packets/GuildPackets.cpp
src/server/game/Server/Packets/GuildPackets.h
src/server/game/Server/Packets/ItemPackets.cpp
src/server/game/Server/Packets/ItemPackets.h
src/server/game/Server/Packets/LootPackets.h
src/server/game/Server/Packets/MiscPackets.cpp
src/server/game/Server/Packets/MiscPackets.h
src/server/game/Server/Packets/MovementPackets.cpp
src/server/game/Server/Packets/MovementPackets.h
src/server/game/Server/Packets/NPCPackets.cpp
src/server/game/Server/Packets/NPCPackets.h
src/server/game/Server/Packets/QueryPackets.cpp
src/server/game/Server/Packets/QueryPackets.h
src/server/game/Server/Packets/QuestPackets.cpp
src/server/game/Server/Packets/QuestPackets.h
src/server/game/Server/Packets/ReputationPackets.cpp
src/server/game/Server/Packets/ReputationPackets.h
src/server/game/Server/Packets/SpellPackets.cpp
src/server/game/Server/Packets/SpellPackets.h
src/server/game/Server/Packets/SystemPackets.cpp
src/server/game/Server/Packets/SystemPackets.h
src/server/game/Server/Packets/TalentPackets.cpp
src/server/game/Server/Packets/TalentPackets.h
src/server/game/Server/Packets/TradePackets.h
src/server/game/Server/Packets/WorldStatePackets.cpp
src/server/game/Server/Packets/WorldStatePackets.h
src/server/game/Server/WorldSocket.cpp
src/server/ipc/CMakeLists.txt
src/server/ipc/Commands.cpp
src/server/ipc/Commands.h
src/server/ipc/ZMQTask.cpp
src/server/ipc/ZMQTask.h
src/server/ipc/ZmqContext.cpp
src/server/ipc/ZmqContext.h
src/server/ipc/ZmqListener.cpp
src/server/ipc/ZmqListener.h
src/server/ipc/ZmqMux.cpp
src/server/ipc/ZmqMux.h
src/server/ipc/ZmqWorker.cpp
src/server/ipc/ZmqWorker.h
src/server/scripts/Commands/cs_battlenet_account.cpp
src/server/scripts/Commands/cs_mmaps.cpp
src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp
src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
src/server/scripts/EasternKingdoms/BaradinHold/instance_baradin_hold.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.h
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp
src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
src/server/scripts/EasternKingdoms/ZulAman/zulaman.h
src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp
src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
src/server/scripts/EasternKingdoms/zone_burning_steppes.cpp
src/server/scripts/EasternKingdoms/zone_ironforge.cpp
src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp
src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
src/server/scripts/Kalimdor/Firelands/firelands.h
src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp
src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h
src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
src/server/scripts/Kalimdor/zone_azshara.cpp
src/server/scripts/Kalimdor/zone_darkshore.cpp
src/server/scripts/Kalimdor/zone_felwood.cpp
src/server/scripts/Kalimdor/zone_moonglade.cpp
src/server/scripts/Kalimdor/zone_orgrimmar.cpp
src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp
src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp
src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp
src/server/scripts/Maelstrom/Stonecore/instance_stonecore.cpp
src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
src/server/scripts/Maelstrom/Stonecore/stonecore.h
src/server/shared/Cryptography/Authentication/AuthCrypt.h
src/server/shared/Cryptography/Authentication/PacketCrypt.cpp
src/server/shared/Cryptography/Authentication/WorldPacketCrypt.cpp
src/server/shared/Cryptography/HmacHash.cpp
src/server/shared/Cryptography/SHA256.cpp
src/server/shared/Cryptography/SHA256.h
src/server/shared/Database/Implementation/HotfixDatabase.cpp
src/server/shared/Database/Implementation/HotfixDatabase.h
src/server/shared/Realm/Realm.cpp
src/server/shared/Realm/Realm.h
src/tools/connection_patcher/CMakeLists.txt
src/tools/connection_patcher/Constants/BinaryTypes.hpp
src/tools/connection_patcher/Helper.cpp
src/tools/connection_patcher/Helper.hpp
src/tools/connection_patcher/Patcher.cpp
src/tools/connection_patcher/Patcher.hpp
src/tools/connection_patcher/Patches/Common.hpp
src/tools/connection_patcher/Patches/Mac.hpp
src/tools/connection_patcher/Patches/Windows.hpp
src/tools/connection_patcher/Patterns/Common.hpp
src/tools/connection_patcher/Patterns/Mac.hpp
src/tools/connection_patcher/Patterns/Windows.hpp
src/tools/connection_patcher/Program.cpp
src/tools/map_extractor/loadlib/DBFilesClientList.h
2015-01-01 00:32:50 +01:00
joschiwald
5b93a6b392
Core/Scripts: log ScriptNames assigned in database without core script
...
(cherry picked from commit cc4ebdbe05 )
2014-12-06 15:38:21 +01:00
jackpoz
a209fc30ff
Core/Misc: Avoid Helgrind reporting libstdc++ false positive race conditions
2014-09-20 22:35:13 +02:00
Shauren
a0e50ea35f
Core/Entities: Use ObjectGuid class in game project
2014-09-14 16:14:12 +02:00
chadryx
983755a21d
Added a new hook Called when a player's money is at limit
2014-08-27 19:01:41 +03:00
Rochet2
9beae1dc97
Removed OnQuestComplete hook, use QuestReward instead. Implemented OnQuestStatusChange hook
...
Also fixed some comments and added overrides
The OnQuestComplete hook was unused and didnt work properly
2014-08-24 14:31:38 +03:00
leak
1a27ce1267
Core/NetworkIO: Restore networking related scripting hooks
...
Closes #12607
2014-08-11 17:40:43 +02:00
DDuarte
a394205eca
Core/Server: Add missing overrides
2014-08-09 20:17:40 +01:00
Shauren
6f272ea5b7
Core/Network: Optimized packet sending by removing unneccessary memory copying
2014-07-27 17:46:46 +02:00
leak
dce92611f3
Refactored singletons to enable proper deconstruction during shutdown
2014-07-20 00:40:08 +02:00
leak
a738cd96dc
Renamed WorldTcpSession back to WorldSocket
2014-07-07 22:03:41 +02:00
Subv
b5d5768d44
Fixed the crashes
2014-07-05 21:38:29 -05:00
leak
7befb26625
Some groundwork for replacing the ACE based WorldSocket handling
2014-07-06 01:26:29 +02:00
leak
e0aed65c8c
ACE cleanup on game, now the major issue remains WorldSocket
2014-07-02 02:20:53 +02:00
leak
029bad6698
Replaced all remaining ACE based Singletons
...
Replaced ACE base AutoPtr class with shared_ptr
Note: worldserver currently broken due to MapUpdater threading failure (ACE ofc, what else could it be)
2014-07-01 00:54:09 +02:00
Shauren
05ea2f76b8
Core/Misc: Fixed warnings
2014-06-24 02:01:40 +02:00
Aokromes
84e6af26e6
Merge pull request #11976 from Ascathor/master
...
Core/Misc: New ability to log account IP access history
2014-06-23 22:48:35 +02:00
Rochet2
7240fafe94
Core: Add loginFirst param to OnLogin hook to allow doing things on first login only
...
whitespacefix
Fix warning about unused param
2014-06-21 17:40:56 +03:00
Ascathor
6949735098
Core/Misc:
...
* Fix some codestyle, fix some typos
* Change CMakeLists for: Custom (can be uncommented), Events, World
** Custom is theoretically unchanged. You can, however, uncomment the glob_recurse that initializes every file within. This might be easier for beginners.
* Introducing the IP Based Action Log System:
** On several different actions, e.g. Login, Character Login, etc., a new entry is added
** Can be logged on and off in worldserver config
*** Disabled by default to prevent increased log db size for unknowing users.
* Add a new row to account table called 'last_attempt_ip'
** Lists the last ip trying to connect to the account
* Add a new type of HookScripts: AccountScript
** Includes: OnAccountLogin, OnFailedAccountLogin, OnEmailChange, OnFailedChange, OnPasswordChange, OnFailedPasswordChange
* Added new Hook to PlayerScripts: OnFailedPlayerDelete
* Added new variables to PlayerScripts: OnPlayerDelete
2014-06-13 16:25:11 +02:00