mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-20 11:47:48 +00:00
168 lines
No EOL
9 KiB
Lua
168 lines
No EOL
9 KiB
Lua
HitEffect =
|
|
{
|
|
--This is used for physical attacks
|
|
HitEffectType = bit32.lshift(8,24),
|
|
--This is used for additioanl effect hits. Only difference from HitEffectType is that it does not play audio.
|
|
AdditionalEffectType = bit32.lshift(24, 24),
|
|
--Status effects use 32 << 24
|
|
StatusEffectType = bit32.lshift(32, 24),
|
|
--When losing a status effect while using a skill, this prevents the hit effect from playing on the actor playing the animation
|
|
StatusLossType = bit32.lshift(40, 24),
|
|
--Magic effects use 48 << 24, this is also used for when statuses are lost on attack
|
|
MagicEffectType = bit32.lshift(48, 24),
|
|
--This places the number on the user regardless of the target this hit effect is for, used for things like bloodbath
|
|
SelfHealType = bit32.lshift(72, 24),
|
|
--Plays the effect animation with no text or additional effects. Unsure if there are any flags. Used for things like Convert
|
|
AnimationEffectType = bit32.lshift(96, 24),
|
|
|
|
--Each Type has it's own set of flags. These should be split into their own enums,
|
|
--but for now just keep them all under HitEffect so we don't have to change anything.
|
|
|
|
--HitEffectType flags
|
|
|
|
--Not setting RecoilLv2 or RecoilLv3 results in the weaker RecoilLv1.
|
|
--These are the recoil animations that play on the target, ranging from weak to strong.
|
|
--The recoil that gets set was likely based on the percentage of HP lost from the attack.
|
|
--These also have a visual effect with heals and spells but in reverse. RecoilLv1 has a large effect, Lv3 has none. Crit is very large
|
|
--For spells they represent resists. Lv0 is a max resist, Lv3 is no resist. Crit is still used for crits.
|
|
--Heals used the same effects sometimes but it isn't clear what for, it seems random? Possibly something like a trait proccing or even just a bug
|
|
RecoilLv1 = 0,
|
|
RecoilLv2 = bit32.lshift(1, 0),
|
|
RecoilLv3 = bit32.lshift(1, 1),
|
|
|
|
--Setting both recoil flags triggers the "Critical!" pop-up text and hit visual effect.
|
|
CriticalHit = 3, --RecoilLv2 | RecoilLv3
|
|
|
|
--Hit visual and sound effects when connecting with the target.
|
|
--Mixing these flags together will yield different results.
|
|
--Each visual likely relates to a specific weapon.
|
|
--Ex: HitVisual4 flag alone appears to be the visual and sound effect for hand-to-hand attacks.
|
|
|
|
--HitVisual is probably based on attack property.
|
|
--HitVisual1 is for slashing attacks
|
|
--HitVisual2 is for piercing attacks
|
|
--HitVisual1 | Hitvisual2 is for blunt attacks
|
|
--HitVisual3 is for projectile attacks
|
|
--Basically take the attack property of a weapon and shift it left 2
|
|
--For auto attacks attack property is weapon's damageAttributeType1
|
|
--Still not totally sure how this works with weaponskills or what hitvisual4 or the other combinations are for
|
|
HitVisual1 = bit32.lshift(1, 2),
|
|
HitVisual2 = bit32.lshift(1, 3),
|
|
HitVisual3 = bit32.lshift(1, 4),
|
|
HitVisual4 = bit32.lshift(1, 5),
|
|
|
|
--An additional visual effect that plays on the target when attacked if:
|
|
--The attack is physical and they have the protect buff on.
|
|
--The attack is magical and they have the shell buff on.
|
|
--Special Note: Shell was removed in later versions of the game.
|
|
--Another effect plays when both Protect and Shell flags are activated.
|
|
--Not sure what this effect is.
|
|
--Random guess: if the attack was a hybrid of both physical and magical and the target had both Protect and Shell buffs applied.
|
|
Protect = bit32.lshift(1, 6),
|
|
Shell = bit32.lshift(1, 7),
|
|
ProtectShellSpecial = 192, --Protect | Shell
|
|
|
|
--If only HitEffect1 is set out of the hit effects, the "Evade!" pop-up text triggers along with the evade visual.
|
|
--If no hit effects are set, the "Miss!" pop-up is triggered and no hit visual is played.
|
|
HitEffect1 = bit32.lshift(1, 9),
|
|
HitEffect2 = bit32.lshift(1, 10), --Plays the standard hit visual effect, but with no sound if used alone.
|
|
HitEffect3 = bit32.lshift(1, 11), --Yellow effect, crit?
|
|
HitEffect4 = bit32.lshift(1, 12), --Plays the blocking animation
|
|
HitEffect5 = bit32.lshift(1, 13),
|
|
GustyHitEffect = 3072, --HitEffect3 | HitEffect2
|
|
GreenTintedHitEffect = 4608, --HitEffect4 | HitEffect1
|
|
|
|
--For specific animations
|
|
Miss = 0,
|
|
Evade = HitEffect1,
|
|
Hit = 1536, --HitEffect1 | HitEffect2,
|
|
Crit = HitEffect3,
|
|
Parry = 3584, --Hit | HitEffect3,
|
|
Block = HitEffect4,
|
|
|
|
--Knocks you back away from the attacker.
|
|
KnockbackLv1 = 5632, --HitEffect4 | HitEffect2 | HitEffect1
|
|
KnockbackLv2 = 6144, --HitEffect4 | HitEffect3
|
|
KnockbackLv3 = 6656, --HitEffect4 | HitEffect3 | HitEffect1
|
|
KnockbackLv4 = 7168, --HitEffect4 | HitEffect3 | HitEffect2
|
|
KnockbackLv5 = 7680, --HitEffect4 | HitEffect3 | HitEffect2 | HitEffect1
|
|
|
|
--Knocks you away from the attacker in a counter-clockwise direction.
|
|
KnockbackCounterClockwiseLv1 = HitEffect5,
|
|
KnockbackCounterClockwiseLv2 = 8704, --HitEffect5 | HitEffect1
|
|
|
|
--Knocks you away from the attacker in a clockwise direction.
|
|
KnockbackClockwiseLv1 = 9216, --HitEffect5 | HitEffect2
|
|
KnockbackClockwiseLv2 = 9728, --HitEffect5 | HitEffect2 | HitEffect1
|
|
|
|
--Completely drags target to the attacker, even across large distances.
|
|
DrawIn = 10240, --HitEffect5 | HitEffect3
|
|
|
|
--An additional visual effect that plays on the target based on according buff.
|
|
UnknownShieldEffect = 12288, --HitEffect5 | HitEffect4
|
|
Stoneskin = 12800, --HitEffect5 | HitEffect4 | HitEffect1
|
|
|
|
--A special effect when performing appropriate skill combos in succession.
|
|
--Ex: Thunder (SkillCombo1 Effect) -> Thundara (SkillCombo2 Effect) -> Thundaga (SkillCombo3 Effect)
|
|
--Special Note: SkillCombo4 was never actually used in 1.0 since combos only chained up to 3 times maximum.
|
|
SkillCombo1 = bit32.lshift(1, 15),
|
|
SkillCombo2 = bit32.lshift(1, 16),
|
|
SkillCombo3 = 98304, --SkillCombo1 | SkillCombo2
|
|
SkillCombo4 = bit32.lshift(1, 17),
|
|
|
|
--This is used in the absorb effect for some reason
|
|
Unknown = bit32.lshift(1, 19),
|
|
|
|
--AdditionalEffectType flags
|
|
--The AdditionalEffectType is used for the additional effects some weapons have.
|
|
--These effect ids do not repeat the effect of the attack and will not show without a preceding HitEffectType or MagicEffectType
|
|
|
|
--It's unclear what this is for. The ifrit fight capture has a BLM using the garuda weapon
|
|
--and this flag is set every time but has no apparent effect.
|
|
UnknownAdditionalFlag = 1,
|
|
|
|
--These play effects on the target
|
|
FireEffect = bit32.lshift(1, 10),
|
|
IceEffect = bit32.lshift(2, 10),
|
|
WindEffect = bit32.lshift(3, 10),
|
|
EarthEffect = bit32.lshift(4, 10),
|
|
LightningEffect = bit32.lshift(5, 10),
|
|
WaterEffect = bit32.lshift(6, 10),
|
|
AstralEffect = bit32.lshift(7, 10), --Possibly for blind?
|
|
UmbralEffect = bit32.lshift(8, 10), --Posibly for poison?
|
|
|
|
--Unknown status effect effects
|
|
StatusEffect1 = bit32.lshift(12, 10),
|
|
StatusEffect2 = bit32.lshift(13, 10),
|
|
|
|
HPAbsorbEffect = bit32.lshift(14, 10),
|
|
MPAbsorbEffect = bit32.lshift(15, 10),
|
|
TPAbsorbEffect = bit32.lshift(16, 10),
|
|
TripleAbsorbEffect = bit32.lshift(17, 10), --Not sure about this
|
|
MoogleEffect = bit32.lshift(18, 10),
|
|
|
|
--MagicEffectType Flags
|
|
--THese are used for magic effects that deal or heal damage as well as damage over time effects
|
|
--Crit is the same as HitEffectType
|
|
FullResist = 0,
|
|
WeakResist = bit32.lshift(1, 0), --Used for level 1, 2, and 3 resists probably
|
|
NoResist = bit32.lshift(1, 1),
|
|
|
|
MagicShell = bit32.lshift(1, 4), --Used when casting on target with shell effects. MagicEffectType doesnt have a flag for protect or stoneskin
|
|
MagicShield = bit32.lshift(1, 5), --When used with an command that has an animation, this plays a purple shield effect. DoTs also have this flag set (at least on ifrit) but they have no animations so it doesnt show
|
|
|
|
-- Required for heal text to be blue, not sure if that's all it's used for
|
|
Heal = bit32.lshift(1, 8),
|
|
MP = bit32.lshift(1, 9), --Causes "MP" text to appear when used with MagicEffectType. | with Heal to make text blue
|
|
TP = bit32.lshift(1, 10), --Causes "TP" text to appear when used with MagicEffectType. | with Heal to make text blue
|
|
|
|
--SelfHealType flags
|
|
--This category causes numbers to appear on the user rather regardless of the target associated with the hit effect and do not play an animation
|
|
--These determine the text that displays (HP has no text)
|
|
SelfHealHP = 0,
|
|
SelfHealMP = bit32.lshift(1, 0), --Shows MP text on self. | with SelfHeal to make blue
|
|
SelfHealTP = bit32.lshift(1, 1), --Shows TP text on self. | with SelfHeal to make blue
|
|
|
|
--Causes self healing numbers to be blue
|
|
SelfHeal = bit32.lshift(1, 10),
|
|
} |