Commit graph

74 commits

Author SHA1 Message Date
VladimirMangos
f3930cb06f [8406] Detect/check stacking of food/drink/elental shileds as spell specifics.
Food/Drink checks base at nos4r2zod's patch code.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-23 03:33:01 +04:00
nos4r2zod
e07a0d9652 [8399] Prevent stacking well fed buffs.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-21 06:00:08 +04:00
VladimirMangos
8d30f01a73 [8369] Some step back in triggered effect caster selection.
This must fix some broken after [8360] spells.
2009-08-14 04:10:02 +04:00
VladimirMangos
e01e1b4fb4 [8350] Implement (partly) 78-85 target modes.
Thanks to Astellar for original reseach related target modes.
2009-08-11 19:53:56 +04:00
KAPATEJIb
fc66d2729b [8309] Fixed paladin judgement selection code in some places.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-05 00:52:40 +04:00
VladimirMangos
bb273d51ad [8306] Implement single-per-caster limitation for paladin "hand of" spells. 2009-08-04 20:01:34 +04:00
nos4r2zod
39eca7d43a [8298] Use new Aura::HandleSpellSpecificBoosts for apply/remove dependent auras.
This provided more clear place where dependent auras can be applied/removed,
if expected manual apply _with_ aura remove at parent aura expire.
This can be used for more cases.

In current state it implement additional effects for
29836 and ranks, 61846 and ranks, 31869, 53379 and ranks, 20254 and ranks,
20138 an ranks, 48263, and 48265.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-03 02:27:30 +04:00
VladimirMangos
c7f8c9b52b Avoid target requirement checks for spells with caster base target selection (self,pet,around).
This fix cast fail for some spells, mostly triggered or scripted with unexpected prowided explicit tatrget different from caster.
2009-07-31 17:08:47 +04:00
Lutik
48eb01666d [8264] Implement target mode 104 (forward 30 degries cone)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-28 14:14:05 +04:00
VladimirMangos
7ac4dc6f13 [8251] Store in some DB tables only data for first rank.
* Allow add to DB data only for first rank in table `mangos_spell_bonus_data` and `mangos_spell_proc_event`.
* Copy data for other ranks for speedup use at loading for this data and data from `spell_proc_item_enchant`.
2009-07-26 10:46:36 +04:00
nos4r2zod
fd2eb3cfee [8250] Cleanup code and data for spell_threat
* Load table data to std::map instead SQLStorage and add check loaded spell existance.
* Drop from table not existed spells.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-26 05:49:17 +04:00
nos4r2zod
13b709a10b [8249] Implement support spell_proc_item_enchant table for ppm item enchantments triggering at hit.
* Added a new SQL table, spell_proc_item_enchant, for "custom" ppmRates on Item Enchants that do not use auras.
  With table data this must fix ppm for effect from 8033 and ranks enchanting, and item 6947/10918 and ranks enchanting.

* Implemented SPELLMOD_FREQUENCY_OF_SUCCESS (26).
  That must fix work talent 14113, spell 32645 with ranks, glyph 41094 and item set effect 64917 in frequency part.

Thanks to MaS0n as author alternative patch that partly used in this patch.
Thanks to Thenecromancer as author alternative patch that ideas inspire MaS0n's patch writing and then this patch also.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-26 04:58:46 +04:00
VladimirMangos
ae2f25ce64 [8234] Implement support for explcit discovery spell 64323. Also better checks at loading. 2009-07-23 17:14:31 +04:00
VladimirMangos
b7389d2a20 [8224] Small uint64 defines cleanup. 2009-07-21 01:37:35 +04:00
XTZGZoReX
a538fa621c [8191] Drop code related to use long time empty spell_affect table.
After switch to 3.x.x all data get explcitly from ClassMask fields in spell.dbc
and no need in custom values.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-17 04:29:33 +04:00
VladimirMangos
888e6f04f3 [8188] Cleanups in #includes for SpellMgr.h 2009-07-17 00:45:47 +04:00
ApoC
9759a2279c [8174] Fixed typo in IsSpellHaveAura
* Correct cast DBC data to AuraType instead of SpellEffect.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-13 15:14:10 +02:00
VladimirMangos
f99f477fe8 [8169] Implement new optional table spell_check and console command .debug spellcheck
* Table expected to be store data mirror same data in code:
  - explicit spell ids with related expected spell properties like effects, spell family or auras
  - implicit requirements for select some spell sets like spell family masks, icons or visual values
* For check can be used .debug spellcheck _console_ only command.
* Main purpose table and related command check code parts for outdated data at client switch.
  It also can be used for check data in patch writing time to be sure code correctness.
