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

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> WeaponAttributes для армора и прочего
Sergius Grey
сообщение 1.3.2015, 4:29
Сообщение #21


****

Apprentice
Сообщений: 149
Регистрация: 20.6.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.734
Возраст: 23



Aimed
Оружие в руках есть, простой даггер, одет при этом браслет - эффекта нету. Мне то так и нужно, чтоб без оружия оно НЕ срабатывало. Хотя если будет то не критично, важно чтоб вообще был этот эффект, а его нету.

Цитата
если у тебя прописано призначение в конструкторах BaseItem & BaseJewel

можно поподробнее про это?

Цитата
Вот эти строчки за всё это отвечают

Это я все понял с прошлого раза.

Juzzver
Попробую. Я тупанул и искал это в АОС а не в бейс веапон, Эймед подсказал. Я просто уже сплю, извините пожалуйста.


Так же хотел еще раз сказать вот что:
Если взять простой меч с каким нибудь свойством оружие, тот же хитлайтнинг или маналич или фаерэрия, не суть, и изменить лейер этого меча на браслет - оно перестает работать.
То есть меч (который бейсвеапон на слое браслета), и даггер который в руках - не работает ничего из АосВеапонАтрибутс, что на мече который на слое браслета. Так что может все же дело в леерах?
Наглядно что я тут имею ввиду, суть думаю ясна:
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 1.3.2015, 4:45
Сообщение #22


*********

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



Цитата(Sergius Grey @ 1.3.2015, 2:29) *


можно поподробнее про это?
Это я все понял с прошлого раза.

в BaseWeapon есть переменная:
Код
private AosWeaponAttributes m_AosWeaponAttributes;

И свойство:
Код
        [CommandProperty( AccessLevel.GameMaster )]
        public AosWeaponAttributes WeaponAttributes
        {
            get{ return m_AosWeaponAttributes; }
            set{}
        }

А так-же в конструкторе BaseWeapon:
Код
public BaseWeapon( int itemID ) : base( itemID )
        {
            Layer = (Layer)ItemData.Quality;

            m_Quality = WeaponQuality.Regular;
            m_StrReq = -1;
            m_DexReq = -1;
            m_IntReq = -1;
            m_MinDamage = -1;
            m_MaxDamage = -1;
            m_HitSound = -1;
            m_MissSound = -1;
            m_Speed = -1;
            m_MaxRange = -1;
            m_Skill = (SkillName)(-1);
            m_Type = (WeaponType)(-1);
            m_Animation = (WeaponAnimation)(-1);

            m_Hits = m_MaxHits = Utility.RandomMinMax( InitMinHits, InitMaxHits );

            m_Resource = CraftResource.Iron;

            m_AosAttributes = new AosAttributes( this );
            m_AosWeaponAttributes = new AosWeaponAttributes( this ); //ВОТ ЭТА СТРОКА
            m_AosSkillBonuses = new AosSkillBonuses( this );
            m_AosElementDamages = new AosElementAttributes( this );
        }

Всё это должно быть и в BaseJewel и в BaseArmor.
А так-же в методе
AosWeaponAttributes.GetValue нужные иф блоки на проверку BaseJewel & BaseArmor.

Цитата(Sergius Grey @ 1.3.2015, 2:29) *

Juzzver
Попробую. Я тупанул и искал это в АОС а не в бейс веапон, Эймед подсказал. Я просто уже сплю, извините пожалуйста.
Так же хотел еще раз сказать вот что:
Если взять простой меч с каким нибудь свойством оружие, тот же хитлайтнинг или маналич или фаерэрия, не суть, и изменить лейер этого меча на браслет - оно перестает работать.
То есть меч (который бейсвеапон на слое браслета), и даггер который в руках - не работает ничего из АосВеапонАтрибутс, что на мече который на слое браслета. Так что может все же дело в леерах?


Если ты точно всё сделал как я писал выше и всё равно такая вот проблема, тогда я должен подумать что я упустил.

Тоесть, ты с одетым браслетом и простым даггером ковырял мобов и не было ударов лайтнинга?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergius Grey
сообщение 1.3.2015, 4:51
Сообщение #23


****

Apprentice
Сообщений: 149
Регистрация: 20.6.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.734
Возраст: 23



Juzzver, работает то что ты сказал. Я прописал это после строчки с лавер дефендом, и у меня с моим браслетом он со 100 процентным шансом бьет лавер дефендом каждый раз. Хотя на браслете он даже не указан. То есть если я это подгоню под маналич какой нибудь он будет бить маналичем...
Кижнал в руках, браслет одет.
Интересная ситуация... Так оно работает. Есть мысли что здесь замешано и как сделать более удобнее это все???

Aimed, перепроверил - все есть, все прописал.
=(



Цитата
Тоесть, ты с одетым браслетом и простым даггером ковырял мобов и не было ударов лайтнинга?

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


*********

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



Хмм...

А помнишь в AosWeaponAttribute.GetValue изначально было прописано ElvenGlasses?
Найди ElvenGlasses.cs

Там всё сделано именно как описал + ещё все вепон свойства добавляются в тултип.
Это стандартный код ранки, тоесть всё должно работать (IMG:style_emoticons/default/dry.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergius Grey
сообщение 1.3.2015, 5:02
Сообщение #25


****

Apprentice
Сообщений: 149
Регистрация: 20.6.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.734
Возраст: 23



У меня нету очков в моей версии ранки.

В общем способ Джазвера щас работает. Даже без оружия в руке, хотя это и не нужно особо но не суть.
Кажись лееры надо как то прописать. Но на крайняк и такой способ сойдет, но хотелось бы конечно сделать все поудобнее, подготовить базу так сказать, чтоб только в скрипт с артом добавлять что то нужное и все, если я захочу сделать новых артов.

В любом случаи всем спасибо что помогаете разобраться с моей проблемой! Просто очень хочется мне сделать все удобно и аккуратно =)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 1.3.2015, 5:17
Сообщение #26


*********

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



Цитата(Sergius Grey @ 1.3.2015, 3:02) *


В любом случаи всем спасибо что помогаете разобраться с моей проблемой! Просто очень хочется мне сделать все удобно и аккуратно =)


