Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Magicarrow.cs, Damage Speed
Juzzver
сообщение 10.2.2009, 1:45
Сообщение #1


**********

Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22567
Из: Северная Корея
Пользователь №: 11.273



Подскажите пожалуйста как настроить скорость вылетания демеджа в стрелках?
Тоесть мне надо, что-бы токо вылетившея стрелка сразу же сносила демедж ( к примеру как Fireball ).
А то у меня вылетает стрелка и снимает демедж токо при попадании по противнику...



Код
using System;
using Server.Targeting;
using Server.Network;

namespace Server.Spells.First
{
    public class MagicArrowSpell : Spell
    {
        private static SpellInfo m_Info = new SpellInfo( "Magic Arrow", "In Por Ylem", SpellCircle.First, 212, 9041, Reagent.SulfurousAsh );

        public MagicArrowSpell( Mobile caster, Item scroll ) : base( caster, scroll, m_Info )
        {
        }

        public override void OnCast()
        {
            Caster.Target = new InternalTarget( this );
        }

        public override bool DelayedDamage { get { return true; } }

        public void Target( Mobile m )
        {
            if ( !Caster.CanSee( m ) )
            {
                Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
            }
            else if ( CheckHSequence( m ) )
            {
                Mobile source = Caster;

                SpellHelper.Turn( source, m );

                SpellHelper.CheckReflect( (int) this.Circle, ref source, ref m );

                double damage;

                if ( Core.AOS )
                {
                    damage = GetNewAosDamage( 10, 1, 4, Caster.Player && m.Player );
                }
                else
                {
                    damage = Utility.Random( 4, 4 );

                    if ( CheckResisted( m ) )
                    {
                        damage *= 0.75;

                        m.SendLocalizedMessage( 501783 ); // You feel yourself resisting magical energy.
                    }

                    damage *= GetDamageScalar( m );
                }

                source.MovingParticles( m, 0x36E4, 5, 0, false, true, 3006, 4006, 0 );
                source.PlaySound( 0x1E5 );

                SpellHelper.Damage( this, m, damage, 0, 100, 0, 0, 0 );
            }

            FinishSequence();
        }

        private class InternalTarget : Target
        {
            private MagicArrowSpell m_Owner;

            public InternalTarget( MagicArrowSpell owner ) : base( 12, false, TargetFlags.Harmful )
            {
                m_Owner = owner;
            }

            protected override void OnTarget( Mobile from, object o )
            {
                if ( o is Mobile )
                {
                    m_Owner.Target( (Mobile) o );
                }
            }

            protected override void OnTargetFinish( Mobile from )
            {
                m_Owner.FinishSequence();
            }
        }
}
}


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Soteric
сообщение 10.2.2009, 2:21
Сообщение #2


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 3057
Пользователь №: 7.166



Честно говоря ничего не понял...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NonExistencE
сообщение 10.2.2009, 9:25
Сообщение #3


******

Группа: Пользователи
Наличность: 0
Пользователь №: 10.626



DelayDamage сделай фалсе.

ЗЫ: Люди, читайте как называютсья переменные и св-ва! Они не от болды названы, а названы по их сути! Написано: ОтложитьУрон, следовательно это то что тебе нужно скорее всего!


--------------------
2.3 – Запрещено размещение ссылок в подписи на сторонние ресурсы
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Soteric
сообщение 10.2.2009, 10:12
Сообщение #4


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 3057
Пользователь №: 7.166



Фаербол, как мне кажется, работает абсолютно идентично
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Maks87p
сообщение 10.2.2009, 10:19
Сообщение #5


**

Neophyte
Сообщений: 24
Регистрация: 3.2.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 11.451
Возраст: 22



Да, помимо этого фаербол правда имеет странную задержку именно в момент попадания в противника. Он не сразу наносит урон, а спустя около секунды :\
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 10.2.2009, 13:25
Сообщение #6


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Макс, сядь на лошадь и пусть в тебя фаером кто-нить кинется... а ты от него беги... Пол года бегать будешь... только вот дамаг по тебе нанесется секунды через 3.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 11.2.2009, 0:54
Сообщение #7


