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.h | |
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.h')
-rwxr-xr-x | src/server/game/Scripting/ScriptMgr.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 2847e55a687..eb20e28f0cc 100755 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -725,11 +725,18 @@ class GuildScript : public ScriptObject bool IsDatabaseBound() const { return false; } - virtual void OnAddMember(Guild* /*guild*/, Player* /*player*/, uint32& /*plRank*/) { } + virtual void OnAddMember(Guild* /*guild*/, Player* /*player*/, uint8& /*plRank*/) { } virtual void OnRemoveMember(Guild* /*guild*/, Player* /*player*/, bool /*isDisbanding*/, bool /*isKicked*/) { } - virtual void OnMOTDChanged(Guild* /*guild*/, std::string /*newMotd*/) { } - virtual void OnGInfoChanged(Guild* /*guild*/, std::string /*newGInfo*/) { } + virtual void OnMOTDChanged(Guild* /*guild*/, const std::string& /*newMotd*/) { } + virtual void OnInfoChanged(Guild* /*guild*/, const std::string& /*newInfo*/) { } + virtual void OnCreate(Guild* /*guild*/, Player* /*leader*/, const std::string& /*name*/) { } virtual void OnDisband(Guild* /*guild*/) { } + virtual void OnMemberWitdrawMoney(Guild* /*guild*/, Player* /*player*/, uint32& /*amount*/, bool /*isRepair*/) { } + virtual void OnMemberDepositMoney(Guild* /*guild*/, Player* /*player*/, uint32& /*amount*/) { } + virtual void OnItemMove(Guild* /*guild*/, Player* /*player*/, Item* /*pItem*/, bool /*isSrcBank*/, uint8 /*srcContainer*/, uint8 /*srcSlotId*/, + bool /*isDestBank*/, uint8 /*destContainer*/, uint8 /*destSlotId*/) { } + virtual void OnEvent(Guild* /*guild*/, uint8 /*eventType*/, uint32 /*playerGuid1*/, uint32 /*playerGuid2*/, uint8 /*newRank*/) { } + virtual void OnBankEvent(Guild* /*guild*/, uint8 /*eventType*/, uint8 /*tabId*/, uint32 /*playerGuid*/, uint32 /*itemOrMoney*/, uint16 /*itemStackCount*/, uint8 /*destTabId*/) { } }; class GroupScript : public ScriptObject @@ -943,11 +950,18 @@ class ScriptMgr void OnPlayerDelete(uint64 guid); public: /* GuildScript */ - void OnGuildAddMember(Guild *guild, Player *player, uint32& plRank); + void OnGuildAddMember(Guild *guild, Player *player, uint8& plRank); void OnGuildRemoveMember(Guild *guild, Player *player, bool isDisbanding, bool isKicked); - void OnGuildMOTDChanged(Guild *guild, std::string newMotd); - void OnGuildInfoChanged(Guild *guild, std::string newGInfo); + void OnGuildMOTDChanged(Guild *guild, const std::string& newMotd); + void OnGuildInfoChanged(Guild *guild, const std::string& newInfo); + void OnGuildCreate(Guild *guild, Player* leader, const std::string& name); void OnGuildDisband(Guild *guild); + void OnGuildMemberWitdrawMoney(Guild* guild, Player* player, uint32 &amount, bool isRepair); + void OnGuildMemberDepositMoney(Guild* guild, Player* player, uint32 &amount); + void OnGuildItemMove(Guild* guild, Player* player, Item* pItem, bool isSrcBank, uint8 srcContainer, uint8 srcSlotId, + bool isDestBank, uint8 destContainer, uint8 destSlotId); + void OnGuildEvent(Guild* guild, uint8 eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank); + void OnGuildBankEvent(Guild* guild, uint8 eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId); public: /* GroupScript */ void OnGroupAddMember(Group* group, uint64 guid); |