diff options
author | azazel <none@none> | 2010-10-17 19:54:13 +0600 |
---|---|---|
committer | azazel <none@none> | 2010-10-17 19:54:13 +0600 |
commit | c0faed2251dff3814fe60e1a8ba86a046e48f707 (patch) | |
tree | 068f2ab41c2d32bbdeddd2e5c722dc6239cdd073 /src/server/game/Scripting/ScriptMgr.cpp | |
parent | f5911917b4ea1e97b0f22876dc8f35bbfa9833c9 (diff) |
Core/Guilds: guild code was completely refactored and rewritten.
* OOP desing and implementation;
* all the queries are moved to prepared statements;
* guild loading is optimized;
* all the possible interaction with guild's data is done inside the guild class;
* added more hooks to GuildScript class;
WARNING: Make sure you backup your characters database before applying this change (just in case).
Known problems with guilds:
* when new member is added to the guild, MOTD is not displayed for him in guild tab of social window;
* if you add item with random property to guild bank visual representation of item below it becomes wrong (it displays wrong stack number);
* packets order differs from official: currently guild bank packet traffic is twice as more than on offy.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rwxr-xr-x | src/server/game/Scripting/ScriptMgr.cpp | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 562e6aa6f7d..9fcf084ca06 100755 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1076,6 +1076,7 @@ bool ScriptMgr::OnCriteriaCheck(AchievementCriteriaData const* data, Player* sou return tmpscript->OnCheck(source, target); } +// Player void ScriptMgr::OnPVPKill(Player *killer, Player *killed) { FOREACH_SCRIPT(PlayerScript)->OnPVPKill(killer, killed); @@ -1196,7 +1197,8 @@ void ScriptMgr::OnPlayerDelete(uint64 guid) FOREACH_SCRIPT(PlayerScript)->OnDelete(guid); } -void ScriptMgr::OnGuildAddMember(Guild *guild, Player *player, uint32& plRank) +// Guild +void ScriptMgr::OnGuildAddMember(Guild *guild, Player *player, uint8& plRank) { FOREACH_SCRIPT(GuildScript)->OnAddMember(guild, player, plRank); } @@ -1206,14 +1208,19 @@ void ScriptMgr::OnGuildRemoveMember(Guild *guild, Player *player, bool isDisband FOREACH_SCRIPT(GuildScript)->OnRemoveMember(guild, player, isDisbanding, isKicked); } -void ScriptMgr::OnGuildMOTDChanged(Guild *guild, std::string newMotd) +void ScriptMgr::OnGuildMOTDChanged(Guild *guild, const std::string& newMotd) { FOREACH_SCRIPT(GuildScript)->OnMOTDChanged(guild, newMotd); } -void ScriptMgr::OnGuildInfoChanged(Guild *guild, std::string newGInfo) +void ScriptMgr::OnGuildInfoChanged(Guild *guild, const std::string& newInfo) { - FOREACH_SCRIPT(GuildScript)->OnGInfoChanged(guild, newGInfo); + FOREACH_SCRIPT(GuildScript)->OnInfoChanged(guild, newInfo); +} + +void ScriptMgr::OnGuildCreate(Guild *guild, Player* leader, const std::string& name) +{ + FOREACH_SCRIPT(GuildScript)->OnCreate(guild, leader, name); } void ScriptMgr::OnGuildDisband(Guild *guild) @@ -1221,6 +1228,33 @@ void ScriptMgr::OnGuildDisband(Guild *guild) FOREACH_SCRIPT(GuildScript)->OnDisband(guild); } +void ScriptMgr::OnGuildMemberWitdrawMoney(Guild* guild, Player* player, uint32 &amount, bool isRepair) +{ + FOREACH_SCRIPT(GuildScript)->OnMemberWitdrawMoney(guild, player, amount, isRepair); +} + +void ScriptMgr::OnGuildMemberDepositMoney(Guild* guild, Player* player, uint32 &amount) +{ + FOREACH_SCRIPT(GuildScript)->OnMemberDepositMoney(guild, player, amount); +} + +void ScriptMgr::OnGuildItemMove(Guild* guild, Player* player, Item* pItem, bool isSrcBank, uint8 srcContainer, uint8 srcSlotId, + bool isDestBank, uint8 destContainer, uint8 destSlotId) +{ + FOREACH_SCRIPT(GuildScript)->OnItemMove(guild, player, pItem, isSrcBank, srcContainer, srcSlotId, isDestBank, destContainer, destSlotId); +} + +void ScriptMgr::OnGuildEvent(Guild* guild, uint8 eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank) +{ + FOREACH_SCRIPT(GuildScript)->OnEvent(guild, eventType, playerGuid1, playerGuid2, newRank); +} + +void ScriptMgr::OnGuildBankEvent(Guild* guild, uint8 eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId) +{ + FOREACH_SCRIPT(GuildScript)->OnBankEvent(guild, eventType, tabId, playerGuid, itemOrMoney, itemStackCount, destTabId); +} + +// Group void ScriptMgr::OnGroupAddMember(Group* group, uint64 guid) { ASSERT(group); |