**********

Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22567
Из: Северная Корея
Пользователь №: 11.273



Спасибки большое за помощ всем участникам!!!


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
afonya
сообщение 11.2.2009, 1:46
Сообщение #8


***

Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 11.366
Возраст: 19



Джуз выложи плиз решения проблемы ?


--------------------
РеспекТ ,Soteric
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 11.2.2009, 9:28
Сообщение #9


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Афонь, тут оно выложено, NonExistanc'ом. А тебе, чтоб понять, надо книжки по C# читать.
Я процитирую...
Цитата(NonExistencE @ 10.2.2009, 9:25) *
DelayDamage сделай фалсе.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 11.2.2009, 17:50
Сообщение #10


**********

Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22567
Из: Северная Корея
Пользователь №: 11.273



Код
using System;
using Server.Targeting;
using Server.Network;

namespace Server.Spells.First
{
    public class MagicArrowSpell : Spell
    {
        private static SpellInfo m_Info = new SpellInfo( "Magic Arrow", "In Por Ylem", SpellCircle.First, 212, 9041, Reagent.SulfurousAsh );

        public MagicArrowSpell( Mobile caster, Item scroll ) : base( caster, scroll, m_Info )
        {
        }

        public override void OnCast()
        {
            Caster.Target = new InternalTarget( this );
        }

        [b]public override bool DelayedDamage { get { [u]return true[/u]; } }[/b]   // вот тут вот мы заменяем значение "true" на "false"

        public void Target( Mobile m )
        {
            if ( !Caster.CanSee( m ) )
            {
                Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
            }
            else if ( CheckHSequence( m ) )
            {
                Mobile source = Caster;

                SpellHelper.Turn( source, m );

                SpellHelper.CheckReflect( (int) this.Circle, ref source, ref m );

                double damage;

                if ( Core.AOS )
                {
                    damage = GetNewAosDamage( 10, 1, 4, Caster.Player && m.Player );
                }
                else
                {
                    damage = Utility.Random( 4, 4 );

                    if ( CheckResisted( m ) )
                    {
                        damage *= 0.75;

                        m.SendLocalizedMessage( 501783 ); // You feel yourself resisting magical energy.
                    }

                    damage *= GetDamageScalar( m );
                }

                source.MovingParticles( m, 0x36E4, 5, 0, false, true, 3006, 4006, 0 );
                source.PlaySound( 0x1E5 );

                SpellHelper.Damage( this, m, damage, 0, 100, 0, 0, 0 );
            }

            FinishSequence();
        }

        private class InternalTarget : Target
        {
            private MagicArrowSpell m_Owner;

            public InternalTarget( MagicArrowSpell owner ) : base( 12, false, TargetFlags.Harmful )
            {
                m_Owner = owner;
            }

            protected override void OnTarget( Mobile from, object o )
            {
                if ( o is Mobile )
                {
                    m_Owner.Target( (Mobile) o );
                }
            }

            protected override void OnTargetFinish( Mobile from )
            {
                m_Owner.FinishSequence();
            }
        }
}
}


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
afonya
сообщение 11.2.2009, 18:25
Сообщение #11


***

Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 11.366
Возраст: 19



он не мог написать, надо в метотоде DelayDamage, поставить перемены)


--------------------
РеспекТ ,Soteric
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 11.2.2009, 18:43
Сообщение #12


**********

Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22567
Из: Северная Корея
Пользователь №: 11.273



Ну на самом деле там пишеться в кокой строке =)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 11.2.2009, 20:05
Сообщение #13


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Цитата(afonya @ 11.2.2009, 18:25) *

он не мог написать, надо в метотоде DelayDamage, поставить перемены)
Именно это НЕСЯ и написал. Ты читать не умеешь.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.4.2024, 17:16
Designed by Nickostyle