fix: Fixes disarm, strangle, curse, summons, looting rights, creatures attacking, and items going to the floor (#1174)

* Fixes disarm
* Fixes strangle not refreshing
* Fixes curse not refreshing
* Fixes 125% bonus to looting rights
* Fixes mobs attacking each other, or not attacking each other
* Fixes items dropping to the floor
* Fixes protection spell
* Fixes cure sending wrong message
This commit is contained in:
mark1145 2022-09-28 15:19:15 +10:00 • committed by GitHub
parent 906ec095b9
commit 060edaa76a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 127 additions and 112 deletions

View file

@ -38,9 +38,9 @@ namespace Server.Spells.Necromancy
SpellHelper.Turn(Caster, m);
// SpellHelper.CheckReflect( (int)this.Circle, Caster, ref m );
// Irrelevent after AoS
// Irrelevant after AoS
/* Temporarily chokes off the air suply of the target with poisonous fumes.
/* Temporarily chokes off the air supply of the target with poisonous fumes.
* The target is inflicted with poison damage over time.
* The amount of damage dealt each "hit" is based off of the caster's Spirit Speak skill and the Target's current Stamina.
* The less Stamina the target has, the more damage is done by Strangle.
@ -60,12 +60,16 @@ namespace Server.Spells.Necromancy
m.FixedParticles(0x36CB, 1, 9, 9911, 67, 5, EffectLayer.Head);
m.FixedParticles(0x374A, 1, 17, 9502, 1108, 4, (EffectLayer)255);
if (!_table.TryGetValue(m, out var timer))
// According to testing on OSI, it is refreshed.
if (_table.TryGetValue(m, out var timer))
{
_table[m] = timer = new InternalTimer(m, Caster);
timer.Start();
timer.Stop();
}
timer = new InternalTimer(m, Caster);
_table[m] = timer;
timer.Start();
HarmfulSpell(m);
}