33

» WarCraft 3 / Вращающиеся модели

ScopteRectuS, А тут и нет карты и кода, это же рубрика "посмотрите как я могу" от Влода
Починил
Увы только через получить
Приоритет скачивания не меняется другим способом
33

» WarCraft 3 / Вращающиеся модели

Ну это не модели, это же юнит. Эффекты можно полноценно вращать на мемхаке или рефордже, что то я вообще не проникся этим костылем с юнитом. И период наверное лучше 0.03125. Но это так я придирался просто )). Разумеется норм всё
33

» WarCraft 3 / Возврат кампаний в Reforged (почти да)

Ну что ж, есть хорошие новости и плохие, начну с хорошей
Удалось найти файл кампаний, его зовут campaigninforeforged
там есть вот такое вот поле
CampaignList="","","","","Tutorial","Human","Undead","Orc","NightElf","NightElfEx","HumanEx","UndeadEx","","OrcEx"
Это список кампанию в меню, если сделать вот так
CampaignList="Tutorial","Human","Undead","Orc","NightElf","NightElfEx","HumanEx","UndeadEx","OrcEx","XGM", "123",""
то получится вот так
Интересно?
А если сделать вот так
Mission0="CAMP_CHAPTER_1","CAMP_MAP_HUMAN01","Maps/frozenthrone/community/(2)amazonia.w3x"
То вместо первой главы кампании людей, запустится Мили карта
Mission0="CAMP_CHAPTER_1","CAMP_MAP_HUMAN01","Campaign/Reforged/ROC/Human09.w3x"
Или вообще 9 глава
Так и что, всё что ли работает, и можно идти делать свою кампанию?
Добавлять её на ровни с кампаниями метелицы? Я же сказал, что у мен 2 новости, а вот и вторая
Увы карты способны подтягиваться, только из игрового архива, если же указать путь к несуществующей карте, то просто ничего не произойдёт и пропадёт звук, если же указать путь к существующей, не из папки документы, а из retail, увы варкрафт просто выдаёт ! ошибка
И пока что ничего не получается, скорее всего дохлый номер. Повторюсь:
У кампаний нет доступа в локальные файлы и чтение идёт только из игровых архивов=(, я подтвердил это вторым способом
Загруженные файлы
33

» WarCraft 3 / Базовый урон от атак + Бонусный урон от атак

GetUnitBaseDamage считает только белый урон, где-то кто то делал наработку по зелёному урону юнита в рефордже, да вот вспомнить не могу
33

» WarCraft 3 / Таймер вместо вейт

ты видишь что то у меня тут подобное?
давай ещё раз
вот это строчкой мы создаём таймер, тут понятно?
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, ты должен был бороться со злом, а не примкнуть к нему
33

» WarCraft 3 / Таймер вместо вейт

Рефордж я показывал просто для примера, на сколько там просто и не нужна никакие заморочки. Паузить и уничтожать одноразовый таймер, это обязательно иначе будет небольшая утечка в памяти (ибо это древний баг варкрафта), если таймер периодический, то разумеется его тоже надо будет остановить, дабы он не болтался без дела
33

» WarCraft 3 / Таймер вместо вейт

Вот пример отсроченного действия и работы с таймером
Вот допустим у тебя вот так, юнит при появлении на карте, постоит 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, так же я спецом использовал локацию и утекающую точку, ибо это уже другая тема
Загруженные файлы
33

» WarCraft 3 / Возврат кампаний в Reforged (почти да)

Если серьёзно, я почему это выложил, потому что не уверен, в том что я проверил всё, мб что-то делаю не так и подмена возможна, и всё таки, хочется найти файл, со списком кампаний на экране, чтобы сюда вставлять свои, хотя бы в ручном режиме, а там автоматизируем и что нить придумаем
33

» WarCraft 3 / Еще одна глупая идея про оптимизацию

Принятый ответ
у тебя при сейве карты в редакторе формируется war3map3.j который уже содержит в себе весь конверт триггеров. И никакой конвертации не происходит
33

» WarCraft 3 / Хорошие статьи и советы по оптимизации на обычных триггерах

Принятый ответ
Чтобы редактировать чужое, нужно раз в 10 больше знаний и опыта, чем редактировать или делать своё, ты взял непосильную ношу для себя, не надо тянуть чужие и старые проекты. Делай своё, новое, прогрессивное, молодежное
33

» WarCraft 3 / Cистема инкома

играл бы в нормальные карты не пришлось бы делать "как в петрах", когда можно например кулдаунить пассивку эксгумации вообще без всяких мемхаков и рефорджей. Если уже всё делает чисто ради визуального кд
33

» WarCraft 3 / Cистема инкома

на первом видео автокастовый приказ без цели типа:
кровожадность нейтралов
или пополнения здоровья или маны или всего сразу от статуи нежити
На 2 видео приказ требует цели и разумеется нужен другой код
33

» WarCraft 3 / Играя за двух игроков варкрафт.

Или тебе нужен враг с полностью общими войсками и контролем?
вроде вот тут такое видел