Apple Inc,
Навигация
· Главная
· Форум UO
· Файлы

Информация
· Администрация проекта
· Наши Банеры
· Спонсоры
· Реклама на сайте
Первые шаги
· Установка сферы
· Указатели (Pointers)
· Создание диалогов
· Своя Руда
· sphere.ini
· Spheretable_x.scp
· Spheretables.scp

Download
· Программы для игры
· Макро Программы
· Работа с *.Mul
· Русский sphere.ini
· Программы для ГМов
· Клиены
· Sphere`s & Worlds

Создание нового итема

Автор: Неизвестен 

Возможны 2 варианта добавление предмета в вердату: Создание предмета с новым gump’ом, но с присвоением этому предмету анимации от какого-нибудь другого (уже находящегося в вердате) предмета, или создание полностью нового предмета (с новой анимацией, gump’ом, рисунком, когда предмет лежит на земле…)


Сначала рассмотрим вариант с присвоением какой-нибудь стандартной анимации. Для этого нам понадобятся следующие программы:

  • Mulbuilder

  • InsideUO

  • Ну и какой-нибудь графический редактор :)

Первое, что мы делаем, так это качаем все программы, устанавливаем их, настраиваем.
Далее, если есть рисунки gump’a и на земле, запускам Mulbuilder. Если таких рисунков у нас нет, то рисуем их. (Важно помнить, что чтобы предмет прорисовывался в игре как надо, пространство вокруг него должно быть заполнено черным цветом).

В Mulbuilder’e жмем File->New, затем два раза кликаем на Gears Anim, в открывшемся меню жмем кнопку New. Затем два раза кликаем на появившемся объекте в таблице.

Теперь начинаем по порядку заполнять поля в открывшемся меню.
1) Name – Название предмета, которое будет отображаться в Mulbuilder’e.
2) Item ID – Номер свободного ID в вердате, который будет присвоен этому объекту.
Чтобы сей номер узнать, запускаем программу InsideUO, там кликаем на Artwork, и выбираем менюшку Static Tile и начинаем кликать на стоящие рядом объекты. Нам нужно найти свободные номера. Номера объектов отображаются внизу, напротив строки Model No. Сначала идет десятеричное значение числа, потом, в скобке после символов «0х» - шестнадцатеричное. Так вот, находим два объекта, стоящих рядом, номера которых отличаются на число, большее чем единицу, и из промежутка чисел, между двумя этими числами, берем любое значение.

В моем случае я использовал число 13800.
3) Gump ID – Аналогично, как искали номер свободного ID для Item ID, ищем свободный Gump в том же InsideUO, только в закладке Gumps. В моем случае, я использовал 50930.
4) В квадратике Art жмем Load, и загружаем рисунок объекта, как он будет отображаться на земле.
5) В квадратике Gump Male/Female загружаем рисунок предмета на мужчине/женщине. Если все правильно сделано, то должно получиться нечто, похожее на это.

Далее, переходим к вкладышу Tiledata, и жмем на нужные нам кнопки (справа), и выбираем Layer, в котором будет находится наш предмет. (при желании можно заполнить и другие поля, но, имхо, это ненужно – все эти параметры можно будет исправить в скрипте.) Вот список Layer’ов:
Layers:
1 - One handed weapon - Одноручное оружие.
2 - Two handed weapon, shield, or misc. - Двуручное оружие, щит, и.т.д.
3 - Shoes - Ботинки
4 - Pants - Штаны
5 - Shirt - Рубашка(футболка :) )
6 - helmet/has - Шлем
7 - Gloves - Перчатки
8 - ring - Кольцо
9 - Unused - Не используется (?)
10 - Neck - Ошейник
11 - Hair - Волосы
12 - Waist (helped apron) - Передник
13 - Torso (internal) (chest armor) - Туловище (внутренняя часть – например, Chainmail)
14 - Bracelet - Браслет
15 - Unused (baking luggage, but baking luggage go to 21) - Не используется (?)
16 - Facial Hair - Растительность на лице :)) Усы там, или борода.
17 - Torso (middle) (sircoat, tunic, full apron, sash) - Туловище (Средняя часть – например, туника, пояс через плечо…)
18 - Earrings - Серьги.
19 - arm - Наручи
20 - bake (cloak) - Спина (Плащ)
21 - baking luggage - Мусор от приготовления пищи…
22 - Torso (more outer) (robe) - Туловище (Наружная часть – например, роба)
23 - Legs (more outer) (skirt/kilt) - Поножи (Более наружная часть – например, юбка/клетчатая юбка)
24 - Legs (internal) (put armor) - Поножи (Внутренняя часть – например, Platemail Leggins)
25 - Mount (horse, etc.) - Животное, на котором мы сидим - например, лошадь.
26 - NPC Buy Restock container - это нам щас не нужно :)
27 - NPC Buy NO restock containers - это нам щас не нужно :)
28 - NPC Sell container - это нам щас не нужно :)
29 - bank box - это нам щас не нужно :)

Значит, как только мы все это сделали, жмем кнопку save в этом окне. При желании можно и сам файл куда-нибудь сохранить (File->Save).
Далее, переходим к вкладышу Anims. Там жмем кнопку Import Animation Dialog. В открывшемся окне, жмем Gear (это, если нам нужна какая-нибудь оригинальная (обычная) одежда, или оружие) и загружаем запрашиваемые файлы. Далее, находим анимации, с первой по последнюю того предмета, изображение которого мы хотим приделать к нашему новому предмету. В моем случае я использовал анимации от обычной робы. Выделяем все эти анимации, затем, в поле, справа от которого написано Items, а слева кнопка “>>”, вписываем число 175, и жмем эту самую кнопку (“>>”).


Проверяем, совпадают ли первая и последняя анимация в появившемся списке справа, с соответственно первой и последней анимацией в списке слева (из тех, которые мы выделяли.). Если все верно – жмем кнопку ОК. В моем случае это были анимации номер 47075 по 47249. Возможно, покажется, что надо писать не 175 объектов, а 174, но это не так. Ради примера – между 3 и 6, включая эти числа – 4 объекта, а не 3. Но, это я немного отвлекся :).
Далее, сохраняем это все дело. Нажимаем кнопку (в самом верху) Original->Import All Essencial, ждем, пока прогрузится, затем жмем Generate->All, и выбираем, куда сохранить файлы. Вот, вроде с файлами разобрались.
Теперь, как привязать этот объект к скрипту. Делается это легко – создается новый объект с названием вот таким [Itemdef “ItemID”], где “ItemID” (без кавычек) тот номер, который мы присвоили объекту (вроде, надо писать в шестнадцатеричном формате, желательно перед этим число ставить “0”(ноль).). В моем случае это выглядело так:

[ITEMDEF 035E8]
DEFNAME=i_robe_magician
NAME=Magicians Robe
RESOURCES=16 i_cloth
WEIGHT=3
TYPE=T_CLOTHING
ARMOR=7
CATEGORY=SnaYpeR Items
SUBSECTION=Misc
DESCRIPTION=Magicians Robe
SKILLMAKE=TAILORING 99.0, t_sewing_kit
RESOURCES2=16 i_cloth,1 i_thread
ON=@Create
COLOR={856 858 859 85a}
HITPOINTS={111 400}

Все, можно запускать сервер, смотреть, что получилось :)


Так, теперь рассмотрим случай, когда нужно создать полностью новый объект. Это дело мало чем отличается от вышеописанного, кроме того, как мы будем вставлять в файл анимации. Сразу хочу сказать, что сам я этого не делал, поэтому описание приведенное здесь может быть не точным, т.к. 175 анимаций у меня не нашлось для этого дела, и проверить, насколько верны мои догадки я не смог :)
Будем предполагать, что у нас уже есть картинки, с черным фоном, и вырезанными частями (для тех частей предмета, которые будут закрываться телом персонажа). Если они объединены(запакованы) в файл с расширением uop, то следующую часть можно не читать.
Ежели нет, то вам придется сделать следующие действия. Перво-наперво, качаем программу UOANIM. Устанавливаем, запускаем, жмем Add Animation. В появившемся окне вводим название объекта (оно не важно, нужно оно только для использование внутри этой программы). В поле block number по идее надо вводить номер свободной анимации, который можно достать с помощью того же Import Animation Dialog в Mulbuilder’e, но лично я не понял, зачем сие нужно. Имхо, вводить нужно так: 1 анимация – block number 0, 2 анимация – block number 1, 3 анимация – block number 2, и.т.д. Каждая анимация может содержать несколько картинок, которые к данной анимации можно привязать, выделив эту анимацию, и нажав add image. Как только все картинки вклеены, и распределены по анимациям, жмем кнопку create patch, и выбираем, куда файл сохранять.
Далее, запускаем Mulbuilder. По началу, действуем точно так же, как и в первом случае, когда мы делали объект с привязкой стандартной анимации. И вот, мы в меню Animation Import (открывается она, после того, как мы в закладке anims жмем кнопку Import Animation Dialog :) ). Там, жмем кнопку UOP, и загружаем наш файл формата uop. Из появившихся слева анимаций начинаем кнопкой “>>Selected” отправлять в правую часть анимации, следя за тем, чтобы не напутать направления. Расшифровки направлений такие:
S – смотрит лицом вниз.
SO – смотрит лицом влево-вниз.
O – смотрит лицом влево.
NO – смотрит лицом влево-вверх.
N – Смотрит лицом вверх.
Как только все анимации перенесены, и все распределены как надо, жмем кнопку ОК. Затем, Original->Import All Essencial, Generate->All. Скрипт пишется аналогично предыдущему случаю.


Есть еще один способ ... 

Автор: Azzazin

Всем хочется нового оружия :) Или хотя-бы сделать вид уникального (какого-нить Драконьего Меча) оригинальным. Но обычно всё упирается в анимацию. Рисовать новую - целая история :D выдрать имеющуюся - достаточно тяжелый патчик.
Так вот...  возможно сделать редирект анимации в anim.idx. Т.е., не добавляя новой анимации (anim.mul), сделать ссылку на неё в индексном файле. 

Значит как это делается...
1. Редирект в anim.idx. Для ентого существует замечатьльная прога : AnimIdxPatcher, которая собственно копирует индексы блоков анимации на указаный номер. Но стоит заметить годится прога токма для одежды/оружия/арморов и т.п... т.е. анимацией начиная с нумера 400 (десятичное!). Прога проста в обращении. Помещаем её рядом с файлом anim.idx, запускаем, указываем исходный номер (например 649 - анимация лука) и новы (в примере - 655), незанятый номер анимации(список занятых прилагается к программке). Собственно давим на кнопку, и патчим файл (сам anim.idx... не забывайте бэкапить ;) ).

2. В чем вам приятней, например МулБилдере делаем новый Итем и ГУМП. Номер Гумпа соответственно 50XXX и, если надо отличный женский 60XXX, где ХХХ номер "новой" анимации (в нашем примере 655).

3. Мулбилдером в Тайлдате для нового Итема заполняем соответствующие поля... Gump/Anim указываем новый номерок (в нашем примере 655). Делаем Вердату.

4. Обскриптовываем это всё под свой любимый Эмулятор :) 

К примеру для Сферы это будет выглядеть следующим образом: 
[ITEMDEF 02D87]
DEFNAME=i_bow_new
TYPE=T_WEAPON_BOW
FLIP=1
SKILLMAKE=17.8 BOWCRAFT
RESOURCES=2 I_LOG
RESOURCES2=2 I_LOG, i_cat_gut
WEIGHT=5
DAM=9,21
//SPEED=20
SKILL=Archery
REQSTR=20
TWOHANDS=Y
CATEGORY=Provisions - Weapons
SUBSECTION=Bows
DESCRIPTION=Bow
DUPELIST=02D88


TDATA3=i_arrow
TDATA4=i_arrow_x

ON=@Create
HITPOINTS={31 60}

[ITEMDEF 02D88]
//New Bow
DUPEITEM=02D87


5. Собственно всё... Кидаем пропатченный anim.mul, новую Вердату и Тайлдату в папку с УО. Скрипт - в нашу Сферу. Запускаем всё и радуемся. :D


*Плюсы данного способа - небольшой размер файлов. Т.е. клиентам мы даем исправленый anim.idx (~220 кило в архиве) + патчик к Вердате с Итемом и ГУМПом (3-7 килобайт в архиве). Всё. Несколько десятков "новых" оружий весят у нас меньше полмегабайта :)

Сделаем Мир лучше! :)


[AUTOR] Информация взята с www.uo-muls.web.ur.ru
    
Истории
· Дневник Балрона
· Дневник орка Гырша
· Друой мир
· Закон Гоблинов
· Хроники Галара
· На кладбище
· Не бывает добра от зла
· Первый день весны
· Правда Жизни
· Night of GM
Учебники
· Учебник по скриптингу

Заметки
· Переменные для чаров
· Переменные для вещей
· Переменные зон.
· Использование оператора IF
· Создание item
· Создание Npc
· Создание trigger
· Все trigger
· Pointers

Работа с вердатой
· Введение
· Редактирование GUMP-ов
· Pедактирование ART-графики
· Добавление нового итема
· Новые монстры
· Ездовые животные
· Новые multi-объекты

All Rights Reserved (C) 2003-2005 Apple Inc,
Копирование информации с сайта Запрещается.

Сайт создан в системе uCoz