mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
Merge commit 'origin/master' into 320
Conflicts: src/game/Player.cpp src/game/Totem.cpp
This commit is contained in:
commit
4c709772c1
61 changed files with 912 additions and 454 deletions
179
doc/EventAI.txt
179
doc/EventAI.txt
|
|
@ -1,140 +1,145 @@
|
||||||
=============================================
|
=============================================
|
||||||
EventAI documentation: (Updated May 19, 2009)
|
EventAI documentation: (updated May 19, 2009)
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
EventAI allows users to create new creature scripts entierly within the database.
|
EventAI allows users to create new creature scripts entierly within the database.
|
||||||
|
|
||||||
For the AI to be used, you must first make sure to set AIname for each creature that should use this AI.
|
For the AI to be used, you must first make sure to set AIname for each creature that should use this AI.
|
||||||
|
|
||||||
UPDATE creature_template SET AIName = 'EventAI' WHERE entry IN (...);
|
UPDATE creature_template SET AIName = 'EventAI' WHERE entry IN (...);
|
||||||
|
|
||||||
|
|
||||||
=========================================
|
=========================================
|
||||||
Basic Structure of EventAI
|
Basic structure of EventAI
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
EventAI follows a basic if (Event) then do (Action) format.
|
EventAI follows a basic if (Event) then do (Action) format.
|
||||||
Below is a the list of current fields within the creature_ai_scripts table.
|
Below is the list of current fields of the creature_ai_scripts table.
|
||||||
|
|
||||||
(Field_Name Discription)
|
(Field_Name) (Description)
|
||||||
id This value is mearly an incrementing counter of the current Event number. Required for sql queries.
|
id This value is merely an incrementing counter of the current Event number. Required for sql queries.
|
||||||
creature_id Creature id which this event should occur on.
|
creature_id Creature id which should trigger this event.
|
||||||
|
|
||||||
event_type Type of event (See Event Types below)
|
event_type The type of event (see "Event types" below)
|
||||||
event_inverse_phase_mask Mask which phases this event should NOT trigger in*
|
event_inverse_phase_mask Mask with phases this event should NOT trigger in*
|
||||||
event_chance Percent chance of this event occuring (1 - 100)
|
event_chance Percentage chance of triggering the event (1 - 100)
|
||||||
event_flags Event flags such as if the event is repeatable (see below)
|
event_flags Event flags (repeatable, ... (see below))
|
||||||
event_param1 Variable for event (dependant on Event type)
|
event_param1 Variables for the event (depends on event_type)
|
||||||
event_param2
|
event_param2
|
||||||
event_param3
|
event_param3
|
||||||
event_param4
|
event_param4
|
||||||
|
|
||||||
action1_type First Type of Action to take when event occurs (See Action Types below)
|
action1_type An action to take when the event occurs (see "Action types" below)
|
||||||
action1_param1 Variables used for Action1 (dependant on Action type)
|
action1_param1 Variables used by Action1 (depends on action_type)
|
||||||
action1_param2
|
action1_param2
|
||||||
action1_param3
|
action1_param3
|
||||||
|
|
||||||
action2_type Second Type of Action to take when event occurs (See Action Types below)
|
action2_type
|
||||||
action2_param1 Variables used for Action2 (dependant on Action type)
|
action2_param1
|
||||||
action2_param2
|
action2_param2
|
||||||
action2_param3
|
action2_param3
|
||||||
|
|
||||||
action3_type Third Type of Action to take when event occurs (See Action Types below)
|
action3_type
|
||||||
action3_param1 Variables used for Action3 (dependant on Action type)
|
action3_param1
|
||||||
action3_param2
|
action3_param2
|
||||||
action3_param3
|
action3_param3
|
||||||
|
|
||||||
All params are signed 32 bit values (+/- 2147483647). If param specifies time then time is in milliseconds.
|
All params are signed 32-bit values (+/- 2147483647). Time values are always in milliseconds.
|
||||||
If param specifies percentage then percentages are value/100 (ex: if param = 500 then that means 500%, -50 = -50%)
|
In case of a percentage value, use value/100 (ie. param = 500 then that means 500%, -50 = -50%)
|
||||||
|
|
||||||
|
[*] Phase mask is a bitmask of phases which shouldn't trigger this event. (ie. Phase mask of value 12 (binary 1100) results in triggering this event in phases 0, 1 and all others with exception for phases 2 and 3 (counting from 0).
|
||||||
|
|
||||||
*Phase mask is a bit mask of which phases this event should not trigger in. Example: Phase mask value of 12 (1100)
|
|
||||||
would mean that this event would trigger 0, 1 and all other phases except for 2 and 3 (0 counts as the first phase).
|
|
||||||
|
|
||||||
=========================================
|
=========================================
|
||||||
Event Types
|
Event types
|
||||||
=========================================
|
=========================================
|
||||||
Below is the list of current Event types that EventAI can handle.
|
|
||||||
|
A list of event types EventAI is able to handle.
|
||||||
Each event type has its own specific interpretation of the params that accompany it.
|
Each event type has its own specific interpretation of the params that accompany it.
|
||||||
Params are always read from Param1, then Param2, then Param3.
|
Params are always read in the ascending order (from Param1 to Param3).
|
||||||
Events will not repeat until the creature exits combat unless EFLAG_REPEATABLE is set.
|
Events will not repeat until the creature exits combat or unless EFLAG_REPEATABLE is set.
|
||||||
Some events such as EVENT_T_AGGRO, EVENT_T_DEATH, EVENT_T_SPAWNED, and EVENT_T_EVADE cannot repeat.
|
Some events such as EVENT_T_AGGRO, EVENT_T_DEATH, EVENT_T_SPAWNED, and EVENT_T_EVADE cannot repeat.
|
||||||
|
|
||||||
# Internal Name Pamarm usage Description
|
# Internal name Param usage Description
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
0 EVENT_T_TIMER InitialMin, InitialMax, RepeatMin, RepeatMax Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4). but only in combat.
|
0 EVENT_T_TIMER InitialMin, InitialMax, RepeatMin, RepeatMax Expires at first between (Param1) and (Param2) and then between every (Param3) and (Param4), but only in combat.
|
||||||
1 EVENT_T_TIMER_OOC InitialMin, InitialMax, RepeatMin, RepeatMax Expires first between (Param1) and (Param2) and then between every (Param3) and (Param4). but only out of combat.
|
1 EVENT_T_TIMER_OOC InitialMin, InitialMax, RepeatMin, RepeatMax Expires at first between (Param1) and (Param2) and then between every (Param3) and (Param4), but only out of combat.
|
||||||
2 EVENT_T_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
|
2 EVENT_T_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
|
||||||
3 EVENT_T_MANA ManaMax%,ManaMin% RepeatMin, RepeatMax Expires once Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
|
3 EVENT_T_MANA ManaMax%,ManaMin% RepeatMin, RepeatMax Expires once Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
|
||||||
4 EVENT_T_AGGRO NONE Expires upon initial aggro (does not repeat).
|
4 EVENT_T_AGGRO NONE Expires upon initial aggro (does not repeat).
|
||||||
5 EVENT_T_KILL RepeatMin, RepeatMax Expires upon killing a player. Will repeat between every (Param1) and (Param2).
|
5 EVENT_T_KILL RepeatMin, RepeatMax Expires upon killing a player. Will repeat between (Param1) and (Param2).
|
||||||
6 EVENT_T_DEATH NONE Expires upon Death of the Creature.
|
6 EVENT_T_DEATH NONE Expires upon creature death.
|
||||||
7 EVENT_T_EVADE NONE Expires upon creature EnterEvadeMode().
|
7 EVENT_T_EVADE NONE Expires upon creature EnterEvadeMode().
|
||||||
8 EVENT_T_SPELLHIT SpellID, Schoolmask, RepeatMin, RepeatMax Expires upon Spell hit. If (param1) is set will only expire on that spell. If (param2) will only expire on spells of the selected schools (-1 for all). Will repeat every (Param3) and (Param4) .
|
8 EVENT_T_SPELLHIT SpellID, Schoolmask, RepeatMin, RepeatMax Expires upon a spell hit. When (param1) is set, it will be used as a trigger. With (param2) specified, the expiration is limited to specific spell schools (-1 for all). Will repeat every (Param3) and (Param4).
|
||||||
9 EVENT_T_RANGE MinDist, MaxDist, RepeatMin, RepeatMax Expires when the highest threat target distance is greater than (Param1) and less than (Param2). Will repeat every (Param3) and (Param4) .
|
9 EVENT_T_RANGE MinDist, MaxDist, RepeatMin, RepeatMax Expires when the highest threat target distance is greater than (Param1) and less than (Param2). Will repeat every (Param3) and (Param4).
|
||||||
10 EVENT_T_OOC_LOS Hostile-or-Not, MaxAllowedRange, RepeatMin, RepeatMax Expires when a Unit moves within distance(MaxAllowedRange) to creature. If Param1=0 it will expire if Unit are Hostile. If Param1=1 it will only expire if Unit are not Hostile(generally determined by faction). Will repeat every (Param3) and (Param4). Does not expire when the creature is in combat.
|
10 EVENT_T_OOC_LOS Hostile-or-Not, MaxAllowedRange, RepeatMin, RepeatMax Expires when a unit moves within distance (MaxAllowedRange) of a creature. If (Param1) is zero it will expire only when unit is hostile, friendly otherwise (Param1 = 1), depends generally on faction. Will repeat every (Param3) and (Param4). Does not expire when the creature is in combat.
|
||||||
11 EVENT_T_SPAWNED NONE Expires at initial spawn and at creature respawn (useful for setting ranged movement type)
|
11 EVENT_T_SPAWNED NONE Expires on initial spawn and on creature respawn (useful for setting ranged movement type).
|
||||||
12 EVENT_T_TARGET_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when Current Target's HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4) .
|
12 EVENT_T_TARGET_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when current target's HP is between (Param1) and (Param2). Will repeat every (Param3) and (Param4).
|
||||||
13 EVENT_T_TARGET_CASTING RepeatMin, RepeatatMax Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2) .
|
13 EVENT_T_TARGET_CASTING RepeatMin, RepeatatMax Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2).
|
||||||
14 EVENT_T_FRIENDLY_HP HPDeficit, Radius, RepeatMin, RepeatMax Expires when a friendly unit in radius has at least (param1) hp missing. Will repeat every (Param3) and (Param4) .
|
14 EVENT_T_FRIENDLY_HP HPDeficit, Radius, RepeatMin, RepeatMax Expires when a friendly unit in radius has at least (Param1) HP missing. Will repeat every (Param3) and (Param4).
|
||||||
15 EVENT_T_FRIENDLY_IS_CC DispelType, Radius, RepeatMin, RepeatMax Expires when a friendly unit is Crowd controlled within the given radius (param2). Will repeat every (Param3) and (Param4) .
|
15 EVENT_T_FRIENDLY_IS_CC DispelType, Radius, RepeatMin, RepeatMax Expires when a friendly unit is crowd controlled within the given radius (Param2). Will repeat every (Param3) and (Param4).
|
||||||
16 EVENT_T_MISSING_BUFF SpellId, Radius, RepeatMin, RepeatMax Expires when a friendly unit is missing aura's given by spell (param1) within radius (param2). Will repeat every (Param3) and (Param4) .
|
16 EVENT_T_MISSING_BUFF SpellId, Radius, RepeatMin, RepeatMax Expires when a friendly unit is missing aura(s) given by a spell (Param1) within radius (Param2). Will repeat every (Param3) and (Param4).
|
||||||
17 EVENT_T_SUMMONED_UNIT CreatureId, RepeatMin, RepeatMax Expires after creature with entry = (param1) is spawned or for all spawns if param1 = 0. Will repeat every (Param2) and (Param3).
|
17 EVENT_T_SUMMONED_UNIT CreatureId, RepeatMin, RepeatMax Expires after creature with entry = (Param1) is spawned (Param1 = 0 means all spawns). Will repeat every (Param2) and (Param3).
|
||||||
18 EVENT_T_TARGET_MANA ManaMax%, ManaMin%, RepeatMin, RepeatMax
|
18 EVENT_T_TARGET_MANA ManaMax%, ManaMin%, RepeatMin, RepeatMax
|
||||||
21 EVENT_T_REACHED_HOME NONE Expires when creature reach it's home(spawn) location after Evade.
|
21 EVENT_T_REACHED_HOME NONE Expires when a creature reach it's home(spawn) location after evade.
|
||||||
22 EVENT_T_RECEIVE_EMOTE EmoteId, Condition, CondValue1, CondValue2 Expires when creature receive emote with text emote id(enum TextEmotes). Condition can be defined. If set, then most conditions has additional value (see enum ConditionType)
|
22 EVENT_T_RECEIVE_EMOTE EmoteId, Condition, CondValue1, CondValue2 Expires when a creature receives an emote with emote text id (enum TextEmotes) in (Param1). Conditions can be defined (Param2) with optional values (Param3,Param4), see enum ConditionType.
|
||||||
23 EVENT_T_BUFFED SpellID, AmmountInStack, RepeatMin, RepeatMax Expires when creature have spell (Param1) auras applied stack greater or equal provided in Param2 amount. Will repeat every (Param3) and (Param4).
|
23 EVENT_T_BUFFED SpellID, AmmountInStack, RepeatMin, RepeatMax Expires when a creature has spell (Param1) auras applied in a stack greater or equal to value provided in (Param2). Will repeat every (Param3) and (Param4).
|
||||||
24 EVENT_T_TARGET_BUFFED SpellID, AmmountInStack, RepeatMin, RepeatMax Expires when target unit have spell (Param1) auras applied stack greater or equal provided in Param2 amount. Will repeat every (Param3) and (Param4).
|
24 EVENT_T_TARGET_BUFFED SpellID, AmmountInStack, RepeatMin, RepeatMax Expires when a target unit has spell (Param1) auras applied in a stack greater or equal to value provided in (Param2). Will repeat every (Param3) and (Param4).
|
||||||
|
|
||||||
|
|
||||||
=========================================
|
=========================================
|
||||||
Action Types
|
Action Types
|
||||||
=========================================
|
=========================================
|
||||||
Below is the list of current Action types that EventAI can handle.
|
|
||||||
Each event type has its own specific interpretation of the params that accompany it.
|
|
||||||
Params are always read from Param1, then Param2, then Param3.
|
|
||||||
|
|
||||||
(# Internal Name Param usage Discription)
|
A list of action types that EventAI can handle.
|
||||||
0 ACTION_T_NONE No Action Does Nothing
|
Each event type has its own specific interpretation of it's params, like every event type.
|
||||||
1 ACTION_T_TEXT -TextId1, -TextId2, -TextId3 Displays the -TextId as defined. In case -TextId2 and optionally -TextId3, the output will be randomized. Type text are defined in the text table itself(say, yell, whisper, etc) along with other options for the text. All values are required to be negative.
|
|
||||||
2 ACTION_T_SET_FACTION FactionId Change faction for creature. If param1==0, creature will revert to default faction.
|
# Internal name Param usage Description
|
||||||
3 ACTION_T_MORPH_TO_ENTRY_OR_MODEL CreatureEntry, ModelId Set model from creature_template.entry(param1) OR set explicit modelId(param2). If param1 AND param2 both 0, demorph and revert to default model for creature.
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
4 ACTION_T_SOUND SoundId Plays Sound
|
0 ACTION_T_NONE No Action Does nothing.
|
||||||
5 ACTION_T_EMOTE EmoteId Does emote
|
1 ACTION_T_TEXT -TextId1, -TextId2, -TextId3 Simply displays the specified -TextId. When -TextId2 and -TextId3 are specified, the selection will be randomized. Text types are defined, along with other options for the text, in a table below. All values needs to be negative.
|
||||||
|
2 ACTION_T_SET_FACTION FactionId Changes faction for a creature. When param1 is zero, creature will revert to it's default faction.
|
||||||
|
3 ACTION_T_MORPH_TO_ENTRY_OR_MODEL CreatureEntry, ModelId Set either model from creature_template.entry (Param1) OR explicit modelId (Param2). If (Param1) AND (Param2) are both 0, demorph and revert to the default model.
|
||||||
|
4 ACTION_T_SOUND SoundId Plays a sound
|
||||||
|
5 ACTION_T_EMOTE EmoteId Does an emote
|
||||||
6 ACTION_T_RANDOM_SAY UNUSED
|
6 ACTION_T_RANDOM_SAY UNUSED
|
||||||
7 ACTION_T_RANDOM_YELL UNUSED
|
7 ACTION_T_RANDOM_YELL UNUSED
|
||||||
8 ACTION_T_RANDOM_TEXTEMOTE UNUSED
|
8 ACTION_T_RANDOM_TEXTEMOTE UNUSED
|
||||||
9 ACTION_T_RANDOM_SOUND SoundId1, SoundId2, SoundId3 Plays random sound between 3 params*
|
9 ACTION_T_RANDOM_SOUND SoundId1, SoundId2, SoundId3 Plays a random sound *
|
||||||
10 ACTION_T_RANDOM_EMOTE EmoteId1, EmoteId2, EmoteId3 Emotes random emote between 3 params
|
10 ACTION_T_RANDOM_EMOTE EmoteId1, EmoteId2, EmoteId3 Emotes a random emote
|
||||||
11 ACTION_T_CAST SpellId, Target, CastFlags Casts spell (param1) on target type (param2). Uses Cast Flags (specified below target types)
|
11 ACTION_T_CAST SpellId, Target, CastFlags Casts spell (Param1) on a target (Param2) using cast flags (specified below).
|
||||||
12 ACTION_T_SUMMON CreatureID, Target, Duration Summons creature (param1) to attack target (param2) for (param3) duration. Spawns on top of current creature.
|
12 ACTION_T_SUMMON CreatureID, Target, Duration Summons a creature (Param1) for (Param3) duration and orders it to attach (Param2) target. Spawns on top of current creature.
|
||||||
13 ACTION_T_THREAT_SINGLE_PCT Threat%, Target Modifies threat by (param1) on target type (param2)
|
13 ACTION_T_THREAT_SINGLE_PCT Threat%, Target Modifies a threat by (Param1) percent on a target (Param2).
|
||||||
14 ACTION_T_THREAT_ALL_PCT Threat% Modifies threat by (param1) on all targets (using -100% on all will result in full aggro dump)
|
14 ACTION_T_THREAT_ALL_PCT Threat% Modifies a threat by (Param1) on all targets in the threat list (using -100% here will result in full aggro dump).
|
||||||
15 ACTION_T_QUEST_EVENT QuestID, Target Calls AreaExploredOrEventHappens with (param1) for target type (Param2)
|
15 ACTION_T_QUEST_EVENT QuestID, Target Calls AreaExploredOrEventHappens with (Param1) for a target in (Param2).
|
||||||
16 ACTION_T_QUEST_CASTCREATUREGO CreatureID, SpellId, Target Sends CastCreatureOrGo for CreatureId (param1) with SpellId (param2) for target (param3)
|
16 ACTION_T_QUEST_CASTCREATUREGO CreatureID, SpellId, Target Sends CastCreatureOrGo for a creature specified by CreatureId (Param1) with provided spell id (Param2) for a target in (Param3).
|
||||||
17 ACTION_T_SET_UNIT_FIELD Field_Number, Value, Target Sets Unit Field (param1) to Value (param2) on target type (param3)
|
17 ACTION_T_SET_UNIT_FIELD Field_Number, Value, Target Sets a unit field (Param1) to provided value (Param2) on a target in (Param3).
|
||||||
18 ACTION_T_SET_UNIT_FLAG Flags, Target Sets flag (flags can be binary OR together to modify multiple flags at once) on for Target type (param2)
|
18 ACTION_T_SET_UNIT_FLAG Flags, Target Sets flag (flags can be used together to modify multiple flags at once) on a target (Param2).
|
||||||
19 ACTION_T_REMOVE_UNIT_FLAG Flags, Target Removes flag (flags can be binary OR together to modify multiple flags at once) on for Target type (param2)
|
19 ACTION_T_REMOVE_UNIT_FLAG Flags, Target Removes flag on a target (Param2).
|
||||||
20 ACTION_T_AUTO_ATTACK AllowAutoAttack 0 = stop melee attack, anything else means continue attacking/allow melee attacking
|
20 ACTION_T_AUTO_ATTACK AllowAutoAttack Stop melee attack when (Param1) is zero, otherwise continue attacking / allow melee attack.
|
||||||
21 ACTION_T_COMBAT_MOVEMENT AllowCombatMovement 0 = stop combat based movement, anything else continue/allow combat based movement (targeted movement generator)
|
21 ACTION_T_COMBAT_MOVEMENT AllowCombatMovement Stop combat based movement when (Param1) is zero, otherwise continue/allow combat based movement (targeted movement generator).
|
||||||
22 ACTION_T_SET_PHASE Phase Sets the current phase to (param1)
|
22 ACTION_T_SET_PHASE Phase Sets the current phase to (Param1).
|
||||||
23 ACTION_T_INC_PHASE Value Increments the phase by (param1). May be negative to decrement phase but should not be 0.
|
23 ACTION_T_INC_PHASE Value Increments the phase by (Param1). May be negative to decrement, but should not be zero.
|
||||||
24 ACTION_T_EVADE No Params Forces the creature to evade. Wiping all threat and dropping combat.
|
24 ACTION_T_EVADE No Params Forces the creature to evade, wiping all threat and dropping combat.
|
||||||
25 ACTION_T_FLEE_FOR_ASSIST No Params Causes the creature to flee for assistence (at low helth mostly).
|
25 ACTION_T_FLEE_FOR_ASSIST No Params Causes the creature to flee for assistence (often at low health).
|
||||||
26 ACTION_T_QUEST_EVENT_ALL QuestId Calls GroupEventHappens with (param1). Only used if it's _expected_ event should complete for all players in current party
|
26 ACTION_T_QUEST_EVENT_ALL QuestId Calls GroupEventHappens with (Param1). Only used if it's _expected_ event should call quest completion for all players in a current party.
|
||||||
27 ACTION_T_CASTCREATUREGO_ALL QuestId, SpellId Calls CastedCreatureOrGo for all players on the threat list with QuestID(Param1) and SpellId(Param2)
|
27 ACTION_T_CASTCREATUREGO_ALL QuestId, SpellId Calls CastedCreatureOrGo for all players on the threat list with quest id specified in (Param1) and spell id in (Param2).
|
||||||
28 ACTION_T_REMOVEAURASFROMSPELL Target, Spellid Removes all auras on Target caused by Spellid
|
28 ACTION_T_REMOVEAURASFROMSPELL Target, Spellid Removes all auras on a target (Param1) caused by a spell (Param2).
|
||||||
29 ACTION_T_RANGED_MOVEMENT Distance, Angle Changes the movement generator type to a ranged type. Note: Default melee type can still be done with this. Specify 0 angle and 0 distance.
|
29 ACTION_T_RANGED_MOVEMENT Distance, Angle Changes the movement generator to a ranged type. (note: default melee type can still be set by using 0 as angle and 0 as distance).
|
||||||
30 ACTION_T_RANDOM_PHASE PhaseId1, PhaseId2, PhaseId3 Sets the phase to the id between 3 params*
|
30 ACTION_T_RANDOM_PHASE PhaseId1, PhaseId2, PhaseId3 Sets a phase to a specified id(s)*
|
||||||
31 ACTION_T_RANDOM_PHASE_RANGE PhaseMin, PhaseMax Sets the phase to a random id (Phase = PhaseMin + rnd % PhaseMin-PhaseMax). PhaseMax must be greater than PhaseMin.
|
31 ACTION_T_RANDOM_PHASE_RANGE PhaseMin, PhaseMax Sets a phase to a random id (Phase = PhaseMin + rnd % PhaseMin-PhaseMax). PhaseMax must be greater than PhaseMin.
|
||||||
32 ACTION_T_SUMMON CreatureID, Target, SummonID Summons creature (param1) to attack target (param2) at location specified by EventAI_Summons (param3).
|
32 ACTION_T_SUMMON CreatureID, Target, SummonID Summons a creature (Param1) to attack target (Param2) at location specified by EventAI_Summons (Param3).
|
||||||
33 ACTION_T_KILLED_MONSTER CreatureID, Target Calls KilledMonster (param1) for target of type (param2)
|
33 ACTION_T_KILLED_MONSTER CreatureID, Target Calls KilledMonster (Param1) for a target (Param2).
|
||||||
34 ACTION_T_SET_INST_DATA Field, Data Calls ScriptedInstance::SetData with field (param1) and data (param2)
|
34 ACTION_T_SET_INST_DATA Field, Data Calls ScriptedInstance::SetData with field (Param1) and data (Param2).
|
||||||
35 ACTION_T_SET_INST_DATA64 Field, Target Calls ScriptedInstance::SetData64 with field (param1) and data (param2) target's GUID.
|
35 ACTION_T_SET_INST_DATA64 Field, Target Calls ScriptedInstance::SetData64 with field (Param1) and target's GUID (Param2).
|
||||||
36 ACTION_T_UPDATE_TEMPLATE TemplateId, Team Changes the creature to a new creature template of (param1) with team = Alliance if (param2) = false or Horde if (param2) = true
|
36 ACTION_T_UPDATE_TEMPLATE TemplateId, Team Changes a creature's template to (Param1) with team = Alliance or Horde when (Param2) is either false or true respectively.
|
||||||
37 ACTION_T_DIE No Params Kills the creature
|
37 ACTION_T_DIE No Params Kills the creature
|
||||||
38 ACTION_T_ZONE_COMBAT_PULSE No Params Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.
|
38 ACTION_T_ZONE_COMBAT_PULSE No Params Puts all players within an instance into combat with the creature. Only works when a creature is already in combat. Doesn't work outside instances.
|
||||||
39 ACTION_T_CALL_FOR_HELP Radius Call any friendly creatures (if its not in combat/etc) in radius attack creature target.
|
39 ACTION_T_CALL_FOR_HELP Radius Call any friendly out-of-combat creatures in a radius (Param1) to attack current creature's target.
|
||||||
40 ACTION_T_SET_SHEATH Sheath Let set sheath state for creature (0-no weapon show (not used mostly by creatures), 1-melee weapon show, 2-ranged weapon show)
|
40 ACTION_T_SET_SHEATH Sheath Sets sheath state for a creature (0 = no weapon, 1 = melee weapon, 2 = ranged weapon).
|
||||||
41 ACTION_T_FORCE_DESPAWN No Params Despawns the creature
|
41 ACTION_T_FORCE_DESPAWN No Params Despawns the creature
|
||||||
|
|
||||||
* = Use -1 to specify that if this param is picked to do nothing. Random is constant between actions within an event. So if you have a random Yell and a random Sound they will match up (ex: param2 with param2)
|
* = Use -1 where the param is expected to do nothing. Random constant is generated for each event, so if you have a random yell and a random sound, they will be linked up with each other (ie. param2 with param2).
|
||||||
|
|
||||||
|
|
||||||
=========================================
|
=========================================
|
||||||
Event Types
|
Event Types
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ DROP TABLE IF EXISTS `db_version`;
|
||||||
CREATE TABLE `db_version` (
|
CREATE TABLE `db_version` (
|
||||||
`version` varchar(120) default NULL,
|
`version` varchar(120) default NULL,
|
||||||
`creature_ai_version` varchar(120) default NULL,
|
`creature_ai_version` varchar(120) default NULL,
|
||||||
`required_8191_01_mangos_spell_affect` bit(1) default NULL
|
`required_8213_01_mangos_spell_bonus_data` bit(1) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
@ -17016,12 +17016,12 @@ INSERT INTO `spell_proc_event` VALUES
|
||||||
(17801, 0x00000000, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
(17801, 0x00000000, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(17802, 0x00000000, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
(17802, 0x00000000, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(17803, 0x00000000, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
(17803, 0x00000000, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(18073, 0x00000000, 5, 0x00000060, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(18073, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(18094, 0x00000000, 5, 0x0000000A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(18094, 0x00000000, 5, 0x0000000A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(18095, 0x00000000, 5, 0x0000000A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(18095, 0x00000000, 5, 0x0000000A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(18096, 0x00000000, 5, 0x00000060, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(18096, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(18119, 0x00000000, 5, 0x000003E5, 0x000010C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(18119, 0x00000000, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(18120, 0x00000000, 5, 0x000003E5, 0x000010C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(18120, 0x00000000, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(18820, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
(18820, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
||||||
(19184, 0x00000000, 9, 0x00000014, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(19184, 0x00000000, 9, 0x00000014, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(19387, 0x00000000, 9, 0x00000014, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(19387, 0x00000000, 9, 0x00000014, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
|
@ -17147,9 +17147,9 @@ INSERT INTO `spell_proc_event` VALUES
|
||||||
(29977, 0x00000000, 3, 0x00C00017, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(29977, 0x00000000, 3, 0x00C00017, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(30003, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0.000000, 0.000000, 0),
|
(30003, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0.000000, 0.000000, 0),
|
||||||
(30160, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
(30160, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(30293, 0x00000000, 5, 0x00000381, 0x000000C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(30293, 0x00000000, 5, 0x00000181, 0x008200C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(30295, 0x00000000, 5, 0x00000381, 0x000000C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(30295, 0x00000000, 5, 0x00000181, 0x008200C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(30296, 0x00000000, 5, 0x00000381, 0x000000C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(30296, 0x00000000, 5, 0x00000181, 0x008200C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(30299, 0x0000007E, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(30299, 0x0000007E, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(30301, 0x0000007E, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(30301, 0x0000007E, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(30302, 0x0000007E, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(30302, 0x0000007E, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
|
@ -17618,6 +17618,7 @@ INSERT INTO `spell_proc_event` VALUES
|
||||||
(56822, 0x00000000, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(56822, 0x00000000, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(56834, 0x00000000, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(56834, 0x00000000, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(56835, 0x00000000, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(56835, 0x00000000, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(57352, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00010154, 0x00000003, 0.000000, 0.000000, 45),
|
||||||
(57878, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(57878, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
(57880, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(57880, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
(57881, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(57881, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
|
|
@ -17674,7 +17675,8 @@ INSERT INTO `spell_proc_event` VALUES
|
||||||
(61847, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(61847, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
(63108, 0x00000000, 5, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(63108, 0x00000000, 5, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(63156, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(63156, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(63158, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
(63158, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(63245, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0);
|
||||||
/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
|
@ -17889,7 +17891,7 @@ INSERT INTO `spell_bonus_data` VALUES
|
||||||
('27243', '0.22', '0.25', '0', 'Warlock - Seed of Corruption'),
|
('27243', '0.22', '0.25', '0', 'Warlock - Seed of Corruption'),
|
||||||
('30108', '0', '0.24', '0', 'Warlock - Unstable Affliction'),
|
('30108', '0', '0.24', '0', 'Warlock - Unstable Affliction'),
|
||||||
('31117', '1.8', '0', '0', 'Warlock - Unstable Affliction Dispell'),
|
('31117', '1.8', '0', '0', 'Warlock - Unstable Affliction Dispell'),
|
||||||
('17962', '0.4286', '0', '0', 'Warlock - Conflagrate'),
|
('17962', '0', '0', '0', 'Warlock - Conflagrate'),
|
||||||
('6789', '0.22', '0', '0', 'Warlock - Death Coil'),
|
('6789', '0.22', '0', '0', 'Warlock - Death Coil'),
|
||||||
('28176', '0', '0', '0', 'Warlock - Fel Armor'),
|
('28176', '0', '0', '0', 'Warlock - Fel Armor'),
|
||||||
('48181', '0.4729', '0', '0', 'Warlock - Haunt'),
|
('48181', '0.4729', '0', '0', 'Warlock - Haunt'),
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
/* re-adding before command use. So need just adding new line to file. */
|
/* re-adding before command use. So need just adding new line to file. */
|
||||||
|
|
||||||
/* Current table fill progress state: */
|
/* Current table fill progress state: */
|
||||||
/* SpellEffect.cpp from start until end of SPELLFAMILY_DRUID case of Spell::EffectDummy */
|
/* SpellEffect.cpp from start until end of Spell::EffectDummy */
|
||||||
|
|
||||||
DROP TABLE IF EXISTS spell_check;
|
DROP TABLE IF EXISTS spell_check;
|
||||||
CREATE TABLE `spell_check` (
|
CREATE TABLE `spell_check` (
|
||||||
|
|
@ -42,6 +42,11 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(1455, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(1455, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(1456, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(1456, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(4073, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Mechanical Dragonling', 'Spell::EffectDummy'),
|
(4073, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Mechanical Dragonling', 'Spell::EffectDummy'),
|
||||||
|
(5938, 8, -1, -1, -1, -1, -1, 3, -1,-1,'Shiv', 'Spell::EffectDummy'),
|
||||||
|
(5940, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Shiv', 'Spell::EffectDummy'),
|
||||||
|
(8017, 11,0x0000000000400000,0x00000000, -1, -1, -1, 3, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
|
(8018, 11,0x0000000000400000,0x00000000, -1, -1, -1, 3, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
|
(8019, 11,0x0000000000400000,0x00000000, -1, -1, -1, 3, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
(8063, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Deviate Fish', 'Spell::EffectDummy'),
|
(8063, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Deviate Fish', 'Spell::EffectDummy'),
|
||||||
(8064, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Sleepy', 'Spell::EffectDummy'),
|
(8064, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Sleepy', 'Spell::EffectDummy'),
|
||||||
(8065, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Invigorate', 'Spell::EffectDummy'),
|
(8065, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Invigorate', 'Spell::EffectDummy'),
|
||||||
|
|
@ -54,6 +59,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(8221, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Yaaarrrr', 'Spell::EffectDummy'),
|
(8221, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Yaaarrrr', 'Spell::EffectDummy'),
|
||||||
(8222, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Yaaarrrr', 'Spell::EffectDummy'),
|
(8222, -1, -1, -1, -1, -1, -1, -1, -1,-1,'Yaaarrrr', 'Spell::EffectDummy'),
|
||||||
(8593, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Symbol of life', 'Spell::EffectDummy'),
|
(8593, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Symbol of life', 'Spell::EffectDummy'),
|
||||||
|
(10399,11,0x0000000000400000,0x00000000, -1, -1, -1, 3, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
(11687, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(11687, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(11688, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(11688, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(11689, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(11689, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
|
|
@ -70,6 +76,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(13120, 0, -1, -1, -1, -1, -1, 3, -1,-1,'net-o-matic', 'Spell::EffectDummy'),
|
(13120, 0, -1, -1, -1, -1, -1, 3, -1,-1,'net-o-matic', 'Spell::EffectDummy'),
|
||||||
(13166,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Gnomish Battle Chicken', 'Spell::EffectDummy'),
|
(13166,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Gnomish Battle Chicken', 'Spell::EffectDummy'),
|
||||||
(13567, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Dummy Trigger', 'Spell::EffectDummy'),
|
(13567, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Dummy Trigger', 'Spell::EffectDummy'),
|
||||||
|
(14185, 8, -1, -1, -1, -1, -1, 3, -1,-1,'Preparation', 'Spell::EffectDummy'),
|
||||||
(15998, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Capture Worg Pup', 'Spell::EffectDummy'),
|
(15998, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Capture Worg Pup', 'Spell::EffectDummy'),
|
||||||
(16566,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Net-o-Matic', 'Spell::EffectDummy'),
|
(16566,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Net-o-Matic', 'Spell::EffectDummy'),
|
||||||
(16589, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Noggenfogger Elixir', 'Spell::EffectDummy'),
|
(16589, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Noggenfogger Elixir', 'Spell::EffectDummy'),
|
||||||
|
|
@ -86,10 +93,14 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(18791,-1, -1, -1, -1, -1, -1, -1, -1,-1,'', 'Spell::EffectInstaKill'),
|
(18791,-1, -1, -1, -1, -1, -1, -1, -1,-1,'', 'Spell::EffectInstaKill'),
|
||||||
(18792,-1, -1, -1, -1, -1, -1, -1, -1,-1,'', 'Spell::EffectInstaKill'),
|
(18792,-1, -1, -1, -1, -1, -1, -1, -1,-1,'', 'Spell::EffectInstaKill'),
|
||||||
(19804,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Arcanite Dragonling', 'Spell::EffectDummy'),
|
(19804,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Arcanite Dragonling', 'Spell::EffectDummy'),
|
||||||
|
(20187,10, -1, -1, -1, -1, -1, 3, -1,-1,'Judgement of Righteousness', 'Spell::EffectDummy'),
|
||||||
(20253, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Intercept', 'Spell::EffectSchoolDMG'),
|
(20253, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Intercept', 'Spell::EffectSchoolDMG'),
|
||||||
|
(20473,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
(20577, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Cannibalize', 'Spell::EffectDummy'),
|
(20577, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Cannibalize', 'Spell::EffectDummy'),
|
||||||
(20578,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Cannibalize', 'Spell::EffectDummy'),
|
(20578,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Cannibalize', 'Spell::EffectDummy'),
|
||||||
(20647,-1, -1, -1, -1, -1, -1, 2, -1, 0,'Execute', 'Spell::EffectDummy'),
|
(20647,-1, -1, -1, -1, -1, -1, 2, -1, 0,'Execute', 'Spell::EffectDummy'),
|
||||||
|
(20929,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(20930,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
(21887,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Warrior\'s Wrath', 'Spell::EffectDummy'),
|
(21887,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Warrior\'s Wrath', 'Spell::EffectDummy'),
|
||||||
(21977, 4, -1, -1, -1, -1, -1, 3, -1,-1,'Warrior\'s Wrath', 'Spell::EffectDummy'),
|
(21977, 4, -1, -1, -1, -1, -1, 3, -1,-1,'Warrior\'s Wrath', 'Spell::EffectDummy'),
|
||||||
(23019, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Crystal Prison Dummy DND', 'Spell::EffectDummy'),
|
(23019, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Crystal Prison Dummy DND', 'Spell::EffectDummy'),
|
||||||
|
|
@ -110,11 +121,18 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(23783,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Gift of Life', 'Spell::EffectDummy'),
|
(23783,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Gift of Life', 'Spell::EffectDummy'),
|
||||||
(23881, 4, -1, -1, -1, -1, -1, 3, -1,-1,'Bloodthirst', 'Spell::EffectDummy'),
|
(23881, 4, -1, -1, -1, -1, -1, 3, -1,-1,'Bloodthirst', 'Spell::EffectDummy'),
|
||||||
(23885,-1, -1, -1, -1, -1, -1, 6, 42, 0,'Bloodthirst', 'Spell::EffectDummy'),
|
(23885,-1, -1, -1, -1, -1, -1, 6, 42, 0,'Bloodthirst', 'Spell::EffectDummy'),
|
||||||
|
(23989, 9, -1, -1, -1, -1, -1, 3, -1,-1,'Readiness', 'Spell::EffectDummy'),
|
||||||
(24340, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
(24340, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
||||||
(25599, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Thundercrash', 'Spell::EffectSchoolDMG'),
|
(25599, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Thundercrash', 'Spell::EffectSchoolDMG'),
|
||||||
(25858,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Reindeer', 'Spell::EffectDummy'),
|
(25858,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Reindeer', 'Spell::EffectDummy'),
|
||||||
(25859,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Reindeer', 'Spell::EffectDummy'),
|
(25859,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Reindeer', 'Spell::EffectDummy'),
|
||||||
(25860, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Reindeer Transformation', 'Spell::EffectDummy'),
|
(25860, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Reindeer Transformation', 'Spell::EffectDummy'),
|
||||||
|
(25902,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(25903,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(25911,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(25912,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(25913,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(25914,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
(26074, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Holiday Cheer', 'Spell::EffectDummy'),
|
(26074, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Holiday Cheer', 'Spell::EffectDummy'),
|
||||||
(26467,-1, -1, -1, -1, -1, -1, 6, 42, 0,'Persistent Shield', 'Spell::EffectDummy'),
|
(26467,-1, -1, -1, -1, -1, -1, 6, 42, 0,'Persistent Shield', 'Spell::EffectDummy'),
|
||||||
(26558, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
(26558, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -122,6 +140,9 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(26635,-1, -1, -1, -1, -1, -1, 6, -1, 1,'Berserking', 'Spell::EffectDummy'),
|
(26635,-1, -1, -1, -1, -1, -1, 6, -1, 1,'Berserking', 'Spell::EffectDummy'),
|
||||||
(26635,-1, -1, -1, -1, -1, -1, 6, -1, 2,'Berserking', 'Spell::EffectDummy'),
|
(26635,-1, -1, -1, -1, -1, -1, 6, -1, 2,'Berserking', 'Spell::EffectDummy'),
|
||||||
(26789, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Shard of the Fallen Star', 'Spell::EffectSchoolDMG'),
|
(26789, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Shard of the Fallen Star', 'Spell::EffectSchoolDMG'),
|
||||||
|
(27174,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(27175,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(27176,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
(27222, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(27222, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(28006, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Arcane Cloaking', 'Spell::EffectDummy'),
|
(28006, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Arcane Cloaking', 'Spell::EffectDummy'),
|
||||||
(28884, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
(28884, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -139,7 +160,9 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(30504,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Poultryized!', 'Spell::EffectDummy'),
|
(30504,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Poultryized!', 'Spell::EffectDummy'),
|
||||||
(30507, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Poultryizer', 'Spell::EffectDummy'),
|
(30507, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Poultryizer', 'Spell::EffectDummy'),
|
||||||
(31225, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Shimmering Vessel', 'Spell::EffectDummy'),
|
(31225, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Shimmering Vessel', 'Spell::EffectDummy'),
|
||||||
|
(31231, 8, -1, -1, -1, -1, -1, 3, -1,-1,'Cheat Death', 'Spell::EffectDummy'),
|
||||||
(31436, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Malevolent Cleave', 'Spell::EffectSchoolDMG'),
|
(31436, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Malevolent Cleave', 'Spell::EffectSchoolDMG'),
|
||||||
|
(31789,10, -1, -1, -1, -1, -1, 3, -1, 0,'Righteous Defense', 'Spell::EffectDummy'),
|
||||||
(31803,-1, -1, -1, -1, -1, -1, 6, 3,-1,'Holy Vengeance', 'Spell::EffectSchoolDMG'),
|
(31803,-1, -1, -1, -1, -1, -1, 6, 3,-1,'Holy Vengeance', 'Spell::EffectSchoolDMG'),
|
||||||
(31818,-1, -1, -1, -1, -1, -1, 30, -1, 0,'Life Tap', 'Spell::EffectDummy'),
|
(31818,-1, -1, -1, -1, -1, -1, 30, -1, 0,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(32409,-1, -1, -1, -1, -1, -1, 6, 3,-1,'Shadow Word: Death', 'Spell::EffectSchoolDMG'),
|
(32409,-1, -1, -1, -1, -1, -1, 6, 3,-1,'Shadow Word: Death', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -158,6 +181,9 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(33060, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Make a Wish', 'Spell::EffectDummy'),
|
(33060, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Make a Wish', 'Spell::EffectDummy'),
|
||||||
(33062,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Tiny Magical Crawdad', 'Spell::EffectDummy'),
|
(33062,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Tiny Magical Crawdad', 'Spell::EffectDummy'),
|
||||||
(33064,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Mr. Pinchy\'s Gift', 'Spell::EffectDummy'),
|
(33064,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Mr. Pinchy\'s Gift', 'Spell::EffectDummy'),
|
||||||
|
(33072,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(33073,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(33074,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
(34665, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Administer Antidote', 'Spell::EffectDummy'),
|
(34665, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Administer Antidote', 'Spell::EffectDummy'),
|
||||||
(34846,-1, -1, -1, -1, -1, -1, 30, -1, 0,'Charge', 'Spell::EffectDummy'),
|
(34846,-1, -1, -1, -1, -1, -1, 30, -1, 0,'Charge', 'Spell::EffectDummy'),
|
||||||
(35181, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Dive Bomb', 'Spell::EffectSchoolDMG'),
|
(35181, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Dive Bomb', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -166,13 +192,25 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(35744,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Socrethar Portal', 'Spell::EffectDummy'),
|
(35744,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Socrethar Portal', 'Spell::EffectDummy'),
|
||||||
(35745, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Socrethar\'s Stone', 'Spell::EffectDummy'),
|
(35745, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Socrethar\'s Stone', 'Spell::EffectDummy'),
|
||||||
(36032,-1, -1, -1, -1, -1, -1, -1, -1,-1,'', 'Spell::EffectSchoolDMG'),
|
(36032,-1, -1, -1, -1, -1, -1, -1, -1,-1,'', 'Spell::EffectSchoolDMG'),
|
||||||
|
(36494,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
|
(36750,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
|
(36755,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
|
(36759,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
(36837, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
(36837, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
||||||
(36902,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Transporter Malfunction', 'Spell::EffectDummy'),
|
(36902,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Transporter Malfunction', 'Spell::EffectDummy'),
|
||||||
(37169,-1, -1, -1, -1, -1, -1, 6, 4,-1,'Eviscerate and Envenom Bonus Damage','Spell::EffectSchoolDMG'),
|
(37169,-1, -1, -1, -1, -1, -1, 6, 4,-1,'Eviscerate and Envenom Bonus Damage','Spell::EffectSchoolDMG'),
|
||||||
|
(37506, 9, -1, -1, -1, -1, -1, 3, -1,-1,'Scatter Shot', 'Spell::EffectDummy'),
|
||||||
(37674, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Chaos Blast', 'Spell::EffectDummy'),
|
(37674, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Chaos Blast', 'Spell::EffectDummy'),
|
||||||
(37675,-1, -1, -1, -1, -1, -1, 2, -1, 0,'Chaos Blast', 'Spell::EffectDummy'),
|
(37675,-1, -1, -1, -1, -1, -1, 2, -1, 0,'Chaos Blast', 'Spell::EffectDummy'),
|
||||||
|
(37877,10, -1, -1, -1, -1, -1, 3, -1,-1,'Blessing of Faith', 'Spell::EffectDummy'),
|
||||||
|
(37878,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Blessing of Lower City', 'Spell::EffectDummy'),
|
||||||
|
(37879,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Blessing of Lower City', 'Spell::EffectDummy'),
|
||||||
|
(37880,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Blessing of Lower City', 'Spell::EffectDummy'),
|
||||||
|
(37881,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Blessing of Lower City', 'Spell::EffectDummy'),
|
||||||
(38441, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Cataclysmic Bolt', 'Spell::EffectSchoolDMG'),
|
(38441, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Cataclysmic Bolt', 'Spell::EffectSchoolDMG'),
|
||||||
(38903, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
(38903, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
||||||
|
(39609,-1, -1, -1, -1, -1, -1, 30, -1, 0,'Mana Tide Totem', 'Spell::EffectDummy'),
|
||||||
|
(39610,11, -1, -1, -1, -1, -1, 3, -1,-1,'Mana Tide Totem effect', 'Spell::EffectDummy'),
|
||||||
(40810, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Saber Lash', 'Spell::EffectSchoolDMG'),
|
(40810, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Saber Lash', 'Spell::EffectSchoolDMG'),
|
||||||
(41276, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
(41276, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor', 'Spell::EffectSchoolDMG'),
|
||||||
(42384, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Brutal Swipe', 'Spell::EffectSchoolDMG'),
|
(42384, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Brutal Swipe', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -191,10 +229,21 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(45030, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Impale Emissary', 'Spell::EffectDummy'),
|
(45030, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Impale Emissary', 'Spell::EffectDummy'),
|
||||||
(45088,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Emissary of Hate Credit', 'Spell::EffectDummy'),
|
(45088,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Emissary of Hate Credit', 'Spell::EffectDummy'),
|
||||||
(45150, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor Slash', 'Spell::EffectSchoolDMG'),
|
(45150, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Meteor Slash', 'Spell::EffectSchoolDMG'),
|
||||||
|
(45182,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Cheat Death', 'Spell::EffectDummy'),
|
||||||
(46014,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Knocked Up', 'Spell::EffectDummy'),
|
(46014,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Knocked Up', 'Spell::EffectDummy'),
|
||||||
(47540, 6,0x0080000000000000,0x00000000, -1, -1, -1, 3, -1,-1,'Penance', 'Spell::EffectDummy'),
|
(47540, 6,0x0080000000000000,0x00000000, -1, -1, -1, 3, -1,-1,'Penance', 'Spell::EffectDummy'),
|
||||||
|
(47632,-1, -1, -1, -1, -1, -1, 2, -1, 0,'Death Coil', 'Spell::EffectDummy'),
|
||||||
|
(47633,-1, -1, -1, -1, -1, -1, 10, -1, 0,'Death Coil', 'Spell::EffectDummy'),
|
||||||
(47757,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Penance', 'Spell::EffectDummy'),
|
(47757,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Penance', 'Spell::EffectDummy'),
|
||||||
(47758,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Penance', 'Spell::EffectDummy'),
|
(47758,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Penance', 'Spell::EffectDummy'),
|
||||||
|
(47897, 5,0x0001000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadowflame', 'Spell::EffectSchoolDMG'),
|
||||||
|
(47960,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Shadowflame', 'Spell::EffectSchoolDMG'),
|
||||||
|
(48820,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(48821,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(48822,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(48823,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(48824,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
(48825,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
(50242,-1, -1, -1, -1, -1, -1, -1, -1,-1,'1000001', 'Spell::EffectDummy'),
|
(50242,-1, -1, -1, -1, -1, -1, -1, -1,-1,'1000001', 'Spell::EffectDummy'),
|
||||||
(50243, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Teach Language', 'Spell::EffectDummy'),
|
(50243, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Teach Language', 'Spell::EffectDummy'),
|
||||||
(50246,-1, -1, -1, -1, -1, -1, -1, -1,-1,'01001000', 'Spell::EffectDummy'),
|
(50246,-1, -1, -1, -1, -1, -1, -1, -1,-1,'01001000', 'Spell::EffectDummy'),
|
||||||
|
|
@ -202,6 +251,9 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(50288,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Starfall', 'Spell::EffectDummy'),
|
(50288,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Starfall', 'Spell::EffectDummy'),
|
||||||
(51582, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Rocket Boots Engaged', 'Spell::EffectDummy'),
|
(51582, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Rocket Boots Engaged', 'Spell::EffectDummy'),
|
||||||
(51592, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Pickup Primordial Hatchling', 'Spell::EffectDummy'),
|
(51592, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Pickup Primordial Hatchling', 'Spell::EffectDummy'),
|
||||||
|
(52025,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Cleansing Totem Effect', 'Spell::EffectDummy'),
|
||||||
|
(52032,-1, -1, -1, -1, -1, -1, 30, -1, 0,'Mana Spring Totem', 'Spell::EffectDummy'),
|
||||||
|
(52042,-1, -1, -1, -1, -1, -1, 10, -1, 0,'Healing Stream Totem', 'Spell::EffectDummy'),
|
||||||
(52308, 0, -1, -1, -1, -1, -1, 3, -1, 0,'Take Sputum Sample', 'Spell::EffectDummy'),
|
(52308, 0, -1, -1, -1, -1, -1, 3, -1, 0,'Take Sputum Sample', 'Spell::EffectDummy'),
|
||||||
(52308, 0, -1, -1, -1, -1, -1, 3, -1, 1,'Take Sputum Sample', 'Spell::EffectDummy'),
|
(52308, 0, -1, -1, -1, -1, -1, 3, -1, 1,'Take Sputum Sample', 'Spell::EffectDummy'),
|
||||||
(52752,-1, -1, -1, -1, -1, -1, 10, -1, 0,'Ancestral Awakening', 'Spell::EffectDummy'),
|
(52752,-1, -1, -1, -1, -1, -1, 10, -1, 0,'Ancestral Awakening', 'Spell::EffectDummy'),
|
||||||
|
|
@ -226,11 +278,20 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(54586,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Runeforging Credit', 'Spell::EffectDummy'),
|
(54586,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Runeforging Credit', 'Spell::EffectDummy'),
|
||||||
(54861,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Nitro Boosts', 'Spell::EffectDummy'),
|
(54861,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Nitro Boosts', 'Spell::EffectDummy'),
|
||||||
(55004, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Nitro Boosts', 'Spell::EffectDummy'),
|
(55004, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Nitro Boosts', 'Spell::EffectDummy'),
|
||||||
|
(55441,11, -1, -1, -1, -1, -1, -1, 4,-1,'Glyph of Mana Tide', 'Spell::EffectDummy'),
|
||||||
|
(56235,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Glyph of Conflagrate', 'Spell::EffectSchoolDMG'),
|
||||||
(57946, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(57946, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(58367,-1, -1, -1, -1, -1, -1, -1, 4,-1,'Glyph of Execution', 'Spell::EffectDummy'),
|
(58367,-1, -1, -1, -1, -1, -1, -1, 4,-1,'Glyph of Execution', 'Spell::EffectDummy'),
|
||||||
(58418, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Portal to Orgrimmar', 'Spell::EffectDummy'),
|
(58418, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Portal to Orgrimmar', 'Spell::EffectDummy'),
|
||||||
(58420, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Portal to Stormwind', 'Spell::EffectDummy'),
|
(58420, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Portal to Stormwind', 'Spell::EffectDummy'),
|
||||||
|
(59640, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Underbelly Elixir', 'Spell::EffectDummy'),
|
||||||
|
(59645,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Underbelly Elixir', 'Spell::EffectDummy'),
|
||||||
|
(59831,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Underbelly Elixir', 'Spell::EffectDummy'),
|
||||||
|
(59843,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Underbelly Elixir', 'Spell::EffectDummy'),
|
||||||
|
(61290, 5,0x0001000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadowflame', 'Spell::EffectSchoolDMG'),
|
||||||
|
(61291,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Shadowflame', 'Spell::EffectSchoolDMG'),
|
||||||
(61491, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Intercept', 'Spell::EffectSchoolDMG'),
|
(61491, 0, -1, -1, -1, -1, -1, 2, -1,-1,'Intercept', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
||||||
/* sorted by spell names */
|
/* sorted by spell names */
|
||||||
/*id fm familyMaskA fmMaskB icon vis cat eff aur ef name code */
|
/*id fm familyMaskA fmMaskB icon vis cat eff aur ef name code */
|
||||||
( 0, 3,0x0000000020000000,0x00000000, -1, -1, -1, 2, -1,-1,'Arcane Blast', 'Spell::EffectSchoolDMG'),
|
( 0, 3,0x0000000020000000,0x00000000, -1, -1, -1, 2, -1,-1,'Arcane Blast', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -239,35 +300,48 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
( 0, 0, -1, -1,1661, -1, -1, 3, -1,-1,'Berserking', 'Spell::EffectDummy'),
|
( 0, 0, -1, -1,1661, -1, -1, 3, -1,-1,'Berserking', 'Spell::EffectDummy'),
|
||||||
( 0, 4,0x0000040000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Bloodthirst', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000040000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Bloodthirst', 'Spell::EffectSchoolDMG'),
|
||||||
(0, 4,0x0000000000000001,0x00000000, -1, 867, -1, 3, -1,-1,'Charge', 'Spell::EffectDummy'),
|
(0, 4,0x0000000000000001,0x00000000, -1, 867, -1, 3, -1,-1,'Charge', 'Spell::EffectDummy'),
|
||||||
|
( 0,11,0x0000000004000000,0x00000000,1673, -1, -1, 3, -1,-1,'Cleansing Totem', 'Spell::EffectDummy'),
|
||||||
(0, 4,0x0000000004000000,0x00000000, -1, -1, -1, 3, -1,-1,'Concussion Blow', 'Spell::EffectDummy'),
|
(0, 4,0x0000000004000000,0x00000000, -1, -1, -1, 3, -1,-1,'Concussion Blow', 'Spell::EffectDummy'),
|
||||||
( 0, 9,0x0008000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Counterattack', 'Spell::EffectSchoolDMG'),
|
( 0, 9,0x0008000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Counterattack', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 8,0x0000000000010000,0x00000000, -1, -1, -1, -1, 3,-1,'Deadly poison', 'Spell::EffectSchoolDMG'),
|
( 0, 8,0x0000000000010000,0x00000000, -1, -1, -1, -1, 3,-1,'Deadly poison', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,15,0x0000000000002000,0x00000000, -1, -1, -1, 3, -1,-1,'Death Coil', 'Spell::EffectDummy'),
|
||||||
( 0, 8,0x0000000800000000,0x00000000, -1, -1, -1, 2, -1,-1,'Envenom', 'Spell::EffectSchoolDMG'),
|
( 0, 8,0x0000000800000000,0x00000000, -1, -1, -1, 2, -1,-1,'Envenom', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 8,0x0000000000020000,0x00000000, -1, -1, -1, 2, -1,-1,'Eviscerate', 'Spell::EffectSchoolDMG'),
|
( 0, 8,0x0000000000020000,0x00000000, -1, -1, -1, 2, -1,-1,'Eviscerate', 'Spell::EffectSchoolDMG'),
|
||||||
(0, 4,0x0000000020000000,0x00000000, -1, -1, -1, 3, -1,-1,'Execute', 'Spell::EffectDummy'),
|
(0, 4,0x0000000020000000,0x00000000, -1, -1, -1, 3, -1,-1,'Execute', 'Spell::EffectDummy'),
|
||||||
( 0, 9,0x0000000000000004,0x00000000, -1, -1, -1, 2, -1,-1,'Explosive Trap Effect', 'Spell::EffectSchoolDMG'),
|
( 0, 9,0x0000000000000004,0x00000000, -1, -1, -1, 2, -1,-1,'Explosive Trap Effect', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 7,0x0000000000800000,0x00000000, -1,6587, -1, 2, -1,-1,'Ferocious Bite', 'Spell::EffectSchoolDMG'),
|
( 0, 7,0x0000000000800000,0x00000000, -1,6587, -1, 2, -1,-1,'Ferocious Bite', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,11,0x0000000000200000,0x00000000, -1, -1, -1, -1, -1,-1,'Flametongue', 'Spell::EffectDummy'),
|
||||||
( 0, 9, -1, -1,1578, -1, -1, 2, -1,-1,'Gore', 'Spell::EffectSchoolDMG'),
|
( 0, 9, -1, -1,1578, -1, -1, 2, -1,-1,'Gore', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 8,0x0000000000000008,0x00000000, -1, -1, -1, 2, -1,-1,'Gouge', 'Spell::EffectSchoolDMG'),
|
( 0, 8,0x0000000000000008,0x00000000, -1, -1, -1, 2, -1,-1,'Gouge', 'Spell::EffectSchoolDMG'),
|
||||||
( 0,10,0x0000008000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Hammer of Wrath', 'Spell::EffectSchoolDMG'),
|
( 0,10,0x0000008000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Hammer of Wrath', 'Spell::EffectSchoolDMG'),
|
||||||
( 0,10,0x0004000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Hammer of the Righteous', 'Spell::EffectSchoolDMG'),
|
( 0,10,0x0004000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Hammer of the Righteous', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,11,0x0000000000002000,0x00000000, -1, -1, -1, 3, -1,-1,'Healing Stream Totem', 'Spell::EffectDummy'),
|
||||||
( 0, 4,0x0000000100000000,0x00000000, -1, -1, -1, 2, -1,-1,'Heroic Throw', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000000100000000,0x00000000, -1, -1, -1, 2, -1,-1,'Heroic Throw', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||||
|
( 0, 5,0x0000000000000004,0x00000000, -1, -1, -1, -1, 3,-1,'Immolate', 'Spell::EffectSchoolDMG'),
|
||||||
(0, 5, -1, -1, 208, -1, -1, -1, 4,-1,'Improved Life Tap', 'Spell::EffectDummy'),
|
(0, 5, -1, -1, 208, -1, -1, -1, 4,-1,'Improved Life Tap', 'Spell::EffectDummy'),
|
||||||
( 0, 5,0x0000004000000000,0x00000000,2128, -1, -1, 2, -1,-1,'Incinerate', 'Spell::EffectSchoolDMG'),
|
( 0, 5,0x0000004000000000,0x00000000,2128, -1, -1, 2, -1,-1,'Incinerate', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 8,0x0000000000002000,0x00000000, -1, -1, -1, 2, -1,-1,'Instant Poison', 'Spell::EffectSchoolDMG'),
|
( 0, 8,0x0000000000002000,0x00000000, -1, -1, -1, 2, -1,-1,'Instant Poison', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,10, -1, -1, 561, -1, -1, 3, -1,-1,'Judgement of command', 'Spell::EffectDummy'),
|
||||||
( 0,10,0x0000000800000000,0x00000000,2292, -1, -1, 2, -1,-1,'Judgement of Vengeance', 'Spell::EffectSchoolDMG'),
|
( 0,10,0x0000000800000000,0x00000000,2292, -1, -1, 2, -1,-1,'Judgement of Vengeance', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 7,0x0000010000000000,0x00000000,2246, -1, -1, 2, -1,-1,'Lacerate', 'Spell::EffectSchoolDMG'),
|
( 0, 7,0x0000010000000000,0x00000000,2246, -1, -1, 2, -1,-1,'Lacerate', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,11,0x0000000000000000,0x00000004, -1, -1, -1, 3, -1,-1,'Lava Lash', 'Spell::EffectDummy'),
|
||||||
(0, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
(0, 5,0x0000000000040000,0x00000000, -1, -1, -1, 3, -1,-1,'Life Tap', 'Spell::EffectDummy'),
|
||||||
(0, 5, -1, -1,1982, -1, -1, -1,107,-1,'Mana Feed', 'Spell::EffectDummy'),
|
(0, 5, -1, -1,1982, -1, -1, -1,107,-1,'Mana Feed', 'Spell::EffectDummy'),
|
||||||
|
( 0,11,0x0000000000004000,0x00000000, -1, -1, -1, 3, -1,-1,'Mana Spring Totem', 'Spell::EffectDummy'),
|
||||||
( 0, 7,0x0000044000000000,0x00000000, -1, -1, -1, -1, -1,-1,'Mangle (Cat) and Mangle (Bear)', 'Unit::HandleDummyAuraProc'),
|
( 0, 7,0x0000044000000000,0x00000000, -1, -1, -1, -1, -1,-1,'Mangle (Cat) and Mangle (Bear)', 'Unit::HandleDummyAuraProc'),
|
||||||
( 0, 9,0x0000000000000002,0x00000000, -1, 342, -1, 2, -1,-1,'Mongoose Bite', 'Spell::EffectSchoolDMG'),
|
( 0, 9,0x0000000000000002,0x00000000, -1, 342, -1, 2, -1,-1,'Mongoose Bite', 'Spell::EffectSchoolDMG'),
|
||||||
(0, 6,0x0080000000000000,0x00000000, -1, -1, -1, 3, -1,-1,'Penance', 'Spell::EffectDummy'),
|
(0, 6,0x0080000000000000,0x00000000, -1, -1, -1, 3, -1,-1,'Penance', 'Spell::EffectDummy'),
|
||||||
|
( 0, 8,0x0000024000000860,0x00000000, -1, -1, -1, -1, -1,-1,'Preparation (affected spells)', 'Spell::EffectDummy'),
|
||||||
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, 2, -1,-1,'Rake', 'Spell::EffectSchoolDMG'), /* used in */
|
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, 2, -1,-1,'Rake', 'Spell::EffectSchoolDMG'), /* used in */
|
||||||
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, 80, -1, 2,'Rake', 'Spell::EffectSchoolDMG'), /* exactly selected */
|
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, 80, -1, 2,'Rake', 'Spell::EffectSchoolDMG'), /* exactly selected */
|
||||||
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, -1, 3,-1,'Rake', 'Aura::HandlePeriodicDamage'), /* used in */
|
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, -1, 3,-1,'Rake', 'Aura::HandlePeriodicDamage'), /* used in */
|
||||||
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, 80, -1, 2,'Rake', 'Aura::HandlePeriodicDamage'), /* exactly selected */
|
( 0, 7,0x0000000000001000,0x00000000, -1, -1, -1, 80, -1, 2,'Rake', 'Aura::HandlePeriodicDamage'), /* exactly selected */
|
||||||
( 0, 4,0x0000000000000400,0x00000000, -1, -1, -1, 2, -1,-1,'Revenge', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000000000000400,0x00000000, -1, -1, -1, 2, -1,-1,'Revenge', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0,11,0x0000000000400000,0x00000000, -1, -1, -1, 3, -1,-1,'Rockbiter Weapon', 'Spell::EffectDummy'),
|
||||||
( 0, 6,0x0000000200000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadow Word: Death', 'Spell::EffectSchoolDMG'),
|
( 0, 6,0x0000000200000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadow Word: Death', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0, 5,0x0000000000000000,0x00000002, -1, -1, -1, -1, 3,-1,'Shadowflame', 'Spell::EffectSchoolDMG'), /* dot */
|
||||||
|
( 0, 5,0x0001000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shadowflame', 'Spell::EffectSchoolDMG'), /* explcit damage */
|
||||||
( 0,10,0x0010000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shield of Righteousness', 'Spell::EffectSchoolDMG'),
|
( 0,10,0x0010000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shield of Righteousness', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 4,0x0000020000000000,0x00000000, -1, -1,1209, 2, -1,-1,'Shield Slam', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000020000000000,0x00000000, -1, -1,1209, 2, -1,-1,'Shield Slam', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 4,0x0000800000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shockwave', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000800000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Shockwave', 'Spell::EffectSchoolDMG'),
|
||||||
|
|
@ -275,8 +349,8 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
||||||
(0, 4,0x0000000000200000,0x00000000, -1, -1, -1, 3, -1,-1,'Slam', 'Spell::EffectDummy'),
|
(0, 4,0x0000000000200000,0x00000000, -1, -1, -1, 3, -1,-1,'Slam', 'Spell::EffectDummy'),
|
||||||
(0, 7,0x0000000000000000,0x00000100, -1, -1, -1, 3, -1,-1,'Starfall', 'Spell::EffectDummy'),
|
(0, 7,0x0000000000000000,0x00000100, -1, -1, -1, 3, -1,-1,'Starfall', 'Spell::EffectDummy'),
|
||||||
( 0, 9,0x0000000100000000,0x00000000, -1, -1, -1, 2, -1,-1,'Steady Shot', 'Spell::EffectSchoolDMG'),
|
( 0, 9,0x0000000100000000,0x00000000, -1, -1, -1, 2, -1,-1,'Steady Shot', 'Spell::EffectSchoolDMG'),
|
||||||
|
( 0, 9,0x0000000100000000,0x00000000, -1, -1, -1, 3, -1,-1,'Steady Shot', 'Spell::EffectDummy'),
|
||||||
( 0, 7,0x0010000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Swipe', 'Spell::EffectSchoolDMG'),
|
( 0, 7,0x0010000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Swipe', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 4,0x0000000000000080,0x00000000, -1, -1, -1, 2, -1,-1,'Thunder Clap', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000000000000080,0x00000000, -1, -1, -1, 2, -1,-1,'Thunder Clap', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 4,0x0000010000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Victory Rush', 'Spell::EffectSchoolDMG'),
|
( 0, 4,0x0000010000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Victory Rush', 'Spell::EffectSchoolDMG'),
|
||||||
( 0, 8,0x0000000010000000,0x00000000, -1, -1, -1, 2, -1,-1,'Wound Poison', 'Spell::EffectSchoolDMG');
|
( 0, 8,0x0000000010000000,0x00000000, -1, -1, -1, 2, -1,-1,'Wound Poison', 'Spell::EffectSchoolDMG');
|
||||||
|
|
||||||
|
|
|
||||||
5
sql/updates/8211_01_mangos_spell_proc_event.sql
Normal file
5
sql/updates/8211_01_mangos_spell_proc_event.sql
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_8191_01_mangos_spell_affect required_8211_01_mangos_spell_proc_event bit;
|
||||||
|
|
||||||
|
DELETE FROM `spell_proc_event` WHERE `entry` = 57352;
|
||||||
|
INSERT INTO `spell_proc_event` VALUES
|
||||||
|
(57352, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00010154, 0x00000003, 0.000000, 0.000000, 45);
|
||||||
21
sql/updates/8212_01_mangos_spell_proc_event.sql
Normal file
21
sql/updates/8212_01_mangos_spell_proc_event.sql
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_8211_01_mangos_spell_proc_event required_8212_01_mangos_spell_proc_event bit;
|
||||||
|
|
||||||
|
/* Aftermath */
|
||||||
|
DELETE FROM `spell_proc_event` WHERE `entry` IN(18119,18120);
|
||||||
|
INSERT INTO `spell_proc_event` VALUES
|
||||||
|
(18119, 0x00000000, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(18120, 0x00000000, 5, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||||
|
|
||||||
|
/* Pyroclasm */
|
||||||
|
DELETE FROM `spell_proc_event` WHERE entry IN(18073,18096,63245);
|
||||||
|
INSERT INTO `spell_proc_event` VALUES
|
||||||
|
(18073, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
|
(18096, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
|
(63245, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0);
|
||||||
|
|
||||||
|
/* Soul Leech */
|
||||||
|
DELETE FROM `spell_proc_event` WHERE entry IN(30293,30295,30296);
|
||||||
|
INSERT INTO `spell_proc_event` VALUES
|
||||||
|
(30293, 0x00000000, 5, 0x00000181, 0x008200C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(30295, 0x00000000, 5, 0x00000181, 0x008200C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
(30296, 0x00000000, 5, 0x00000181, 0x008200C0, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||||
4
sql/updates/8213_01_mangos_spell_bonus_data.sql
Normal file
4
sql/updates/8213_01_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_8212_01_mangos_spell_proc_event required_8213_01_mangos_spell_bonus_data bit;
|
||||||
|
|
||||||
|
DELETE FROM `spell_bonus_data` where entry='17962';
|
||||||
|
INSERT INTO `spell_bonus_data` (`entry`) VALUES ('17962');
|
||||||
|
|
@ -246,6 +246,9 @@ pkgdata_DATA = \
|
||||||
8158_01_mangos_playercreateinfo_action.sql \
|
8158_01_mangos_playercreateinfo_action.sql \
|
||||||
8190_01_mangos_creature_template.sql \
|
8190_01_mangos_creature_template.sql \
|
||||||
8191_01_mangos_spell_affect.sql \
|
8191_01_mangos_spell_affect.sql \
|
||||||
|
8211_01_mangos_spell_proc_event.sql \
|
||||||
|
8212_01_mangos_spell_proc_event.sql \
|
||||||
|
8213_01_mangos_spell_bonus_data.sql \
|
||||||
README
|
README
|
||||||
|
|
||||||
## Additional files to include when running 'make dist'
|
## Additional files to include when running 'make dist'
|
||||||
|
|
@ -472,4 +475,7 @@ EXTRA_DIST = \
|
||||||
8158_01_mangos_playercreateinfo_action.sql \
|
8158_01_mangos_playercreateinfo_action.sql \
|
||||||
8190_01_mangos_creature_template.sql \
|
8190_01_mangos_creature_template.sql \
|
||||||
8191_01_mangos_spell_affect.sql \
|
8191_01_mangos_spell_affect.sql \
|
||||||
|
8211_01_mangos_spell_proc_event.sql \
|
||||||
|
8212_01_mangos_spell_proc_event.sql \
|
||||||
|
8213_01_mangos_spell_bonus_data.sql \
|
||||||
README
|
README
|
||||||
|
|
|
||||||
|
|
@ -1819,6 +1819,10 @@ bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /
|
||||||
if (!isAlive())
|
if (!isAlive())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// we don't need help from non-combatant ;)
|
||||||
|
if (isCivilian())
|
||||||
|
return false;
|
||||||
|
|
||||||
// skip fighting creature
|
// skip fighting creature
|
||||||
if (isInCombat())
|
if (isInCombat())
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,6 @@ GameObject::GameObject() : WorldObject()
|
||||||
m_spawnedByDefault = true;
|
m_spawnedByDefault = true;
|
||||||
m_usetimes = 0;
|
m_usetimes = 0;
|
||||||
m_spellId = 0;
|
m_spellId = 0;
|
||||||
m_charges = 5;
|
|
||||||
m_cooldownTime = 0;
|
m_cooldownTime = 0;
|
||||||
m_goInfo = NULL;
|
m_goInfo = NULL;
|
||||||
|
|
||||||
|
|
@ -156,10 +155,6 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa
|
||||||
|
|
||||||
SetGoAnimProgress(animprogress);
|
SetGoAnimProgress(animprogress);
|
||||||
|
|
||||||
// Spell charges for GAMEOBJECT_TYPE_SPELLCASTER (22)
|
|
||||||
if (goinfo->type == GAMEOBJECT_TYPE_SPELLCASTER)
|
|
||||||
m_charges = goinfo->spellcaster.charges;
|
|
||||||
|
|
||||||
//Notify the map's instance data.
|
//Notify the map's instance data.
|
||||||
//Only works if you create the object in it, not if it is moves to that map.
|
//Only works if you create the object in it, not if it is moves to that map.
|
||||||
//Normally non-players do not teleport to other maps.
|
//Normally non-players do not teleport to other maps.
|
||||||
|
|
@ -282,17 +277,19 @@ void GameObject::Update(uint32 /*p_time*/)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isSpawned())
|
||||||
|
{
|
||||||
// traps can have time and can not have
|
// traps can have time and can not have
|
||||||
GameObjectInfo const* goInfo = GetGOInfo();
|
GameObjectInfo const* goInfo = GetGOInfo();
|
||||||
if(goInfo->type == GAMEOBJECT_TYPE_TRAP)
|
if(goInfo->type == GAMEOBJECT_TYPE_TRAP)
|
||||||
{
|
{
|
||||||
|
if(m_cooldownTime >= time(NULL))
|
||||||
|
return;
|
||||||
|
|
||||||
// traps
|
// traps
|
||||||
Unit* owner = GetOwner();
|
Unit* owner = GetOwner();
|
||||||
Unit* ok = NULL; // pointer to appropriate target if found any
|
Unit* ok = NULL; // pointer to appropriate target if found any
|
||||||
|
|
||||||
if(m_cooldownTime >= time(NULL))
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool IsBattleGroundTrap = false;
|
bool IsBattleGroundTrap = false;
|
||||||
//FIXME: this is activation radius (in different casting radius that must be selected from spell data)
|
//FIXME: this is activation radius (in different casting radius that must be selected from spell data)
|
||||||
//TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state
|
//TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state
|
||||||
|
|
@ -311,15 +308,13 @@ void GameObject::Update(uint32 /*p_time*/)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NeedDespawn = (goInfo->trap.charges != 0);
|
|
||||||
|
|
||||||
CellPair p(MaNGOS::ComputeCellPair(GetPositionX(),GetPositionY()));
|
CellPair p(MaNGOS::ComputeCellPair(GetPositionX(),GetPositionY()));
|
||||||
Cell cell(p);
|
Cell cell(p);
|
||||||
cell.data.Part.reserved = ALL_DISTRICT;
|
cell.data.Part.reserved = ALL_DISTRICT;
|
||||||
|
|
||||||
// Note: this hack with search required until GO casting not implemented
|
// Note: this hack with search required until GO casting not implemented
|
||||||
// search unfriendly creature
|
// search unfriendly creature
|
||||||
if(owner && NeedDespawn) // hunter trap
|
if(owner && goInfo->trap.charges > 0) // hunter trap
|
||||||
{
|
{
|
||||||
MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(this, owner, radius);
|
MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(this, owner, radius);
|
||||||
MaNGOS::UnitSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> checker(this,ok, u_check);
|
MaNGOS::UnitSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> checker(this,ok, u_check);
|
||||||
|
|
@ -359,8 +354,9 @@ void GameObject::Update(uint32 /*p_time*/)
|
||||||
caster->CastSpell(ok, goInfo->trap.spellId, true, 0, 0, GetGUID());
|
caster->CastSpell(ok, goInfo->trap.spellId, true, 0, 0, GetGUID());
|
||||||
m_cooldownTime = time(NULL) + 4; // 4 seconds
|
m_cooldownTime = time(NULL) + 4; // 4 seconds
|
||||||
|
|
||||||
if(NeedDespawn)
|
// count charges
|
||||||
SetLootState(GO_JUST_DEACTIVATED); // can be despawned or destroyed
|
if(goInfo->trap.charges > 0)
|
||||||
|
AddUse();
|
||||||
|
|
||||||
if(IsBattleGroundTrap && ok->GetTypeId() == TYPEID_PLAYER)
|
if(IsBattleGroundTrap && ok->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
|
|
@ -372,8 +368,15 @@ void GameObject::Update(uint32 /*p_time*/)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_charges && m_usetimes >= m_charges)
|
if(uint32 max_charges = goInfo->GetCharges())
|
||||||
|
{
|
||||||
|
if (m_usetimes >= max_charges)
|
||||||
|
{
|
||||||
|
m_usetimes = 0;
|
||||||
SetLootState(GO_JUST_DEACTIVATED); // can be despawned or destroyed
|
SetLootState(GO_JUST_DEACTIVATED); // can be despawned or destroyed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -442,6 +442,17 @@ struct GameObjectInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32 GetCharges() const // despawn at uses amount
|
||||||
|
{
|
||||||
|
switch(type)
|
||||||
|
{
|
||||||
|
case GAMEOBJECT_TYPE_TRAP: return trap.charges;
|
||||||
|
case GAMEOBJECT_TYPE_GUARDPOST: return guardpost.charges;
|
||||||
|
case GAMEOBJECT_TYPE_SPELLCASTER: return spellcaster.charges;
|
||||||
|
default: return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint32 GetLinkedGameObjectEntry() const
|
uint32 GetLinkedGameObjectEntry() const
|
||||||
{
|
{
|
||||||
switch(type)
|
switch(type)
|
||||||
|
|
@ -663,7 +674,6 @@ class MANGOS_DLL_SPEC GameObject : public WorldObject
|
||||||
bool isActiveObject() const { return false; }
|
bool isActiveObject() const { return false; }
|
||||||
uint64 GetRotation() const { return m_rotation; }
|
uint64 GetRotation() const { return m_rotation; }
|
||||||
protected:
|
protected:
|
||||||
uint32 m_charges; // Spell charges for GAMEOBJECT_TYPE_SPELLCASTER (22)
|
|
||||||
uint32 m_spellId;
|
uint32 m_spellId;
|
||||||
time_t m_respawnTime; // (secs) time of next respawn (or despawn if GO have owner()),
|
time_t m_respawnTime; // (secs) time of next respawn (or despawn if GO have owner()),
|
||||||
uint32 m_respawnDelayTime; // (secs) if 0 then current GO state no dependent from timer
|
uint32 m_respawnDelayTime; // (secs) if 0 then current GO state no dependent from timer
|
||||||
|
|
|
||||||
|
|
@ -695,40 +695,40 @@ void Guild::Roster(WorldSession *session)
|
||||||
data << (uint32)m_ranks.size();
|
data << (uint32)m_ranks.size();
|
||||||
for (RankList::const_iterator ritr = m_ranks.begin(); ritr != m_ranks.end(); ++ritr)
|
for (RankList::const_iterator ritr = m_ranks.begin(); ritr != m_ranks.end(); ++ritr)
|
||||||
{
|
{
|
||||||
data << (uint32)ritr->rights;
|
data << uint32(ritr->rights);
|
||||||
data << (uint32)ritr->BankMoneyPerDay; // count of: withdraw gold(gold/day) Note: in game set gold, in packet set bronze.
|
data << uint32(ritr->BankMoneyPerDay); // count of: withdraw gold(gold/day) Note: in game set gold, in packet set bronze.
|
||||||
for (int i = 0; i < GUILD_BANK_MAX_TABS; ++i)
|
for (int i = 0; i < GUILD_BANK_MAX_TABS; ++i)
|
||||||
{
|
{
|
||||||
data << (uint32)ritr->TabRight[i]; // for TAB_i rights: view tabs = 0x01, deposit items =0x02
|
data << uint32(ritr->TabRight[i]); // for TAB_i rights: view tabs = 0x01, deposit items =0x02
|
||||||
data << (uint32)ritr->TabSlotPerDay[i]; // for TAB_i count of: withdraw items(stack/day)
|
data << uint32(ritr->TabSlotPerDay[i]); // for TAB_i count of: withdraw items(stack/day)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (MemberList::const_iterator itr = members.begin(); itr != members.end(); ++itr)
|
for (MemberList::const_iterator itr = members.begin(); itr != members.end(); ++itr)
|
||||||
{
|
{
|
||||||
if (Player *pl = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER)))
|
if (Player *pl = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER)))
|
||||||
{
|
{
|
||||||
data << (uint64)pl->GetGUID();
|
data << uint64(pl->GetGUID());
|
||||||
data << (uint8)1;
|
data << uint8(1);
|
||||||
data << (std::string)pl->GetName();
|
data << pl->GetName();
|
||||||
data << (uint32)itr->second.RankId;
|
data << uint32(itr->second.RankId);
|
||||||
data << (uint8)pl->getLevel();
|
data << uint8(pl->getLevel());
|
||||||
data << (uint8)pl->getClass();
|
data << uint8(pl->getClass());
|
||||||
data << (uint8)0; // new 2.4.0
|
data << uint8(0); // new 2.4.0
|
||||||
data << (uint32)pl->GetZoneId();
|
data << uint32(pl->GetZoneId());
|
||||||
data << itr->second.Pnote;
|
data << itr->second.Pnote;
|
||||||
data << itr->second.OFFnote;
|
data << itr->second.OFFnote;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data << uint64(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER));
|
data << uint64(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER));
|
||||||
data << (uint8)0;
|
data << uint8(0);
|
||||||
data << itr->second.name;
|
data << itr->second.name;
|
||||||
data << (uint32)itr->second.RankId;
|
data << uint32(itr->second.RankId);
|
||||||
data << (uint8)itr->second.level;
|
data << uint8(itr->second.level);
|
||||||
data << (uint8)itr->second.Class;
|
data << uint8(itr->second.Class);
|
||||||
data << (uint8)0; // new 2.4.0
|
data << uint8(0); // new 2.4.0
|
||||||
data << (uint32)itr->second.zoneId;
|
data << uint32(itr->second.zoneId);
|
||||||
data << (float(time(NULL)-itr->second.logout_time) / DAY);
|
data << float(float(time(NULL)-itr->second.logout_time) / DAY);
|
||||||
data << itr->second.Pnote;
|
data << itr->second.Pnote;
|
||||||
data << itr->second.OFFnote;
|
data << itr->second.OFFnote;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4362,6 +4362,8 @@ bool ChatHandler::HandleResetLevelCommand(const char * args)
|
||||||
? sWorld.getConfig(CONFIG_START_PLAYER_LEVEL)
|
? sWorld.getConfig(CONFIG_START_PLAYER_LEVEL)
|
||||||
: sWorld.getConfig(CONFIG_START_HEROIC_PLAYER_LEVEL);
|
: sWorld.getConfig(CONFIG_START_HEROIC_PLAYER_LEVEL);
|
||||||
|
|
||||||
|
target->_ApplyAllLevelScaleItemMods(false);
|
||||||
|
|
||||||
target->SetLevel(start_level);
|
target->SetLevel(start_level);
|
||||||
target->InitRunes();
|
target->InitRunes();
|
||||||
target->InitStatsForLevel(true);
|
target->InitStatsForLevel(true);
|
||||||
|
|
@ -4370,6 +4372,8 @@ bool ChatHandler::HandleResetLevelCommand(const char * args)
|
||||||
target->InitTalentForLevel();
|
target->InitTalentForLevel();
|
||||||
target->SetUInt32Value(PLAYER_XP,0);
|
target->SetUInt32Value(PLAYER_XP,0);
|
||||||
|
|
||||||
|
target->_ApplyAllLevelScaleItemMods(true);
|
||||||
|
|
||||||
// reset level for pet
|
// reset level for pet
|
||||||
if(Pet* pet = target->GetPet())
|
if(Pet* pet = target->GetPet())
|
||||||
pet->SynchronizeLevelWithOwner();
|
pet->SynchronizeLevelWithOwner();
|
||||||
|
|
|
||||||
|
|
@ -1423,7 +1423,7 @@ void WorldSession::HandleSetTitleOpcode( WorldPacket & recv_data )
|
||||||
recv_data >> title;
|
recv_data >> title;
|
||||||
|
|
||||||
// -1 at none
|
// -1 at none
|
||||||
if(title > 0 && title < 192)
|
if(title > 0 && title < MAX_TITLE_INDEX)
|
||||||
{
|
{
|
||||||
if(!GetPlayer()->HasTitle(title))
|
if(!GetPlayer()->HasTitle(title))
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -586,6 +586,7 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool IsActivateToQuest = false;
|
bool IsActivateToQuest = false;
|
||||||
|
bool IsPerCasterAuraState = false;
|
||||||
if (updatetype == UPDATETYPE_CREATE_OBJECT || updatetype == UPDATETYPE_CREATE_OBJECT2)
|
if (updatetype == UPDATETYPE_CREATE_OBJECT || updatetype == UPDATETYPE_CREATE_OBJECT2)
|
||||||
{
|
{
|
||||||
if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport())
|
if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport())
|
||||||
|
|
@ -596,6 +597,14 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
|
||||||
updateMask->SetBit(GAMEOBJECT_DYNAMIC);
|
updateMask->SetBit(GAMEOBJECT_DYNAMIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (isType(TYPEMASK_UNIT))
|
||||||
|
{
|
||||||
|
if( ((Unit*)this)->HasAuraState(AURA_STATE_CONFLAGRATE))
|
||||||
|
{
|
||||||
|
IsPerCasterAuraState = true;
|
||||||
|
updateMask->SetBit(UNIT_FIELD_AURASTATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else // case UPDATETYPE_VALUES
|
else // case UPDATETYPE_VALUES
|
||||||
{
|
{
|
||||||
|
|
@ -608,6 +617,14 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
|
||||||
updateMask->SetBit(GAMEOBJECT_DYNAMIC);
|
updateMask->SetBit(GAMEOBJECT_DYNAMIC);
|
||||||
updateMask->SetBit(GAMEOBJECT_BYTES_1);
|
updateMask->SetBit(GAMEOBJECT_BYTES_1);
|
||||||
}
|
}
|
||||||
|
else if (isType(TYPEMASK_UNIT))
|
||||||
|
{
|
||||||
|
if( ((Unit*)this)->HasAuraState(AURA_STATE_CONFLAGRATE))
|
||||||
|
{
|
||||||
|
IsPerCasterAuraState = true;
|
||||||
|
updateMask->SetBit(UNIT_FIELD_AURASTATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WPAssert(updateMask && updateMask->GetCount() == m_valuesCount);
|
WPAssert(updateMask && updateMask->GetCount() == m_valuesCount);
|
||||||
|
|
@ -632,6 +649,19 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
|
||||||
|
|
||||||
*data << uint32(appendValue);
|
*data << uint32(appendValue);
|
||||||
}
|
}
|
||||||
|
else if (index == UNIT_FIELD_AURASTATE)
|
||||||
|
{
|
||||||
|
if(IsPerCasterAuraState)
|
||||||
|
{
|
||||||
|
// IsPerCasterAuraState set if related pet caster aura state set already
|
||||||
|
if (((Unit*)this)->HasAuraStateForCaster(AURA_STATE_CONFLAGRATE,target->GetGUID()))
|
||||||
|
*data << m_uint32Values[ index ];
|
||||||
|
else
|
||||||
|
*data << (m_uint32Values[ index ] & ~(1 << (AURA_STATE_CONFLAGRATE-1)));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*data << m_uint32Values[ index ];
|
||||||
|
}
|
||||||
// FIXME: Some values at server stored in float format but must be sent to client in uint32 format
|
// FIXME: Some values at server stored in float format but must be sent to client in uint32 format
|
||||||
else if(index >= UNIT_FIELD_BASEATTACKTIME && index <= UNIT_FIELD_RANGEDATTACKTIME)
|
else if(index >= UNIT_FIELD_BASEATTACKTIME && index <= UNIT_FIELD_RANGEDATTACKTIME)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -236,7 +236,7 @@ enum ConditionType
|
||||||
CONDITION_SKILL = 7, // skill_id skill_value
|
CONDITION_SKILL = 7, // skill_id skill_value
|
||||||
CONDITION_QUESTREWARDED = 8, // quest_id 0
|
CONDITION_QUESTREWARDED = 8, // quest_id 0
|
||||||
CONDITION_QUESTTAKEN = 9, // quest_id 0, for condition true while quest active.
|
CONDITION_QUESTTAKEN = 9, // quest_id 0, for condition true while quest active.
|
||||||
CONDITION_AD_COMMISSION_AURA = 10, // 0 0, for condition true while one from AD ñommission aura active
|
CONDITION_AD_COMMISSION_AURA = 10, // 0 0, for condition true while one from AD commission aura active
|
||||||
CONDITION_NO_AURA = 11, // spell_id effindex
|
CONDITION_NO_AURA = 11, // spell_id effindex
|
||||||
CONDITION_ACTIVE_EVENT = 12, // event_id
|
CONDITION_ACTIVE_EVENT = 12, // event_id
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -612,8 +612,8 @@ bool Player::Create( uint32 guidlow, const std::string& name, uint8 race, uint8
|
||||||
|
|
||||||
// Played time
|
// Played time
|
||||||
m_Last_tick = time(NULL);
|
m_Last_tick = time(NULL);
|
||||||
m_Played_time[0] = 0;
|
m_Played_time[PLAYED_TIME_TOTAL] = 0;
|
||||||
m_Played_time[1] = 0;
|
m_Played_time[PLAYED_TIME_LEVEL] = 0;
|
||||||
|
|
||||||
// base stats and related field values
|
// base stats and related field values
|
||||||
InitStatsForLevel();
|
InitStatsForLevel();
|
||||||
|
|
@ -1286,8 +1286,8 @@ void Player::Update( uint32 p_time )
|
||||||
if (now > m_Last_tick)
|
if (now > m_Last_tick)
|
||||||
{
|
{
|
||||||
uint32 elapsed = uint32(now - m_Last_tick);
|
uint32 elapsed = uint32(now - m_Last_tick);
|
||||||
m_Played_time[0] += elapsed; // Total played time
|
m_Played_time[PLAYED_TIME_TOTAL] += elapsed; // Total played time
|
||||||
m_Played_time[1] += elapsed; // Level played time
|
m_Played_time[PLAYED_TIME_LEVEL] += elapsed; // Level played time
|
||||||
m_Last_tick = now;
|
m_Last_tick = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2378,9 +2378,12 @@ void Player::GiveLevel(uint32 level)
|
||||||
SetUInt32Value(PLAYER_NEXT_LEVEL_XP, objmgr.GetXPForLevel(level));
|
SetUInt32Value(PLAYER_NEXT_LEVEL_XP, objmgr.GetXPForLevel(level));
|
||||||
|
|
||||||
//update level, max level of skills
|
//update level, max level of skills
|
||||||
if(getLevel()!= level)
|
m_Played_time[PLAYED_TIME_LEVEL] = 0; // Level Played Time reset
|
||||||
m_Played_time[1] = 0; // Level Played Time reset
|
|
||||||
|
_ApplyAllLevelScaleItemMods(false);
|
||||||
|
|
||||||
SetLevel(level);
|
SetLevel(level);
|
||||||
|
|
||||||
UpdateSkillsForLevel ();
|
UpdateSkillsForLevel ();
|
||||||
|
|
||||||
// save base values (bonuses already included in stored stats
|
// save base values (bonuses already included in stored stats
|
||||||
|
|
@ -2405,6 +2408,8 @@ void Player::GiveLevel(uint32 level)
|
||||||
SetPower(POWER_FOCUS, 0);
|
SetPower(POWER_FOCUS, 0);
|
||||||
SetPower(POWER_HAPPINESS, 0);
|
SetPower(POWER_HAPPINESS, 0);
|
||||||
|
|
||||||
|
_ApplyAllLevelScaleItemMods(true);
|
||||||
|
|
||||||
// update level to hunter/summon pet
|
// update level to hunter/summon pet
|
||||||
if (Pet* pet = GetPet())
|
if (Pet* pet = GetPet())
|
||||||
pet->SynchronizeLevelWithOwner();
|
pet->SynchronizeLevelWithOwner();
|
||||||
|
|
@ -6487,13 +6492,16 @@ void Player::_ApplyItemMods(Item *item, uint8 slot,bool apply)
|
||||||
sLog.outDebug("_ApplyItemMods complete.");
|
sLog.outDebug("_ApplyItemMods complete.");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::_ApplyItemBonuses(ItemPrototype const *proto, uint8 slot, bool apply)
|
void Player::_ApplyItemBonuses(ItemPrototype const *proto, uint8 slot, bool apply, bool only_level_scale /*= false*/)
|
||||||
{
|
{
|
||||||
if(slot >= INVENTORY_SLOT_BAG_END || !proto)
|
if(slot >= INVENTORY_SLOT_BAG_END || !proto)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ScalingStatDistributionEntry const *ssd = proto->ScalingStatDistribution ? sScalingStatDistributionStore.LookupEntry(proto->ScalingStatDistribution) : 0;
|
ScalingStatDistributionEntry const *ssd = proto->ScalingStatDistribution ? sScalingStatDistributionStore.LookupEntry(proto->ScalingStatDistribution) : NULL;
|
||||||
ScalingStatValuesEntry const *ssv = proto->ScalingStatValue ? sScalingStatValuesStore.LookupEntry(getLevel()) : 0;
|
ScalingStatValuesEntry const *ssv = proto->ScalingStatValue ? sScalingStatValuesStore.LookupEntry(getLevel()) : NULL;
|
||||||
|
|
||||||
|
if(only_level_scale && !(ssd && ssv))
|
||||||
|
return;
|
||||||
|
|
||||||
for (int i = 0; i < MAX_ITEM_PROTO_STATS; ++i)
|
for (int i = 0; i < MAX_ITEM_PROTO_STATS; ++i)
|
||||||
{
|
{
|
||||||
|
|
@ -7216,6 +7224,24 @@ void Player::_ApplyAllItemMods()
|
||||||
sLog.outDebug("_ApplyAllItemMods complete.");
|
sLog.outDebug("_ApplyAllItemMods complete.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Player::_ApplyAllLevelScaleItemMods(bool apply)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < INVENTORY_SLOT_BAG_END; ++i)
|
||||||
|
{
|
||||||
|
if(m_items[i])
|
||||||
|
{
|
||||||
|
if(m_items[i]->IsBroken())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ItemPrototype const *proto = m_items[i]->GetProto();
|
||||||
|
if(!proto)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_ApplyItemBonuses(proto,i, apply, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Player::_ApplyAmmoBonuses()
|
void Player::_ApplyAmmoBonuses()
|
||||||
{
|
{
|
||||||
// check ammo
|
// check ammo
|
||||||
|
|
@ -13850,8 +13876,8 @@ bool Player::MinimalLoadFromDB( QueryResult *result, uint32 guid )
|
||||||
|
|
||||||
// the instance id is not needed at character enum
|
// the instance id is not needed at character enum
|
||||||
|
|
||||||
m_Played_time[0] = fields[7].GetUInt32();
|
m_Played_time[PLAYED_TIME_TOTAL] = fields[7].GetUInt32();
|
||||||
m_Played_time[1] = fields[8].GetUInt32();
|
m_Played_time[PLAYED_TIME_LEVEL] = fields[8].GetUInt32();
|
||||||
|
|
||||||
m_atLoginFlags = fields[9].GetUInt32();
|
m_atLoginFlags = fields[9].GetUInt32();
|
||||||
|
|
||||||
|
|
@ -14349,8 +14375,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cinematic = fields[19].GetUInt32();
|
m_cinematic = fields[19].GetUInt32();
|
||||||
m_Played_time[0]= fields[20].GetUInt32();
|
m_Played_time[PLAYED_TIME_TOTAL]= fields[20].GetUInt32();
|
||||||
m_Played_time[1]= fields[21].GetUInt32();
|
m_Played_time[PLAYED_TIME_LEVEL]= fields[21].GetUInt32();
|
||||||
|
|
||||||
m_resetTalentsCost = fields[25].GetUInt32();
|
m_resetTalentsCost = fields[25].GetUInt32();
|
||||||
m_resetTalentsTime = time_t(fields[26].GetUInt64());
|
m_resetTalentsTime = time_t(fields[26].GetUInt64());
|
||||||
|
|
@ -15611,9 +15637,9 @@ void Player::SaveToDB()
|
||||||
ss << m_cinematic;
|
ss << m_cinematic;
|
||||||
|
|
||||||
ss << ", ";
|
ss << ", ";
|
||||||
ss << m_Played_time[0];
|
ss << m_Played_time[PLAYED_TIME_TOTAL];
|
||||||
ss << ", ";
|
ss << ", ";
|
||||||
ss << m_Played_time[1];
|
ss << m_Played_time[PLAYED_TIME_LEVEL];
|
||||||
|
|
||||||
ss << ", ";
|
ss << ", ";
|
||||||
ss << finiteAlways(m_rest_bonus);
|
ss << finiteAlways(m_rest_bonus);
|
||||||
|
|
@ -19515,7 +19541,7 @@ bool Player::isTotalImmune()
|
||||||
|
|
||||||
bool Player::HasTitle(uint32 bitIndex)
|
bool Player::HasTitle(uint32 bitIndex)
|
||||||
{
|
{
|
||||||
if (bitIndex > 192)
|
if (bitIndex > MAX_TITLE_INDEX)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
uint32 fieldIndexOffset = bitIndex / 32;
|
uint32 fieldIndexOffset = bitIndex / 32;
|
||||||
|
|
@ -19529,9 +19555,19 @@ void Player::SetTitle(CharTitlesEntry const* title, bool lost)
|
||||||
uint32 flag = 1 << (title->bit_index % 32);
|
uint32 flag = 1 << (title->bit_index % 32);
|
||||||
|
|
||||||
if(lost)
|
if(lost)
|
||||||
|
{
|
||||||
|
if(!HasFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag))
|
||||||
|
return;
|
||||||
|
|
||||||
RemoveFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
|
RemoveFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if(HasFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag))
|
||||||
|
return;
|
||||||
|
|
||||||
SetFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
|
SetFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
|
||||||
|
}
|
||||||
|
|
||||||
WorldPacket data(SMSG_TITLE_EARNED, 4 + 4);
|
WorldPacket data(SMSG_TITLE_EARNED, 4 + 4);
|
||||||
data << uint32(title->bit_index);
|
data << uint32(title->bit_index);
|
||||||
|
|
|
||||||
|
|
@ -478,6 +478,8 @@ enum PlayerFlags
|
||||||
#define PLAYER_TITLE_HAND_OF_ADAL UI64LIT(0x0000008000000000) // 39
|
#define PLAYER_TITLE_HAND_OF_ADAL UI64LIT(0x0000008000000000) // 39
|
||||||
#define PLAYER_TITLE_VENGEFUL_GLADIATOR UI64LIT(0x0000010000000000) // 40
|
#define PLAYER_TITLE_VENGEFUL_GLADIATOR UI64LIT(0x0000010000000000) // 40
|
||||||
|
|
||||||
|
#define MAX_TITLE_INDEX (3*64) // 3 uint64 fields
|
||||||
|
|
||||||
// used in PLAYER_FIELD_BYTES values
|
// used in PLAYER_FIELD_BYTES values
|
||||||
enum PlayerFieldByteFlags
|
enum PlayerFieldByteFlags
|
||||||
{
|
{
|
||||||
|
|
@ -848,6 +850,14 @@ enum EnviromentalDamage
|
||||||
DAMAGE_FALL_TO_VOID = 6 // custom case for fall without durability loss
|
DAMAGE_FALL_TO_VOID = 6 // custom case for fall without durability loss
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum PlayedTimeIndex
|
||||||
|
{
|
||||||
|
PLAYED_TIME_TOTAL = 0,
|
||||||
|
PLAYED_TIME_LEVEL = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
#define MAX_PLAYED_TIME_INDEX 2
|
||||||
|
|
||||||
// used at player loading query list preparing, and later result selection
|
// used at player loading query list preparing, and later result selection
|
||||||
enum PlayerLoginQueryIndex
|
enum PlayerLoginQueryIndex
|
||||||
{
|
{
|
||||||
|
|
@ -1043,9 +1053,9 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
// Played Time Stuff
|
// Played Time Stuff
|
||||||
time_t m_logintime;
|
time_t m_logintime;
|
||||||
time_t m_Last_tick;
|
time_t m_Last_tick;
|
||||||
uint32 m_Played_time[2];
|
uint32 m_Played_time[MAX_PLAYED_TIME_INDEX];
|
||||||
uint32 GetTotalPlayedTime() { return m_Played_time[0]; };
|
uint32 GetTotalPlayedTime() { return m_Played_time[PLAYED_TIME_TOTAL]; };
|
||||||
uint32 GetLevelPlayedTime() { return m_Played_time[1]; };
|
uint32 GetLevelPlayedTime() { return m_Played_time[PLAYED_TIME_LEVEL]; };
|
||||||
|
|
||||||
void setDeathState(DeathState s); // overwrite Unit::setDeathState
|
void setDeathState(DeathState s); // overwrite Unit::setDeathState
|
||||||
|
|
||||||
|
|
@ -1868,7 +1878,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
void _ApplyItemMods(Item *item,uint8 slot,bool apply);
|
void _ApplyItemMods(Item *item,uint8 slot,bool apply);
|
||||||
void _RemoveAllItemMods();
|
void _RemoveAllItemMods();
|
||||||
void _ApplyAllItemMods();
|
void _ApplyAllItemMods();
|
||||||
void _ApplyItemBonuses(ItemPrototype const *proto,uint8 slot,bool apply);
|
void _ApplyAllLevelScaleItemMods(bool apply);
|
||||||
|
void _ApplyItemBonuses(ItemPrototype const *proto,uint8 slot,bool apply, bool only_level_scale = false);
|
||||||
void _ApplyAmmoBonuses();
|
void _ApplyAmmoBonuses();
|
||||||
bool EnchantmentFitsRequirements(uint32 enchantmentcondition, int8 slot);
|
bool EnchantmentFitsRequirements(uint32 enchantmentcondition, int8 slot);
|
||||||
void ToggleMetaGemsActive(uint8 exceptslot, bool apply);
|
void ToggleMetaGemsActive(uint8 exceptslot, bool apply);
|
||||||
|
|
|
||||||
|
|
@ -652,10 +652,10 @@ enum SpellEffects
|
||||||
SPELL_EFFECT_APPLY_AREA_AURA_ENEMY = 129,
|
SPELL_EFFECT_APPLY_AREA_AURA_ENEMY = 129,
|
||||||
SPELL_EFFECT_REDIRECT_THREAT = 130,
|
SPELL_EFFECT_REDIRECT_THREAT = 130,
|
||||||
SPELL_EFFECT_131 = 131,
|
SPELL_EFFECT_131 = 131,
|
||||||
SPELL_EFFECT_132 = 132,
|
SPELL_EFFECT_PLAY_MUSIC = 132,
|
||||||
SPELL_EFFECT_UNLEARN_SPECIALIZATION = 133,
|
SPELL_EFFECT_UNLEARN_SPECIALIZATION = 133,
|
||||||
SPELL_EFFECT_KILL_CREDIT2 = 134,
|
SPELL_EFFECT_KILL_CREDIT2 = 134,
|
||||||
SPELL_EFFECT_135 = 135,
|
SPELL_EFFECT_CALL_PET = 135,
|
||||||
SPELL_EFFECT_HEAL_PCT = 136,
|
SPELL_EFFECT_HEAL_PCT = 136,
|
||||||
SPELL_EFFECT_ENERGIZE_PCT = 137,
|
SPELL_EFFECT_ENERGIZE_PCT = 137,
|
||||||
SPELL_EFFECT_138 = 138,
|
SPELL_EFFECT_138 = 138,
|
||||||
|
|
@ -897,7 +897,7 @@ enum AuraState
|
||||||
//AURA_STATE_UNKNOWN11 = 11, // t|
|
//AURA_STATE_UNKNOWN11 = 11, // t|
|
||||||
AURA_STATE_FAERIE_FIRE = 12, // c t|
|
AURA_STATE_FAERIE_FIRE = 12, // c t|
|
||||||
AURA_STATE_HEALTHLESS_35_PERCENT = 13, // C T |
|
AURA_STATE_HEALTHLESS_35_PERCENT = 13, // C T |
|
||||||
AURA_STATE_IMMOLATE = 14, // T |
|
AURA_STATE_CONFLAGRATE = 14, // T | per-caster
|
||||||
AURA_STATE_SWIFTMEND = 15, // T |
|
AURA_STATE_SWIFTMEND = 15, // T |
|
||||||
AURA_STATE_DEADLY_POISON = 16, // T |
|
AURA_STATE_DEADLY_POISON = 16, // T |
|
||||||
AURA_STATE_ENRAGE = 17, // C |
|
AURA_STATE_ENRAGE = 17, // C |
|
||||||
|
|
|
||||||
|
|
@ -1238,12 +1238,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask)
|
||||||
unit->IncrDiminishing(m_diminishGroup);
|
unit->IncrDiminishing(m_diminishGroup);
|
||||||
|
|
||||||
// Apply additional spell effects to target
|
// Apply additional spell effects to target
|
||||||
while (!m_preCastSpells.empty())
|
CastPreCastSpells(unit);
|
||||||
{
|
|
||||||
uint32 spellId = *m_preCastSpells.begin();
|
|
||||||
m_caster->CastSpell(unit, spellId, true, m_CastItem);
|
|
||||||
m_preCastSpells.erase(m_preCastSpells.begin());
|
|
||||||
}
|
|
||||||
|
|
||||||
for(uint32 effectNumber = 0; effectNumber < 3; ++effectNumber)
|
for(uint32 effectNumber = 0; effectNumber < 3; ++effectNumber)
|
||||||
{
|
{
|
||||||
|
|
@ -2283,6 +2278,7 @@ void Spell::cast(bool skipCheck)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// different triggred (for caster) and precast (casted before apply effect to target) cases
|
||||||
switch(m_spellInfo->SpellFamilyName)
|
switch(m_spellInfo->SpellFamilyName)
|
||||||
{
|
{
|
||||||
case SPELLFAMILY_GENERIC:
|
case SPELLFAMILY_GENERIC:
|
||||||
|
|
@ -2307,9 +2303,21 @@ void Spell::cast(bool skipCheck)
|
||||||
if (m_spellInfo->Mechanic == MECHANIC_SHIELD &&
|
if (m_spellInfo->Mechanic == MECHANIC_SHIELD &&
|
||||||
(m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000000000001)))
|
(m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000000000001)))
|
||||||
AddPrecastSpell(6788); // Weakened Soul
|
AddPrecastSpell(6788); // Weakened Soul
|
||||||
// Dispersion (transform)
|
|
||||||
if (m_spellInfo->Id == 47585)
|
switch(m_spellInfo->Id)
|
||||||
AddPrecastSpell(60069); // Dispersion (mana regen)
|
{
|
||||||
|
case 47585: AddPrecastSpell(60069); break; // Dispersion (transform)
|
||||||
|
case 15237: AddTriggeredSpell(23455); break;// Holy Nova, rank 1
|
||||||
|
case 15430: AddTriggeredSpell(23458); break;// Holy Nova, rank 2
|
||||||
|
case 15431: AddTriggeredSpell(23459); break;// Holy Nova, rank 3
|
||||||
|
case 27799: AddTriggeredSpell(27803); break;// Holy Nova, rank 4
|
||||||
|
case 27800: AddTriggeredSpell(27804); break;// Holy Nova, rank 5
|
||||||
|
case 27801: AddTriggeredSpell(27805); break;// Holy Nova, rank 6
|
||||||
|
case 25331: AddTriggeredSpell(25329); break;// Holy Nova, rank 7
|
||||||
|
case 48077: AddTriggeredSpell(48075); break;// Holy Nova, rank 8
|
||||||
|
case 48078: AddTriggeredSpell(48076); break;// Holy Nova, rank 9
|
||||||
|
default:break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SPELLFAMILY_PALADIN:
|
case SPELLFAMILY_PALADIN:
|
||||||
|
|
@ -2338,22 +2346,6 @@ void Spell::cast(bool skipCheck)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Conflagrate - consumes immolate
|
|
||||||
if ((m_spellInfo->TargetAuraState == AURA_STATE_IMMOLATE) && m_targets.getUnitTarget())
|
|
||||||
{
|
|
||||||
// for caster applied auras only
|
|
||||||
Unit::AuraList const &mPeriodic = m_targets.getUnitTarget()->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
|
||||||
for(Unit::AuraList::const_iterator i = mPeriodic.begin(); i != mPeriodic.end(); ++i)
|
|
||||||
{
|
|
||||||
if( (*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && ((*i)->GetSpellProto()->SpellFamilyFlags & 4) &&
|
|
||||||
(*i)->GetCasterGUID()==m_caster->GetGUID() )
|
|
||||||
{
|
|
||||||
m_targets.getUnitTarget()->RemoveAura((*i)->GetId(), (*i)->GetEffIndex());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// traded items have trade slot instead of guid in m_itemTargetGUID
|
// traded items have trade slot instead of guid in m_itemTargetGUID
|
||||||
// set to real guid to be sent later to the client
|
// set to real guid to be sent later to the client
|
||||||
m_targets.updateTradeSlotItem();
|
m_targets.updateTradeSlotItem();
|
||||||
|
|
@ -2765,7 +2757,7 @@ void Spell::finish(bool ok)
|
||||||
|
|
||||||
// call triggered spell only at successful cast (after clear combo points -> for add some if need)
|
// call triggered spell only at successful cast (after clear combo points -> for add some if need)
|
||||||
if(!m_TriggerSpells.empty())
|
if(!m_TriggerSpells.empty())
|
||||||
TriggerSpell();
|
CastTriggerSpells();
|
||||||
|
|
||||||
// Stop Attack for some spells
|
// Stop Attack for some spells
|
||||||
if( m_spellInfo->Attributes & SPELL_ATTR_STOP_ATTACK_TARGET )
|
if( m_spellInfo->Attributes & SPELL_ATTR_STOP_ATTACK_TARGET )
|
||||||
|
|
@ -3604,15 +3596,48 @@ void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTar
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::TriggerSpell()
|
|
||||||
|
void Spell::AddTriggeredSpell( uint32 spellId )
|
||||||
{
|
{
|
||||||
for(TriggerSpells::const_iterator si=m_TriggerSpells.begin(); si!=m_TriggerSpells.end(); ++si)
|
SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId );
|
||||||
|
|
||||||
|
if(!spellInfo)
|
||||||
|
{
|
||||||
|
sLog.outError("Spell::AddTriggeredSpell: unknown spell id %u used as triggred spell for spell %u)", spellId, m_spellInfo->Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_TriggerSpells.push_back(spellInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Spell::AddPrecastSpell( uint32 spellId )
|
||||||
|
{
|
||||||
|
SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId );
|
||||||
|
|
||||||
|
if(!spellInfo)
|
||||||
|
{
|
||||||
|
sLog.outError("Spell::AddPrecastSpell: unknown spell id %u used as pre-cast spell for spell %u)", spellId, m_spellInfo->Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_preCastSpells.push_back(spellInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Spell::CastTriggerSpells()
|
||||||
|
{
|
||||||
|
for(SpellInfoList::const_iterator si=m_TriggerSpells.begin(); si!=m_TriggerSpells.end(); ++si)
|
||||||
{
|
{
|
||||||
Spell* spell = new Spell(m_caster, (*si), true, m_originalCasterGUID, m_selfContainer);
|
Spell* spell = new Spell(m_caster, (*si), true, m_originalCasterGUID, m_selfContainer);
|
||||||
spell->prepare(&m_targets); // use original spell original targets
|
spell->prepare(&m_targets); // use original spell original targets
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Spell::CastPreCastSpells(Unit* target)
|
||||||
|
{
|
||||||
|
for(SpellInfoList::const_iterator si=m_preCastSpells.begin(); si!=m_preCastSpells.end(); ++si)
|
||||||
|
m_caster->CastSpell(target, (*si), true, m_CastItem);
|
||||||
|
}
|
||||||
|
|
||||||
SpellCastResult Spell::CheckCast(bool strict)
|
SpellCastResult Spell::CheckCast(bool strict)
|
||||||
{
|
{
|
||||||
// check cooldowns to prevent cheating
|
// check cooldowns to prevent cheating
|
||||||
|
|
@ -3714,7 +3739,7 @@ SpellCastResult Spell::CheckCast(bool strict)
|
||||||
if(target != m_caster)
|
if(target != m_caster)
|
||||||
{
|
{
|
||||||
// target state requirements (apply to non-self only), to allow cast affects to self like Dirty Deeds
|
// target state requirements (apply to non-self only), to allow cast affects to self like Dirty Deeds
|
||||||
if(m_spellInfo->TargetAuraState && !target->HasAuraState(AuraState(m_spellInfo->TargetAuraState)))
|
if(m_spellInfo->TargetAuraState && !target->HasAuraStateForCaster(AuraState(m_spellInfo->TargetAuraState),m_caster->GetGUID()))
|
||||||
return SPELL_FAILED_TARGET_AURASTATE;
|
return SPELL_FAILED_TARGET_AURASTATE;
|
||||||
|
|
||||||
// Not allow casting on flying player
|
// Not allow casting on flying player
|
||||||
|
|
|
||||||
|
|
@ -320,6 +320,7 @@ class Spell
|
||||||
void EffectActivateRune(uint32 i);
|
void EffectActivateRune(uint32 i);
|
||||||
void EffectTitanGrip(uint32 i);
|
void EffectTitanGrip(uint32 i);
|
||||||
void EffectEnchantItemPrismatic(uint32 i);
|
void EffectEnchantItemPrismatic(uint32 i);
|
||||||
|
void EffectPlayMusic(uint32 i);
|
||||||
|
|
||||||
Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, Spell** triggeringContainer = NULL );
|
Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, Spell** triggeringContainer = NULL );
|
||||||
~Spell();
|
~Spell();
|
||||||
|
|
@ -333,7 +334,6 @@ class Spell
|
||||||
void TakeRunePower();
|
void TakeRunePower();
|
||||||
void TakeReagents();
|
void TakeReagents();
|
||||||
void TakeCastItem();
|
void TakeCastItem();
|
||||||
void TriggerSpell();
|
|
||||||
|
|
||||||
SpellCastResult CheckCast(bool strict);
|
SpellCastResult CheckCast(bool strict);
|
||||||
SpellCastResult CheckPetCast(Unit* target);
|
SpellCastResult CheckPetCast(Unit* target);
|
||||||
|
|
@ -438,8 +438,12 @@ class Spell
|
||||||
|
|
||||||
bool CheckTargetCreatureType(Unit* target) const;
|
bool CheckTargetCreatureType(Unit* target) const;
|
||||||
|
|
||||||
void AddTriggeredSpell(SpellEntry const* spell) { m_TriggerSpells.push_back(spell); }
|
void AddTriggeredSpell(SpellEntry const* spellInfo) { m_TriggerSpells.push_back(spellInfo); }
|
||||||
void AddPrecastSpell(uint32 spellId) { m_preCastSpells.push_back(spellId); }
|
void AddPrecastSpell(SpellEntry const* spellInfo) { m_preCastSpells.push_back(spellInfo); }
|
||||||
|
void AddTriggeredSpell(uint32 spellId);
|
||||||
|
void AddPrecastSpell(uint32 spellId);
|
||||||
|
void CastPreCastSpells(Unit* target);
|
||||||
|
void CastTriggerSpells();
|
||||||
|
|
||||||
void CleanupTargetList();
|
void CleanupTargetList();
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -558,10 +562,9 @@ class Spell
|
||||||
// -------------------------------------------
|
// -------------------------------------------
|
||||||
|
|
||||||
//List For Triggered Spells
|
//List For Triggered Spells
|
||||||
typedef std::list<SpellEntry const*> TriggerSpells;
|
typedef std::list<SpellEntry const*> SpellInfoList;
|
||||||
typedef std::list<uint32> SpellPrecasts;
|
SpellInfoList m_TriggerSpells; // casted by caster to same targets settings in m_targets at success finish of current spell
|
||||||
TriggerSpells m_TriggerSpells;
|
SpellInfoList m_preCastSpells; // casted by caster to each target at spell hit before spell effects apply
|
||||||
SpellPrecasts m_preCastSpells;
|
|
||||||
|
|
||||||
uint32 m_spellState;
|
uint32 m_spellState;
|
||||||
uint32 m_timer;
|
uint32 m_timer;
|
||||||
|
|
|
||||||
|
|
@ -996,9 +996,13 @@ void Aura::_AddAura()
|
||||||
if (IsSealSpell(m_spellProto))
|
if (IsSealSpell(m_spellProto))
|
||||||
m_target->ModifyAuraState(AURA_STATE_JUDGEMENT, true);
|
m_target->ModifyAuraState(AURA_STATE_JUDGEMENT, true);
|
||||||
|
|
||||||
// Conflagrate aura state on Immolate
|
// Conflagrate aura state on Immolate and Shadowflame
|
||||||
if (m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellProto->SpellFamilyFlags & 4)
|
if (m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK &&
|
||||||
m_target->ModifyAuraState(AURA_STATE_IMMOLATE, true);
|
// Immolate
|
||||||
|
((m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000004)) ||
|
||||||
|
// Shadowflame
|
||||||
|
(m_spellProto->SpellFamilyFlags2 & 0x00000002)))
|
||||||
|
m_target->ModifyAuraState(AURA_STATE_CONFLAGRATE, true);
|
||||||
|
|
||||||
// Faerie Fire (druid versions)
|
// Faerie Fire (druid versions)
|
||||||
if (m_spellProto->SpellFamilyName == SPELLFAMILY_DRUID && (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000400)))
|
if (m_spellProto->SpellFamilyName == SPELLFAMILY_DRUID && (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000400)))
|
||||||
|
|
@ -1094,6 +1098,7 @@ void Aura::_RemoveAura()
|
||||||
|
|
||||||
uint32 removeState = 0;
|
uint32 removeState = 0;
|
||||||
uint64 removeFamilyFlag = m_spellProto->SpellFamilyFlags;
|
uint64 removeFamilyFlag = m_spellProto->SpellFamilyFlags;
|
||||||
|
uint32 removeFamilyFlag2 = m_spellProto->SpellFamilyFlags2;
|
||||||
switch(m_spellProto->SpellFamilyName)
|
switch(m_spellProto->SpellFamilyName)
|
||||||
{
|
{
|
||||||
case SPELLFAMILY_PALADIN:
|
case SPELLFAMILY_PALADIN:
|
||||||
|
|
@ -1101,8 +1106,14 @@ void Aura::_RemoveAura()
|
||||||
removeState = AURA_STATE_JUDGEMENT; // Update Seals information
|
removeState = AURA_STATE_JUDGEMENT; // Update Seals information
|
||||||
break;
|
break;
|
||||||
case SPELLFAMILY_WARLOCK:
|
case SPELLFAMILY_WARLOCK:
|
||||||
if(m_spellProto->SpellFamilyFlags & UI64LIT(0x4))
|
// Conflagrate aura state on Immolate and Shadowflame,
|
||||||
removeState = AURA_STATE_IMMOLATE; // Conflagrate aura state
|
if ((m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000004)) ||
|
||||||
|
(m_spellProto->SpellFamilyFlags2 & 0x00000002))
|
||||||
|
{
|
||||||
|
removeFamilyFlag = UI64LIT(0x0000000000000004);
|
||||||
|
removeFamilyFlag2 = 0x00000002;
|
||||||
|
removeState = AURA_STATE_CONFLAGRATE;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SPELLFAMILY_DRUID:
|
case SPELLFAMILY_DRUID:
|
||||||
if(m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000400))
|
if(m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000400))
|
||||||
|
|
@ -1135,7 +1146,7 @@ void Aura::_RemoveAura()
|
||||||
{
|
{
|
||||||
SpellEntry const *auraSpellInfo = (*i).second->GetSpellProto();
|
SpellEntry const *auraSpellInfo = (*i).second->GetSpellProto();
|
||||||
if(auraSpellInfo->SpellFamilyName == m_spellProto->SpellFamilyName &&
|
if(auraSpellInfo->SpellFamilyName == m_spellProto->SpellFamilyName &&
|
||||||
auraSpellInfo->SpellFamilyFlags & removeFamilyFlag)
|
(auraSpellInfo->SpellFamilyFlags & removeFamilyFlag || auraSpellInfo->SpellFamilyFlags2 & removeFamilyFlag2))
|
||||||
{
|
{
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
|
|
@ -1841,6 +1852,49 @@ void Aura::TriggerSpell()
|
||||||
// }
|
// }
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
|
case SPELLFAMILY_HUNTER:
|
||||||
|
{
|
||||||
|
switch (auraId)
|
||||||
|
{
|
||||||
|
// Sniper training
|
||||||
|
case 53302:
|
||||||
|
case 53303:
|
||||||
|
case 53304:
|
||||||
|
if (target->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Reset reapply counter at move
|
||||||
|
if (((Player*)target)->isMoving())
|
||||||
|
{
|
||||||
|
m_modifier.m_amount = 6;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We are standing at the moment
|
||||||
|
if (m_modifier.m_amount > 0)
|
||||||
|
{
|
||||||
|
--m_modifier.m_amount;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// select rank of buff
|
||||||
|
switch(auraId)
|
||||||
|
{
|
||||||
|
case 53302: trigger_spell_id = 64418; break;
|
||||||
|
case 53303: trigger_spell_id = 64419; break;
|
||||||
|
case 53304: trigger_spell_id = 64420; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If aura is active - no need to continue
|
||||||
|
if (target->HasAura(trigger_spell_id))
|
||||||
|
return;
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case SPELLFAMILY_DRUID:
|
case SPELLFAMILY_DRUID:
|
||||||
{
|
{
|
||||||
switch(auraId)
|
switch(auraId)
|
||||||
|
|
@ -2004,6 +2058,10 @@ void Aura::TriggerSpell()
|
||||||
caster->CastCustomSpell(target, trigger_spell_id, &m_modifier.m_amount, NULL, NULL, true, NULL, this);
|
caster->CastCustomSpell(target, trigger_spell_id, &m_modifier.m_amount, NULL, NULL, true, NULL, this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Ground Slam
|
||||||
|
case 33525:
|
||||||
|
target->CastSpell(target, trigger_spell_id, true);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3927,12 +3985,22 @@ void Aura::HandleAuraModIncreaseSwimSpeed(bool /*apply*/, bool Real)
|
||||||
m_target->UpdateSpeed(MOVE_SWIM, true);
|
m_target->UpdateSpeed(MOVE_SWIM, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Aura::HandleAuraModDecreaseSpeed(bool /*apply*/, bool Real)
|
void Aura::HandleAuraModDecreaseSpeed(bool apply, bool Real)
|
||||||
{
|
{
|
||||||
// all applied/removed only at real aura add/remove
|
// all applied/removed only at real aura add/remove
|
||||||
if(!Real)
|
if(!Real)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (apply)
|
||||||
|
{
|
||||||
|
// Gronn Lord's Grasp, becomes stoned
|
||||||
|
if (GetId() == 33572)
|
||||||
|
{
|
||||||
|
if (GetStackAmount() >= 5 && !m_target->HasAura(33652))
|
||||||
|
m_target->CastSpell(m_target, 33652, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_target->UpdateSpeed(MOVE_RUN, true);
|
m_target->UpdateSpeed(MOVE_RUN, true);
|
||||||
m_target->UpdateSpeed(MOVE_SWIM, true);
|
m_target->UpdateSpeed(MOVE_SWIM, true);
|
||||||
m_target->UpdateSpeed(MOVE_FLIGHT, true);
|
m_target->UpdateSpeed(MOVE_FLIGHT, true);
|
||||||
|
|
@ -4308,8 +4376,8 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
||||||
// Rake
|
// Rake
|
||||||
if (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000001000) && m_spellProto->Effect[2]==SPELL_EFFECT_ADD_COMBO_POINTS)
|
if (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000001000) && m_spellProto->Effect[2]==SPELL_EFFECT_ADD_COMBO_POINTS)
|
||||||
{
|
{
|
||||||
// $AP*0.18 bonus per tick
|
// $AP*0.18/3 bonus per tick
|
||||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 18 / 100);
|
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 6 / 100);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Lacerate
|
// Lacerate
|
||||||
|
|
|
||||||
|
|
@ -215,9 +215,10 @@ class MANGOS_DLL_SPEC Aura
|
||||||
virtual ~Aura();
|
virtual ~Aura();
|
||||||
|
|
||||||
void SetModifier(AuraType t, int32 a, uint32 pt, int32 miscValue);
|
void SetModifier(AuraType t, int32 a, uint32 pt, int32 miscValue);
|
||||||
Modifier* GetModifier() {return &m_modifier;}
|
Modifier* GetModifier() { return &m_modifier; }
|
||||||
int32 GetMiscValue() {return m_spellProto->EffectMiscValue[m_effIndex];}
|
Modifier const* GetModifier() const { return &m_modifier; }
|
||||||
int32 GetMiscBValue() {return m_spellProto->EffectMiscValueB[m_effIndex];}
|
int32 GetMiscValue() const { return m_spellProto->EffectMiscValue[m_effIndex]; }
|
||||||
|
int32 GetMiscBValue() const { return m_spellProto->EffectMiscValueB[m_effIndex]; }
|
||||||
|
|
||||||
SpellEntry const* GetSpellProto() const { return m_spellProto; }
|
SpellEntry const* GetSpellProto() const { return m_spellProto; }
|
||||||
uint32 GetId() const{ return m_spellProto->Id; }
|
uint32 GetId() const{ return m_spellProto->Id; }
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
|
||||||
&Spell::EffectApplyAreaAura, //129 SPELL_EFFECT_APPLY_AREA_AURA_ENEMY
|
&Spell::EffectApplyAreaAura, //129 SPELL_EFFECT_APPLY_AREA_AURA_ENEMY
|
||||||
&Spell::EffectNULL, //130 SPELL_EFFECT_REDIRECT_THREAT
|
&Spell::EffectNULL, //130 SPELL_EFFECT_REDIRECT_THREAT
|
||||||
&Spell::EffectUnused, //131 SPELL_EFFECT_131 used in some test spells
|
&Spell::EffectUnused, //131 SPELL_EFFECT_131 used in some test spells
|
||||||
&Spell::EffectNULL, //132 SPELL_EFFECT_PLAY_MUSIC sound id in misc value (SoundEntries.dbc)
|
&Spell::EffectPlayMusic, //132 SPELL_EFFECT_PLAY_MUSIC sound id in misc value (SoundEntries.dbc)
|
||||||
&Spell::EffectUnlearnSpecialization, //133 SPELL_EFFECT_UNLEARN_SPECIALIZATION unlearn profession specialization
|
&Spell::EffectUnlearnSpecialization, //133 SPELL_EFFECT_UNLEARN_SPECIALIZATION unlearn profession specialization
|
||||||
&Spell::EffectKillCredit, //134 SPELL_EFFECT_KILL_CREDIT misc value is creature entry
|
&Spell::EffectKillCredit, //134 SPELL_EFFECT_KILL_CREDIT misc value is creature entry
|
||||||
&Spell::EffectNULL, //135 SPELL_EFFECT_CALL_PET
|
&Spell::EffectNULL, //135 SPELL_EFFECT_CALL_PET
|
||||||
|
|
@ -404,9 +404,72 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
|
||||||
// Incinerate Rank 1 & 2
|
// Incinerate Rank 1 & 2
|
||||||
if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x00004000000000)) && m_spellInfo->SpellIconID==2128)
|
if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x00004000000000)) && m_spellInfo->SpellIconID==2128)
|
||||||
{
|
{
|
||||||
// Incinerate does more dmg (dmg*0.25) if the target is Immolated.
|
// Incinerate does more dmg (dmg*0.25) if the target have Immolate debuff.
|
||||||
if(unitTarget->HasAuraState(AURA_STATE_IMMOLATE))
|
// Check aura state for speed but aura state set not only for Immolate spell
|
||||||
damage += int32(damage*0.25f);
|
if(unitTarget->HasAuraState(AURA_STATE_CONFLAGRATE))
|
||||||
|
{
|
||||||
|
Unit::AuraList const& RejorRegr = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
||||||
|
for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i)
|
||||||
|
{
|
||||||
|
// Immolate
|
||||||
|
if((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK &&
|
||||||
|
((*i)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x00000000000004)))
|
||||||
|
{
|
||||||
|
damage += damage/4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Shadowflame
|
||||||
|
else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0001000000000000))
|
||||||
|
{
|
||||||
|
// Apply DOT part
|
||||||
|
switch(m_spellInfo->Id)
|
||||||
|
{
|
||||||
|
case 47897: m_caster->CastSpell(unitTarget, 47960, true); break;
|
||||||
|
case 61290: m_caster->CastSpell(unitTarget, 61291, true); break;
|
||||||
|
default:
|
||||||
|
sLog.outError("Spell::EffectDummy: Unhandeled Shadowflame spell rank %u",m_spellInfo->Id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Conflagrate - consumes Immolate or Shadowflame
|
||||||
|
else if (m_spellInfo->TargetAuraState == AURA_STATE_CONFLAGRATE)
|
||||||
|
{
|
||||||
|
Aura const* aura = NULL; // found req. aura for damage calculation
|
||||||
|
|
||||||
|
Unit::AuraList const &mPeriodic = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
||||||
|
for(Unit::AuraList::const_iterator i = mPeriodic.begin(); i != mPeriodic.end(); ++i)
|
||||||
|
{
|
||||||
|
// for caster applied auras only
|
||||||
|
if ((*i)->GetSpellProto()->SpellFamilyName != SPELLFAMILY_WARLOCK ||
|
||||||
|
(*i)->GetCasterGUID()!=m_caster->GetGUID())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Immolate
|
||||||
|
if ((*i)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000004))
|
||||||
|
{
|
||||||
|
aura = *i; // it selected always if exist
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shadowflame
|
||||||
|
if ((*i)->GetSpellProto()->SpellFamilyFlags2 & 0x00000002)
|
||||||
|
aura = *i; // remember but wait possible Immolate as primary priority
|
||||||
|
}
|
||||||
|
|
||||||
|
// found Immolate or Shadowflame
|
||||||
|
if (aura)
|
||||||
|
{
|
||||||
|
int32 damagetick = m_caster->SpellDamageBonus(unitTarget, aura->GetSpellProto(), aura->GetModifier()->m_amount, DOT);
|
||||||
|
damage += damagetick * 4;
|
||||||
|
|
||||||
|
// Glyph of Conflagrate
|
||||||
|
if (!m_caster->HasAura(56235))
|
||||||
|
unitTarget->RemoveAurasByCasterSpell(aura->GetId(), m_caster->GetGUID());
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -1147,6 +1210,21 @@ void Spell::EffectDummy(uint32 i)
|
||||||
case 58418: // Portal to Orgrimmar
|
case 58418: // Portal to Orgrimmar
|
||||||
case 58420: // Portal to Stormwind
|
case 58420: // Portal to Stormwind
|
||||||
return; // implemented in EffectScript[0]
|
return; // implemented in EffectScript[0]
|
||||||
|
case 59640: // Underbelly Elixir
|
||||||
|
{
|
||||||
|
if(m_caster->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
uint32 spell_id = 0;
|
||||||
|
switch(urand(1,3))
|
||||||
|
{
|
||||||
|
case 1: spell_id = 59645; break;
|
||||||
|
case 2: spell_id = 59831; break;
|
||||||
|
case 3: spell_id = 59843; break;
|
||||||
|
}
|
||||||
|
m_caster->CastSpell(m_caster,spell_id,true,NULL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//All IconID Check in there
|
//All IconID Check in there
|
||||||
|
|
@ -1431,7 +1509,7 @@ void Spell::EffectDummy(uint32 i)
|
||||||
m_caster->CastSpell(unitTarget, 5940, true);
|
m_caster->CastSpell(unitTarget, 5940, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case 14185: // Preparation Rogue
|
case 14185: // Preparation
|
||||||
{
|
{
|
||||||
if(m_caster->GetTypeId()!=TYPEID_PLAYER)
|
if(m_caster->GetTypeId()!=TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
@ -1483,7 +1561,7 @@ void Spell::EffectDummy(uint32 i)
|
||||||
|
|
||||||
switch(m_spellInfo->Id)
|
switch(m_spellInfo->Id)
|
||||||
{
|
{
|
||||||
case 23989: //Readiness talent
|
case 23989: // Readiness talent
|
||||||
{
|
{
|
||||||
if(m_caster->GetTypeId()!=TYPEID_PLAYER)
|
if(m_caster->GetTypeId()!=TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
|
|
@ -1645,8 +1723,8 @@ void Spell::EffectDummy(uint32 i)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SPELLFAMILY_SHAMAN:
|
case SPELLFAMILY_SHAMAN:
|
||||||
//Shaman Rockbiter Weapon
|
// Rockbiter Weapon
|
||||||
if (m_spellInfo->SpellFamilyFlags == 0x400000)
|
if (m_spellInfo->SpellFamilyFlags & 0x400000)
|
||||||
{
|
{
|
||||||
// TODO: use expect spell for enchant (if exist talent)
|
// TODO: use expect spell for enchant (if exist talent)
|
||||||
// In 3.0.3 no mods present for rockbiter
|
// In 3.0.3 no mods present for rockbiter
|
||||||
|
|
@ -1719,8 +1797,7 @@ void Spell::EffectDummy(uint32 i)
|
||||||
if(!unitTarget || unitTarget->getPowerType() != POWER_MANA)
|
if(!unitTarget || unitTarget->getPowerType() != POWER_MANA)
|
||||||
return;
|
return;
|
||||||
// Glyph of Mana Tide
|
// Glyph of Mana Tide
|
||||||
Unit *owner = m_caster->GetOwner();
|
if(Unit *owner = m_caster->GetOwner())
|
||||||
if (owner)
|
|
||||||
if (Aura *dummy = owner->GetDummyAura(55441))
|
if (Aura *dummy = owner->GetDummyAura(55441))
|
||||||
damage+=dummy->GetModifier()->m_amount;
|
damage+=dummy->GetModifier()->m_amount;
|
||||||
// Regenerate 6% of Total Mana Every 3 secs
|
// Regenerate 6% of Total Mana Every 3 secs
|
||||||
|
|
@ -2016,7 +2093,7 @@ void Spell::EffectTriggerSpell(uint32 i)
|
||||||
m_caster->CastSpell(unitTarget,spellInfo,true,m_CastItem,NULL,m_originalCasterGUID);
|
m_caster->CastSpell(unitTarget,spellInfo,true,m_CastItem,NULL,m_originalCasterGUID);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_TriggerSpells.push_back(spellInfo);
|
AddTriggeredSpell(spellInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::EffectTriggerMissileSpell(uint32 effect_idx)
|
void Spell::EffectTriggerMissileSpell(uint32 effect_idx)
|
||||||
|
|
@ -5668,14 +5745,10 @@ void Spell::EffectSummonObject(uint32 i)
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64 guid = m_caster->m_ObjectSlot[slot];
|
if(uint64 guid = m_caster->m_ObjectSlot[slot])
|
||||||
if(guid != 0)
|
|
||||||
{
|
{
|
||||||
GameObject* obj = NULL;
|
if(GameObject* obj = m_caster ? m_caster->GetMap()->GetGameObject(guid) : NULL)
|
||||||
if( m_caster )
|
obj->SetLootState(GO_JUST_DEACTIVATED);
|
||||||
obj = m_caster->GetMap()->GetGameObject(guid);
|
|
||||||
|
|
||||||
if(obj) obj->Delete();
|
|
||||||
m_caster->m_ObjectSlot[slot] = 0;
|
m_caster->m_ObjectSlot[slot] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6610,3 +6683,21 @@ void Spell::EffectRenamePet(uint32 /*eff_idx*/)
|
||||||
|
|
||||||
unitTarget->SetByteValue(UNIT_FIELD_BYTES_2, 2, UNIT_RENAME_ALLOWED);
|
unitTarget->SetByteValue(UNIT_FIELD_BYTES_2, 2, UNIT_RENAME_ALLOWED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Spell::EffectPlayMusic(uint32 i)
|
||||||
|
{
|
||||||
|
if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
uint32 soundid = m_spellInfo->EffectMiscValue[i];
|
||||||
|
|
||||||
|
if (!sSoundEntriesStore.LookupEntry(soundid))
|
||||||
|
{
|
||||||
|
sLog.outError("EffectPlayMusic: Sound (Id: %u) not exist in spell %u.",soundid,m_spellInfo->Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorldPacket data(SMSG_PLAY_MUSIC, 4);
|
||||||
|
data << uint32(soundid);
|
||||||
|
((Player*)unitTarget)->GetSession()->SendPacket(&data);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1176,6 +1176,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
||||||
if( (spellInfo_1->SpellIconID == 313 || spellInfo_1->SpellIconID == 2039) && (spellInfo_2->SpellIconID == 544 || spellInfo_2->SpellIconID == 91) ||
|
if( (spellInfo_1->SpellIconID == 313 || spellInfo_1->SpellIconID == 2039) && (spellInfo_2->SpellIconID == 544 || spellInfo_2->SpellIconID == 91) ||
|
||||||
(spellInfo_2->SpellIconID == 313 || spellInfo_2->SpellIconID == 2039) && (spellInfo_1->SpellIconID == 544 || spellInfo_1->SpellIconID == 91) )
|
(spellInfo_2->SpellIconID == 313 || spellInfo_2->SpellIconID == 2039) && (spellInfo_1->SpellIconID == 544 || spellInfo_1->SpellIconID == 91) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Metamorphosis, diff effects
|
||||||
|
if (spellInfo_1->SpellIconID == 3314 && spellInfo_2->SpellIconID == 3314)
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
// Detect Invisibility and Mana Shield (multi-family check)
|
// Detect Invisibility and Mana Shield (multi-family check)
|
||||||
if( spellInfo_1->Id == 132 && spellInfo_2->SpellIconID == 209 && spellInfo_2->SpellVisual[0] == 968 )
|
if( spellInfo_1->Id == 132 && spellInfo_2->SpellIconID == 209 && spellInfo_2->SpellVisual[0] == 968 )
|
||||||
|
|
@ -2907,6 +2911,13 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellEntry const* spellproto
|
||||||
return DIMINISHING_LIMITONLY;
|
return DIMINISHING_LIMITONLY;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SPELLFAMILY_PRIEST:
|
||||||
|
{
|
||||||
|
// Vampiric Embrace
|
||||||
|
if ((spellproto->SpellFamilyFlags & UI64LIT(0x00000000004)) && spellproto->SpellIconID == 150)
|
||||||
|
return DIMINISHING_LIMITONLY;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case SPELLFAMILY_DEATHKNIGHT:
|
case SPELLFAMILY_DEATHKNIGHT:
|
||||||
{
|
{
|
||||||
// Hungering Cold (no flags)
|
// Hungering Cold (no flags)
|
||||||
|
|
@ -2970,6 +2981,13 @@ int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellEntry cons
|
||||||
return 40000;
|
return 40000;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SPELLFAMILY_PRIEST:
|
||||||
|
{
|
||||||
|
// Vampiric Embrace - limit to 60 seconds in PvP (3.1)
|
||||||
|
if ((spellproto->SpellFamilyFlags & UI64LIT(0x00000000004)) && spellproto->SpellIconID == 150)
|
||||||
|
return 60000;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,15 +68,16 @@ enum SpellFamilyNames
|
||||||
};
|
};
|
||||||
|
|
||||||
//Some SpellFamilyFlags
|
//Some SpellFamilyFlags
|
||||||
#define SPELLFAMILYFLAG_ROGUE_VANISH UI64LIT(0x000000800)
|
#define SPELLFAMILYFLAG_ROGUE_VANISH UI64LIT(0x0000000000000800)
|
||||||
#define SPELLFAMILYFLAG_ROGUE_STEALTH UI64LIT(0x000400000)
|
#define SPELLFAMILYFLAG_ROGUE_STEALTH UI64LIT(0x0000000000400000)
|
||||||
#define SPELLFAMILYFLAG_ROGUE_BACKSTAB UI64LIT(0x000800004)
|
#define SPELLFAMILYFLAG_ROGUE_BACKSTAB UI64LIT(0x0000000000800004)
|
||||||
#define SPELLFAMILYFLAG_ROGUE_SAP UI64LIT(0x000000080)
|
#define SPELLFAMILYFLAG_ROGUE_SAP UI64LIT(0x0000000000000080)
|
||||||
#define SPELLFAMILYFLAG_ROGUE_FEINT UI64LIT(0x008000000)
|
#define SPELLFAMILYFLAG_ROGUE_FEINT UI64LIT(0x0000000008000000)
|
||||||
#define SPELLFAMILYFLAG_ROGUE_KIDNEYSHOT UI64LIT(0x000200000)
|
#define SPELLFAMILYFLAG_ROGUE_KIDNEYSHOT UI64LIT(0x0000000000200000)
|
||||||
#define SPELLFAMILYFLAG_ROGUE__FINISHING_MOVE UI64LIT(0x9003E0000)
|
#define SPELLFAMILYFLAG_ROGUE__FINISHING_MOVE UI64LIT(0x00000009003E0000)
|
||||||
|
|
||||||
#define SPELLFAMILYFLAG_PALADIN_SEALS UI64LIT(0x26000C000A000000)
|
#define SPELLFAMILYFLAG_PALADIN_SEALS UI64LIT(0x26000C000A000000)
|
||||||
|
|
||||||
// Spell clasification
|
// Spell clasification
|
||||||
enum SpellSpecific
|
enum SpellSpecific
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7456,6 +7456,34 @@ void Unit::RemoveAllAttackers()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Unit::HasAuraStateForCaster(AuraState flag, uint64 caster) const
|
||||||
|
{
|
||||||
|
if(!HasAuraState(flag))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// single per-caster aura state
|
||||||
|
if(flag == AURA_STATE_CONFLAGRATE)
|
||||||
|
{
|
||||||
|
Unit::AuraList const& dotList = GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
||||||
|
for(Unit::AuraList::const_iterator i = dotList.begin(); i != dotList.end(); ++i)
|
||||||
|
{
|
||||||
|
if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK &&
|
||||||
|
(*i)->GetCasterGUID() == caster &&
|
||||||
|
// Immolate
|
||||||
|
(((*i)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000004)) ||
|
||||||
|
// Shadowflame
|
||||||
|
((*i)->GetSpellProto()->SpellFamilyFlags2 & 0x00000002)))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void Unit::ModifyAuraState(AuraState flag, bool apply)
|
void Unit::ModifyAuraState(AuraState flag, bool apply)
|
||||||
{
|
{
|
||||||
if (apply)
|
if (apply)
|
||||||
|
|
@ -7508,7 +7536,6 @@ void Unit::ModifyAuraState(AuraState flag, bool apply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Unit *Unit::GetOwner() const
|
Unit *Unit::GetOwner() const
|
||||||
{
|
{
|
||||||
if(uint64 ownerid = GetOwnerGUID())
|
if(uint64 ownerid = GetOwnerGUID())
|
||||||
|
|
@ -7640,19 +7667,24 @@ int32 Unit::DealHeal(Unit *pVictim, uint32 addhealth, SpellEntry const *spellPro
|
||||||
{
|
{
|
||||||
int32 gain = pVictim->ModifyHealth(int32(addhealth));
|
int32 gain = pVictim->ModifyHealth(int32(addhealth));
|
||||||
|
|
||||||
if (GetTypeId()==TYPEID_PLAYER)
|
Unit* unit = this;
|
||||||
|
|
||||||
|
if( GetTypeId()==TYPEID_UNIT && ((Creature*)this)->isTotem() && ((Totem*)this)->GetTotemType()!=TOTEM_STATUE)
|
||||||
|
unit = GetOwner();
|
||||||
|
|
||||||
|
if (unit->GetTypeId()==TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
// overheal = addhealth - gain
|
// overheal = addhealth - gain
|
||||||
SendHealSpellLog(pVictim, spellProto->Id, addhealth, addhealth - gain, critical);
|
unit->SendHealSpellLog(pVictim, spellProto->Id, addhealth, addhealth - gain, critical);
|
||||||
|
|
||||||
if (BattleGround *bg = ((Player*)this)->GetBattleGround())
|
if (BattleGround *bg = ((Player*)unit)->GetBattleGround())
|
||||||
bg->UpdatePlayerScore((Player*)this, SCORE_HEALING_DONE, gain);
|
bg->UpdatePlayerScore((Player*)unit, SCORE_HEALING_DONE, gain);
|
||||||
|
|
||||||
// use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria)
|
// use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria)
|
||||||
if (gain)
|
if (gain)
|
||||||
((Player*)this)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, gain, 0, pVictim);
|
((Player*)unit)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, gain, 0, pVictim);
|
||||||
|
|
||||||
((Player*)this)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED, addhealth);
|
((Player*)unit)->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED, addhealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pVictim->GetTypeId()==TYPEID_PLAYER)
|
if (pVictim->GetTypeId()==TYPEID_PLAYER)
|
||||||
|
|
|
||||||
|
|
@ -1406,6 +1406,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
||||||
float GetAPMultiplier(WeaponAttackType attType, bool normalized);
|
float GetAPMultiplier(WeaponAttackType attType, bool normalized);
|
||||||
void ModifyAuraState(AuraState flag, bool apply);
|
void ModifyAuraState(AuraState flag, bool apply);
|
||||||
bool HasAuraState(AuraState flag) const { return HasFlag(UNIT_FIELD_AURASTATE, 1<<(flag-1)); }
|
bool HasAuraState(AuraState flag) const { return HasFlag(UNIT_FIELD_AURASTATE, 1<<(flag-1)); }
|
||||||
|
bool HasAuraStateForCaster(AuraState flag, uint64 caster) const;
|
||||||
void UnsummonAllTotems();
|
void UnsummonAllTotems();
|
||||||
Unit* SelectMagnetTarget(Unit *victim, SpellEntry const *spellInfo = NULL);
|
Unit* SelectMagnetTarget(Unit *victim, SpellEntry const *spellInfo = NULL);
|
||||||
int32 SpellBaseDamageBonus(SpellSchoolMask schoolMask);
|
int32 SpellBaseDamageBonus(SpellSchoolMask schoolMask);
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,4 @@
|
||||||
#include "Database/SQLStorage.h"
|
#include "Database/SQLStorage.h"
|
||||||
#include "Opcodes.h"
|
#include "Opcodes.h"
|
||||||
#include "SharedDefines.h"
|
#include "SharedDefines.h"
|
||||||
|
|
||||||
#ifdef FASTBUILD
|
|
||||||
//add additional headers here to speed up compilation in release builds even more
|
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#endif
|
|
||||||
|
|
@ -488,8 +488,8 @@ LogColors = ""
|
||||||
#
|
#
|
||||||
# AllFlightPaths
|
# AllFlightPaths
|
||||||
# Players will start with all flight paths (Note: ALL flight paths, not only player's team)
|
# Players will start with all flight paths (Note: ALL flight paths, not only player's team)
|
||||||
# Default: 0 (true)
|
# Default: 0 (false)
|
||||||
# 1 (false)
|
# 1 (true)
|
||||||
#
|
#
|
||||||
# AlwaysMaxSkillForLevel
|
# AlwaysMaxSkillForLevel
|
||||||
# Players will automatically gain max level dependent (weapon/defense) skill when logging in, leveling up etc.
|
# Players will automatically gain max level dependent (weapon/defense) skill when logging in, leveling up etc.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8192"
|
#define REVISION_NR "8225"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
|
|
@ -212,7 +212,7 @@
|
||||||
<AdditionalOptions>/MP /Zm200 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/MP /Zm200 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<AdditionalIncludeDirectories>..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;FASTBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
|
@ -247,7 +247,7 @@
|
||||||
<AdditionalOptions>/MP /bigobj /Zm200 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/MP /bigobj /Zm200 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<AdditionalIncludeDirectories>..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;FASTBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
|
|
||||||
|
|
@ -345,7 +345,7 @@
|
||||||
AdditionalOptions="/Zl /MP"
|
AdditionalOptions="/Zl /MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
|
|
@ -421,7 +421,7 @@
|
||||||
AdditionalOptions="/Zl /MP"
|
AdditionalOptions="/Zl /MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="1"
|
EnableEnhancedInstructionSet="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
@ -399,7 +399,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="0"
|
EnableEnhancedInstructionSet="0"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
AdditionalOptions="/MP /Zm200"
|
AdditionalOptions="/MP /Zm200"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FASTBUILD"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -377,7 +377,7 @@
|
||||||
AdditionalOptions="/MP /bigobj /Zm200"
|
AdditionalOptions="/MP /bigobj /Zm200"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FASTBUILD"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
@ -406,7 +406,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -352,7 +352,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV",WIN32,NDEBUG,_CONSOLE"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV",WIN32,NDEBUG,_CONSOLE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -147,7 +147,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV",WIN32,NDEBUG,_CONSOLE"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV",WIN32,NDEBUG,_CONSOLE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\src\shared;..\..\src\framework;..\..\dep\include;..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\shared;..\..\src\framework;..\..\dep\include;..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="1"
|
EnableEnhancedInstructionSet="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
@ -458,7 +458,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\src\shared;..\..\src\framework;..\..\dep\include;..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\shared;..\..\src\framework;..\..\dep\include;..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="0"
|
EnableEnhancedInstructionSet="0"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -280,7 +280,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}"
|
ProjectGUID="{BF6F5D0E-33A5-4E23-9E7D-DD481B7B5B9E}"
|
||||||
RootNamespace="framework"
|
RootNamespace="framework"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -197,7 +198,7 @@
|
||||||
AdditionalOptions="/Zl /MP"
|
AdditionalOptions="/Zl /MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
|
|
@ -273,7 +274,7 @@
|
||||||
AdditionalOptions="/Zl /MP"
|
AdditionalOptions="/Zl /MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\framework;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{8072769E-CF10-48BF-B9E1-12752A5DAC6E}"
|
ProjectGUID="{8072769E-CF10-48BF-B9E1-12752A5DAC6E}"
|
||||||
RootNamespace="sockets"
|
RootNamespace="sockets"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -189,7 +190,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="1"
|
EnableEnhancedInstructionSet="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
@ -258,7 +259,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
AdditionalIncludeDirectories="..\..\dep\include\g3dlite"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="0"
|
EnableEnhancedInstructionSet="0"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{1DC6C4DA-A028-41F3-877D-D5400C594F88}"
|
ProjectGUID="{1DC6C4DA-A028-41F3-877D-D5400C594F88}"
|
||||||
RootNamespace="game"
|
RootNamespace="game"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -213,7 +214,7 @@
|
||||||
AdditionalOptions="/MP /Zm200"
|
AdditionalOptions="/MP /Zm200"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FASTBUILD"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -295,7 +296,7 @@
|
||||||
AdditionalOptions="/MP /bigobj /Zm200"
|
AdditionalOptions="/MP /bigobj /Zm200"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\shared\vmap;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FASTBUILD"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{803F488E-4C5A-4866-8D5C-1E6C03C007C2}"
|
ProjectGUID="{803F488E-4C5A-4866-8D5C-1E6C03C007C2}"
|
||||||
RootNamespace="genrevision"
|
RootNamespace="genrevision"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -192,7 +193,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
@ -269,7 +270,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -150,7 +150,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;ENABLE_CLI;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{563E9905-3657-460C-AE63-0AC39D162E23}"
|
ProjectGUID="{563E9905-3657-460C-AE63-0AC39D162E23}"
|
||||||
RootNamespace="realmd"
|
RootNamespace="realmd"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -48,7 +49,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV",WIN32,NDEBUG,_CONSOLE"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -146,7 +147,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="VERSION="0.14.0-DEV",WIN32,NDEBUG,_CONSOLE"
|
PreprocessorDefinitions="VERSION="0.14.0-DEV";WIN32;NDEBUG;_CONSOLE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="1"
|
EnableEnhancedInstructionSet="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
@ -292,7 +292,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
AdditionalIncludeDirectories="..\..\src\shared;..\..\src\framework;..\..\dep\include;..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\src\shared;..\..\src\framework;..\..\dep\include;..\..\dep\include;..\..\src\framework;..\..\src\shared;..\..\src\realmd;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="0"
|
EnableEnhancedInstructionSet="0"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{90297C34-F231-4DF4-848E-A74BCC0E40ED}"
|
ProjectGUID="{90297C34-F231-4DF4-848E-A74BCC0E40ED}"
|
||||||
RootNamespace="shared"
|
RootNamespace="shared"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -48,7 +49,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -130,7 +131,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
AdditionalIncludeDirectories="..\..\dep\include;..\..\dep\include\g3dlite;..\..\src\framework;..\..\src\shared;..\..\dep\ACE_wrappers"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
ProjectGUID="{04BAF755-0D67-46F8-B1C6-77AE5368F3CB}"
|
ProjectGUID="{04BAF755-0D67-46F8-B1C6-77AE5368F3CB}"
|
||||||
RootNamespace="sockets"
|
RootNamespace="sockets"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="0"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
|
@ -47,7 +48,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
@ -126,7 +127,7 @@
|
||||||
AdditionalOptions="/MP"
|
AdditionalOptions="/MP"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
AdditionalIncludeDirectories="..\..\dep\include\sockets"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue