Итого: Правильно ли я понимаю ситуацию:
Есть карта. Её можно открыть в jngp 1.26 и в какой-то новой версии редактора для рефа.
Если запускать карту, собранную в jngp, что в рефорже что в 1.26 десинк не происходит.
Если запускать карту, собранную в рефовом редакторе, то в рефе десинкает?
Спасибо, действительно, по невнимательности добавил в карту scr и в этом оказалась проблема+ потому что она была пустая, добавил пустой файл с форматом .lua и стал запускаться редактор и игра.
Остался один вопросик, у меня почему то карта сразу не запускается с пустым кодом?
Но а если я запущу редактор, нажму ctr+s то тогда она с редактора сразу запустит карту
Smeto, смотри, на хэндл юнита A вещаем хэндл юнита B. На хэндл юнита B вешаем хэндл юнита A.
При смерти одного из них убиваем второго.
Ты же на хэндл юнита A вешаеш хэндл юнита A. Зачем? Его же можно получить через GetUnitHandle().
Другой момент, что таким образом к одному юниту можно привязать только одного юнита. Для более сложных взаимодействий и цепочек связей придётся что-то похитрее городить.
Делаем триггер на него вешаем бойцов и смерть бойцов по хэндлу триггера.
Один из них умер - убиваем второго (или двоих). Ну, и не забываем очищать всё. Дабы утечек небыло.
Профит
Не вижу смысла в динамических триггерах, ибо всёравно с хэндлами возиться, а задача спокойно и с одним триггером решается.
Спасибо за разбор )
Ты прав делал лишние действие)
😎Зацени😎:
Если больше юнитов допустим, трое связанных, то работать с параметром *set custom value*)
Пришла идея в голову:)
Целочисленная переменная Index, для того что избежать повторов пар из трёх юнитов)
Set custom value Unit1,Unit2,Unit 3=Index
SaveUnitHandle(HASH_TABLE,Index,1,U1)
SaveUnitHandle(HASH_TABLE,Index,2,U2)
SaveUnitHandle(HASH_TABLE,Index,3,U3)
Set Index++
…
Юнит умер:
local unit u
set bj_forLoopAIndex=1
loop
exitwhen bj_forLoopAIndex>3
set u=LoadUnitHandle(HASH_TABLE,GetUnitPointValue(GetDyingUnit()), bj_forLoopAIndex)
If u=Живой then
call KillUnit(u)
Endif
bj_forLoopAIndex++
endloop
...
Делаем триггер на него вешаем бойцов и смерть бойцов по хэндлу триггера.
Один из них умер - убиваем второго (или двоих). Ну, и не забываем очищать всё. Дабы утечек небыло.
Профит
Допустим, одновременно 50 пар на карте, профит будет в создании 50 триггеров и удалении их? Мне вот не понятно, если это один триггер, как отличить допустим первую пару от второй и так далее?)
Smeto, зачем на юнита сохранять хэндл этого же юнита? Да и условие можно убрать, а поиск второй половинки засунуть в триггер смерти юнита.
Не совсем понял тебя, если ты про GetHandleId(UNIT_Х), нам же нужен уникальный ключ, который не будет повторяться и по которому мы будем находить второго юнита, поэтому у двух разных Юнитов ключ первого и так же наоборот. Грубо говоря, два ключа)
Я же сохраняю первого юнита под его же id и второго же под id первого и так же наоборот для того чтоб отследить по id умирающего второго юнита, потому что если умрет первый, а у второго будет другой хэндл в ключе, то мы второго не найдём.
А условие я прописал для того чтоб не всех подряд проверял, автор же не уточнял каких крипов проверять
Может я что то не понимаю, то подправь меня пожалуйста)
msproper, ну можно при спавне/инициализации юнитов, сохранить в них позицию. Сделать простую систему отлова нахождения в бою и возвращать обратно на свои посты юнитов
Можно микроскрин тригера позязя?) или на словах
Попробуй устанвливать им позицию через SetUnitPosition
Extremator, эмм, перебирать всех юнитов это тупо. Есть же хэш-таблица.
А как сделать хэш-таблицей?
Могу предположить, что это будет работать так, на примере созданных юнитов: Так то любых можно добавить, наступивших в область, убивших и так далее
...
local unit UNIT_1=CreateUnitAtLoc(Player(0),'hfoo',REGION, bj_UNIT_FACING)
local unit UNIT_2=CreateUnitAtLoc(Player(0),'hfoo',REGION2, bj_UNIT_FACING)
...
//Сохраняем пару по уникальному id первого Объекта
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_1),1,UNIT_1)
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_1),2,UNIT_2)
//Сохраняем пару по уникальному id второго Объекта
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_2),1,UNIT_2)
call SaveUnitHandle(HASH_TABLE,GetHandleId(UNIT_2),2,UNIT_1)
...
//Условие
if GetDyingUnit()=='hfoo' or (GetOwningPlayer(GetDyingUnit()) == Player(PLAYER_NEUTRAL_AGGRESSIVE)) then
//Загружаем по уникальному ID умирающего юнита его вторую половинку)
call KillUnit(LoadUnitHandle(HASH_TABLE, GetHandleId(GetDyingUnit()), 2)
endif
...
Unryze, отличная идея у тебя на реализацию))
А что если как-нибудь отмечать нативки, которых нет в рефордже? (Другой цвет или префикс добавлять, который можно включать/отключать в настройках редактора?)
Портируется ли на рефордж или же придется переделывать код?
Если речь о нативках, они будут реализованы как "врапперы" и скорее всего пойдут в Blizzard.j, но работать будут так же, ибо я не горю желанием обзывать функции Blz, но их поддержку можно сделать банальным вызовом соответствующей нативки. Просто немного бы подробнее бы расписал, что именно нужно "портировать".
Согласен, непонятно выразился.
Если допустим я сейчас буду в 1.26 писать на Lua, захочу вот перенести карту в рефордж, смогу ли я уже её редактировать в рефордже с новыми функциями рефорджа(ведь были добавлены новые функции), откроется ли она у меня, а то я так полагаю тут и мемхак частично задействован в этой сборке исходя из видео, а в рефордже его убрали насколь знаю
» Unryze Jass API / UjAPI - О Проекте
Если я с компилирую карту в версии 1.26 UjApi могу ли я её запустить на 1.36 версии ?
» WarCraft 3 / Всем привет. Как найти путь до модели *mdx ?
» WarCraft 3 / Недостаточно ресурсов памяти для обработки этой команды...
xDeprotect в помощь
» WarCraft 3 / Найти/Узнать id Тайла: Бездна (не строить)
» WarCraft 3 / Сохранение карты в Reforged и Автозагрузка героев. Десинхрон???
Отредактирован Smeto
» WarCraft 3 / Сохранение карты в Reforged и Автозагрузка героев. Десинхрон???
Отредактирован Smeto
» WarCraft 3 / [Lua] Поток прекращается после 5 раз вызова функции
Отредактирован Smeto
» WarCraft 3 / [lua]Не получается запустить редактор и игру,Lua+VScode|cheapack
" require 'build' {
game = [[D:\Games\Warcraft III\retail\x86_64\]],Warcraft III.exe--project = "D:\\Games\\Warcraft 3 1.26\\Maps\\LotAS\\Evolition\\",
project = arg[1],
map = 'Evolition0.02_Reforged.w3x',
--src = 'src',
run = arg[2],
--syntaxCheck = true,
options = {
language = "en",
consoleColor = true,
}
}
"
Но а если я запущу редактор, нажму ctr+s то тогда она с редактора сразу запустит карту
Отредактирован Smeto
» WarCraft 3 / Инструкция по настройке запуска cheapack в VSCode
Подскажите, что такое папка или где её найти "папку src" ?
» WarCraft 3 / Связанные юниты
Ты прав делал лишние действие)
Если больше юнитов допустим, трое связанных, то работать с параметром *set custom value*)
Пришла идея в голову:)
Целочисленная переменная Index, для того что избежать повторов пар из трёх юнитов)
» WarCraft 3 / Связанные юниты
Отредактирован Smeto
» WarCraft 3 / Связанные юниты
» WarCraft 3 / Приказ оставаться на месте
» WarCraft 3 / Проблема с ботом
Как пытаешь запустить второй?
» WarCraft 3 / Связанные юниты
Отредактирован Smeto
» WarCraft 3 / (Патч 1.32.10) Внешние файлы .mix и так.далее. Как быть?
» WarCraft 3 / Warcraft 3 Фильм Часть 4 ЖИР БЕСКОНЕЧНОСТИ - Болотный сын
» WarCraft 3 / (Патч 1.32.10) Внешние файлы .mix и так.далее. Как быть?
Прикладываю карту, .mix.
Прикладываю модельку, которая в mix файле.
У меня не получается, что я делаю не то видимо. Попробуй ка ты с рабочим примером в идеале
» WarCraft 3 / (Патч 1.32.10) Внешние файлы .mix и так.далее. Как быть?
» WarCraft 3 / Как отредактировать Лорды Европы
» WarCraft 3 / Как в Warcraft писать на С#?
» Warcraft III - Lua / Главная страница
А что если как-нибудь отмечать нативки, которых нет в рефордже? (Другой цвет или префикс добавлять, который можно включать/отключать в настройках редактора?)
» Warcraft III - Lua / Главная страница
Если допустим я сейчас буду в 1.26 писать на Lua, захочу вот перенести карту в рефордж, смогу ли я уже её редактировать в рефордже с новыми функциями рефорджа(ведь были добавлены новые функции), откроется ли она у меня, а то я так полагаю тут и мемхак частично задействован в этой сборке исходя из видео, а в рефордже его убрали насколь знаю
» Warcraft III - Lua / Главная страница
Отредактирован Smeto
» WarCraft 3 / Что предпочтительней и почему Lua или Jass?