Вопрос про работу переменных
Знающие люди, подскажите, пожалуйста, почему в представленном триггере xgm.guru/p/wc3/216986 последняя переменная в цикле игнорирует переменную вне цикла, если по завершении цикла последняя переменная всегда должна быть равна "нет"?

Лучший ответ:
Это значение должно быть у переменной перед выполнением цикла, у меня оно устанавливается после цикла, чтобы триггер в следующий раз начался с этим значением, но можешь поставить её первым действием.
Представь, как работает цикл, когда игрок поднимает предмет. Цикл проверяет каждую ячейку и находит в одной из них подобранный предмет, то есть переменная всегда будет становится Да. Нужно сбрасывать её значение на Нет для правильного выполнения каждый раз.
Тебе не понятен какой-то момент, но мне трудно его определить. Попробуй сам сформулировать и описать принцип работы триггера, который считаешь правильным, чтобы игрок не мог подобрать второй предмет.



Просмотров: 117

XGM Bot #1 - 2 месяца назад 0
Похожие вопросы:

» ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
» ответ
в чем редактор вкв3 отличается от редактора ск2 - к сожалению, в вк3-шном эдиторе не удастся отловить все данные.
если ты скажешь, что конкретно делает твой спелл, тебе могут подсказать более легкий вариант исполнения
насчет спецэффектов - утечка решается просто
  1. создаешь точку, если спец на земле. если спец на юните, точка не требуется.
  2. собсно воспроизводишь спец
  3. и сразу его удаляешь. спец удалится тогда, когда доиграет до конца его анимация
  4. кастом скриптом удаляешь точку, если 1 часть 1 пункта актуальна
» ответ
Igor97, если не знаешь jass то и не трогай то что написано на jass
или учи jass
если коротко то у тебя конфликт имён функций и глобальных переменных из за того что ты тупо скопировал
чтобы конфликта не было во 2 триггере надо переименовать все функции

8gabriel8 #2 - 2 месяца назад 1
Очень сложно вопрос сформулировал)
Смысл в том, чтобы циклом найти второй предмет. Когда цикл находит первый предмет, то переменная становится Да, когда второй предмет, то переменная равна Да и предмет выбрасывается. Что-то с этим не так?
LLlecTepka #3 - 2 месяца назад 0
8gabriel8:
Очень сложно вопрос сформулировал)
Смысл в том, чтобы циклом найти второй предмет. Когда цикл находит первый предмет, то переменная становится Да, когда второй предмет, то переменная равна Да и предмет выбрасывается. Что-то с этим не так?
Я не понимаю, как работает последняя переменная "Set Pair = нет"
Она же находится вне цикла, получается, что после работы цикла переменная всегда должна быть равна "нет" из-за последнего действия.
8gabriel8 #4 - 2 месяца назад (отредактировано ) 1

Это значение должно быть у переменной перед выполнением цикла, у меня оно устанавливается после цикла, чтобы триггер в следующий раз начался с этим значением, но можешь поставить её первым действием.
Представь, как работает цикл, когда игрок поднимает предмет. Цикл проверяет каждую ячейку и находит в одной из них подобранный предмет, то есть переменная всегда будет становится Да. Нужно сбрасывать её значение на Нет для правильного выполнения каждый раз.
Тебе не понятен какой-то момент, но мне трудно его определить. Попробуй сам сформулировать и описать принцип работы триггера, который считаешь правильным, чтобы игрок не мог подобрать второй предмет.
LLlecTepka #5 - 2 месяца назад 2
А-а-а-а, до меня дошло. Я просто не учел, что проверка идет по каждому слоту, а не по одному, думал, что цикл всегда уходит в "иначе - Set pair = да", а после обнуляется "Set pair = нет", вот и затупил. Спасибо большое)