UO-Dev Arama


Yazar: Bilinmiyor
Tarih: 30-08-2009 15:52


Paylaş : Paylaş

Kod:
using System;
using System.Collections;
using Server;
using Server.Items;

namespace Server.Mobiles
{
    [CorpseName( "a burning corpse" )]
    public class FireWyrm : BaseCreature
    {
        [Constructable]
        public FireWyrm () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
        {
            Body = 49;
            Hue = 0x489;
            Name = "a fire wyrm";
            BaseSoundID = 362;

            SetStr( 555, 820 );
            SetDex( 321, 370 );
            SetInt( 498, 657 );

            SetHits( 2800, 2980 );

            SetDamage( 38, 45 );

            SetDamageType( ResistanceType.Physical, 75 );
            SetDamageType( ResistanceType.Fire, 100 );

            SetResistance( ResistanceType.Physical, 80, 90 );
            SetResistance( ResistanceType.Fire, 100, 150 );
            SetResistance( ResistanceType.Cold, 40, 50 );
            SetResistance( ResistanceType.Poison, 50, 60 );
            SetResistance( ResistanceType.Energy, 80, 90 );

            SetSkill( SkillName.EvalInt, 190.1, 200.0 );
            SetSkill( SkillName.Magery, 199.1, 200.0 );
            SetSkill( SkillName.Meditation, 190.1, 200.0 );
            SetSkill( SkillName.MagicResist, 200.5, 250.0 );
            SetSkill( SkillName.Tactics, 180.1, 190.0 );
            SetSkill( SkillName.Wrestling, 180.1, 190.0 );

            Fame = 24000;
            Karma = -24000;

            VirtualArmor = 60;
           
Tamable = true;
                  MinTameSkill = 110.0;

                  ControlSlots = 4;

           
        }

        public override void GenerateLoot()
        {
            AddLoot( LootPack.FilthyRich, 3 );
            AddLoot( LootPack.MedScrolls, 2 );
        }
       
        public override bool HasBreath{ get{ return true; } } // fire breath enabled
        public override bool AutoDispel{ get{ return true; } }
        public override int TreasureMapLevel{ get{ return 4; } }
        public override int Meat{ get{ return 19; } }
        public override int Hides{ get{ return 20; } }
        public override HideType HideType{ get{ return HideType.Barbed; } }
        public override int Scales{ get{ return 9; } }
        public override ScaleType ScaleType{ get{ return ScaleType.White; } }

        public void FlameStrike()
        {
            ArrayList list = new ArrayList();

            foreach ( Mobile m in this.GetMobilesInRange( 10 ) )
            {
                if ( m == this || !CanBeHarmful( m ) )
                    continue;

                if ( m is BaseCreature && (((BaseCreature)m).Controled ||

((BaseCreature)m).Summoned || ((BaseCreature)m).Team != this.Team) )
                    list.Add( m );

            }

            foreach ( Mobile m in list )
            {
                DoHarmful( m );

                m.FixedParticles( 0x3709, 10, 30, 5052, EffectLayer.LeftFoot );
                m.PlaySound( 0x208 );

                m.SendMessage( "Your skin blisters as the fire burns you!" );

                int toStrike = Utility.RandomMinMax( 80, 90 );

                Hits += toStrike;
                m.Damage( toStrike, this );
            }
        }

        public override void OnGaveMeleeAttack( Mobile defender )//Attack yaptigi kisi
        {


           if (defender is PlayerMobile)//defender saldirigi kisi eger PlayerMobile a sahip ise

yani player ise
            {
                ControlOrder = OrderType.Stop;//ControlOrder(hayvanin control sekli) stop

yapiliyor.
                Say( "Adam gibi oyna." );//Opsiyonel.
            }
            else//eger saldirdigi bir player degilde yaratirk ise yapmasi gerekeni yapiyor
            {


                base.OnGaveMeleeAttack( defender );


                if (0.1 > Utility.RandomDouble())
                {
                    /* Grasping Claw
                     * Start cliloc: 1070836
                     * Effect: Physical resistance -15% for 5 seconds
                     * End cliloc: 1070838
                     * Effect: Type: "3" - From: "0x57D4F5B" (player) - To: "0x0" - ItemId:

"0x37B9" - ItemIdName: "glow" - FromLocation: "(1149 808, 32)" - ToLocation: "(1149 808, 32)" -

Speed: "10" - Duration: "5" - FixedDirection: "True" - Explode: "False"
                     */

                    ExpireTimer timer = (ExpireTimer)m_Table[defender];

                    if (timer != null)
                    {
                        timer.DoExpire();
                        defender.SendLocalizedMessage( 1070837 ); // The creature lands another

blow in your weakened state.
                    }
                    else
                        defender.SendLocalizedMessage( 1070836 );

                    int effect = -(defender.PhysicalResistance * 15 / 100);

                    ResistanceMod mod = new ResistanceMod( ResistanceType.Physical, effect );

                    defender.FixedEffect( 0x37B9, 10, 5 );
                    defender.AddResistanceMod( mod );

                    timer = new ExpireTimer( defender, mod, TimeSpan.FromSeconds( 5.0 ) );
                    timer.Start();
                    m_Table[defender] = timer;
                }
            }
        }

        private static Hashtable m_Table = new Hashtable();

        private class ExpireTimer : Timer
        {
            private Mobile m_Mobile;
            private ResistanceMod m_Mod;

            public ExpireTimer( Mobile m, ResistanceMod mod, TimeSpan delay )
                : base( delay )
            {
                m_Mobile = m;
                m_Mod = mod;
                Priority = TimerPriority.TwoFiftyMS;
            }

            public void DoExpire()
            {
                m_Mobile.RemoveResistanceMod( m_Mod );
                Stop();
                m_Table.Remove( m_Mobile );
            }

            protected override void OnTick()
            {
                m_Mobile.SendLocalizedMessage( 1070838 ); // Your resistance to physical attacks

has returned.
                DoExpire();
            }
        }

        public FireWyrm( Serial serial ) : base( serial )
        {
        }

        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );
            writer.Write( (int) 0 );
        }

        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );
            int version = reader.ReadInt();
        }
    }
}



Yorumlar

Henüz yorum yapılmamıştır.

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Fire Field0The And27-09-2009
Fire Elemental0The And23-09-2009
Cleanse By Fire0The And23-09-2009
Fire Giant0TheRaskol21-09-2009
Cleanse By Fire0Amesron01-09-2009


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,