Commit graph

1170 commits

Author SHA1 Message Date
SilverIce
9d566398ad [11720] Implement spline movement subsystem
Spline movement controls movements of server-side controlled units (monster movement, taxi movement, etc).
Proper implementation of effects such as charge, jump, cyclic movement will rely on it.
However, need improve our states system before.

Technical changes:

 1. Added linear, catmullrom and bezier3 splines which based on client's algorthims. They can be reused for proper transport position interpolation.
 2. Precission increased. There are no more position desync issues since client's position calculation formulas used.
 3. Now possible to move by paths with multiple points, send whole path to client.
2011-07-08 17:25:13 +03:00
VladimirMangos
f4be64ff48 [11715] Remove World::setConfigPos for uint32 and move check to all uint32 config values.
As part changes move to int32 list as expected by values:
 * CONFIG_INT32_QUEST_HIGH_LEVEL_HIDE_DIFF
 * CONFIG_INT32_QUEST_LOW_LEVEL_HIDE_DIFF

Please report if mangosd will report unexpected error (< 0) for some signed config option.
I check manually but maybe miss some...

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-07-07 03:47:34 +04:00
VladimirMangos
cc11366d6b [11702] Alsways attempt generate randomProperty for item in at create if value not pre-selected.
This resolve all existed cases when we miss assign random property id.

Also move random property/suffix check from item creating to server load time.
2011-06-30 19:19:02 +04:00
VladimirMangos
04a469f393 [11670] Implement in proper way ITEM_SPELLTRIGGER_ON_STORE (5)
Item spells with this trigger mode expected casted at item add
to inventory/equip slots (exclude bank), and spell auras (if any)
applied while item in like slots. Item expected destroyed at aura
remove by some reason.

Implementation note: because 2 step way item moves from slot to slot
related auras not removed at internal RemoveItem call and removed only
at directly item destroy/remove from player function calles, or at StoreItem
(if item added to not appropriate slot). So need in future careful with new
RemoveItem call cases.
2011-06-24 22:55:58 +04:00
VladimirMangos
3bea0ec357 [11657] Daily/weekly quests must still reward expirience/max level money at repeating. 2011-06-19 22:11:45 +04:00
mumion
328a62f18f [11656] For not first repeating quest avoid reward money as xp replacement.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-06-19 21:51:32 +04:00
VladimirMangos
45292a9d56 [11650] Group members see same group member ghosts.
Also drop battleground case that just same check in fact.

