XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
Equipment system (система экипировки)
Впринципе их уже много понаделали, я лиш предлагаю свою.
Собственно она предназначена преимущественно для моделей чаров из WoW но естественно может быть применена и к другим моделям после редактировании модели\изменения кода.
Собственно принцип распределения предметов:
Артефакты - оружие:
1лвл - одноручное
2лвл - одноручное для левой руки
3лвл - щиты
4лвл - двуручное
5лвл - стрелковое\огнестрельное
Постоянные - броня:
1лвл - наплечники
2лвл - шлемы
Это лиш основные типы экипировки которые я знаю, по их примеру можно сделать и остальные вроде нагрудника, ботинок, перчаток и т.п.
Отдельно хотелось бы отметить полноценную систему Dual Weld, позволяющую носить любое одноручное оружие в левой руке, совместно с любым одноручным в правой. Это наиболее сложная часть системы и из-за нее есть пара изъянов, подробнее я опишу ниже.
Теперь подробнее об устройстве:
I. Каждый юнит на карте, который может быть экипирован должен иметь свой номер.
Впринципе в большинстве РПГ\ОРПГ у каждого игрока по 1 герою, поэтому в качестве
этого номера удобно использовать номер игрока, собственно в приложенном примере сделано
именно так. В других случаях можно использовать Custom Value или кеш.
II. Для данной системы должны быть созданы по 2 логических глобальных
переменных-массивов на каждый тип экипировки:
1. отвечающий за возможность персонажа носить данный тип экипировки, например
HeroCanEquip2H[] - т.е. может ли этот герой брать двуручное оружие
Эти переменные задаются герою с самого начала и могут быть изменены по ходу, если персонаж например выучил соответствующий навык ношения такого-то оружия\брони.
2. определяющий, есть ли уже у юнита предмет данного типа, например
HeroEquipped2H[]
Индексы этих массивов означают номер юнита.
Этот номер определяется действием в тригерах PickUp и Drop
local integer pid = GetConvertedPlayerId(GetOwningPlayer(u))
т.е. если ваши юниты пронумерованы Custom Value, нужно сделать так:
local integer pid = GetUnitUserData(u)
III. Для того, чтобы работал Dual Weld, нужна глобальная целочисленная
переменная-массив WeaponDual в которой будет храниться ИД предмета в левой руке.
(Важно!) Необходимо в триггере PickUp в функции OneHequals (2й по счету) указать
все возможные эквиваленты одноручных оружий через их ID (один эквивалент
прокоментирован).
Эту часть конечно можно назвать недостатком данной системы, т.к. в случае если
в карте очень много одноручного оружия, то придется ставить эквивалент к каждому,
однако это необходимое условие для корректной работы системы, к тому же по сути идет замена предмета, следовательно для каждой руки можно сделать свой вариант предмета,
например в левой руке предмет будет давать заниженные бонусы и т.п.
Из дополнительного: в карте сделан простой пример изменения дальности атаки через морф и блок с щитом. Блок не универсален, т.е. без динамического создания триггеров и т.п. просто сделан для демонстрации работы щита.
Примечание: при выбросе предмета из левой руки, предмет падает не в указанную
точку а под персонажа. Это сделано во избежание возможных багов, связанных с
передачей предмета из левой руки другому юниту, при этом предмет не передается,
а лиш выкидывается.
Скажу сразу, что на джасе я пишу недавно, поэтому если будут придирания к коду, то хотелось бы сразу увидеть ваш вариант упрощения=)



Пример (тяжеловат из-за импорта)
Прикрепленные файлы
Тип файла: w3x EquipSample(GUI).w3x (448.2 Кбайт, 196 просмотров )
Тип файла: w3x EquipSample.w3x (446.8 Кбайт, 75 просмотров )

Отредактировано JimALIEN, 15.01.2009 в 10:34.
Старый 18.11.2008, 16:32
RazArt

offline
Опыт: 11,197
Активность:
Имхо баян, уже видел почти такую на форуме. не универсальный, для кажого юнита куча моделей => Большой вес карты => об онлайне можно забыть. Когда берёш 1 айтем немного лагает. Кажеться все пока)
Старый 18.11.2008, 17:10
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Неплохо, однако есть ряд недостатков.

1) Странная система массивов. Это не очень удобно. Кто мешал сделать интерфейсы ?
2) Если юзаешь массивы - юзай vJass.
3) Неудобная система регистрации предметов - использовать функцию я не рекомендую.

