Implemented Guild PQ. Fixed a problem introduced earlier where negative
EXP would be deemed as "integer overflow", provoking many game breaking
issues as result.
Added buff icons for active coupons the player has. Fixed a minor issue,
introduced on the last commit, that prevented coupons to become active
automatically.
Added mechanics for the EXP/DROP cash coupons (such as enabling
out-of-time active coupons via command and automatic update of active
ones over the designed interval). Created MapleCouponInstaller as means
to gather info about the coupon intervals and rates from the WZs (the
generated SQL table is already updated on the db_database.sql file).
Made NPCs now work properly on multiworld system. Solved multiple issues
regarding Player Shops not giving back items properly when owner exits.
Added restriction on changing channels at FM rooms, preventing shop
owner entering Cash Shop.
Added true protection against race conditions on player trades and fixed
some situational issues. Character's quest status table also received
concurrency treatment. Quests with time limit now expires properly.
Increased subtly the performance on the server start-up.
All Guild Alliances system is now functional. Tweaked guilds in order to
sync MapleGuildCharacter objects that were supposed to be the same when
being accessed from both MapleGuild and MapleCharacter classes.