Доброго времени суток! тут у меня что-то пошло не так, можете взглянуть и подсказать что не так делаю?
решил доработать пример от 8gabriel8 об ограничении предмета используя цикл..но когда речь идет о 200 предметов то плодить 200 триггеров для этого нет смысла, по этой теме xgm.guru/p/wc3/196436?postid=361451
вот наработки
в основном цикл предназначен для повтора...то есть он повторяется 999 раз но...как мне сделать его чтобы работал по убыванию? также читал про Хэш Таблицу...как понял это...шахматная доска внутри памяти...есть возможность чтобы например в 1 0 был 1 предмет 2 0 2 предмет 3 0 3 предмет из массива конечно а 1 1 будет уже ограничение для предмета с индексным номером или 2 1 или 3 1

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

Дополняю ответ что я хотел этим сказать
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
5 лет назад
Отредактирован nazarpunk
0
а есть например ДРУГИЕ которые не должны проходить проверку
Всё что не указано в этом блоке не подвергается проверке. Логично?

Хотя если так сильно хочется, можно использовать ItemCount в качестве индекса массива. Но лучше вообще забыть этот триггер))
Загруженные файлы
0
26
5 лет назад
0
От простого повторения не стало понятнее. Кто понимает, объясните значение "для каждого предмета свой ПРЕДЕЛ", пожалуйста!
Если имеется ввиду, что один предмет можно иметь в единственном экземпляре, второй в количестве двух, а третий в трёх, то тут просто значение целочисленной надо больше брать из моего примера по ссылке, но зачем тогда хэш-таблица?
0
8
5 лет назад
0
NazarPunk:
а есть например ДРУГИЕ которые не должны проходить проверку
Всё что не указано в этом блоке не подвергается проверке. Логично?

Хотя если так сильно хочется, можно использовать ItemCount в качестве индекса массива.
...так я запутался уже..
вот есть массив предметов тип переменной Тип Предмета с порядковым номером и есть целочисленная переменная..если герой получил предмет ItemType[1] увеличивать целочисленную переменную на 1 за счет этого предмета если индекс дошел до 2 то убрать предмет..это не должно работать для других предметов которые не указаны в ItemType
0
26
5 лет назад
0
Вот теперь понятно)
0
29
5 лет назад
0
объясните значение "для каждого предмета свой ПРЕДЕЛ"
Один герой может носить определённой количество определённых типов предметов.
так я запутался уже
Тогда не пишите такие сложные системы и начните с азов.
0
26
5 лет назад
0
Но пока некогда объяснить, если только позже.
0
29
5 лет назад
0
но зачем тогда хэш-таблица?
Чтоб не перебирать массив и не упасть по оплимиту.
Логика простая:
  • Герой получил предмет
  • Если по равкоду предмета в хэштаблице есть запись, значит колличество предметов этого типа в инвентаре ограничена
  • Получаем это значение из таблицы
  • Пробегем по инвентарю и считаем количество предметов -1 (полученный предмет тоже учитывается)
  • Если количество больше допустимого (а допустимое количество мы уже получили из хэштаблицы), выбрасываем предмет
0
8
5 лет назад
0
мне нужно лишь присвоить переменные
Загруженные файлы
0
29
5 лет назад
0
Centyrion, что по вашему мнению должен сделать этот триггер?
0
8
5 лет назад
Отредактирован Centyrion
0
проверяет если герой получил предмет ...потм идет проверка полученного предмета и в другое условие проверяется сколько предметов в инвентаре если в инвентаре 2 предмета такого типа убрать его...ну тут и цикл от 1 д 6 нужен и потом почищать переменную нужно если герой теряет предмет itemcount = itemcount - 1
0
29
5 лет назад
0
ну тут и цикл от 1 д 6 нужен
Так чего вы его не написали?
потом почищать переменную нужно
А этот блок не обнуляет переменную при получении предмета?
Загруженные файлы
2
8
5 лет назад
2
этот блок при инициализации карты хотел поставить а при получении увеличить itemcount = itemcount +1
нашел ошибку...оказывается я при инициализации карты устанавливал ItemCount от 1 до 99 в 0...это не надо делать...в блоке где идет увеличение индекса на 1 они повторяются и любой другой предмет из массива пропадет так как увеличиваю одновременно и другие индексы в целом цикл прекрасно работает
так он должен выглядеть
но спасибо за ответы...
Загруженные файлы
0
26
5 лет назад
Отредактирован 8gabriel8
0
По идее тебе можно обойтись без массива предметов, а просто указать в условии множественное ИЛИ и все нужные туда внести. Например, есть у тебя лёгкие, средние и тяжёлые сапоги и лёгкие, средние и тяжёлые перчатки. Понадобится в данном случае лишь один массив целочисленных переменных pair[1], такой массив состоит из двух переменных - pair[0] и pair[1], а вообще максимально массив содержит 8192 переменные от 0 до 8191. Пусть pair[0] будет отвечать за сапоги, для этого будет такой триггер:
С: Юнит Получает предмет
У: Множественное ИЛИ
  • (Item being manipulated) равно Лёгкие сапоги
  • (Item being manipulated) равно Средние сапоги
  • (Item being manipulated) равно Тяжёлые сапоги
Д: как и ранее цикл от 1 до 6 с целочисленной переменной pair[0]
Аналогичный триггер для перчаток с pair[1].
0
29
5 лет назад
Отредактирован nazarpunk
0
8gabriel8, не проще ли вообще обойтись без циклов, массивов и множественных или и просто выделить категорию для предметов экипировки и по уровню определять слот? Нечто подобное я здесь делал.
Загруженные файлы
0
26
5 лет назад
0
Есть вероятность, что этот Центурион и есть забаненный Легион по ссылке из вопроса, а он, если мне не изменяет память, не хотел отдельных категорий предметов, ему так легче было работать с ними в редакторе.
0
8
10 месяцев назад
0
Дополняю ответ что я хотел этим сказать
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.