* 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.
* 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.
* Move SPELLFAMILY_* to DBCEnums.h and name it as SpellFamily
* Use enum in Unit::GetAura, move family mask code to new SpellEntry helper function.
* Avoid all auras scan in search of triggred spell for 20243.
(based on Schmoozerd's repo commit 1e8c842)
Also drop `achievement_criteria_requirement` data use at start timed achivement:
its will be checked at criteria update (and complete) case. So wrong criteria will
started maybe (timer set but always fail - progress not updated.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Important:
* You have to re-extract and assemble vmaps
* Update your config file, new option 'vmap.enableIndoorCheck' added
New features:
* Include WMO+DBC area information for correct subarea identification and indoor check
* Support for WMO liquid (fishing/swimming in cities, instances and oterh WMO based environments)
Technical changes:
* New Bounding Interval Hierarchy (BIH) data structure for better performance
* Referenced model data for reduced memory usage,
needs more files, but reduces overall file size from ~1.9GB to ~550MB
Additional Authors:
arrai (DBC handling and indoor detection)
faramir118 (windows support and bug investigation)
And of course thanks Vladimir for a lot of patience and support!
* Move and rename MAX_REAGENTS to DBC Strcuture.h.
It used only afore access to SpellEntry field and so part of strcuture definition.
* Add MAX_SPELL_TOTEMS and MAX_SPELL_TOTEM_CATEGORIES for same reasons, and use in code.
(based on 400's commit 0f37423)
(based on 400's commit 636cfef)
(based on 400's commit 0bbe3a7)
(based on 400's commit ce86b56)
(based on 400's commit b74c6a8)
* Now expected item limit categories (for example for item 5513 and related)
correctly limited by its amount in inventory.
* Provide and use additional arg in SendEquipError for alt. way get affected
item prototype. This let send to function item id and prevent crash client at
limit category equip errors that required item prototype data.
Also some more local fixes:
* Alow multiply same type guardians req. for some spells.
* Apply spell duration mods to summons
Many summon spells must start work.
Great work qsa! :)
Thanks The_Game_Master for updaing patch to recent sources.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Use regular naming for 0 spwanmode/difficulty for clean consistence names (used at well known wiki)
* Move difficulty related data access from InstancedMap to Map class.
* Store reset time for map/difficulty pairs.
* Use DBC data for reset time and max players instead `instance_template` fields (dropped)
for each existed map/difficulty pair.
* Fix some "heroic" related checks in spells/etc.
Condition with custom flag civilian and player team only is not sufficient. This update also disallow use *_addon -table (second byte of bytes2) to set flag manually (small chance it may be needed)
Signed-off-by: NoFantasy <nofantasy@nf.no>
Note: this check only out of range value in masks.
And not detect another possible DB problem:
After last client switch spawnmask for raid dengeons need update for correct work.
In expection same spawn for both normal or both heroic modes:
raid normal spawn mask from 1 to 3 (1|2)
raid heroic spawn mask from 2 to 12 (4|8)
In other case heroic spawn will used for 25-normal mode with empty heroic mode instances.