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
This commit is contained in:
azazel
2010-10-17 19:54:13 +06:00
parent f5911917b4
commit c0faed2251
27 changed files with 3892 additions and 3538 deletions

View File

@@ -1533,7 +1533,7 @@ DROP TABLE IF EXISTS `guild_bank_right`;
CREATE TABLE `guild_bank_right` (
`guildid` int(11) unsigned NOT NULL default '0',
`TabId` tinyint(1) unsigned NOT NULL default '0',
`rid` int(11) unsigned NOT NULL default '0',
`rid` tinyint(1) unsigned NOT NULL default '0',
`gbright` tinyint(3) unsigned NOT NULL default '0',
`SlotPerDay` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guildid`,`TabId`,`rid`),
@@ -1659,7 +1659,7 @@ DROP TABLE IF EXISTS `guild_rank`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `guild_rank` (
`guildid` int(6) unsigned NOT NULL default '0',
`rid` int(11) unsigned NOT NULL,
`rid` tinyint(1) unsigned NOT NULL,
`rname` varchar(255) NOT NULL default '',
`rights` int(3) unsigned NOT NULL default '0',
`BankMoneyPerDay` int(11) unsigned NOT NULL default '0',