mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 05:21:29 +00:00
Implemented SE_IllusionOther - Allows next Illusion buff (self only)
cast to be cast on target. (AA ProjectIllusion now uses this) Run required SLQ to update AA.
This commit is contained in:
parent
ec35c0d933
commit
87e7b9c3f0
@ -7,6 +7,7 @@ Kayen: Updated SE_FadingMemories - Base value will be properly utilized to set %
|
|||||||
Kayen: Implemented SE_StrikeThough (Was incorrectly defined as implemented previously) - Works same as item bonus.
|
Kayen: Implemented SE_StrikeThough (Was incorrectly defined as implemented previously) - Works same as item bonus.
|
||||||
Kayen: Update SE_Taunt - Limit value if present will now add instant hate.
|
Kayen: Update SE_Taunt - Limit value if present will now add instant hate.
|
||||||
Kayen: Implemented SE_MassGroupBuff - Allows next group buff cast to be a MGB (AA now uses this)
|
Kayen: Implemented SE_MassGroupBuff - Allows next group buff cast to be a MGB (AA now uses this)
|
||||||
|
Kayen: Implemented SE_IllusionOther - Allows next Illusion buff (self only) cast to be cast on target. (AA now uses this)
|
||||||
|
|
||||||
Required SQL: utils/sql/git/required/2014_06_25_MGB_AA.sql
|
Required SQL: utils/sql/git/required/2014_06_25_MGB_AA.sql
|
||||||
|
|
||||||
|
|||||||
@ -349,7 +349,7 @@ typedef enum {
|
|||||||
#define SE_Taunt 199 // implemented - % chance to taunt the target
|
#define SE_Taunt 199 // implemented - % chance to taunt the target
|
||||||
#define SE_ProcChance 200 // implemented
|
#define SE_ProcChance 200 // implemented
|
||||||
#define SE_RangedProc 201 // implemented
|
#define SE_RangedProc 201 // implemented
|
||||||
//#define SE_IllusionOther 202 // *not implemented as bonus(Project Illusion)
|
#define SE_IllusionOther 202 // implemented - Project Illusion
|
||||||
#define SE_MassGroupBuff 203 // implemented
|
#define SE_MassGroupBuff 203 // implemented
|
||||||
#define SE_GroupFearImmunity 204 // *not implemented as bonus
|
#define SE_GroupFearImmunity 204 // *not implemented as bonus
|
||||||
#define SE_Rampage 205 // implemented
|
#define SE_Rampage 205 // implemented
|
||||||
|
|||||||
10
utils/sql/git/required/2014_06_25_AA_Updates..sql
Normal file
10
utils/sql/git/required/2014_06_25_AA_Updates..sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- AA MGB update
|
||||||
|
UPDATE altadv_vars SET spellid = 5228 WHERE skill_id = 128;
|
||||||
|
UPDATE aa_actions SET spell_id = 5228, nonspell_action = 0 WHERE aaid = 128;
|
||||||
|
|
||||||
|
-- AA Project Illusion update
|
||||||
|
UPDATE altadv_vars SET spellid = 5227 WHERE skill_id = 643;
|
||||||
|
UPDATE aa_actions SET spell_id = 5227, nonspell_action = 0 WHERE aaid = 643;
|
||||||
|
|
||||||
|
-- spells_new update
|
||||||
|
ALTER TABLE `spells_new` CHANGE `field175` `numhits_type` INT(11) NOT NULL DEFAULT '0';
|
||||||
@ -454,12 +454,6 @@ void Client::HandleAAAction(aaID activate) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case aaActionProjectIllusion:
|
|
||||||
EnableAAEffect(aaEffectProjectIllusion, 3600);
|
|
||||||
Message(10, "The power of your next illusion spell will flow to your grouped target in your place.");
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case aaActionEscape:
|
case aaActionEscape:
|
||||||
Escape();
|
Escape();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -50,7 +50,7 @@ typedef enum { //AA Effect IDs
|
|||||||
aaEffectFrostArrows,
|
aaEffectFrostArrows,
|
||||||
aaEffectWarcry,
|
aaEffectWarcry,
|
||||||
aaEffectLeechTouch,
|
aaEffectLeechTouch,
|
||||||
aaEffectProjectIllusion // seveian 2008-09-23
|
aaEffectProjectIllusion // unused - Handled via spell effect
|
||||||
} aaEffectType;
|
} aaEffectType;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -181,6 +181,7 @@ Mob::Mob(const char* in_name,
|
|||||||
has_shieldequiped = false;
|
has_shieldequiped = false;
|
||||||
has_numhits = false;
|
has_numhits = false;
|
||||||
has_MGB = false;
|
has_MGB = false;
|
||||||
|
has_ProjectIllusion = false;
|
||||||
|
|
||||||
if(in_aa_title>0)
|
if(in_aa_title>0)
|
||||||
aa_title = in_aa_title;
|
aa_title = in_aa_title;
|
||||||
|
|||||||
@ -270,6 +270,8 @@ public:
|
|||||||
inline void Numhits(bool val) { has_numhits = val; }
|
inline void Numhits(bool val) { has_numhits = val; }
|
||||||
bool HasMGB() const { return has_MGB; }
|
bool HasMGB() const { return has_MGB; }
|
||||||
inline void SetMGB(bool val) { has_MGB = val; }
|
inline void SetMGB(bool val) { has_MGB = val; }
|
||||||
|
bool HasProjectIllusion() const { return has_ProjectIllusion ; }
|
||||||
|
inline void SetProjectIllusion(bool val) { has_ProjectIllusion = val; }
|
||||||
void SpreadVirus(uint16 spell_id, uint16 casterID);
|
void SpreadVirus(uint16 spell_id, uint16 casterID);
|
||||||
bool IsNimbusEffectActive(uint32 nimbus_effect);
|
bool IsNimbusEffectActive(uint32 nimbus_effect);
|
||||||
void SetNimbusEffect(uint32 nimbus_effect);
|
void SetNimbusEffect(uint32 nimbus_effect);
|
||||||
@ -1100,6 +1102,7 @@ protected:
|
|||||||
bool has_shieldequiped;
|
bool has_shieldequiped;
|
||||||
bool has_numhits;
|
bool has_numhits;
|
||||||
bool has_MGB;
|
bool has_MGB;
|
||||||
|
bool has_ProjectIllusion;
|
||||||
|
|
||||||
// Bind wound
|
// Bind wound
|
||||||
Timer bindwound_timer;
|
Timer bindwound_timer;
|
||||||
|
|||||||
@ -2717,6 +2717,12 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SE_IllusionOther: {
|
||||||
|
SetProjectIllusion(true);
|
||||||
|
Message(10, "The power of your next illusion spell will flow to your grouped target in your place.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// Handled Elsewhere
|
// Handled Elsewhere
|
||||||
case SE_ImmuneFleeing:
|
case SE_ImmuneFleeing:
|
||||||
case SE_NegateSpellEffect:
|
case SE_NegateSpellEffect:
|
||||||
|
|||||||
@ -1371,7 +1371,7 @@ bool Mob::DetermineSpellTargets(uint16 spell_id, Mob *&spell_target, Mob *&ae_ce
|
|||||||
&& IsClient()
|
&& IsClient()
|
||||||
&& (IsGrouped() // still self only if not grouped
|
&& (IsGrouped() // still self only if not grouped
|
||||||
|| IsRaidGrouped())
|
|| IsRaidGrouped())
|
||||||
&& CastToClient()->CheckAAEffect(aaEffectProjectIllusion)){
|
&& (HasProjectIllusion())){
|
||||||
mlog(AA__MESSAGE, "Project Illusion overwrote target caster: %s spell id: %d was ON", GetName(), spell_id);
|
mlog(AA__MESSAGE, "Project Illusion overwrote target caster: %s spell id: %d was ON", GetName(), spell_id);
|
||||||
targetType = ST_GroupClientAndPet;
|
targetType = ST_GroupClientAndPet;
|
||||||
}
|
}
|
||||||
@ -1853,7 +1853,7 @@ bool Mob::SpellFinished(uint16 spell_id, Mob *spell_target, uint16 slot, uint16
|
|||||||
range = GetActSpellRange(spell_id, range);
|
range = GetActSpellRange(spell_id, range);
|
||||||
if(IsPlayerIllusionSpell(spell_id)
|
if(IsPlayerIllusionSpell(spell_id)
|
||||||
&& IsClient()
|
&& IsClient()
|
||||||
&& CastToClient()->CheckAAEffect(aaEffectProjectIllusion)){
|
&& (HasProjectIllusion())){
|
||||||
range = 100;
|
range = 100;
|
||||||
}
|
}
|
||||||
if(spell_target != nullptr && spell_target != this) {
|
if(spell_target != nullptr && spell_target != this) {
|
||||||
@ -1912,9 +1912,9 @@ bool Mob::SpellFinished(uint16 spell_id, Mob *spell_target, uint16 slot, uint16
|
|||||||
|
|
||||||
if(IsPlayerIllusionSpell(spell_id)
|
if(IsPlayerIllusionSpell(spell_id)
|
||||||
&& IsClient()
|
&& IsClient()
|
||||||
&& CastToClient()->CheckAAEffect(aaEffectProjectIllusion)){
|
&& (HasProjectIllusion())){
|
||||||
mlog(AA__MESSAGE, "Effect Project Illusion for %s on spell id: %d was ON", GetName(), spell_id);
|
mlog(AA__MESSAGE, "Effect Project Illusion for %s on spell id: %d was ON", GetName(), spell_id);
|
||||||
CastToClient()->DisableAAEffect(aaEffectProjectIllusion);
|
SetProjectIllusion(false);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
mlog(AA__MESSAGE, "Effect Project Illusion for %s on spell id: %d was OFF", GetName(), spell_id);
|
mlog(AA__MESSAGE, "Effect Project Illusion for %s on spell id: %d was OFF", GetName(), spell_id);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user