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

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

Ответ
 
zibada

offline
Опыт: отключен
Блин, ну модели-то этих trackables можно невидимыми сделать, чтобы вообще на глаза не лезли, а только события генерили..
(в крайнем случае - сделать спец. модель для этого, обладающую размерами, но незаметную на фоне земли)
Модели, отображающие наличие предметов инвентаря, шлепать отдельно - либо юнитами, либо итемами, либо вообще обычными спецэффектами..
Старый 07.05.2004, 16:07
frodo

offline
Опыт: 493
Активность:
DimonT у меня есть несколько вопросорв по твоему скритпу :
Вопрос 1 - Как ты расчитываеш координаты для новой кнопки/обьекта в инвентаре???
Вопрос 2 - Зачем ты делаеш все предметы однотипными???
Вопрос 3 - Что такое trackable и как оно рабоет???
Если можно поподробнее:)
Старый 07.05.2004, 18:57
Markiz

offline
Опыт: 11,432
Активность:
Цитата:
Блин, ну модели-то этих trackables можно невидимыми сделать, чтобы вообще на глаза не лезли, а только события генерили..

Что-то я тебя совсем не понял. Траккаблес - это такая весчь,которую убрать невозможно,придется заслонять через цинематик фильтер. Ладно.
Ради интереса,вот мой за-2-недели-склепанный-инвентарь
Иконок там пока мало,мне в лом столько резать. Короче,зацените!
З.Ы. Карта защищена High-2 protector,она нужна для проекта(не карта а инвентарь)
Старый 07.05.2004, 21:56
vlad_C0M
Босс DarkSkyTeam
offline
Опыт: 10,459
Активность:
Ой ой ой :) ... Чет меня тут небыло по мойму с конца первого сообщения в моем офисе :) ... Ибо офис мой неиспользовался ... Но ибо это флуд и ИБО я начинаю ОТВЕЧАТЬ на ваши вопросы ... ИБО С ЭТОГО ПОСТА :) ...
Ну что ? :) хехехе ... Димон - как всегда ленится обьяснить по русски ? :) Хех это ко мне ! Сумка говорите ! Ах да ! Вот ТТТКА Мой примерчик но словестный :
  1. Создается специальный юнит(не герой) - название "bag" ( ability - 6 slots )
  2. Создаются такие абилити для юнита как NEXT BACK и CLOSE
  3. У юнита ставится Нулевая модель ... Юнит невидим...
  4. Создается несколько таких юнитов - под итемы - (рюнит есть 6 СЛОТОВ сумки)
  5. Типа во время перемещения Сумки - Идет перевод ВСЕХ команд через Issue Owder и т.д. Самому герою итого используя предмет сумку мы одновременно открыли как будто еще одного героя только уже с открытой сумкой ...
  1. Эффекты ... Про Эффекты ( Больше чем 3 эффектов нельзя дать никому ... )
  2. Мы все прекрасно знаем что АУРЫ героя даются всем ... А значит - МЫ просто делаем ВСЕМ юнитам типа BAG - ежесекундное перемещение на героя ... Итого ВСЕ Ауры ВСЕХ ПРЕДМЕТОВ которые будут в СУМКЕ будут наложены на героя в том числе ... И всевозможные +5 к атаке и +10 к защите ... Итого - мы почти ВСЕ эффекты напустили через ауры ...
Осталось добавить что НАМ неудастся сделать тоже самое с другими параметрами ...
Остальные параметры думаю можно сделать через такие штуки как - меч щит и т.п. которые будут ПРОСТО находится в инвентаре ... Думаю эффектов от аур если нехватит можно добавить легинький триггер который будет учитывать расстояние до ЮНИТА у которого используется параметр такая та Аура ...
Вот и ВЕСЬ САМ принцип ... Могу написать подробно ... Но Мапперам будет принцип понятен ... Кому нужно ДОСЛОВНО и опять же - ПОДРОБНО ПО РУССКИ - пишите сюда ... Если будет не лень напишу все подробно :)...
Старый 07.05.2004, 21:59
Markiz

