Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
477
Scripts/Items/Tools/GMHidingStone.cs
Normal file
477
Scripts/Items/Tools/GMHidingStone.cs
Normal file
@@ -0,0 +1,477 @@
|
||||
/*
|
||||
Script Name: GMHidingStone.cs
|
||||
Author: Marchenzio
|
||||
Version: 1.0
|
||||
Public Release: 01/01/09
|
||||
Updated Release: 01/01/09
|
||||
Purpose: A stone that allows for multiple hide/appear effects for GM and above.
|
||||
*/
|
||||
using System;
|
||||
using CustomsFramework;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum StoneEffect
|
||||
{
|
||||
Gate,
|
||||
FlameStrike1,
|
||||
FlameStrike3,
|
||||
FlameStrikeLightningBolt,
|
||||
Sparkle1,
|
||||
Sparkle3,
|
||||
Explosion,
|
||||
ExplosionLightningBolt,
|
||||
DefaultRunUO,
|
||||
Snow,
|
||||
Glow,
|
||||
PoisonField,
|
||||
Fireball,
|
||||
FireStorm1,
|
||||
FireStorm2,
|
||||
RedSparkle,
|
||||
RedSparkle2,
|
||||
Marchenzio1,
|
||||
Hell
|
||||
}
|
||||
|
||||
public class GMHidingStone : Item
|
||||
{
|
||||
private StoneEffect mAppearEffect;
|
||||
private StoneEffect mHideEffect;
|
||||
private int mAppearEffectHue;
|
||||
private int mHideEffectHue;
|
||||
|
||||
[Constructable]
|
||||
public GMHidingStone()
|
||||
: base(0x1870)
|
||||
{
|
||||
Weight = 1.0;
|
||||
Hue = 0x0;
|
||||
Name = "GM hiding stone";
|
||||
LootType = LootType.Blessed;
|
||||
mAppearEffect = StoneEffect.DefaultRunUO;
|
||||
mAppearEffectHue = 0;
|
||||
mHideEffect = StoneEffect.DefaultRunUO;
|
||||
mHideEffectHue = 0;
|
||||
}
|
||||
|
||||
public GMHidingStone(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.Counselor)]
|
||||
public StoneEffect AppearEffect
|
||||
{
|
||||
get
|
||||
{
|
||||
return mAppearEffect;
|
||||
}
|
||||
set
|
||||
{
|
||||
mAppearEffect = value;
|
||||
}
|
||||
}
|
||||
[Hue, CommandProperty(AccessLevel.Counselor)]
|
||||
public int AppearEffectHue
|
||||
{
|
||||
get
|
||||
{
|
||||
return mAppearEffectHue;
|
||||
}
|
||||
set
|
||||
{
|
||||
mAppearEffectHue = value;
|
||||
}
|
||||
}
|
||||
[CommandProperty(AccessLevel.Counselor)]
|
||||
public StoneEffect HideEffect
|
||||
{
|
||||
get
|
||||
{
|
||||
return mHideEffect;
|
||||
}
|
||||
set
|
||||
{
|
||||
mHideEffect = value;
|
||||
}
|
||||
}
|
||||
[Hue, CommandProperty(AccessLevel.Counselor)]
|
||||
public int HideEffectHue
|
||||
{
|
||||
get
|
||||
{
|
||||
return mHideEffectHue;
|
||||
}
|
||||
set
|
||||
{
|
||||
mHideEffectHue = value;
|
||||
}
|
||||
}
|
||||
public override void OnDoubleClick(Mobile m)
|
||||
{
|
||||
if (Utilities.IsStaff(m))
|
||||
{
|
||||
if (m.Hidden)
|
||||
{
|
||||
ToggleHidden(m, mAppearEffect);
|
||||
SendStoneEffects(mAppearEffect, mAppearEffectHue, m);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendStoneEffects(mHideEffect, mHideEffectHue, m);
|
||||
ToggleHidden(m, mHideEffect);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m.SendMessage("You are unable to use that!");
|
||||
}
|
||||
}
|
||||
|
||||
public static void SendStoneEffects(StoneEffect mStoneEffect, int effHue, Mobile m)
|
||||
{
|
||||
if (effHue > 0)
|
||||
effHue--; //Adjust the friggin hue to match true effect color
|
||||
switch (mStoneEffect)
|
||||
{
|
||||
//[s7]
|
||||
case StoneEffect.Gate:
|
||||
Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x1FCB, 10, 14, effHue, 0, 0x1FCB, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x20E);
|
||||
m.Frozen = true;
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(0.65), new TimerStateCallback(InternalShowGate), new object[] { m, effHue });
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(1.5), new TimerStateCallback(InternalHideGate), new object[] { m, effHue });
|
||||
break;
|
||||
//[/s7]
|
||||
case StoneEffect.FlameStrike1:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
break;
|
||||
case StoneEffect.FlameStrike3:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 6), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
break;
|
||||
case StoneEffect.Snow:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x376A, 15, effHue, 0); //0x47D );
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 492);
|
||||
break;
|
||||
case StoneEffect.FlameStrikeLightningBolt:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendBoltEffect(m, true, 0);
|
||||
break;
|
||||
case StoneEffect.Sparkle1:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x375A, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x213);
|
||||
break;
|
||||
case StoneEffect.Sparkle3:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x373A, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x373A, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z - 1), m.Map, 0x373A, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x213);
|
||||
break;
|
||||
case StoneEffect.Explosion:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x307);
|
||||
break;
|
||||
case StoneEffect.ExplosionLightningBolt:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendBoltEffect(m, true, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x307);
|
||||
break;
|
||||
case StoneEffect.DefaultRunUO:
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z - 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z - 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 7), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 3), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x228);
|
||||
break;
|
||||
case StoneEffect.Glow:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z), m.Map, 0x37C4, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x1E2);
|
||||
break;
|
||||
case StoneEffect.PoisonField:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z), m.Map, 0x3915, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x231);
|
||||
break;
|
||||
case StoneEffect.Fireball:
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 8), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 6), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 8), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 10), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x15E);
|
||||
break;
|
||||
case StoneEffect.FireStorm1: //Added By Nitewender (further modifed by me to carry color effect to timer
|
||||
m.PlaySound(520);
|
||||
m.PlaySound(525);
|
||||
m.Hidden = !m.Hidden;
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - 1, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y - 1, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Timer t = new FireStormTimer(DateTime.UtcNow, m, effHue, 0, 1);
|
||||
t.Start();
|
||||
break;
|
||||
case StoneEffect.FireStorm2: //CEO Using above idea, this one does the firestorm outside->in
|
||||
m.PlaySound(520);
|
||||
m.PlaySound(525);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 5, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - 5, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y - 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 5, m.Y - 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - 5, m.Y + 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Timer t1 = new FireStormTimer(DateTime.UtcNow, m, effHue, 5, -1);
|
||||
t1.Start();
|
||||
break;
|
||||
case StoneEffect.RedSparkle:
|
||||
Effects.SendLocationEffect(new Point3D(m.X , m.Y + 1, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x1f7);
|
||||
break;
|
||||
case StoneEffect.RedSparkle2:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x374A, 15);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x1E0);
|
||||
break;
|
||||
case StoneEffect.Marchenzio1:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 6), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x376A, 15, effHue, 0); //0x47D );
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 492);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendBoltEffect(m, true, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x375A, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x213);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x373A, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x373A, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z - 1), m.Map, 0x373A, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x213);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendBoltEffect(m, true, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x307);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z - 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z - 4), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 7), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 3), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3728, 13, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x228);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z), m.Map, 0x37C4, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x1E2);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 8), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 6), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 8), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 10), m.Map, 0x36D4, 13, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x15E);
|
||||
m.PlaySound(520);
|
||||
m.PlaySound(525);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 5, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - 5, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y - 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 5, m.Y - 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - 5, m.Y + 5, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Timer t2 = new FireStormTimer(DateTime.UtcNow, m, effHue, 5, -1);
|
||||
t2.Start();
|
||||
Effects.SendLocationEffect(new Point3D(m.X , m.Y + 1, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x1f7);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x374A, 15);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x374A, 15);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x1E0);
|
||||
m.Hidden = !m.Hidden;
|
||||
break;
|
||||
case StoneEffect.Hell:
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 6), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 6), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x3709, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x208);
|
||||
Effects.SendBoltEffect(m, true, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x307);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z + 1), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x36BD, 15, effHue, 0);
|
||||
Effects.SendBoltEffect(m, true, 0);
|
||||
Effects.PlaySound(new Point3D(m.X, m.Y, m.Z), m.Map, 0x307);
|
||||
m.PlaySound(520);
|
||||
m.PlaySound(525);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - 1, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y - 1, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y, m.Z), m.Map, 0x3709, 17, effHue, 0);
|
||||
Timer t3 = new FireStormTimer(DateTime.UtcNow, m, effHue, 0, 1);
|
||||
t3.Start();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)2); // version
|
||||
writer.Write((int)mAppearEffect);
|
||||
writer.Write((int)mHideEffect);
|
||||
writer.Write(mAppearEffectHue);
|
||||
writer.Write(mHideEffectHue);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
mAppearEffect = (StoneEffect)reader.ReadInt();
|
||||
mHideEffect = (StoneEffect)reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
mAppearEffect = (StoneEffect)reader.ReadInt();
|
||||
mHideEffect = (StoneEffect)reader.ReadInt();
|
||||
mAppearEffectHue = reader.ReadInt();
|
||||
mHideEffectHue = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ToggleHidden(Mobile m, StoneEffect heffect)
|
||||
{
|
||||
switch (heffect)
|
||||
{
|
||||
case StoneEffect.Gate:
|
||||
break;
|
||||
case StoneEffect.FireStorm1:
|
||||
break;
|
||||
case StoneEffect.FireStorm2:
|
||||
break;
|
||||
default:
|
||||
m.Hidden = !m.Hidden;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//[s7] gate!
|
||||
private static void InternalHideGate(object arg)
|
||||
{
|
||||
object[] args = arg as object[];
|
||||
Mobile m = args[0] as Mobile;
|
||||
int hue = (int)args[1];
|
||||
if (m != null)
|
||||
{
|
||||
m.Hidden = !m.Hidden;
|
||||
Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x376A, 9, 20, hue, 0, 5042, 0);
|
||||
Effects.PlaySound(m.Location, m.Map, 0x201);
|
||||
m.Frozen = false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void InternalShowGate(object arg)
|
||||
{
|
||||
object[] args = arg as object[];
|
||||
Mobile m = args[0] as Mobile;
|
||||
int hue = (int)args[1];
|
||||
if (m is Mobile)
|
||||
Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 8148, 9, 20, hue, 0, 8149, 0);
|
||||
}
|
||||
|
||||
//[/s7]
|
||||
public class FireStormTimer : Timer
|
||||
{
|
||||
public Mobile m;
|
||||
public int inc;
|
||||
public int ehue;
|
||||
public int fstart;
|
||||
public int fdir;
|
||||
public FireStormTimer(DateTime time, Mobile from, int hue, int start, int dir)
|
||||
: base(TimeSpan.FromSeconds(0.1), TimeSpan.FromSeconds(0.1))
|
||||
{
|
||||
Priority = TimerPriority.FiftyMS;
|
||||
m = from;
|
||||
ehue = hue;
|
||||
fstart = start;
|
||||
fdir = dir;
|
||||
inc = start;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
inc = inc + fdir;
|
||||
|
||||
Effects.SendLocationEffect(new Point3D(m.X + inc, m.Y, m.Z), m.Map, 0x3709, 17, ehue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - inc, m.Y, m.Z), m.Map, 0x3709, 17, ehue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y + inc, m.Z), m.Map, 0x3709, 17, ehue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X, m.Y - inc, m.Z), m.Map, 0x3709, 17, ehue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X + inc, m.Y - inc, m.Z), m.Map, 0x3709, 17, ehue, 0);
|
||||
Effects.SendLocationEffect(new Point3D(m.X - inc, m.Y + inc, m.Z), m.Map, 0x3709, 17, ehue, 0);
|
||||
|
||||
if ((fdir == 1 && inc >= (fstart + 5)) || (fdir == -1 && inc < 0))
|
||||
{
|
||||
if (fdir == -1)
|
||||
{
|
||||
m.Hidden = !m.Hidden;
|
||||
}
|
||||
Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user