PT153, согласен, но в них нет образца, а в сфере огня он есть достаточно 1 параметр поменять и сразу будет виден результат.
и побочка да, сфера даёт и атаку и меняет индекс атаки, это всё нужно отключать
Слышал что рефордж из коробки идёт под маком, про запуск jgnp без сильных манипуляций придётся забыть. Если вам нужен 126 вар, то он не требовательный к ресурсам, ставьте винду второй системой или параллелс или любая другая виртуалка под мак и будет работать
Ну это не модели, это же юнит. Эффекты можно полноценно вращать на мемхаке или рефордже, что то я вообще не проникся этим костылем с юнитом. И период наверное лучше 0.03125. Но это так я придирался просто )). Разумеется норм всё
Или вообще 9 глава
Так и что, всё что ли работает, и можно идти делать свою кампанию?
Добавлять её на ровни с кампаниями метелицы? Я же сказал, что у мен 2 новости, а вот и вторая
Увы карты способны подтягиваться, только из игрового архива, если же указать путь к несуществующей карте, то просто ничего не произойдёт и пропадёт звук, если же указать путь к существующей, не из папки документы, а из retail, увы варкрафт просто выдаёт ! ошибка
И пока что ничего не получается, скорее всего дохлый номер. Повторюсь:
У кампаний нет доступа в локальные файлы и чтение идёт только из игровых архивов=(, я подтвердил это вторым способом
ты видишь что то у меня тут подобное?
давай ещё раз
вот это строчкой мы создаём таймер, тут понятно?
local timer t = CreateTimer()
Таймер сидит в локальной переменной t больше тут ничего нет
Вот вторая строчка
call TimerStart( t, 2, false, function myTimer)
call - вызвать фунцию TimerStart
t, 2, false, function myTimer - это её параметры, или же аргументы
где t - таймер который мы создали 2 - время в секундах через которое он отработает false - таймер одноразовый, там может быть ещё true - это периодический, всего 2 значения, это булева function myTimer - непосредсвенно сама функция, оно же действие, которое произойдёт, когда пройдёт 2 секунды
и в неё нельзя ничего передать на чистом джасе, для этого и использовалась глобалка, чтобы работало и используются хештаблицы, чтобы посадить на хендл таймера например юнита, и каждый юнит будет привязан к своему таймеру. Опять же на lua не надо ничего этого делать вообще там просто из коробки работает, сразу как нужно. Собственно function myTimer takes nothing returns nothing это и есть гуишная функция "таймер истекает", до бишь это действие, которое произайдёт, когда время таймера tпришло.
Я уже одно и тоже говорю, просто если не понял, читай ещё несколько раз
rsfghd, ты должен был бороться со злом, а не примкнуть к нему
Рефордж я показывал просто для примера, на сколько там просто и не нужна никакие заморочки. Паузить и уничтожать одноразовый таймер, это обязательно иначе будет небольшая утечка в памяти (ибо это древний баг варкрафта), если таймер периодический, то разумеется его тоже надо будет остановить, дабы он не болтался без дела
Вот пример отсроченного действия и работы с таймером
Вот допустим у тебя вот так, юнит при появлении на карте, постоит 2 секунды и отправить в центр карты, допустим эта зачаток системы движения крипов, зачем тут вейт, ну например для создания эффекта какого-то, это уже не важно, просто вейт и всё.
Вот допустим переделываем это всё на таймер.
Опять таки в чистом гуи ты так не сделаешь, ну я просто не знаю как показать, поэтому покажу сразу как умею - на lua, джасс если вспомню то вспомню.
Сначала переведём всё это на код, на луа это будет выглядить примерно вот так
function Trig_Gui_Actions()
TriggerSleepAction(2)
IssuePointOrderLocBJ(GetTriggerUnit(), "move", GetRectCenter(GetPlayableMapRect()))
end
function InitTrig_Gui()
gg_trg_Gui = CreateTrigger()
TriggerRegisterEnterRectSimple(gg_trg_Gui, GetPlayableMapRect())
TriggerAddAction(gg_trg_Gui, Trig_Gui_Actions)
end
На джасе также + появятся всякий лишний мусор
В целом перепишем всё это в 1 блок
do
TimerStart(CreateTimer(), 0.12, false, function() -- это нужно чтоб сборщик не прибрал наше событие
InitEvent()
end)
function InitEvent()
local thisTrig = CreateTrigger()
TriggerRegisterEnterRectSimple(thisTrig, GetPlayableMapRect())
TriggerAddAction(thisTrig, function() -- в аот и первая анонимная функци
local unit=GetTriggerUnit() -- вот он наш юнит
TimerStart(CreateTimer(), 2, false, function() -- а вот и наша 2 анонимная функция
IssuePointOrderLocBJ(unit, "move", GetRectCenter(GetPlayableMapRect())) -- а наше действие из гуи триггера
end)
end)
end
end
всё, мы сделали тоже самое, на луа через таймер, без хештаблиц, сразу муи сразу без утечек, вру (тут таймер надо запаузить и уничтожить, чтобы прям идеально, но я этим принебрегаю)
Но ты скорее всего ничего не понял, и да я просто выделывался. Теперь же попробуем тоже самое сделать на JASS, будут писать прототип идо наизусьь джасс не помню, да что там, вообще его не помню
globals
global unit GUNIT = null
endglobals
function Trig_Gui_Actions takes nothing returns nothing
local timer t = CreateTimer() // создаём таймер
call TimerStart( t, 2, false, function myTimer) // запускаем таймер
set t = null // обнуляем локалку
endfunction
function myTimer takes nothing returns nothing //это функция которую запускает таймер, в неё ничего нельзя передать, это это не луа, а убогий джасс тут нужны хештаблицы, я же использовал глобалку GUNIT
call IssuePointOrderLocBJ(GUNIT , "move", GetRectCenter(GetPlayableMapRect())) // тот же самый приказ идти в центр карты
call PauseTimer(GetExpiderTimer()) // паузим
call DestroyTimer(GetExpiderTimer()) // и убираем до конца, в принципи действия не обязательные, как я сказал выше
endfunction
Я тут немного обрезал убрал код action, но он прекрасно конвертится с гуи в джасс и остаётся там, остаётся добавить глобалку GUNIT, так же я спецом использовал локацию и утекающую точку, ибо это уже другая тема
Если серьёзно, я почему это выложил, потому что не уверен, в том что я проверил всё, мб что-то делаю не так и подмена возможна, и всё таки, хочется найти файл, со списком кампаний на экране, чтобы сюда вставлять свои, хотя бы в ручном режиме, а там автоматизируем и что нить придумаем
» WarCraft 3 / Как создать предмет, при взятии которого появлялся бы спецэфф...
и побочка да, сфера даёт и атаку и меняет индекс атаки, это всё нужно отключать
» WarCraft 3 / Как создать предмет, при взятии которого появлялся бы спецэфф...
» WarCraft 3 / World Editor на Mac Os
» Прочее / Generals 2 ждали? Получайте
» WarCraft 3 / Мясник Warcraft 3 Reforged
» WarCraft 3 / Таймер вместо вейт
» WarCraft 3 / Помощь с триггерами
» WarCraft 3 / Вращающиеся модели
Ред. Берги
» WarCraft 3 / Вращающиеся модели
Починил
Увы только через получить
» WarCraft 3 / Вращающиеся модели
» WarCraft 3 / Базовый урон от атак + Бонусный урон от атак
Ред. Берги
» WarCraft 3 / Возврат кампаний в Reforged (почти да)
Удалось найти файл кампаний, его зовут campaigninforeforged
там есть вот такое вот поле
А если сделать вот так
Так и что, всё что ли работает, и можно идти делать свою кампанию?
Добавлять её на ровни с кампаниями метелицы? Я же сказал, что у мен 2 новости, а вот и вторая
Увы карты способны подтягиваться, только из игрового архива, если же указать путь к несуществующей карте, то просто ничего не произойдёт и пропадёт звук, если же указать путь к существующей, не из папки документы, а из retail, увы варкрафт просто выдаёт ! ошибка
И пока что ничего не получается, скорее всего дохлый номер. Повторюсь:
У кампаний нет доступа в локальные файлы и чтение идёт только из игровых архивов=(, я подтвердил это вторым способом
» WarCraft 3 / Базовый урон от атак + Бонусный урон от атак
» WarCraft 3 / Таймер вместо вейт
давай ещё раз
вот это строчкой мы создаём таймер, тут понятно?
Вот вторая строчка
t, 2, false, function myTimer - это её параметры, или же аргументы
где
t - таймер который мы создали
2 - время в секундах через которое он отработает
false - таймер одноразовый, там может быть ещё true - это периодический, всего 2 значения, это булева
function myTimer - непосредсвенно сама функция, оно же действие, которое произойдёт, когда пройдёт 2 секунды
и в неё нельзя ничего передать на чистом джасе, для этого и использовалась глобалка, чтобы работало и используются хештаблицы, чтобы посадить на хендл таймера например юнита, и каждый юнит будет привязан к своему таймеру. Опять же на lua не надо ничего этого делать вообще там просто из коробки работает, сразу как нужно. Собственно function myTimer takes nothing returns nothing это и есть гуишная функция "таймер истекает", до бишь это действие, которое произайдёт, когда время таймера tпришло.
Я уже одно и тоже говорю, просто если не понял, читай ещё несколько раз
» WarCraft 3 / Возврат кампаний в Reforged (почти да)
» WarCraft 3 / Таймер вместо вейт
» WarCraft 3 / Таймер вместо вейт
Вот допустим переделываем это всё на таймер.
Опять таки в чистом гуи ты так не сделаешь, ну я просто не знаю как показать, поэтому покажу сразу как умею - на lua, джасс если вспомню то вспомню.
Сначала переведём всё это на код, на луа это будет выглядить примерно вот так
В целом перепишем всё это в 1 блок
Но ты скорее всего ничего не понял, и да я просто выделывался. Теперь же попробуем тоже самое сделать на JASS, будут писать прототип идо наизусьь джасс не помню, да что там, вообще его не помню
» WarCraft 3 / Варик не успевает считать
» WarCraft 3 / Возврат кампаний в Reforged (почти да)
» WarCraft 3 / Гарен из Лиги легенд
» WarCraft 3 / Гарен из Лиги легенд
» WarCraft 3 / Еще одна глупая идея про оптимизацию
Ред. Берги
» WarCraft 3 / Еще одна глупая идея про оптимизацию
» WarCraft 3 / Еще одна глупая идея про оптимизацию
ты ж в юнити уходил, с возвращением
» WarCraft 3 / Пак предметов из Mafia 2