Генератор предметов

» опубликован
» Способ реализации: GUI
» Тип: Наработка
Позволяет генерировать предметы разного типа и качества и с разными характеристиками.

Демонстрация

Перед импортом требуется создать в Редакторе Объектов необходимые пассивные предметные способности и сами предметы-пустышки и установить всё это в переменные (триггер "IG Variables").


Просмотров: 1 421

RedLegion #1 - 1 год назад 2
Шикарная наработка! Автор молодец.
Diaboliko #2 - 1 год назад (отредактировано ) 0
Две одинаковые абилки иметь нельзя -> из двух одинаковых способностей на предметах работает лишь одна (так как ты даешь их герою отдельно).
Например: 2 оружия в правую руку на +3 атаки каждое дают вместе +3 к атаке.
Есть способы обойти это, если не ошибаюсь, при помощи какого-то бага с мгновенным удалением предметов или что-то типа того(никогда не задавался этим вопросом так что не знаю), но да...
Элсо систему можно модернизировать колдуя над айдишниками предметов и абилок, что позволит избежать большинства сравнений.
Arctide #3 - 1 год назад (отредактировано ) 0
RedLegion, благодарю!
Diaboliko, если сделать способности отдельно на каждый тип предмета, то всё работает. Про другие способы не в курсе.(
А по-конкретней про колдовство можно?)
Diaboliko #4 - 1 год назад (отредактировано ) 0
А по-конкретней про колдовство можно?)
Ну ты проверяешь типы предметов(кстати все условия будут проверяться так как они идут друг за другом а не в поле иначе (если оружие(п) то ... иначе если оружие(л) то ........)), а мог бы присвоить айдишники, например, с 'IC00' до 'ID00' (65536 или 65535 (много крч) значений) оружию в левой руке. Далее аналогично используешь айдишники 'AC00' до 'AD00' для способностей для этих предметов. Далее совершаешь арифметическую магию и определяешь какие скиллы нужно давать герою(что-то вроде определить модулус деления ID предмета на 256 и вычесть его из ID предмета (дабы IC07 было IC00), потом вычесть разницу между IC00 и AC00, в итоге мы имеем первый айдишник группы абилок для этих предметов). Какие конкретно абилки выдавать предмету - тут уж не знаю какой подход стоит применять. На что фантазии хватит. Если абилок меньше или равно 32 - можно сохранять какие абилки выданы в битах(потом просто прибавляем номер бита(1 бит - нулевой) к первому айди группы абилок и получаем нужную абилку) в ItemUserData
Т.е. сравнение по битам вроде:
Если ItemUserData >= 2^32, то выдаем AC00 + 0
Если ItemUserData >= 2^31, то выдаем AC00 + 1
...
Но такая архитектура не очень хорошо переносит правки, так что все нужно продумать изначально.
Arctide #5 - 1 год назад (отредактировано ) 0
Diaboliko, спасибо, может для основного проекта ещё что-нибудь придумаю, но для наработки, думаю, существующая простая система вполне подходит. Главное чтобы новички понимали как и что работает, а опытные ребята такую наработку и сами могут сделать.
Artyom18 #6 - 9 месяцев назад 0
так его же открыть невозможно! (в редакторе)
Steal nerves #7 - 9 месяцев назад (отредактировано ) 0
Artyom18, можно. только обычным не откроешь, а нужно скачать jngp и включить плагин USM. Этот плагин предоставляет новые гуишные функции (огромный набор) и много чего другого. Вообще-то это все есть на jass и можно было без этого плагина, но специально для гуишников предоставили функции. Походу у автора где-то используется нестандартная гуишная команда, и обычный редактор ее не распознает.
» пример
Давно когда начинал. Я пытался сделать итем Power Threads из доты. там простая подмена. используется обычная нативка. Она есть в варкрафте 3, но в гуишном варианте не отображается. А если включишь плагин, то тебе даст эту нативку в гуи. Станд. редактор не видит это и поэтому закрывает карту
native UnitAddItemToSlotById takes unit whichUnit, integer itemId, integer itemSlot returns boolean
у меня открывается