Здравствуйте, друзья!
Давненько искал систему объединения предметов в инвентаре, например, когда два зелья лечения становятся одним с количеством зарядов два. Нашёл несколько, но никак в огромной массе действий не разберусь, что там и зачем. Потому, если вас не затруднит, не могли бы мне на гуишных триггерах объяснить:
  • Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
  • Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
  • Как это можно сделать покороче для множества разных типов предметов?
  • Как правильно реализовать в инвентаре 7 слот?
  • А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
Прошу объяснить именно на гуишных триггерах, так как надо для кампании, а кампании с JASS не очень дружат.

Принятый ответ

ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
Загруженные файлы

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
23
7 лет назад
0
8gabriel8, Пробовал зделать по этой же системе но чтото не вяжетса друг с другом.
0
18
7 лет назад
Отредактирован Maniac_91
0
Можно дать юниту способность, у которой в целях есть предмет. Когда срабатывает способность, создать новый предмет, установить ему количество зарядов = количество зарядов цели способности (то есть старого предмета) минус (количество зарядов старого предмета /2), а потом делить количество зарядов цели способности на два и установить старому предмету это число зарядов.
0
23
7 лет назад
0
Maniac_91, Можеш зделать я и сам не против уже мозги кипят.
0
18
7 лет назад
0
FrigatPlay, сейчас не могу - из сети выхожу (комп занят будет). Попробуй пока что самостоятельно, а если не выйдет - вечером сделаю.
0
26
7 лет назад
0
Maniac_91:
Можно дать юниту способность, у которой в целях есть предмет. Когда срабатывает способность, создать новый предмет, установить ему количество зарядов = количество зарядов цели способности (то есть старого предмета) минус (количество зарядов старого предмета /2), а потом делить количество зарядов цели способности на два и установить старому предмету это число зарядов.
Как тогда такой способностью пользоваться? Активировать её и выбрать предмет в инвентаре? Или она пассивкой будет? Только мне не надо на два делить, надо по-одному заряду разбирать предмет, и когда перекладываешь не в пустой слот, а в слот с предметом этого типа, то чтобы заряды плюсовались.
0
27
7 лет назад
Отредактирован MpW
0
ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
Загруженные файлы
Принятый ответ
0
26
7 лет назад
0
кампании не дружат с jass? а объясните тогда мне, что есть гуи?
0
18
7 лет назад
0
FrigatPlay, вот пример разделения зарядов (вычитает по одному).
Загруженные файлы
0
26
7 лет назад
0
Я до конца всё-таки не въехал, но теперь более-менее, благодаря вам, понять работу с зарядами могу, спасибо!
Steal nerves, а что за системы CCS?
Hate:
кампании не дружат с jass? а объясните тогда мне, что есть гуи?
Я в JASS почти не разбираюсь, потому конкретно тыкнуть в проблему не готов. Но на гуи самый очевидный пример с custom script, если в главе кампании просто прописать в триггере custom script, то вместо загрузки главы появится чёрный экран и всё.
0
23
7 лет назад
0
8gabriel8, Может уже выбереш лудший ответ и закроеш тему?
0
27
7 лет назад
Отредактирован MpW
0
а что за системы CCS?
8gabriel8, я уже скинул выше
при заполненном инвентаре юзай руны, пример карты Items и hh
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.