offline
Опыт: 11,432
Активность:
Тебе еще придется делать aLoc тому юниту,чтоб его выбрать было нельзя рамкой,а если ты дашь aLoc,то и с инвентарем больше сделать ничего не сможешь...
Диллема...
Старый 07.05.2004, 22:54
zibada

offline
Опыт: отключен
2 frodo
1. Берется точка, далеко за пределами "игровой зоны", далее от нее по определенным смещениям создаются юниты.
Всего есть 2 зоны для предметов (6- и 50-слотовая), в каждой юниты создаются в определенном порядке, то бишь, по координатам юнита можно узнать его номер (в массиве) и наоборот.
Размер одного экрана - насколько помню, что-то около 1700х900 игровых единиц, исходя из этого, подгонялись смещения для каждой из зон, чтобы предметы вставали точно в дырки в картинке.
(плюс 2 юнита, скрытые под картинкой - "кнопки" обмена и выхода)
Точные формулы не помню, посмотри в скрипте...

2. Не предметы, а юниты... все эти юниты заносились в массив, по событию "Unit Selected" определялись координаты, а по ним - и порядковый номер кликнутого юнита.
Клики по итемам игрой не отслеживаются, поэтому пришлось делать юнитов.. а разными их делать просто смысла нет.

3. Что-то вроде спецэффекта - на карту в определенной точке шлепается модель, перемещать/удалять модель после создания нельзя. Зато есть события, срабатывающие при клике и наведении мышки на эту модель. Это - единственный способ как-либо ловить перемещения мыши по экрану.

2 Markiz
Цитата:
Траккаблес - это такая весчь,которую убрать невозможно,придется заслонять через цинематик фильтер

Кого заслонять?! Модель делается прозрачной и невидимой игроку (продолжая при этом генерить события). Зато можно отследить наведение мыши на любой, даже пустой слот инвентаря.
(и, допустим, при таком наведении выводить texttag-ом название итема)

В занятых предметами слотах размещать муляжи - юниты или спецэффекты. Никаких событий, с ними связанных, ловить вообще не нужно - просто добавлять/удалять (для вида), за всю обработку действий с инвентарем у нас отвечают "невидимые" тракаблы.

2 vlad
тут речь о другом скрипте...
Старый 08.05.2004, 01:06
vlad_C0M
Босс DarkSkyTeam
offline
Опыт: 10,459
Активность:
2: DimonT =) ... Ты забыл про название топика и вопрос создателя ...
Насчет твоего скрипта скажу одно - я мучался твоим способом ... Дело в том что когда используешь этот скрипт - не видно персонажа ... Получается эдакое "сложное" и неудобное ...
Так что думаю на скрипт лучше забить и не вспоминать ...
Можно придумать что нибудь получше ...
Fade Filter - эта вещь предназначена совершенно для другово ... Она не пригодна для создания менюшек ... и т.п.
Насчет скрипта - мне сам скрипт понравился ... Но уж СЛИШКОМ много труда в него вложено ...
Взять хотя бы тот же Массив Итемов ..... В несколько тысяч ...
\
У меня есть еще парочка вариантов создания сумки ... Если интересно напишу :)
Старый 08.05.2004, 06:57
frodo

offline
Опыт: 493
Активность:
Vlad_COM :
Цитата:
У меня есть еще парочка вариантов создания сумки ... Если интересно напишу

Пиши :).

frodo добавил.
DimonT :
Цитата:
Берется точка, далеко за пределами "игровой зоны", далее от нее по определенным смещениям создаются юниты.
Всего есть 2 зоны для предметов (6- и 50-слотовая), в каждой юниты создаются в определенном порядке, то бишь, по координатам юнита можно узнать его номер (в массиве) и наоборот.
Размер одного экрана - насколько помню, что-то около 1700х900 игровых единиц, исходя из этого, подгонялись смещения для каждой из зон, чтобы предметы вставали точно в дырки в картинке.
(плюс 2 юнита, скрытые под картинкой - "кнопки" обмена и выхода)
Точные формулы не помню, посмотри в скрипте...

