Adding a new column to the spawn table:
alter table spawn add column loot_drop_type int(10) unsigned not null default 0;
- loot_drop_type of 0 means spawn will when part of an encounter transfer its loot to the next alive spawn.
- loot_drop_type of 1 means the spawn will drop its own loot when it dies (like a named mob ideally).
- These changes do not change body drops which remain on the spawn/npc that dies, not transferred.
- loot and chest drops have been expanded beyond NPC's which means potential PVP support or even other types of spawns can drop loot/chests (probably expand loot_drop_type at a later time for more options in this area). Need lua interface support (when player dies and all that) issue #436 opened for it.
- some additional mutex lock protections on spawn loot
- SetLootTier(loot_tier) and GetLootTier(), SetLootDropType(drop_type) and GetLootDropType() added to lua
Fix#267 - spell stacking restrictions in place
min_class_skill_req is now pulled from the database
sint32 type_group_spell_id added to spells, can use this to distinguish spells of different classes not competing (eg. wards of templar/inquisitor dont stack)
GetSpellData and SetSpellData support min_class_skill_req and type_group_spell_id
xp_debt in InfoStruct changed to float use SetInfoStructFloat and GetInfoStructFloat for it
SpawnScript file is now listed in /spawn details on the last page
LUA functions added:
bool GetRuleFlagBool(category, name)
float GetRuleFlagFloat(category, name)
int32 GetShardID(Spawn)
int32 GetShardCharID(Spawn)
int64 GetShardCreatedTimestamp(Spawn)
bool DeleteDBShardID(shardid) -- using GetShardID
int32 GetCharacterID(Spawn)
bool SetAccessToEntityCommandByCharID(Spawn, CharID, command_string, val) -- same as SetAccessToEntityCommand, but using a CharID instead of player
Rules added:
RULE_INIT(R_Combat, DeathExperienceDebt, "50.00"); // divide by 100, 50/100 = .5% debt per pve death
RULE_INIT(R_Combat, PVPDeathExperienceDebt, "25.00"); // divide by 100, 25/100 = .25% debt per pvp death
RULE_INIT(R_Combat, GroupExperienceDebt, "0"); // set to 1 means we will share debt between the group
RULE_INIT(R_Combat, ExperienceToDebt, "50.00"); // percentage of xp earned to debt vs obtained xp 50/100 = 50% to debt
RULE_INIT(R_Combat, ExperienceDebtRecoveryPercent, "5.00"); // recovery percentage per period of time, 5/100 = 5% recovered (so if .5% debt, .5*.05 = .025, .5-.025=.475% debt left)
RULE_INIT(R_Combat, ExperienceDebtRecoveryPeriod, "600"); // every 10 minutes (x*60 seconds) recover ExperienceDebtRecoveryPercent
RULE_INIT(R_Combat, EnableSpiritShards, "1");
RULE_INIT(R_Combat, SpiritShardSpawnScript, "SpawnScripts/Generic/SpiritShard.lua");
RULE_INIT(R_Combat, ShardDebtRecoveryPercent, "25.00"); // recovered percentage of debt upon obtainig shard, 25/100 means 25%. If there is .5 DeathExperienceDebt, .5*25% = .125, .5 - .125 = .375
Fix#199
/movecharacter name zonename
updates the characters table, moves to safe x,y,z,heading of zone
character should be logged out, otherwise there is no point to using this command (just gets overwritten on char save).
- /castspell command updated for third argument, when set to '0' will cast as 'self' as it were the target. eg /castspell 1234 1 0 (will cast spell id 1234 tier 1 and self cast it on your target)
Fixed spell error messages for DoF client
Fixed food/drinks for DoF client
Changed items to allow archetypes to use an item if all the classes in the archetype are allowed to use it
Added a ton of LUA functions to support various gameplay features
Loot icon only added to corpse if the corpse has loot
Class skills will now rise appropriately with level
Fixed various bugs
Fix#66
- Fixed crashing of the world server when a client in a group zones
- Tracking of players group_id in the characters table (for both sanity and tracking cross zone)
- Clients zoning now properly 'rejoin' their group
- Mutex locks added to group code, this makes groups more reliably work across different zones as they run on different threads (some behavior for example was some players would not see chat and others would)
Fix#8
- the multiple 'version' handling in LS is removed, now just GetVersion() as before.
- Console commands '1' and '2' removed (would change world status to all clients). Version command added (was missing).
- Window Title updated to note version
- Some loose log messages (printfs) were made into proper "LOGIN" messages via log_config.xml
- Previously marked "World" messages that are also used as "Login" now properly categorized as such
- Removed DumpPacket on unknown opcodes (stop unnecessary data to console)
- Welcome banners on world/login updated
Fix#143
Adds flight_path_id, mount_id, mount_red_color, mount_green_color and mount_blue_color to transporters table
flight_path_id matches to StartAutoMount id or flight_paths id
mount_id matches to SetMount value
mount red/green/blue color are by default 255
Fix#67
Spawn table updated with merchant_min_level and merchant_max_level, extends to spawns, widgets, objects and signs.
Restricts the min level required and a max level cap on a player able to use the merchant (buy/sell/display)
/spawn set merchant_min_level x
/spawn set merchant_max_level x
In support of issue #125
- /house_deposit [??] [coin_amount] [status_amount] added
update query:
update commands set handler=518 where command='house_deposit';
- Escrow balance is tracked on the house
- Deposits are tracked for total and last deposit
- House upkeep payment now takes from escrow first
- character_house_deposits table added
CREATE TABLE `character_house_deposits` (
`timestamp` int(10) unsigned NOT NULL DEFAULT 0,
`house_id` int(10) unsigned NOT NULL DEFAULT 0,
`instance_id` int(10) unsigned NOT NULL DEFAULT 0,
`name` varchar(64) not null default '',
`amount` bigint unsigned NOT NULL DEFAULT 0,
`last_amount` bigint unsigned NOT NULL DEFAULT 0,
`status` int(10) unsigned NOT NULL DEFAULT 0,
`last_status` int(10) unsigned NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Fixes#24 - chest traps and the ability to disarm is implemented. Can restrict by zone (or applicable to all zones using -1), min and max chest difficulties.
1 = Small Chest (no trigger)
2 = Treasure Chest (trigger)
3 = Ornate Chest (trigger)
5 = Exquisite Chest (trigger)
DB/updates/chest_traps_tableandsamples.txt included - this will allow you to source in the chest_traps and some 'example' traps (not real ones just testing ones).
Disarm command also required for right click option on chest: insert into commands set type=0,command='disarm',subcommand='',handler=510,required_status=0;