RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Medusa

DarkEmbrace

Wanderer
Medusa

Would it be possable to make a monster script of a medusa that if u look at her she turns u to stone? Or something of that matter.

Maybe like have a chance to resist her gaze.. and or to come up with a shild to reflect her gaze..
 

Thagoras

Sorceror
Well,

Would it be possable to make a monster script of a medusa that if u look at her she turns u to stone? Or something of that matter.

Maybe like have a chance to resist her gaze.. and or to come up with a shild to reflect her gaze..

If YOU look at her? Like, she appears on your screen and you turn to stone? You could have it so when you become her focus mob you turn to stone (in a matter of speaking...though this is a tedious matter in itself). I think Mondain's Legacy has Player Statues. I haven't explored these scripts too much but this would be something to look into. Also, there's a ZombieX (Contagious Zombie) script out there which copies the playermobile (taking everything uninsured and unblessed and putting it in a bag on the zombie (so you'd have to kill the zombie to get...or perhaps, in your case, loot the statue to retrieve)). Performing a find item on the playermobile isn't hard either. If the shield is on the playermobile, don't "turn it to stone". Would the player just die when turned to stone. This would probably be the best...because then you can make it more like a statue then. Otherwise, you'd need a timer of some kind (like a curse or spell) which freezes the player for a time (like paralyze). I can see a bunch of irritated players whose characters are just frozen around the medusa lair if there's no way to get out of it.

So, short answer: Yes, it is possible.
 

DarkEmbrace

Wanderer
Well im not relly good at makeing scripts so be just a little hard for me to do... Plus i have 2 kids one is 9yr and other one is almost 2yr so not relly no time to script anyways..Any help would be greatful.
 

Peoharen

Sorceror
To match OSIs' just create a mobile and override OnThink to find a random player within 50 tiles. Freeze them for 5 minutes and set their SolidHueOveride to any one of the stone statue colors.

Srsly, OSI doesn't even have a timer to change the color of your items back. Your already doing a better job than they are.

Aim higher than EA through, no one says you have to be like them.
 

kevin10

Sorceror
You can freeze the target which is like paralyze but they will stay frozen when damage is done. Check out Freeze in Mobile.cs. Also, as noted, use the SolidHueOverride, a good example can be found in Sigil.cs. A timer will definately be needed, I would use a hash table if you have multiple targets turned to stone. Use Invisibility or another spell that uses a timer as a good example for a simple timer/hash table.
 

Peoharen

Sorceror
You can freeze the target which is like paralyze but they will stay frozen when damage is done. Check out Freeze in Mobile.cs. Also, as noted, use the SolidHueOverride, a good example can be found in Sigil.cs. A timer will definately be needed, I would use a hash table generic list if you have multiple targets turned to stone. Use Invisibility or another spell that uses a timer as a good example for a simple timer.
Fixed you use. And welcome to .NET 2.0 where generlic lists are several times faster than hashtables. In fact, why would you use a hashtable which is a slow version of a Dictionary? Or for that matter, you don't need to save the timer in the Medusa's memory at all.

Code:
public static void TurnToStone( Mobile m )
{
    if ( m.SolidHueOverride == X )
        return;

    m.SolidHueOverride = X;
    m.Frozen = true;
    new UnFreezeTimer( m ).Start();
}

public class UnFreezeTimer : Timer
{
    public Mobile m_Target;
    private int m_Count;

    public UnFreezeTimer( Mobile target ) : base( TimeSpan.FromSeconds( 1.0 ), TimeSpan.FromSeconds( 1.0 ) )
    {
        m_Target = target;
        m_Count = 0;
    }

    protected override void OnTick()
    {
        if ( m_Target == null )
            Stop();
        else if ( m_Count > 300 || !m_Target.Alive )
        {
            m_Target.Frozen = false;
            m_SolidHueOverride = -1;
            Stop();
        }
        else
            ++m_Count;
    }
}
There is half the work done.
 
Top