Example: items 44623->44625->44627 convertion chain
* New table `item_enchantment_template` store original->final item pairs
Original item must have duration setup.
* Small change in GetItemConvert for consistence (now 0 returned if no convert pair instead original entry id)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Inspired by patch suggested by darkstalker
Also
* Remove existed enums for family masks as contra-productive for developement.
* Drop one from horrible hack checks in SpellMgr::IsNoStackSpellDueToSpell
(spells for any fimilies with exactly 0x800 mask) I fail find useful cases
for current spell data with this check. All cases expected work correct without it.
If will some problems detected with this please report for fix in less strange way.
* Show race/class specific min level in trainer list (for weapon master for example)
and use it for check spell traing possibility.
* Hide for specific race/class some spells marked by flag ABILITY_SKILL_NONTRAINABLE
This possible in cases when spell available for race/class but learned from talent/etc
and then don't must be show for race/calss pair in trainer list. Single case in 3.3.5a.
* Add to code tables for profession ranks for seelct correct rank related reqlevel
and check DB side data for it. Note: DB reqlevel values redundant for profession rank
spells now.
* Use for reqlevel selection (if DB value not provided) learned spell insteed cast-spell
spellLevel field. This let in more cases select training reqlevel without provided DB value.
For LogFilter_DbStrictedCheck = 0 mode output data about like redundant reqlevel values
in traner tables.
So aura will not removed at unequip like item with multiply charges,
and will not removed at last charge with item deleting in result.
No like items in 3.x known but exist in prev. client versions.
* Implement duel allowed check base at proper area flag AREA_FLAG_DUEL (0x00000040)
This allow duels for example in capital area 4570 and allow/fogbid correctly some other zones and areas.
* Implement duel cancel at leave duel allowed area
* Fixed code for duels work in sunctuary if area allow duels.
Also partly implement using it spell 62692.
FIXME: Some spells expected to be working for target under spell 62692 effect
not working. This need additional research and fixes.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Prevent weapon/defense update also in case of negative skill difference result (may become negative after use of .level -N -command)
Signed-off-by: NoFantasy <nofantasy@nf.no>
OnQuestAccept script calls moved into Player::AddQuest before
remove/replace quest starting item.
Its still called only at quest accept ofc (questGiver object != NULL only in like case.
Now safe allow this casts in like way after completed convertion to ObjectGuid use.
Also simplify code in result allowed auto cast to uint64.
Please _not_ add new uint64 storages (local and in structures) for guid values.
* Fix problem with complete quest when quest start item == quest source item.
And source item not have max items amount setting.
* Avoid remove start item for case when it will re-added at next code line as source item
Also updated base dodge and agility=>dodge conversion values for 3.2 and later
Base stats and percentage based talents/buffs are not affected by DR,
it basically prevents items and stat buffs becoming disproportionally
powerful in terms of survivability as characters approach 100% avoidance.
TODO: implement DR for chance to be missed from defense rating