Original patch and research provided by Den.
2011-06-19 04:00:51 +04:00
Den
f1fcefce4f [11648] Breath/fatigue/fire damage timers tick each 2 sec. 2011-06-19 02:46:09 +04:00
cmaranec
2d7768a5ab [11646] Implement support item converting at expire
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>
2011-06-18 21:15:20 +04:00
VladimirMangos
a97370a7f0 [11645] Fixed work EffectSummonChangeItem, for example, for item. 17223
Also
* Move item comvert code from spell effect to new function.
* Some code style cleanups.
2011-06-18 21:09:42 +04:00
SeTM
9300842b04 [11643] Restore skill/level checks at traning non-prof spells.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-06-18 17:11:11 +04:00
VladimirMangos
74e7d5ddcd [11642] Fixed some added in prev commit warnings. 2011-06-18 06:07:55 +04:00
VladimirMangos
4bedd22a3f [11640] Implement TradeSkill.GMIgnore.* config options
Options let set GM level that allow ignore at training level/skill/maxprofs
Mostly for allow avoid use commands when need learn prof ranks.
2011-06-18 04:06:44 +04:00
zergtmn
75c4578be8 [11636] Add two missing initial world states 2011-06-17 23:29:03 +06:00
zergtmn
54f623d2b8 [11632] Revert part of 11631 2011-06-17 16:27:06 +06:00
zergtmn
10865b633f [11631] Fix wrong overriding aura stack amount and proc charges at loading
Need to consider spell mods, partial dispels and etc...
2011-06-17 16:14:38 +06:00
VladimirMangos
6190894330 [11627] Restore spelmods apply after ClassFamilyMask commit. 2011-06-12 21:09:40 +04:00
VladimirMangos
c686697c2d [11623] Implement ClassFamilyMask as wrapper for uint64+uint32 spell family masks
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.
2011-06-11 21:20:42 +04:00
Lynx3d
1ffde196ce [11620] Make equipment manager handle "ignore this slot" option properly.
Also fix SQL fields to use unsigned values as expected in code, otherwise large values will get lost.
2011-06-10 18:51:33 +02:00
Feanordev
c11a2b68b7 [11614] Totem/Relic/Sigil etc swapping should tirgger GCD
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-06-06 15:12:55 +04:00
VladimirMangos
44d168d4a3 [11608] Check correct map for enter at far teleport
Not fatal porblem, but let correctly work check for avoid teleport back at teleport fail.
2011-06-05 21:46:07 +04:00
VladimirMangos
108a167c46 [11587] Use SkillRaceClassInfo.dbc data for check spell training.
* 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.
2011-06-02 09:55:25 +04:00
VladimirMangos
6092bbf502 [11579] Grrrr.... typo prev. commit. 2011-06-01 03:39:09 +04:00
VladimirMangos
7371bb96e1 [11578] Prevent lost aura from spell applied at use equipped consumable item.
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.
2011-06-01 02:36:17 +04:00
VladimirMangos
e17f7bf4d5 [11569] Remove recently added area switch time duel check.
Only duel start expected to be limited by area.
Duel end controlled only distance/map and outOfBound timer
2011-05-30 12:02:30 +04:00
VladimirMangos
4f214f55d7 [11566] Fixed problem with reuse BG save data not only at first failed login to BG.
Most visible problem result: infinity restart in taxi flight
after join to BG from taxi if character logout in BG and BG finished before re-login.
2011-05-30 05:47:12 +04:00
VladimirMangos
4a087e6bda [11557] Duel related fixes
* 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.
2011-05-29 03:57:15 +04:00
NoFantasy
8d8abd2afb [11555] Add a comment for SMSG_UPDATE_COMBO_POINTS
Remove another obsolete comment

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-28 20:54:36 +02:00
breakwater
ce14b28ba4 [11552] Implement aura SPELL_AURA_STOP_NATURAL_MANA_REGEN (294)
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>
2011-05-28 05:24:36 +04:00
zergtmn
5cae1c2211 [11539] Implement group guids with HIGHGUID_GROUP 2011-05-25 19:55:35 +06:00
NoFantasy
0fbf2cf7d3 [11538] Add safeguard against weirdness in UpdateCombatSkills
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>
2011-05-25 12:25:14 +02:00
SilverIce
4bb2d662a2 [11536] Override Unit::SetPhaseMask for players, move some functionality from Aura::HandlePhase 2011-05-25 04:20:50 +03:00
VladimirMangos
2cbde12458 [11534] Guild disban memory losses and unsafe code.
* Make sure that guild object deleted in all cases after disband.
* Avoid recusive like way call Disband from DelMember
2011-05-25 03:20:28 +04:00
VladimirMangos
d111d1a4b3 [11497] Fixed another source of crash at accept quest from item.
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.
2011-05-17 00:42:07 +04:00
VladimirMangos
249fb836ca [11490] Alow implicit cast ObjectGuid->uint64 and only explicit uint64->ObjectGuid
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.
2011-05-15 22:04:57 +04:00
zergtmn
777ffe8dc2 [11483] Change postfix iterator increments to prefix where possible 2011-05-14 16:53:55 +06:00
zergtmn
4cfa51d799 [11482] Reorder some fields for better memory layout 2011-05-14 16:52:32 +06:00
VladimirMangos
719e298795 [11470] Final cleanup uint64 guid cases
Also drop logout player update fields cleanup that in any cases not saved.
2011-05-11 21:36:27 +04:00
VladimirMangos
5ff698f53a [11468] Finally remove all uses Object::GetGUID from core sources.
GetGUID() is now depricted function and will removed soon.
Still exist just for give time for update patches/scripts.
2011-05-11 01:47:34 +04:00
VladimirMangos
ef6a48fe03 [11465] non-ObjectGuid guids in random places.
Only ChannelMgr code wide use uint64 guids now, and Map object stores.
2011-05-10 21:27:49 +04:00
VladimirMangos
a925db80fa [11464] Some item related guids convertion to ObjectGuids 2011-05-10 16:37:34 +04:00
VladimirMangos
44f2c26389 [11459] More ObjectGuid using in Aura/SpellAuraHolder code.
Also fix build in PetAI code. Thanks to rsa for fix code.
2011-05-09 23:17:39 +04:00
VladimirMangos
151e5eae9c [11458] Non-item related uint64 guids replaced by ObjectGUids in Player.h
Also let ObjectAccessor::FindPlayer optimize empty guid case work.
2011-05-09 21:54:09 +04:00
VladimirMangos
1d781cd431 [11457] Use ObjectGuid way work with PLAYER_DUEL_ARBITER. 2011-05-09 20:40:21 +04:00
VladimirMangos
b647835469 [11454] Use ObjectGuid in class Loot 2011-05-09 19:17:38 +04:00
VladimirMangos
a4e91c3593 [11448] Fixed typo as source for recent crashes at quest start.
Also more stricjed typecheck for Object::isType arg value.
2011-05-09 01:21:24 +04:00
NoFantasy
4c3b61d4f5 [11443] Implement SPELL_AURA_MIRROR_IMAGE (247) and related receive/reply packets
Inspired by different patches posted in forum, thanks guys for the help it was :D

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-08 18:58:01 +02:00
VladimirMangos
a5fe00d6f6 [11438] Clarify code for quest start/source/req items adding/remove at quest start.
* 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
2011-05-08 05:56:33 +04:00
BThallid
7237fe7f62 [11436] Really save/load item 5/6 objectives counters in quest status.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-05-08 01:55:32 +04:00
Lynx3d
3f531024f7 [11434] Implemented diminishing returns (DR) for dodge and parry chances.
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
2011-05-07 20:19:53 +02:00