(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>
* Player::StartTimedAchievementCriteria can be used for activate timer
for specific explicitly starting timed achievement by timedRequirementId
in script.
* for ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST this done in core.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* .achievement - let see achievement state and list criteria with progress data.
It provide criteria ids/shift-links for other commands.
* .achievement add - let complete achivement (set all criteria progress to max) with related events.
* .achievement remove - let reset achievement criteria progress and undo complete state for achievement.
Command also partly remove rewards (title part).
* .achievement criteria add - let increase criteria progress at specific amount or to complete state
* .achievement criteria remove - let reset/descrease criteria progress and undo criteria and related achivement complete state if need.
This is fist part for achievement related command set.
Edition commands will added in some later commits when ready.
Two command added:
* .lookup achievment $partname - show fit achievements
(id, shiftlink, complete date for selected player).
shiftlink included similar data as generated by client for achievement shift-link
(complete state, complete date, marked completed criteria).
* .character achievements [$playername] - show completed achievements for selected player
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!
* This is also hack because some float with unknown exactly value used as 'size'
* Another not resolved problem: go size used in creature target autoselection, so for large 'virtual' go
creature can seelct strange points near in attempt select 'free' place near target.
* 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)
* Use min/mac level from dbc because anyway list real selectable
for player level bg/arena backets set min/max range.
* Drop related fields and update per team min/max values.
* 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.
Implemented new achievement criteria requirement:
* ACHIEVEMENT_CRITERIA_REQUIRE_S_EQUIPED_ITEM_LVL (item level and item quality equiped in specific slot)
Implemented suppoprt achievement types:
* ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM (required DB data)
* ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL (required DB data)
Also achievment types used only for statistics:
* ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION
* ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS
* ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS
* ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS
* ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM
* ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM
Use dbc store as base for real xp rewarded and also display xp reward accordingly in related packets.
Note there are still some smaller things that may need smaller adjustments and tweaks, these are on the todo-list.
Signed-off-by: NoFantasy <nofantasy@nf.no>
* Add constructores for spellmode creating instead explcit fields init
* Use uint32 for family mask 2 instead unneded uint64
Also drop one from manual applies for uno-existed now spell.
some shapeshift forms will give the player spells
so we need to tell the server that the player has those new
spells else he can't cast them since the server is thinking the player is
cheating
ps forms with spells:
FORM_GHOUL
FORM_THARONJA_SKELETON
FORM_TEST_OF_STRENGTH
FORM_BLB_PLAYER
FORM_TEST
FORM_ZOMBIE
--
so this mostly won't affect any ingame experience.. but good to have this
feature anyway.. :)
also changed errormessage if player has no reagents for spell..
thx to nofantasy
this will correct some modelids:
form old model, new model
FORM_TRAVEL: 632 --> 918 (now a bit smaller)
FORM_GHOUL: 10045 --> 25527 (whisp --> ghoul)
FORM_CREATUREBEAR: 902 --> 2281 (old brown horse -> bear)
implement shapeshift for spell 24347
this commit also
fix the errormessages with: "Race %u not found in DBC: wrong DBC files"
which were triggered from this code
and will fix the modelid for creature 2038
since it's also using a shapeshift aura and only got the horde-modelid
+ some new entries in ShapeshiftForm-enum
+ some research for the shapeshift.dbc