TS bench and recipe List Fixes
Required world list XML update as well Should be included
this will fix 1 items of Issue #467 Tradeskill stations should restrict recipes( these basics take care of standard devices found in starting cities will need some work for house and summoned devices)
PS. i really hope i dont screw this up
* New rules:
* R_Combat, StrengthNPC = 10
* R_Combat, StrengthOther = 25
* these are dividers, player_strength / 25 (or for NPCs a divide by 10), minimum value of 1 allowed
- ChangeLevel now properly called inside AddXP when player level changes (this is required!) else skill ups do not occur.
- Added weaponry to skillups (piercing, slashing, so on) since it wasn't skilling up
- Fixed crash upon not being able to load a recipe (if someone were to remove recipes from the DB that a character needed)
Loaded new recipe tables into current tradeskilling code
-The RecipeID foreign key in the character_recipes tables needs to be updated to new `recipe` table
-There is extra data in the recipe tables not being utilized due to current code constraints/missing items etc
-Fixed an issue with the Recipe(Recipe*) constructor and level requirements not being loaded into recipe_books for scribe checks
-Made character recipe/book updates async
* Spells now have level and class checks
* Recipes now have class checks (already had level checks)
* Recipes now fallback to the item recipebook info to populate players recipes from a recipe book if the recipe book is not properly configured by book name
Fix#396 - Implemented subspawn tables so we can update specific types of spawns, in this case collectors when we remove the red book
Fix#205 - ground spawns now can have random heading assigned or forced heading
alter table spawn_ground add column randomize_heading tinyint(3) unsigned default 1;
randomize_heading = 0 uses base heading in the spawn location
randomize_heading = 1 means all spawns will have a random heading 0-360 degrees
Fix#118 - Knowledge sorting / spell book updates now correctly work.
* Down/Across patterns now supported (zig-zag was default)
Fixed a crash when a spawn spell is interrupted and then the spawn dies to a melee attack could cause memory corruption removing spell timer pointers
Startup opcode warnings are now grouped by versioning to allow easier troubleshooting, DoF uses 546 and AoM 60085, thus most opcodes warnings are not relevant to supported cases
Fixed a regex crash on /findspawn
Fix#458 - fixed memory leaks in lua quest step location/zone loc functions and also languages memory cleanup
New Rules:
RULE_INIT(R_PVP, PVPMitigationModByLevel, "25"); // gives a bonus to mitigation for PVP combat to offset the percentage level * mod (default 25)
RULE_INIT(R_Combat, EffectiveMitigationCapLevel, "80"); // level multiplier for max effective cap, level * 80 (default)
RULE_INIT(R_Combat, CalculatedMitigationCapLevel, "100"); // The cap to calculate your mitigation from is [level*100].
RULE_INIT(R_Combat, MitigationLevelEffectivenessMax, "1.5"); // ratio victim level / attacker level for max effectiveness, when victim is higher level cap can reach 1.5
RULE_INIT(R_Combat, MitigationLevelEffectivenessMin, ".5"); // ratio victim level / attacker level for min effectiveness
RULE_INIT(R_Combat, MaxMitigationAllowed, ".75"); // percentage max mitigation allowed, eg. 75% of damage can be mitigated max in PVE
RULE_INIT(R_Combat, MaxMitigationAllowedPVP, ".75"); // percentage max mitigation allowed, eg. 75% of damage can be mitigated max in PVP
InfoStruct now has two unsigned int16 values that offer mitigation percentage values in integer formats, eg 155 = 15.5% mitigation
mitigation_pve
mitigation_pvp
Updated formulas to use effective_level (mentor/actual level) vs just player level
* Dodge
* Block
Bug fix for crash in non existent quest being called for /modify quest advance
Bug fix for improperly trying to stack items that are not stackable (count of 0 items, stack count of 1)
Bug fix for inventory updates, typically with overflow slots and after deleting items from inventory (packet count needs to be updated with current size in PlayerItemList::serialize)
Collections/Rewards:
- Display is now one reward at a time
- Display of award now only allows the reward cash, status to be provided once
- Database persistence of unaccepted rewards cross-zone with two new tables
- Selectable collections now checks if either field provided in /accept_reward is a potential item id (this is likely due to a client versioning)