2009-07-12 22:15:56 +04:00
VladimirMangos
1baec77845 [8098] Support uint32 spell ids in code.
* Propertly work with uint32 spell ids in player action bar
* Fix in same time bug with not save equipment set button with id==0
* Merge misc field in character_action and playercreateinfo_action to action field as 3 byte
* Propertly load uint32 spell ids from character_spell
* Fixed types for some pet/creature related structure for spell id storing.
2009-06-30 11:25:32 +04:00
Lightguard
df064ebd9f [8082] Update Diminishing Returns.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-27 11:32:52 +04:00
VladimirMangos
7175007aba [8070] Restore spell casting loot items and recipes.
* SPELL_EFFECT_OPEN_LOCK_ITEM (59) effect removed in 3.1.3
* It replaced by SPELL_EFFECT_CREATE_RANDOM_ITEM (59), random item without template replace spells like clam loot spells)
  Used by spells that use before SPELL_EFFECT_CREATE_ITEM_2 (157) with itemtype==0

Note: required DB support in `spell_loot_termplate`
2009-06-23 03:46:27 +04:00
hunuza
7448aaa37e [8060] Fix 56314 and ranks.
Signed-off-by: hunuza <hunuza@gmail.com>
2009-06-21 12:33:52 +02:00
NoFantasy
6a1b4e5729 [7980] Implement item use target requirements store and check (new table item_required_target).
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

* Also implement this table reload
* Static Spell::SendCastResult function for call not from spell code.
  Can be also used in scripts where need send explicitly spell cast error to client.
2009-06-09 00:26:36 +04:00
pasdVn
eaad24d8d5 [7954] Added support for spellranges at friendly targets.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-06-04 21:10:01 +02:00
VladimirMangos
2a27a44e2a [7918] Improve portability in work with uint64 string format specifiers and in code literals.
* Replace platform seelction MaNGOS code for select format descriptor for uint64 by using ACE define.
  I64FMTD renamed to UI64FMTD for more clear name.
* Add new define UI64LIT (base at ACE seelction) for build portables uint64 literals.
  Please always use UI64LIT(0x00001) instead less portable 0x00001LL
2009-05-30 22:44:20 +04:00
VladimirMangos
8171bb57dd [7886] Drop use table petcreateinfo_spell
This is first commit in chain for remove oudated and not used pet functionality.

* Use instead dropped table CreatureSpellData.dbc if creature_template.PetSpellDataId set (mostly hunter pets)
* Use creature_template.spellN if not set creature_template.PetSpellDataId (mostly different summon creatures)
* Fixed bug with not removing from action bar spell icon for not ranked unlearned spells.

Note: summoned controllable creatures without PetSpellDataId must have expected spells in spellN feilds for creature_template.
2009-05-24 06:39:29 +04:00
VladimirMangos
5616ef173b [7881] More types with random generated item at recipe casting. Cleanups code.
Real resulting items creating required DB support (helper error message outputed at loading)
2009-05-23 18:51:39 +04:00
VladimirMangos
a1f4549862 [7833] Implement levelup spells for non-hunter pets.
* Use less hacky way to prepare data in SpellMgr::LoadPetLevelupSpellMap.
* Fill data for all pet families including not hunter pets.
* Fixed bug with lost/unexpected learned spells for some hunter pet families.

Use less hackky way for
2009-05-15 06:26:19 +04:00
AlexDereka
c9d51a6dc7 [7716] Fixed some typos and possible crashes. 2009-04-26 18:49:07 +04:00
VladimirMangos
09c32b5429 [7678] Implement spell target mode 7 and cleanup target mode 17. 2009-04-17 13:41:36 +04:00
VladimirMangos
c4d4bb5620 [7552] Move client version dependend DBC code to src/game. 2009-03-27 01:59:26 +03:00
Lightguard
610a040240 [7500] Not allow stacking some auras at target from different casters.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-03-20 00:14:59 +03:00
VladimirMangos
c1b0e7d57a [7466] Use SpellCastResult in SpellMgr.* functions 2009-03-16 11:21:28 +03:00
VladimirMangos
9def5df2d7 [7463] Make basic preparations for replace 0 as ok spell cast value by more correct value.
Currently 0 used ast OK value for spell cast checks BUT 0 = SPELL_FAILED_AFFECTING_COMBAT
So another values need used. This required lot code changes. This is first step.
2009-03-15 23:57:57 +03:00
VladimirMangos
fee3278e57 [7376] Allow store in spell_area.aura_spell negative values for "not has aura" requirement.
Also
* Allow have in aura_spell spells with SPELL_AURA_PHASE in first effect.
* Allow negative aura_spell chaining in spell_area table.
* Better check at loading duplicate data (by requiremnt set) in spell_area table.
2009-03-04 01:27:56 +03:00
VladimirMangos
2b9eeb782e [7362] Use IN_MILISECONDS where appropriate, other cleanups. 2009-03-01 05:22:56 +03:00
VladimirMangos
1fca6de6f3 [7349] Implement spell cast depenences from area/quest.aura state store in new table spell_area.
* It allow store requirenments: area, active or rewarded quest (until possible another quest not rewarded),
  aura present at character, character race/gender.