Как я понял весь инвентарь построен на одном оффсете.А может вместо етого поставить регионы и в них юнитов напихать ,которые будут для отслеживания кнопки мышки?

Цитата:
Не предметы, а юниты... все эти юниты заносились в массив, по событию "Unit Selected" определялись координаты, а по ним - и порядковый номер кликнутого юнита.
Клики по итемам игрой не отслеживаются, поэтому пришлось делать юнитов.. а разными их делать просто смысла нет.

Можно также напихать в инветаревые слоы по одному юниту\определителю клика, и отлавливать их таким образом.И ещо можно не пихать стока строк описания об итемы если зделать РЕАЛЬНЫЕ предметы из чюмадана главного героя и потом перемещать их в раздные слоты инвентаря.Имхо , если предметы не юнит то они имеют описания внизу, слева от иконки.Как я думаю етим способом можно сократить количества строк в скрипте раза в два...
Цитата:
Что-то вроде спецэффекта - на карту в определенной точке шлепается модель, перемещать/удалять модель после создания нельзя. Зато есть события, срабатывающие при клике и наведении мышки на эту модель. Это - единственный способ как-либо ловить перемещения мыши по экрану.

По названию не сразу понял...

frodo добавил.
Markiz хорошая система оружия, как я понял она основывается на одних мультибордах, вот только анимация храмает...

frodo добавил.
DimonT : Обьясни , пожалуйста, как можно сделать слоты в инвентаре которые загораются когда на какой-нибудь итем жмеш(как ты говорил)???Заранее спасибо:).
З.Ы.Нашел целую кучу моделей мечей\армора , непомню откуда спер но для инвентаря точно згодиться.
З.З.Ы Картинку на задник почти нарисовал , сейчас хочу зделать вместо обычных бордеров под итем в инвентаре зделать нормальную картинку.
Старый 08.05.2004, 07:09
zibada

offline
Опыт: отключен
2 vlad
Цитата:
Fade Filter - эта вещь предназначена совершенно для другово ... Она не пригодна для создания менюшек

Для создания графических менюшек - еще как пригодна..
(у меня в вц:арене 2.0 будет конфиг. менюшка, основанная именно на trackables и FadeFilter, взамен системы убогих диалогов)
альтернатива - только MB, но в них не отслеживаются клики, да и графики требуется немеряно.
Про варианты типа "командной строки" через чат я промолчу...

Цитата:
Но уж СЛИШКОМ много труда в него вложено ... Взять хотя бы тот же Массив Итемов ..... В несколько тысяч

10 минут у меня заняло заполнение всего этого массива. :)

2 frodo
Цитата:
Как я понял весь инвентарь построен на одном оффсете.А может вместо етого поставить регионы и в них юнитов напихать ,которые будут для отслеживания кнопки мышки?

эээ... а смысл? Зачем лишняя возня с регионами, если уже есть расчет смещения по номеру итема?

Цитата:
Как я думаю етим способом можно сократить количества строк в скрипте раза в два...

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

Цитата:
Обьясни , пожалуйста, как можно сделать слоты в инвентаре которые загораются когда на какой-нибудь итем жмеш(как ты говорил)???

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

2 Markiz
Посмотрел я эту систему.. знаешь, если уж применять MB, лучше делать текстовые подписи - картинки, порезанные на много мелких квадратиков, нагнетают тоску... думаю, человек, не знакомый с техническими подробностями работы MB, не оценит. :)
Да и места оно многовато на экране занимает для 5 итемов, и это учитывая, что клики по MB игрой вообще не отслеживаются.
Старый 08.05.2004, 11:21
frodo

offline
Опыт: 493
Активность:
DimonT : спасибо, остался ещё один вопрос и пойду делать инвентарь.Как зделать чтоб скрипт читал из тхт\слк и потом записывал к себе в переменную???
Старый 08.05.2004, 12:05
zibada