PlayerDark добавил:
Ну код конечно тоже не идеален. Хотя довольно работоспособен.
Старый 18.11.2008, 17:14
RPGamer
учу jass...
offline
Опыт: 2,085
Активность:
JimALIEN, зачем такое писать на жассе, если можно банально на гуи?
Старый 18.11.2008, 17:16
Korneliy
DMF
offline
Опыт: 23,443
Активность:
баян. уже выкладывали подобное, даже в академии. и я и другие юзвери.
Старый 18.11.2008, 17:19
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
JokArt
в чем неуниверсальность? модели будут верно отображаться на любом юните.
PlayerDark
я недавно пишу на жасе, до вжаса пока не дотянулся, как ты предлагаеш регистрировать предметы?=\
но спс
RPGamer
есть и на гуи, на джасе оптимальней
Korneliy
если честно я не видел системы с рабочим dual weld... покажи плз
Старый 18.11.2008, 17:40
Korneliy
DMF
offline
Опыт: 23,443
Активность:
если найду старую свою Slayers: TR. там все основывалось на похожем принципе, просто было: лвл1 - правая рука, лвл2 - левая(неважно, щит или меч), лвл3 - обе руки. ну и банальное выбрасывание шмотки из инвентаря при несовпадении.
Старый 18.11.2008, 17:44
CDJ
Unity 3D engine user
offline
Опыт: 5,954
Активность:
JokArt,существуют ещё и различные сингл рпг.
RPGamer,имхо,дабы избежать утечек...
Старый 18.11.2008, 17:53
RazArt

offline
Опыт: 11,197
Активность:
JimALIEN, неуниверсальность в самих юнитах. Для каждого придёться делать модель с анимациями дальнего боя, ближнего 1 ручным мечём, 2 ручным, рупопашный бой, да и много чего ещё
Старый 18.11.2008, 18:17
CeraRalaz
...
offline
Опыт: 48,115
Активность:
ScorpioT3k делал точь-в-точь такуюже.Просто как с оттиска.
Комментировать нет смысла:Всё класно,всё понравилось.
Вот если бы она в мультиплеере работала,то тогда это было бы что-то выдающееся.

CeraRalaz добавил:
Ну ты разве что модельки прикрутил.
Старый 18.11.2008, 18:19
CDJ
Unity 3D engine user
offline
Опыт: 5,954
Активность:
JokArt,зачем для каждого то? Это всё можно сделать всего одним триггером...
Старый 18.11.2008, 18:23
Фил
Gun FAN
offline
Опыт: 15,373
Активность:
JokArt, а ты как хотел?... чтобы и для одноручника, и для двуручника ,и для копья и для стрелкового проигрывались одни и те же анимы?... думайте, прежде чем говорить, сударь...
Старый 18.11.2008, 18:28
RazArt

offline
Опыт: 11,197
Активность:
Feleer, так я и говорю что нет смысла её использовать в онлайн картах или только через сайты типа епика распостранять
Старый 18.11.2008, 18:33
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
JokArt
У меня уже есть 2 карты (которые я к сожалению забросил) в одной из которых 8 импортированых юнитов и дофига оружия причем весит она 2мб. Собственно каждая модель весила не так уж и много, т.к. изначально задумывалось, что определенный герой сможет носить лиш 2-3 вида оружия, т.е. ненужные анимации я просто удалял. Такчто ограничения конечно есть, куда ж без них, но не все так плохо.
CeraRalaz
Систему Скорпиота не видел, извиняюсь если действительно точ-в-точ) а в мульти она вполне исправно пашет, специально для этого и делал на массивах.
Старый 18.11.2008, 18:46
RazArt

offline
Опыт: 11,197
Активность:
JimALIEN, А какие анимации не нужные? оО Анимации все остаются, но вот анимация атаки меняется
Старый 18.11.2008, 18:51
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
Ну скажем ты изначально задумал сделать героев таурена и эльфийку, причем таурен может носить только одноручное, щиты и двуручное оружие, а эльфийка - только одноручное или огнестрельное. Т.е. таурену не нужны анимации Attack Fifth, Stand Fifth, а эльфийке не нужны анимации Attack Second, Stand Hit Defend, Stand Second. Т.е. удаляем моделям эти анимации. Ну примеры примитивные но смысл я думаю ясен.
Старый 18.11.2008, 19:23
CeraRalaz
...
offline
Опыт: 48,115
Активность:
А где ты стока моделей с полным комплектом анимаций раздобудешь?
Старый 18.11.2008, 20:37
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
CeraRalaz
Экспортом из WoW=)
Старый 18.11.2008, 20:43
CeraRalaz
...
offline
Опыт: 48,115
Активность:
И сколько будет весить твоя карта?Как сам WoW или на пару гигов полегче?
Старый 19.11.2008, 15:11
ScorpioT1000
Работаем
offline
Опыт: отключен
Я же делал вроде такую?

ScorpioT1000 добавил:
ну т.е. оптимальнее )
Старый 19.11.2008, 15:13
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:11.