* Listed spell can marked as auto-casted when fit requirents. In this case spell requirements checked at
  zone/subzone update (and then resurraction also), quest start/reward, dummy aura apply.
* Old hardcoded lines for similar check removed from sources and required DB support for work now.
2009-02-27 11:15:36 +03:00
VladimirMangos
9e7e374077 [7348] Remove hack code from IsDeathPersistentSpell.
Re-apply zone dependent auras at resurrection by triggering zone update for player.
2009-02-27 08:04:21 +03:00
VladimirMangos
9b3daf3933 [7330] Code warnings and style cleanups. Some bugs fixes.
1) comparison singed and unsigned values
2) redundent includes
3) wrong constructor :-part field initilization
4) unused not-/*name*/-guarded args in template/virtual functions that not required like args.
5) explicitly list not implemented achievement types.

Also bugs fixed:
1) Drop wrong phase mask 0 check in WorldObject::InSamePhase.
2) ArenaTeamMember::ModifyPersonalRating incorrect work with move points in negative with infinity values in result.
3) ArenaTeam::SaveToDB code send uint64 value to string with arg format %u.
2009-02-24 01:54:53 +03:00
zhenya
8dbf8cda71 [7313] Optimized checks of presence in std::set
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-02-21 08:52:33 +03:00
VladimirMangos
7c3ab4b453 Move auction related code from ObjectMgr to AuctionHouseMgr. 2009-02-12 04:50:29 +03:00
VladimirMangos
e97c7ad9c5 [7253] Check battleground status in GetSpellAllowedInLocationError for some spells for aura remove and spell casting cases. 2009-02-09 15:42:22 +03:00
VladimirMangos
f94377622e Use spell_loot_table for item creating in case SPELL_EFFECT_CREATE_ITEM_2 (157) and itemType==0 2009-02-06 06:00:01 +03:00
DiSlord
4ecfbcc2f5 Use spell_bonus_data table for store custom damage/healing bonus coefficients
Big thanks ApoC for help create table.
Fixed bonuses for stacked periodic
Warning need test all coefficients for correct bonus amount.
TODO:
 use this table for absorb bonus calculation
 use this table for melee spells AP bonuses
 use chain multipler in final damage/heal amount

Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-28 02:23:16 +03:00
VladimirMangos
bbf8fd0742 Not store dependent spells in character_spell
* Mark spells learned in result character creating, another spell learning, skill grow,
  quest reward as dependent and not store its in `character_spell`.
* Prevent re-learning known spell in expected state
* Prevent re-learning low rank spell as active if higher rank known.
* New type of non-stacked ranked spells check: skill dependent spell bonuses.
* Activate (show propetly and cast if need) lesser spell rank
  for non-stackable in spellbooks spells at unlearn high rank
2009-01-24 12:03:43 +03:00
DiSlord
abaa111eaa [7159] Allow GO cast as need (use go coordinates for target select in some cases)
Fixed work all Huter traps target selection
More check in ObjectAccessor::Get Object
More generic work 22 TARGET_CASTER_COORDINATES target type

Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-24 03:44:45 +03:00
VladimirMangos
ee6072f232 [7117] Implement explicit recipe discovery abilities.
* Implement SPELL_EFFECT_CREATE_ITEM_2 (157). This alos let work many item creating spells.
* Add `skill_discovery_template`.`reqClass` for allow clas specific racipes storing in table.
* Make primary key for `skill_discovery_template` pair (spellId,reqSpell) that allow have duplicate recipes for different reqSpells.
* Implement SPELL_EFFECT_SCRIPT (77) cases for explicit recipe discovery spells with learn spell selected by `skill_discovery_template` data.
Note: as expected explicit recipe discovery abilities always return some spell while exist any not learned yet for player class.
2009-01-20 00:07:43 +03:00
DiSlord
2cd801a9ef Prevent (in some cases) remove aura state flag if exist similar aura.
Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-17 21:03:26 +03:00
VladimirMangos
950df723d7 [7083] Implement support for cast-spells in trainer lists for riding also. 2009-01-14 02:41:19 +03:00
VladimirMangos
f956a3bf10 [7067] Move inactive form/stance passive spells from playercreateinfo_spell to spell_learn_spell with active field.
This let have in `playercreateinfo_spell` only expected at character creating spells for simplify updating.
2009-01-11 02:09:03 +03:00