offline
Опыт: отключен
Никак, в том-то и дело...
Я пропускал этот файл (ItemStrings.txt) через текстовый редактор с поддержкой регулярных выражений для замены, чтобы такой текст:
[amrc]
Name=Amulet of Recall
Hotkey=R
Tip=Purchase Amulet of |cffffcc00R|recall
Ubertip="Teleports <AIrt,DataA1> of the player's units within the targeted area to the location of the Hero when used."
Description=Can be used to teleport units to the user.
превращался в такой:
set udg_INV_item_code[i]='amrc'
set udg_INV_item_name[i]="Amulet of Recall"
set udg_INV_item_desc[i]="Can be used to teleport units to the user."
set i=i+1
как вынимать коды абилок из slk, пока не знаю... наверно, напишу скриптик на php для обработки и повешу на сайт. :)
Старый 08.05.2004, 12:23
frodo

offline
Опыт: 493
Активность:
DimonT : Ну я тебя и спрашиваю КАК ты его делал:).Я написал почти все коды для абилок вручную:) писал часа полтора, поэтому и спрашиваю .
Старый 08.05.2004, 12:32
zibada

offline
Опыт: отключен
А я помню? у меня этих настроек нигде не сохранилось, я этим все-таки почти год назад занимался. :)
Сегодня попробую сообразить скриптик для генерации всего этого кода... вручную часами все набирать - не наш метод. :)
Старый 08.05.2004, 12:44
frodo

offline
Опыт: 493
Активность:
Ничего себе :) , если почти год тогда понятно.:))
Старый 08.05.2004, 13:05
zibada

offline
Опыт: отключен
а вот и готовый кусок скрипта с абилками и описаниями всех итемов 1.14. :)
в скрипт инвентаря надо добавить переменную - INV_item_abil типа String Array.
(т.к. абилок у итема может быть несколько, придется эту информацию хранить в массиве строк, а не integer-ов...)
Старый 08.05.2004, 15:15
frodo

offline
Опыт: 493
Активность:
Ужас!Это сколько там строк???:)

frodo добавил.
DimonT :
Цитата:
т.к. абилок у итема может быть несколько, придется эту информацию хранить в массиве строк, а не integer-ов...)

Значит, перед тем как вписывать в текст надо конвертнуть в интегер, или ненадо?
Старый 08.05.2004, 15:51
zibada

offline
Опыт: отключен
В интегеры надо конвертировать непосредственно перед применением функций Add/Remove Ability, а храниться оно должно в виде строк.
Только тут надо писать спец. функцию преобразования такой строчки в код спелла - обычный S2I тут явно не пойдет. :)
хотя, можно в код писать строчки не вида "A000", а их перевод в число - для 'A000' это будет "1093677104", а потом уже юзать функцию S2I и получать код абилки... подумаю над этим вариантом.
Старый 08.05.2004, 16:08
frodo

offline
Опыт: 493
Активность:
Цитата:
В интегеры надо конвертировать непосредственно перед применением функций Add/Remove Ability, а храниться оно должно в виде строк.

Я об этом и говорю.

frodo добавил.
Помойму в событиях есть такая фишка : конверт стринг ту интегер.
Старый 08.05.2004, 16:24
zibada

offline
Опыт: отключен
эта функция переводит строку типа "12345" в число 12345, а нам надо строку вида "A000" перевести в число 'A000'... (это 1093677104 в 256-ричной системе счисления).
отсюда и варианты - либо в инициализацию заталкивать строки "A000, A001, A002..", и тогда нужна специальная функция перевода, либо "1093677104,1093677105..." и это уже можно переводить в код абилки стандартной функцией..
Старый 08.05.2004, 16:48
frodo

offline
Опыт: 493
Активность:
Дааа...задачка не из легких.А может пихнуть все абилы предмета в разные переменные ?
Например : set udg_INV_item_code[i] = 'cnhn'
set udg_INV_item_abil[i] = "Arel"
set i2=i2+1
set udg_INV_item_abil[i2]="AIl1"
set udg_INV_item_name[i] = "Horn of Cenarius"
set udg_INV_item_desc[i] = "This is the Horn of Cenarius."
set i=i+1
Старый 08.05.2004, 16:59
Ответ

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

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

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

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



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