Custom spells now survive cross zone with their modified spell stats saved to the database for reloading later. The design is such that a spell can be custom defined for its spell stats, but a character/player cannot have more than one of that spell (eg. food can share a spell id since only one food can be applied to you, but you can't have many spells apply using the same custom spell id).
CREATE TABLE character_custom_spell_dataindex (
charid INT UNSIGNED NOT NULL,
spell_id INT UNSIGNED NOT NULL,
idx INT UNSIGNED NOT NULL,
type ENUM('int', 'float', 'bool', 'string') NOT NULL,
value1 TEXT,
value2 TEXT,
PRIMARY KEY (charid, spell_id, idx)
);
CREATE TABLE character_custom_spell_display (
charid INT UNSIGNED NOT NULL,
spell_id INT UNSIGNED NOT NULL,
idx INT UNSIGNED NOT NULL,
field VARCHAR(64) NOT NULL,
value TEXT,
PRIMARY KEY (charid, spell_id, idx, field)
);
CREATE TABLE character_custom_spell_data (
charid INT UNSIGNED NOT NULL,
spell_id INT UNSIGNED NOT NULL,
field VARCHAR(64) NOT NULL,
type ENUM('int', 'float', 'bool', 'string') NOT NULL,
value TEXT NOT NULL,
PRIMARY KEY (charid, spell_id, field)
);
ALTER TABLE transporters
MODIFY COLUMN transport_type ENUM('Zone', 'Location', 'Generic Transport', 'Flight', 'ForceZone')
NOT NULL DEFAULT 'Zone';
This provides the north qeynos teleporters for Temple of Life to work as zone points (with code update):
update transporters set transport_type='ForceZone' where id=43;
update transporters set transport_type='ForceZone' where id=44;
- Fixed a repeated rubberband like behavior that Spawn's would run forward toward their target in combat or on their return run to their starting point.
- WS_HearCastSpell for 546-561 version has an extra byte at the end of the packet we were missing (might be in later clients too have to confirm)
- PlayerScripts support added, new function calls, AddTimer support for Players.
- Static Zones / Special Zones will now silently check to startup zones without reporting the log message, log message only on startup or taking on peer leadership.
- Broadcast and Global Announcement are now supported through peering.
- Fix#22 identified a number of loose spawn pointers and changed to int32 spawn id reference.
- Fix#1 support for all known chat codes for various channels, spell casting and damage.
- In conjunction with Fix#1 spell combat messages are fixed, no longer 'YOU cast' when another spawn casts, added last_tell_name to track the chat code %RT server side.
- size_mod added to InfoStruct Float, supports shrinking and growing Non Player's. InfoStruct also has a UINT ignore_size_mod_calc set to 0 by default, when 1 it will let you set the size_mod and items/spells will not override it from stat calculation.
- XP Table is now static (global) in the Player class so we do not constantly call the database each time the player needs to know a level's XP requirement.
- Removal of duplicate spell cast success and effect messages.
- Fix#21 blue xp bar for KoS and DoF displays properly now.
- GetExpRequiredByLevel(level) added to return the EXP required for to reach the level.
- Fix#25 teleporters cleaned up during /reload spawns to avoid crash
- Fix#16 /reload items supported in peering mode.