Значит создаем массив возможных рун runeTypes, которые будем рандомить (тип переменной - тип предмета).
В инициализации сохраняем туда типы рун (я еще создал переменную runeTypeCount для контроля количества элементов в массиве, чтобы потом было проще менять, если захочешь изменить массив)
Ну и дальше просто при спавне рандомим тип предмета из нашего массива runeTypes с индексом случайное число от 1 до runeTypeCount.
И заметь, рандомная руна будет спавнится только у 1 руны из 3, что у меня стоит на карте. Другие 2 будут спавнится одна и та-же.
(все так-же прикрепил карту, чекай)
Сейчас скачал твою карту, ну ты же все правильно делаешь :D
По сути у тебя все те-же действия, что и у меня, просто добавить сохранение своих рун в массив, чтобы проверять, какая руна была подобрана и ее респавнить. Именно как массив рун.
И лучше избавиться от периодика каждые 10 сек (или ты в будущем сделаешь 60 сек что будет еще хуже, ибо если поднять руну на 59 секунде то она заспавнится сразу-же мгновенно новая, что не круто, ты же хотел чтобы через 60 сек спавнило)
Используй события и проверки из моего примера и все получится как надо.
konvan5, а что делать если надо сделать несколько руны рандомно?
Вот те-же 2 триггера, но теперь переменная rune это массив из рун, где на каждую руну мы указываем с помощью номера (индекса) в массиве. Это самая простая реализация.
А или ты имеешь ввиду рандомно чтобы руна появлялась в той-же точке? Я сделал наработку на несколько руна в 3 точках, где респавнится та-же самая руна.
Вообще говоря, в нашем примере можно обойтись и без глобальных переменных – одними локальными. Но проблема в том, что использование локальных переменных не предусмотрено в редакторе. Чтобы использовать эти переменные необходимо записывать команды на jass.
Человек говорит о совместной работе триггеров и jassа. Если писать на чистом jass то в этих случаях можно глобалки и не использовать :D
Не путаем контексты)
Да и в целом это все инструменты. Нам же что главное - чтобы работало так, как нам нужно, с нашими условными ограничениями (критериями). Если задача выполняется по заданным критериям - то решение годится.
давно хочу понять хэш таблицу, она мне прямо очень нужна, но пока не понимаю. Это тема для следующего вопроса)
Пс, тут есть великий секрет XGM! Зайдешь сюда, нажимая на эту никому-неизвестную кнопку, найдешь интересующую тебя тему, прочитаешь и вопросы все сами отпадут :) (Для быстрого поиска по странице можно использовать комбинацию клавиш CTRL+F)
Ты создал переменную, но она пустая. Где ты юнита берешь?
Тебе надо указать, чему равна переменная. Присвоить ей юнита.
Раньше ты делал вот так:
local unit u
set u = GetSpellTargetUnit()
Вот это действие SET устанавливает значение переменной, которое берется из GetSpellTargetUnit().
Видимо после переработки кода ты потерял эту строку...
Вторая ошибка - неправильный порядок параметров в функции AddSpecialEffectTarget(). Читай мои комменты выше, где я показывал, как тебе правильно надо туда вписать параметры. Ладно, отправлю уже в 3 раз, вот ответ:
set bj_lastCreatedEffect = AddSpecialEffectTarget("manaFlareTarget.mdx", u, "chest")
Первая ошибка сейчас говорит в том, что ты создал переменную, но ничего туда не записал а уже отправил в функцию. То есть ты пытаешься прикрепить эффект к пустому, не существующему юниту.
Вот про этот код идет речь:
local unit u
local effect a
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
Видишь, тут создал переменную u, ничего в нее не записал но используешь дальше в функции AddSpecialEffectTarget().
Тебе в любом случае придется учиться и понимать код, как он работает, чтобы часами потом не сидеть над одной ошибкой.
А подобный код ты еще не раз будешь перебирать, когда попытаешься делать другие системы. Так что лучше потратить дополнительно полчаса времени сейчас, чтобы ПОНЯТЬ, почему оно ругается, не запускается, почитать статьи, как правильно описывается код, и дальше будешь решать такие проблемы как орешки за минуты а не за часы :)
Видимо у тебя описание функции неполное, в описании функции должен быть список параметров, который пишется после слова takes, и возможно ты его не указал.
Вот пример, где параметров нет, поэтому мы указываем nothing после takes:
function First pitdfgdfgf_Conditions takes nothing returns boolean
А лучше скидывай скрин ошибки, где показывается часть кода, где ошибка и находится. Так проще будет нам помочь.
Человек мечтает создать интересную карту, но не разбирается в jass. Не знает про входные аргументы. Не страшно, бывает и похуже!
Это и правда не страшно не знать чего-то.
Но чтобы потом не потратить 100 часов на повторное решение этой проблемы (с другими функциями), прочти один раз эту статейку за 10-30 мин, и решай подобные задачи быстро, за 1 час вместо 100 часов суммарно в будущем.
» XGM Team / Поощрение авторов рецензий
» WarCraft 3 / Спавн Рун
В инициализации сохраняем туда типы рун (я еще создал переменную runeTypeCount для контроля количества элементов в массиве, чтобы потом было проще менять, если захочешь изменить массив)
По сути у тебя все те-же действия, что и у меня, просто добавить сохранение своих рун в массив, чтобы проверять, какая руна была подобрана и ее респавнить. Именно как массив рун.
» WarCraft 3 / Спавн Рун
» WarCraft 3 / Спавн Рун
» Администрация XGM / Дать опыт авторам публикации ресурса
» WarCraft 3 / Массив локальной переменной
» WarCraft 3 / Спавн Рун
» WarCraft 3 / Спавн Рун
» Warcraft 3: The Lord Of The Rings / Представление персонажей: Хоббиты
Ред. konvan5
» WarCraft 3 / Радиус самостоятельной атаки юнитов
Ред. konvan5
» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?
» WarCraft 3 / Практика ИИ - Тактика (Простая) Часть 1
» WarCraft 3 / Не работает система прикрепления эффекта
Ред. konvan5
» WarCraft 3 / Не работает система прикрепления эффекта
Не путаем контексты)
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
(Для быстрого поиска по странице можно использовать комбинацию клавиш CTRL+F)
Ред. konvan5
» WarCraft 3 / Не работает система прикрепления эффекта
Видимо после переработки кода ты потерял эту строку...
Ред. konvan5
» WarCraft 3 / Не работает система прикрепления эффекта
Ладно, отправлю уже в 3 раз, вот ответ:
Вот еще про локальные переменные в jass но текста многовато.
» WarCraft 3 / Не работает система прикрепления эффекта
Вот про этот код идет речь:
А подобный код ты еще не раз будешь перебирать, когда попытаешься делать другие системы. Так что лучше потратить дополнительно полчаса времени сейчас, чтобы ПОНЯТЬ, почему оно ругается, не запускается, почитать статьи, как правильно описывается код, и дальше будешь решать такие проблемы как орешки за минуты а не за часы :)
» WarCraft 3 / Не работает система прикрепления эффекта
Вот пример, где параметров нет, поэтому мы указываем nothing после takes:
Ред. konvan5
» WarCraft 3 / Не работает система прикрепления эффекта
SсRealm:
konvan5:
» WarCraft 3 / Не работает система прикрепления эффекта
Но чтобы потом не потратить 100 часов на повторное решение этой проблемы (с другими функциями), прочти один раз эту статейку за 10-30 мин, и решай подобные задачи быстро, за 1 час вместо 100 часов суммарно в будущем.
» WarCraft 3 / Не работает система прикрепления эффекта
Первый параметр - модель. Не юнит, а модель.
» WarCraft 3 / Не работает система прикрепления эффекта