Только так и надо делать)

Ты умеешь пользоваться дебагом?
Советую поставтиь брейкпойнт перед строкой, где берётся шанс удара лайтом из GetValue
в методе BaseWeapon.OnHit

Нужно узнать проверяет-ли этот метод действительно все предметы что на мобайле.
Либо можешь через консоль, там где нужна проверка делаешь
Console.WriteLine и нужную переменную выводим в консоль с каким-то своим текстом.
Потом делаешь тесты и в консоле проверяешь чё там получается

А то, у тебя версия 2.0, у меня вообще непонятно что... так можно долго теоретически думать что у тебя там не работает и почему, но это не эффективно)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 1.3.2015, 15:23
Сообщение #27


**********

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



Цитата
В общем способ Джазвера щас работает. Даже без оружия в руке, хотя это и не нужно особо но не суть.
Кажись лееры надо как то прописать. Но на крайняк и такой способ сойдет, но хотелось бы конечно сделать все поудобнее, подготовить базу так сказать, чтоб только в скрипт с артом добавлять что то нужное и все, если я захочу сделать новых артов.

Работает без оружия в руке по тому, что Fists(кулаки) так же относятся к типу оружия, наследуя класс:
public class Fists : BaseMeleeWeapon, а тот в свою очередь берет данные из BaseWeapon

Цитата
Наглядно что я тут имею ввиду, суть думаю ясна:

у тебя на скрине 2 оружия надето, возможно это как-то и отыгрывает свою роль.

Цитата
хотелось бы конечно сделать все поудобнее, подготовить базу так сказать

запости свой BaseJewel.cs скрипт с правками под Weapon атрибуты, нагляднее будет проще разобраться.
Или как пример с теми же ElvenGlasses - можно посмотреть тут


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


****

Apprentice
Сообщений: 149
Регистрация: 20.6.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.734
Возраст: 23



Создал скрипт очков, скопировал этот что ты мне кинул. Очки есть, параметры им прописываются, отображаются... Но не работают опять. Точно где то есть привязка к лееру на веапон аттрибуты...

Ну на всякий случай вот мой Джевел.

Так как скрипт большой не стал сюда постить, но он по ссылке откроется текстом. Если надо будет постить большой код целиком - скажите. Просто считаю что в данном случаи поудобнее.


Щас даже попробовал в скрипте CurrentExpansion.cs прописать МЛ вместо СЕ
private static readonly Expansion Expansion = Expansion.ML;
Мало ли думаю где проверка есть МЛ на то, чтоб считывать со всех шмоток бонусы. Но никакой разницы. Ну хотя бы узнал что это не зависит от этого, уже хорошо.


Я ведь правильно понимаю, что скрипт на очки должен работать без всяких остальных поправок в бейс скриптах армора и тд? И если они не работают, значит где то не прописана проверка веапон атрибутов не только на оружии, но и на простых шмотках?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 1.3.2015, 18:50
Сообщение #29


*********

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



Цитата(Sergius Grey @ 1.3.2015, 16:09) *

Я ведь правильно понимаю, что скрипт на очки должен работать без всяких остальных поправок в бейс скриптах армора и тд? И если они не работают, значит где то не прописана проверка веапон атрибутов не только на оружии, но и на простых шмотках?


Да, правильно, но это потому что в рануо так сделали и ничего в этом хорошего нет. Вот в моей ранке где идёт проверка на эти очки, тоесть опять-таки метод GetValue:
Код
        public static int GetValue( Mobile m, AosWeaponAttribute attribute )
        {
            if( !Core.AOS )
                return 0;

            List<Item> items = m.Items;
            int value = 0;

            for( int i = 0; i < items.Count; ++i )
            {
                Item obj = items[i];

                if( obj is BaseWeapon )
                {
                    AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes;

                    if( attrs != null )
                        value += attrs[attribute];
                }
                else if ( obj is ElvenGlasses )
                {
                    AosWeaponAttributes attrs = ((ElvenGlasses)obj).WeaponAttributes;

                    if( attrs != null )
                        value += attrs[attribute];
                }
            }

            return value;
        }

Вот тут в фор лупе идёт пересмотр всех вещей в листе m.Items, тоесть всё что на персонаже одето и должно быть вообще не важно на каком леере оно одето. Если одето - должно попадать в этот список.
Попало в этот список, фор луп проходится по шмотке - видит что обьект типа ElvenGlasses и вытягивает из него вепонатрибуты.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergius Grey
сообщение 1.3.2015, 19:02
Сообщение #30


****

Apprentice
Сообщений: 149
Регистрация: 20.6.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.734
Возраст: 23



Черт точно, я ж забыл их прописать в аос. Момент. Допишу проверю. Сори, забыл совсем.

Добавил. Нифига =(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 1.3.2015, 19:08
Сообщение #31


*********

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



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

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

 

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