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

> Animal Tameng System
ReSpoT
сообщение 13.4.2009, 7:12
Сообщение #1


*****

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



Скачал с рауно систему для таменга (включает в себя уровни петам, шринки ну и вапще много чего), все ето добро под мл-вский дефолт итти не хотело, пришлось доделывать. Переделал, все запустилось, все оказалось рабочее.. но вот при тесте стало видно, что не совсем все работает...
Вот прошу помощи по таким вопросам :
1) Как сделать чтобы кол-во експы необходимое мобайлу на лвл росло с каждым полученным лвл.
2) Как сделать чтобы чем сильнее моб тем больше ему надо експы на лвл.
3) Как поменять необходимый експ на первый лвл (чтоб он изменялся в зависимости от силы мобайла)

вроде бы все.

Сообщение отредактировал ReSpoT - 14.6.2009, 13:14
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
ReSpoT
сообщение 15.4.2009, 12:27
Сообщение #2


*****

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



вот что получилось
Код
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 17 ); // version

            writer.Write( (int)m_CurrentAI );
            writer.Write( (int)m_DefaultAI );

            writer.Write( (int)m_iRangePerception );
            writer.Write( (int)m_iRangeFight );

            writer.Write( (int)m_iTeam );

            writer.Write( (double)m_dActiveSpeed );
            writer.Write( (double)m_dPassiveSpeed );
            writer.Write( (double)m_dCurrentSpeed );

            writer.Write( (int) m_pHome.X );
            writer.Write( (int) m_pHome.Y );
            writer.Write( (int) m_pHome.Z );

            // Version 1
            writer.Write( (int) m_iRangeHome );

            int i=0;

            writer.Write( (int) m_arSpellAttack.Count );
            for ( i=0; i< m_arSpellAttack.Count; i++ )
            {
                writer.Write( m_arSpellAttack[i].ToString() );
            }

            writer.Write( (int) m_arSpellDefense.Count );
            for ( i=0; i< m_arSpellDefense.Count; i++ )
            {
                writer.Write( m_arSpellDefense[i].ToString() );
            }

            // Version 2
            writer.Write( (int) m_FightMode );

            writer.Write( (bool) m_bControlled );
            writer.Write( (Mobile) m_ControlMaster );
            writer.Write( (Mobile) m_ControlTarget );
            writer.Write( (Point3D) m_ControlDest );
            writer.Write( (int) m_ControlOrder );
            writer.Write( (double) m_dMinTameSkill );
            // Removed in version 9
            //writer.Write( (double) m_dMaxTameSkill );
            writer.Write( (bool) m_bTamable );
            writer.Write( (bool) m_bSummoned );

            if ( m_bSummoned )
                writer.WriteDeltaTime( m_SummonEnd );

            writer.Write( (int) m_iControlSlots );

            // Version 3
            writer.Write( (int)m_Loyalty );

            // Version 4
            writer.Write( m_CurrentWayPoint );

            // Verison 5
            writer.Write( m_SummonMaster );

            // Version 6
            writer.Write( (int) m_HitsMax );
            writer.Write( (int) m_StamMax );
            writer.Write( (int) m_ManaMax );
            writer.Write( (int) m_DamageMin );
            writer.Write( (int) m_DamageMax );

            // Version 7
            writer.Write( (int) m_PhysicalResistance );
            writer.Write( (int) m_PhysicalDamage );

            writer.Write( (int) m_FireResistance );
            writer.Write( (int) m_FireDamage );

            writer.Write( (int) m_ColdResistance );
            writer.Write( (int) m_ColdDamage );

            writer.Write( (int) m_PoisonResistance );
            writer.Write( (int) m_PoisonDamage );

            writer.Write( (int) m_EnergyResistance );
            writer.Write( (int) m_EnergyDamage );

            // Version 8
            writer.Write( m_Owners, true );

            // Version 10
            writer.Write( (bool) m_IsDeadPet );
            writer.Write( (bool) m_IsBonded );
            writer.Write( (DateTime) m_BondingBegin );
            writer.Write( (DateTime) m_OwnerAbandonTime );

            // Version 11
            writer.Write( (bool) m_HasGeneratedLoot );

            // Version 12
            writer.Write( (bool) m_Paragon );

            // Version 13
            writer.Write( (bool) ( m_Friends != null && m_Friends.Count > 0 ) );

            if ( m_Friends != null && m_Friends.Count > 0 )
                writer.Write( m_Friends, true );

            // Version 14
            writer.Write( (bool)m_RemoveIfUntamed );
            writer.Write( (int)m_RemoveStep );

            // Version 17 FS:ATS EDITS
            writer.Write((bool)m_IsMating);
            writer.Write((int)m_ABPoints);
            writer.Write((int)m_Exp);
            writer.Write((int)m_NextLevel);
            writer.Write((int)m_Level);
            writer.Write((int)m_MaxLevel);
            writer.Write((bool)m_AllowMating);
            writer.Write((bool)m_Evolves);
            writer.Write((int)m_Gen);
            writer.Write((DateTime)m_MatingDelay);
            writer.Write((int)m_Form1);
            writer.Write((int)m_Form2);
            writer.Write((int)m_Form3);
            writer.Write((int)m_Form4);
            writer.Write((int)m_Form5);
            writer.Write((int)m_Form6);
            writer.Write((int)m_Form7);
            writer.Write((int)m_Form8);
            writer.Write((int)m_Form9);
            writer.Write((int)m_Sound1);
            writer.Write((int)m_Sound2);
            writer.Write((int)m_Sound3);
            writer.Write((int)m_Sound4);
            writer.Write((int)m_Sound5);
            writer.Write((int)m_Sound6);
            writer.Write((int)m_Sound7);
            writer.Write((int)m_Sound8);
            writer.Write((int)m_Sound9);
            writer.Write((bool)m_UsesForm1);
            writer.Write((bool)m_UsesForm2);
            writer.Write((bool)m_UsesForm3);
            writer.Write((bool)m_UsesForm4);
            writer.Write((bool)m_UsesForm5);
            writer.Write((bool)m_UsesForm6);
            writer.Write((bool)m_UsesForm7);
            writer.Write((bool)m_UsesForm8);
            writer.Write((bool)m_UsesForm9);
            writer.Write((bool)m_F0);
            writer.Write((bool)m_F1);
            writer.Write((bool)m_F2);
            writer.Write((bool)m_F3);
            writer.Write((bool)m_F4);
            writer.Write((bool)m_F5);
            writer.Write((bool)m_F6);
            writer.Write((bool)m_F7);
            writer.Write((bool)m_F8);
            writer.Write((bool)m_F9);
            writer.Write((int)m_RoarAttack);
            writer.Write((int)m_PetPoisonAttack);
            writer.Write((int)m_FireBreathAttack);

            #region Mondain's Legacy version 15
            writer.Write( (bool) m_Allured );
            #endregion
        }

        private static double[] m_StandardActiveSpeeds = new double[]
            {
                0.175, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.8
            };

        private static double[] m_StandardPassiveSpeeds = new double[]
            {
                0.350, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.6, 2.0
            };

        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            m_CurrentAI = (AIType)reader.ReadInt();
            m_DefaultAI = (AIType)reader.ReadInt();

            m_iRangePerception = reader.ReadInt();
            m_iRangeFight = reader.ReadInt();

            m_iTeam = reader.ReadInt();

            m_dActiveSpeed = reader.ReadDouble();
            m_dPassiveSpeed = reader.ReadDouble();
            m_dCurrentSpeed = reader.ReadDouble();

            if ( m_iRangePerception == OldRangePerception )
                m_iRangePerception = DefaultRangePerception;

            m_pHome.X = reader.ReadInt();
            m_pHome.Y = reader.ReadInt();
            m_pHome.Z = reader.ReadInt();

            if ( version >= 1 )
            {
                m_iRangeHome = reader.ReadInt();

                int i, iCount;
                
                iCount = reader.ReadInt();
                for ( i=0; i< iCount; i++ )
                {
                    string str = reader.ReadString();
                    Type type = Type.GetType( str );

                    if ( type != null )
                    {
                        m_arSpellAttack.Add( type );
                    }
                }

                iCount = reader.ReadInt();
                for ( i=0; i< iCount; i++ )
                {
                    string str = reader.ReadString();
                    Type type = Type.GetType( str );

                    if ( type != null )
                    {
                        m_arSpellDefense.Add( type );
                    }            
                }
            }
            else
            {
                m_iRangeHome = 0;
            }

            if ( version >= 2 )
            {
                m_FightMode = ( FightMode )reader.ReadInt();

                m_bControlled = reader.ReadBool();
                m_ControlMaster = reader.ReadMobile();
                m_ControlTarget = reader.ReadMobile();
                m_ControlDest = reader.ReadPoint3D();
                m_ControlOrder = (OrderType) reader.ReadInt();

                m_dMinTameSkill = reader.ReadDouble();

                if ( version < 9 )
                    reader.ReadDouble();

                m_bTamable = reader.ReadBool();
                m_bSummoned = reader.ReadBool();

                if ( m_bSummoned )
                {
                    m_SummonEnd = reader.ReadDeltaTime();
                    new UnsummonTimer( m_ControlMaster, this, m_SummonEnd - DateTime.Now ).Start();
                }

                m_iControlSlots = reader.ReadInt();
            }
            else
            {
                m_FightMode = FightMode.Closest;

                m_bControlled = false;
                m_ControlMaster = null;
                m_ControlTarget = null;
                m_ControlOrder = OrderType.None;
            }

            if ( version >= 3 )
                m_Loyalty = reader.ReadInt();
            else
                m_Loyalty = MaxLoyalty; // Wonderfully Happy

            if ( version >= 4 )
                m_CurrentWayPoint = reader.ReadItem() as WayPoint;

            if ( version >= 5 )
                m_SummonMaster = reader.ReadMobile();

            if ( version >= 6 )
            {
                m_HitsMax = reader.ReadInt();
                m_StamMax = reader.ReadInt();
                m_ManaMax = reader.ReadInt();
                m_DamageMin = reader.ReadInt();
                m_DamageMax = reader.ReadInt();
            }

            if ( version >= 7 )
            {
                m_PhysicalResistance = reader.ReadInt();
                m_PhysicalDamage = reader.ReadInt();

                m_FireResistance = reader.ReadInt();
                m_FireDamage = reader.ReadInt();

                m_ColdResistance = reader.ReadInt();
                m_ColdDamage = reader.ReadInt();

                m_PoisonResistance = reader.ReadInt();
                m_PoisonDamage = reader.ReadInt();

                m_EnergyResistance = reader.ReadInt();
                m_EnergyDamage = reader.ReadInt();
            }

            if ( version >= 8 )
                m_Owners = reader.ReadStrongMobileList();
            else
                m_Owners = new List<Mobile>();

            if ( version >= 10 )
            {
                m_IsDeadPet = reader.ReadBool();
                m_IsBonded = reader.ReadBool();
                m_BondingBegin = reader.ReadDateTime();
                m_OwnerAbandonTime = reader.ReadDateTime();
            }

            if ( version >= 11 )
                m_HasGeneratedLoot = reader.ReadBool();
            else
                m_HasGeneratedLoot = true;

            if ( version >= 12 )
                m_Paragon = reader.ReadBool();
            else
                m_Paragon = false;

            if ( version >= 13 && reader.ReadBool() )
                m_Friends = reader.ReadStrongMobileList();
            else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend )
                ++m_ControlOrder;

            if ( version < 16 )
                Loyalty *= 10;

            double activeSpeed = m_dActiveSpeed;
            double passiveSpeed = m_dPassiveSpeed;

            SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed );

            bool isStandardActive = false;
            for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i )
                isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] );

            bool isStandardPassive = false;
            for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i )
                isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] );

            if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed )
                m_dCurrentSpeed = activeSpeed;
            else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed )
                m_dCurrentSpeed = passiveSpeed;

            if ( isStandardActive && !m_Paragon )
                m_dActiveSpeed = activeSpeed;

            if ( isStandardPassive && !m_Paragon )
                m_dPassiveSpeed = passiveSpeed;

            if ( version >= 14 )
            {
                m_RemoveIfUntamed = reader.ReadBool();
                m_RemoveStep = reader.ReadInt();
            }

            #region Mondain's Legacy version 15
            if (version >= 17)
                m_Allured = reader.ReadBool();
            #endregion

            if (version >= 17)
            {
                m_IsMating = reader.ReadBool();
                m_ABPoints = reader.ReadInt();
                m_Exp = reader.ReadInt();
                m_NextLevel = reader.ReadInt();
                m_Level = reader.ReadInt();
                m_MaxLevel = reader.ReadInt();
                m_AllowMating = reader.ReadBool();
                m_Evolves = reader.ReadBool();
                m_Gen = reader.ReadInt();
                m_MatingDelay = reader.ReadDateTime();
                m_Form1 = reader.ReadInt();
                m_Form2 = reader.ReadInt();
                m_Form3 = reader.ReadInt();
                m_Form4 = reader.ReadInt();
                m_Form5 = reader.ReadInt();
                m_Form6 = reader.ReadInt();
                m_Form7 = reader.ReadInt();
                m_Form8 = reader.ReadInt();
                m_Form9 = reader.ReadInt();
                m_Sound1 = reader.ReadInt();
                m_Sound2 = reader.ReadInt();
                m_Sound3 = reader.ReadInt();
                m_Sound4 = reader.ReadInt();
                m_Sound5 = reader.ReadInt();
                m_Sound6 = reader.ReadInt();
                m_Sound7 = reader.ReadInt();
                m_Sound8 = reader.ReadInt();
                m_Sound9 = reader.ReadInt();
                m_UsesForm1 = reader.ReadBool();
                m_UsesForm2 = reader.ReadBool();
                m_UsesForm3 = reader.ReadBool();
                m_UsesForm4 = reader.ReadBool();
                m_UsesForm5 = reader.ReadBool();
                m_UsesForm6 = reader.ReadBool();
                m_UsesForm7 = reader.ReadBool();
                m_UsesForm8 = reader.ReadBool();
                m_UsesForm9 = reader.ReadBool();
                m_F0 = reader.ReadBool();
                m_F1 = reader.ReadBool();
                m_F2 = reader.ReadBool();
                m_F3 = reader.ReadBool();
                m_F4 = reader.ReadBool();
                m_F5 = reader.ReadBool();
                m_F6 = reader.ReadBool();
                m_F7 = reader.ReadBool();
                m_F8 = reader.ReadBool();
                m_F9 = reader.ReadBool();
                m_RoarAttack = reader.ReadInt();
                m_PetPoisonAttack = reader.ReadInt();
                m_FireBreathAttack = reader.ReadInt();
            }

            if( version <= 14 && m_Paragon && Hue == 0x31 )
            {
                Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501.
            }

            CheckStatTimers();

            ChangeAIType(m_CurrentAI);

            AddFollowers();

            if ( IsAnimatedDead )
                Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this );
        }
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
ReSpoT   Animal Tameng System   13.4.2009, 7:12
Soteric   Требуемая экспа с каждым левелом и так вроде расте...   13.4.2009, 7:26
ReSpoT   Нуда точно, експ на след лвл растет, я етого не за...   13.4.2009, 8:17
Soteric   Думаю это вопрос математики и твоей фантазии, а не...   13.4.2009, 8:35
ReSpoT   Вот с получением експы почти разобрался. но вот пр...   13.4.2009, 9:08
Soteric   То что там отображается рассчитывается по той же ф...   13.4.2009, 10:02
ReSpoT   Вот как я понял ето дело : expgainmin = bc.Hi...   13.4.2009, 16:45
Soteric   Понял все правильно, и в гампе все должно отражать...   13.4.2009, 17:15
ReSpoT   Понял в чем была ошибка, в basecreature не было оп...   13.4.2009, 17:43
NonExistencE   ищи в бейскриэйчер, в эвентах где после таминга пр...   13.4.2009, 20:31
ReSpoT   Вот после того как доделал ету систему, решил пров...   14.4.2009, 11:46
Soteric   В LesserHiryu.cs в методе Deserialize попробуй зам...   14.4.2009, 12:41
ReSpoT   вот как у меня выгляит метод Deserialize в Lesser...   14.4.2009, 13:04
Soteric   Может так :) Timer.DelayCall( TimeSpan.Zero, d...   14.4.2009, 13:10
ReSpoT   эх, и ето не помогло - аналогичный краш :(   14.4.2009, 15:46
Soteric   Убери это вообще :) if( version == 0 ) ...   14.4.2009, 15:49
ReSpoT   Ето помогло. Крашей не стало. Запустил сервер, но...   14.4.2009, 22:13
Soteric   Видимо что-то сделал не так с сериализацией в Base...   14.4.2009, 22:50
ReSpoT   RE: Animal Tameng System   14.4.2009, 22:54
Soteric   Вот это сериализовано // Version 17 FS:ATS EDI...   14.4.2009, 23:01
ReSpoT   Скорее всего ты ожидал ответа "а как ето сдел...   14.4.2009, 23:12
ReSpoT   Оказалось достаточно включить голову :) if ...   14.4.2009, 23:24
Soteric   Нет, я ожидал что-то вроде "А... не доглядел,...   14.4.2009, 23:30
ReSpoT   Но однако и после десереализации того куска, мне п...   15.4.2009, 0:08
Soteric   Запость чего получилось   15.4.2009, 7:48
Soteric   Allured десериализуешь раньше, чем остальное   15.4.2009, 13:09
ReSpoT   if (version >= 17) { m_Is...   15.4.2009, 15:47
NonExistencE   а в десереализации то что стоит? Он просит удалить...   15.4.2009, 16:40
ReSpoT   можете конкретно сказать вот тут в чем ошибка и к...   15.4.2009, 17:21
Soteric   Еще раз... Сервер запускается нормально. Сейвится....   15.4.2009, 18:47
ReSpoT   Запускается без ошибок, загрузка регионов, загрузк...   15.4.2009, 19:01
Soteric   Нужно откатить скрипты до того состояния, в которо...   15.4.2009, 19:07
ReSpoT   Откатил все скрипты до исходного состояния, сейвы ...   17.4.2009, 1:26


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

 

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