- Deadlock fix on spawn removal and deleting spawns
- Fix#358 lootdrop will be checked against completed quest identified by ID
alter table lootdrop add column no_drop_quest_completed int(10) unsigned not null default 0;
- zone instance type now cached into a map after querying zone id (so we don't continuously query)
- mentor now removes spells on the person mentoring
- Fix#354 - GetZoneLockoutTimer(Player, ZoneID, displayClient=false) added, returns string of lockout time (includes a space at the beginning). DisplayClient = true will send the message to the client.
- Can't hail dead spawns
- Crash fix in TempRemoveGroup when group id no longer exists
Fix#357 - support to quest steps by race type
Eg. race 298 is gnolls
AddQuestStepKillByRace(Quest, 1, "I need to kill five Gnolls!", 5, 100, "I need to do what is asked of me.", 1221, 298)
Fix#352 - Add AddQuestStepZoneLoc since existing AddQuestStepLocation does not support zone id and it looks for 3 sets of locations at the end of the function (so it can accept multiple arguments of locations). AddQuestStepZoneLoc introduces 4th optional argument of zone_id for each loc set x,y,z, zone_id
AddQuestStepZoneLoc(Quest, 2, "Go to Oakmyst Falls", 10, "Visit the Oakmyst location hinted of in the line "The life giver billows and feeds."", 11, 994, 0, -204, zoneid, anotherx, anothery, anotherz, anotherzoneid)
RULE_INIT(R_Player, MentorItemDecayRate, ".05"); // 5% per level lost when mentoring
mentoring now lowers the item stats although display needs work to display lowered stat value (higher stat value)
reordering some of the mutex locks for info/pos/vis to avoid deadlocking (still a few more to address)
Added StopMovement(Spawn) for NPCs in a movement loop, purges movement loop and stops npc at position
indestructable items supported
appearance items limited to appearance only
makeadmin charname status added to console commands (windows)
fixed "used" to allow removal of an item without crashing the world. The function can return a value less than 0 to omit from calling RemoveItem or decrementing the charges by code. Having no return (0) or any return larger than 0 means we will try to code decrement the item if it is still there.
Start of work for /mentor and /unmentor issue #332 - set effective level based on targeted group member, right clicking them and mentoring, after you can stop mentoring. The base stats and resistance stats revert to the lower level at this time.
spell fixes:
- secondary targets working for casting heal spells, recast is more or not working correctly now..
- overrides existing spell when there is a duration of time or trigger count to the spell
- doesnt prematurely show the icons available (eg. you cancel a spell then it pops up and you cant reuse or it starts a recast timer when it shouldnt)
- doesnt reset the recast timer (sometimes giving double the time to cast)
- unlocking a spell when all spells locked, no longer occurs
Fix#330 - fix charge and use to correctly decrement in inventory and/or remove item. Should never call RemoveItem or DeleteItem in LUA use of an Item.
Items with a charge count (not a physical stack of items) will now count down their charges to 0 and display 'This item is out of charges.'
Items with an actual stack amount (eg. stack count is larger than 1) will remove an item with each 'use' down to 0 which removes the final item in the stack.
display_charges is no longer required for the "use" function to be called (before we were decrementing display charges when the "use" function was called, which was always after 1). Now rely on the item->details.count
Fix#328 - broker display issues (some not all)
tier 0 items do not display
2h item types do not work
Max charges when you buy an item with a charge count
Additional missing items seen on broker: Gust of insight... min_skill and max_skill is a range of 0-6 from client->server, all the way back to classic. Classic UI has it, obselete is 0, 6 goes to unusable (red) for the player. The items skill items to not match this range, they are actual skill values.
1h item types show both 1h/2h weapons (now 1h and 2h are separated)
Partial Address Issue #328 - tier 0 items display, 2h now display
Fix#298 - can't equip a 1h while 2h is equipped. Swapping equipment slots now works for both combat/appearance equip.
Fix#201 - when scribing, new tier spell will display on hover over of spellbook or hotbar
Fixed a crash with spell conflict doing double delete on lua spell
Fix#152 - addressed divine awakening, via new target_type (10) SPELL_TARGET_ALLGROUPTARGETS - this will call cast for each player instead of just the direct target
righteousness and decree now supported as a group target AE
Better connection closure from client to world on camping/zoning out
Fix#326 - buy from merchant can have the 'buy' button disabled
function buy_display_flags(Item, Spawn)
return 128
end
charactersProperties -> character_properties
CREATE TABLE `character_properties` (
`charid` int(10) unsigned NOT NULL DEFAULT 0,
`propname` varchar(64) NOT NULL DEFAULT '',
`propvalue` varchar(64) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table charactersProperties;
drop table charactersproperties;
- some misc crash fixes, sql escape issue, etc.
Fix#231 - item_description function which returns a string added to ItemScripts. Can allow setting of specialized red text, eg "You already know this language.". Completes 231 with the other ItemScripts support (item_difficulty) and scribing support
which includes a new rule:
RULE_INIT(R_Spells, RequirePreviousTierScribe, "0"); // requires step up apprentice -> apprentice (handcrafted?) -> journeyman (handcrafted?) -> adept -> expert -> master
Fix#323 - check in main equipment (0) slots for bags only which addresses the appearance overriding bags issue.
- DoF and classic clients will auto login after char creation instead of getting stuck at character select
- model_color and soga_model_color properly tracked on login server
- Removed ServerOP_WorldListUpdate code (revisit at a later time)
- Login account flag fix, sets Veteran Bonus under 'Select Character' yellow (vs greyed out), adventure/tradeskill bonus 200%
- Fixed disabled flag in login_worldservers not working
- Added login_bannedips table
- Both are checked periodically against the database with logged in worlds
Fix#300 - appearance inventory saved to database, can equip and overrides normal equipment. Also fixed appearance properly updating (it wasn't sent other than in zone in primarily)
Fix#322 - rule to disable house alignment requirements
RULE_INIT(R_Player, DisableHouseAlignmentRequirement, "1");
Fix#311 - defines for root/snare as spell types
#define SPELL_TYPE_ROOT 15
#define SPELL_TYPE_SNARE 16
Fix#301 - loot_global needs a lua_script to access the ZoneScript and call function loot_criteria(Spawn)
loot_criteria_zone(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
loot_criteria_racial(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
loot_criteria_level(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
Spawn: the target of the loot table to be added
LootTableID: the current loot table id we are checking to add to the Spawn
MinLevel/MaxLevel: Criteria from the global loot table that is handled via code (eg. always add if minlevel/maxlevel is 0, otherwise it is based on the Spawn's level)
return value of 0 will skip the provided LootTableID(int32) despite the database MinLevel/MaxLevel checks
return value of 1 will always include the loot table id on the Spawn list, even overriding if the min/max level check fails in the code
Issue #231 partially addressed, added support to override item_difficulty in the item script based on the arrow color (3 is white):
function item_difficulty(Item, Spawn)
return 3
end