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

 
Ответить в эту темуОткрыть новую тему
> братва выручайте, спелы
jonienojes77
сообщение 5.3.2015, 2:55
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 4.3.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.336
Возраст: 20




Братцы, тут такое дело
у меня мана уходит у мага на касте магик аров, фаерболл и харм...
что нужно править чтобы много маны не тратилось на эти спеллы ?
напишите что исправить!
ОГРОМНЕЙШОЕ СПАСИБО!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 6.3.2015, 9:58
Сообщение #2


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8675
Пользователь №: 15.607



Тебе еще актуально обьяснять КАК это править или сразу готовые файлы надо?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
jonienojes77
сообщение 6.3.2015, 12:56
Сообщение #3


*

Registred
Сообщений: 4
Регистрация: 4.3.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.336
Возраст: 20



Цитата(Aimed @ 6.3.2015, 10:58) *

Тебе еще актуально обьяснять КАК это править или сразу готовые файлы надо?

обьяснять
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 6.3.2015, 22:31
Сообщение #4


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8675
Пользователь №: 15.607



Код
using System;
using Server;
using Server.Items;

namespace Server.Spells
{
    public abstract class MagerySpell : Spell
    {
        public MagerySpell( Mobile caster, Item scroll, SpellInfo info )
            : base( caster, scroll, info )
        {
        }

        public abstract SpellCircle Circle { get; }

        public override bool ConsumeReagents()
        {
            if( base.ConsumeReagents() )
                return true;

            if( ArcaneGem.ConsumeCharges( Caster, (Core.SE ? 1 : 1 + (int)Circle) ) )
                return true;

            return false;
        }

        private const double ChanceOffset = 20.0, ChanceLength = 100.0 / 7.0;

        public override void GetCastSkills( out double min, out double max )
        {
            int circle = (int)Circle;

            if( Scroll != null )
                circle -= 2;

            double avg = ChanceLength * circle;

            min = avg - ChanceOffset;
            max = avg + ChanceOffset;
        }

        private static int[] m_ManaTable = new int[] { 4, 6, 9, 11, 14, 20, 40, 50 }; //Видал? Это мана кост за каждый круг, можешь сделать что б весь круг был дешевле.

        public override int GetMana()//Либо здесь сделай вот так:
        {
            if( Scroll is BaseWand )
                return 0;
            if(this is HarmSpell)
             return 2;                      //Harm стоит 2 маны, сверху 2й круг стоит 6 маны. Это мега нубский способ, но для тебя сойдёт  :)

            return m_ManaTable[(int)Circle];

        }

        public override double GetResistSkill( Mobile m )
        {
            int maxSkill = (1 + (int)Circle) * 10;
            maxSkill += (1 + ((int)Circle / 6)) * 25;

            if( m.Skills[SkillName.MagicResist].Value < maxSkill )
                m.CheckSkill( SkillName.MagicResist, 0.0, m.Skills[SkillName.MagicResist].Cap );

            return m.Skills[SkillName.MagicResist].Value;
        }

        public virtual bool CheckResisted( Mobile target )
        {
            double n = GetResistPercent( target );

            n /= 100.0;

            if( n <= 0.0 )
                return false;

            if( n >= 1.0 )
                return true;

            int maxSkill = (1 + (int)Circle) * 10;
            maxSkill += (1 + ((int)Circle / 6)) * 25;

            if( target.Skills[SkillName.MagicResist].Value < maxSkill )
                target.CheckSkill( SkillName.MagicResist, 0.0, target.Skills[SkillName.MagicResist].Cap );

            return (n >= Utility.RandomDouble());
        }

        public virtual double GetResistPercentForCircle( Mobile target, SpellCircle circle )
        {
            double firstPercent = target.Skills[SkillName.MagicResist].Value / 5.0;
            double secondPercent = target.Skills[SkillName.MagicResist].Value - (((Caster.Skills[CastSkill].Value - 20.0) / 5.0) + (1 + (int)circle) * 5.0);

            return (firstPercent > secondPercent ? firstPercent : secondPercent) / 2.0; // Seems should be about half of what stratics says.
        }

        public virtual double GetResistPercent( Mobile target )
        {
            return GetResistPercentForCircle( target, Circle );
        }

        public override TimeSpan GetCastDelay()
        {
            if( !Core.ML && Scroll is BaseWand )
                return TimeSpan.Zero;

            if( !Core.AOS )
                return TimeSpan.FromSeconds( 0.5 + (0.25 * (int)Circle) );

            return base.GetCastDelay();
        }

        public override TimeSpan CastDelayBase
        {
            get
            {
                return TimeSpan.FromSeconds( (3 + (int)Circle) * CastDelaySecondsPerTick );
            }
        }
    }
}


Ищи мои //комменты в коде. Удачи
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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