Один дамми молот бурь с 0 времени стана (или -1)
Далее хештаблица и таймер, сохраняешь юнита по хендлу таймера и запускаешь его на нужное время, потом в функции таймера удаляешь баф у юнита
UrsaBoss, потому что это особый тип перемещения, который не дает летунам летать, плавунам плавать, а наземным юнитам ходить сквозь предметы и здания, тут скорее всего проверка на виджеты чтобы юнит не ходил сквозь разрушаемые обьекты.
Есть определенные плагины помогающие в разработке карт и кода они будут как то влиять в дальнейшем на мод при установке?
никак не будут влиять, все диалекты jass в итоге парсятся в оригинальный jass
Так же интересен вопрос по поддержке версий, понятно если мы будем разрабатывать на версии 1.29 мод не встанет скорее всего на версию игры 1.26 например. Но установится ли на 1.30?
В версиях ниже 1.30 - mpq архив карты
В 1.30 уже не mpq
А насчет совместимости - можно выпускать вариации кампании для разных версий игры
Может быть еще есть какие ни будь средства что бы улучшить саму графику в игре кроме RenderEdge ?
импорт кастомных текстур и моделей, для игры 2002 года это более чем достаточно
Никак, стартовая позиция - это то где будет камера игрока в начале игры
и чтобы за его уничтожение засчитывались победа
globals
integer i = 0
endglobals
function filter takes nothing returns boolean
if not (GetWidgetLife(GetFilterUnit()) < 0.405 or IsUnitType(GetFilterUnit(), UNIT_TYPE_DEAD)) then
set i = i + 1
endif
return false
endfunction
i = 0
GroupEnumUnitsOfPlayer(g, p, function filter)
if i == 0 then
//Поражение игроку
endif
Также необходимо, чтобы в союзе с этим игроком были все крипы на карте.
UrsaBoss, мало того что обрывается поток и функции Get*** могут вернуть черти знает что, оно еще может быть причиной десинха, игрок залагал а вейт то тикает, этого мало? Потом 2018 а мы досихпор советуем вейты...
quq_CCCP, с чего это Wait не будет в мультиплеере работать?
он написал "нормально работать не будет"
работать будет, да, только криво и неточно
разница в точности +-0.10 будет играть роль?
В некоторых простых случаях достаточно одной локалки и TriggerSleepAction (ни в коем случае PolledWait).
И прошу привести пример насчет "кривой" работы
потому что близзардам прямоты рук не хватило чтобы сделать нормальную работу с памятью.
Не было бы претензий если это был бы какой то высокоуровневый яп или низкоуровневый, но это же jass)
По сути все переменные handle - это те же integer, не понимаю как близзарды с этим накосячили
biridius, судя по тому что в BJ есть много туповатых функций и ещё некоторые функции должны быть в движке - могу предположить что программисты написали движок с нативками, отдали игру гейм-дизайнерам и послали их подальше
И лучше не использовать PolledWait, можно сразу TriggerSleepAction
А что так?
Ну в PolledWait не очищается переменная указывающая на таймер
Да и вообще PolledWait это смесь TriggerSleepAction и таймера (типа отсчет игрового времени)
В данное время не актуально, т.к я лично проверял TriggerSleepAction в одиночной игре при паузе и в мультиплеере так же, никуда время не утекало.
GetTriggeringUnit() и прочее - хранятся в самом потоке, а поток создается каждый раз при срабатывании триггера
И лучше не использовать PolledWait, можно сразу TriggerSleepAction
И кто бы ни говорил, TriggerSleepAction не продолжает отсчет при паузе в одиночной игре и в мультиплеере.
Для этого по классике используют спелбук. Также данную пассивку можно занести под координаты (0;-11), чтобы не отображалась (но это актуально для старых версий игры).
А варик может определить локаль RU или EN, либо надо задавать игроку вопрос при старте карты?
там че то файлам надо id указывать и т.д, я точно не помню как это делают.
Ну ещё вроде работает обычная "наглая" замена wts - получатся 2 совместимые карты
Разве war3map.j нормально понимает кириллицу? Казалось, что он её только из wts берёт, либо представляет в нечитаемом виде.
вот и будет стимул русифицировать карту через wts)))
пошаманить и можно будет не скачивать заново карту.
Будет 2 языка в одной карте.
Например если варкрафт юзает английский язык - то и в карте он будет
С русским языком так же "не скачивать" - я имел ввиду не совместимость русифицированной карты с оригинальной, а просто возможность воспроизводить карту на разных языках
Lillikon
На 20 единиц опасно сдвигать, т.к может не сработать условие на то что дистанция < 10 и сюрикен улетит за пределы карты.
Надо поставить условие чтобы дистанция была < 25, и вместо узнавания угла сюрикена - использовать угол между координатами (так он хотябы не улетит, если ошибешься с расчетами)
Вычисление угла в радианах
a = Atan2(m.y - GetUnitY(u), m.x - GetUnitX(u)) m.x и m.y это "конечная" точка, в которую юнит должен переместиться
И не надо переводить радианы в градусы, просто косинус и синус вычисляешь чтобы переместить юнита на 20
x = GetUnitX(u) + 20. * Cos(a)
y = GetUnitY(u) + 20. * Sin(a)
» WarCraft 3 / Способность: повышение атаки при каждом ударе
Ред. Hodor
» WarCraft 3 / Система стана
Далее хештаблица и таймер, сохраняешь юнита по хендлу таймера и запускаешь его на нужное время, потом в функции таймера удаляешь баф у юнита
» WarCraft 3 / Почему windwalk не проходит через предметы?
Ред. Hodor
» WarCraft 3 / Возрождение с затратами маны
» WarCraft 3 / Возрождение с затратами маны
Ред. Hodor
» WarCraft 3 / Совет для новичка
В 1.30 уже не mpq
А насчет совместимости - можно выпускать вариации кампании для разных версий игры
костыли наше всё
» WarCraft 3 / Победа уничтожением игрока и крипы
Ред. Hodor
» WarCraft 3 / Воскрешение в мультиплеере
Ред. Hodor
» WarCraft 3 / Дабл-клик предмета что лучше по времени?
Удобным кажется 0.1
» WarCraft 3 / Воскрешение в мультиплеере
В некоторых простых случаях достаточно одной локалки и TriggerSleepAction (ни в коем случае PolledWait).
И прошу привести пример насчет "кривой" работы
» WarCraft 3 / Воскрешение в мультиплеере
Ред. Hodor
» WarCraft 3 / Воскрешение в мультиплеере
Не было бы претензий если это был бы какой то высокоуровневый яп или низкоуровневый, но это же jass)
По сути все переменные handle - это те же integer, не понимаю как близзарды с этим накосячили
Ред. Hodor
» WarCraft 3 / Воскрешение в мультиплеере
» WarCraft 3 / Воскрешение в мультиплеере
Да и вообще PolledWait это смесь TriggerSleepAction и таймера (типа отсчет игрового времени)
В данное время не актуально, т.к я лично проверял TriggerSleepAction в одиночной игре при паузе и в мультиплеере так же, никуда время не утекало.
» WarCraft 3 / Воскрешение в мультиплеере
Ред. Hodor
» WarCraft 3 / Воскрешение в мультиплеере
И лучше не использовать PolledWait, можно сразу TriggerSleepAction
И кто бы ни говорил, TriggerSleepAction не продолжает отсчет при паузе в одиночной игре и в мультиплеере.
» WarCraft 3 / Как сделать -zoom в карте?
» WarCraft 3 / Скрыть способность?
» WarCraft 3 / Перевод карты без предоставления исходников
Ну ещё вроде работает обычная "наглая" замена wts - получатся 2 совместимые карты
Ред. Hodor
» WarCraft 3 / Перевод карты без предоставления исходников
пошаманить и можно будет не скачивать заново карту.
Будет 2 языка в одной карте.
Например если варкрафт юзает английский язык - то и в карте он будет
С русским языком так же
"не скачивать" - я имел ввиду не совместимость русифицированной карты с оригинальной, а просто возможность воспроизводить карту на разных языках
Ред. Hodor
» WarCraft 3 / Перевод карты без предоставления исходников
Я это сказал к тому - что переводить текст из скрипта вполне реально (не теряя совместимости)
» WarCraft 3 / Перевод карты без предоставления исходников
» WarCraft 3 / Почему в Варе нет звука?
Ред. Hodor
» WarCraft 3 / Помощь в избавлении от BJ
Ред. Hodor
» WarCraft 3 / Помощь в избавлении от BJ
На 20 единиц опасно сдвигать, т.к может не сработать условие на то что дистанция < 10 и сюрикен улетит за пределы карты.
Надо поставить условие чтобы дистанция была < 25, и вместо узнавания угла сюрикена - использовать угол между координатами (так он хотябы не улетит, если ошибешься с расчетами)
m.x и m.y это "конечная" точка, в которую юнит должен переместиться