Стандартно в варкрафте если кликать под допустим мостом, то клик пройдет по мосту, хотя мышка направлена в точку под ним. И если даже отправить юнита идти в другую точку, то он обязательно станет обходить мост. Как сделать так, чтобы можно было ходить и под декорацией и на ней (если юнит сверху)?
Принятый ответ
Steal nerves:
В принципе то что вы скинули все равно не решит главную проблему - невозможность кликать по декорации и под ней. В общем нашел только единственное решение сделать декорацию даммика, и при прохождении рядом с ней юнитов изменять им высоту в зависимости от той, которая была до этого, а по бокам ставить барьеры, и такое получится только при управлении клавишами, иначе не удобно.
Спасибо что объяснил, раз там надо другие версии варкрафта качать то и фиг с ними тогда, другие карты работают и норм)Lotus101, это не то. карты старые. там фаталы происходят из-за старого ретург бага (короче раньше, в варе ниже 1.24 код немного по-другому писали, там не было хэш-таблицы, использовали кэш. И сохраняли в качестве ключа не с помощью целого числа, а с помощью строки).короче там ошибки из-за функции, внутри они могут возвращать два значения (либо одно значение, либо пустующее, есть хитрость к примеру возвращает значение целое число (id-хэндл), а в функциях в аргументах написан юнит, значит возвращает юнита, или наоборот из юнита в id-хэндл. Типа конвертация из объекта в число или из числа в объект). но сегодняшний вар будет считать это за ошибку, так как нельзя вернуть целое число, если указано в функции, что надо вернуть юнита. я конечно не застал то время, начал изучать jass с 1.24.раскрытьнапримерconstant function H2I takes handle h returns integer return h return 0 endfunction constant function I2U takes integer i returns unit return i return null endfunction constant function I2Li takes integer i returns lightning return i return null endfunction
могу как-то первую переделатьfunction H2I takes handle h returns integer return GetHandleId(h) endfunction
А вот остальные не работают, так как требуют чтобы как-то хэндлом управлять. Хэндл - все объекты, id хэндла - номер ячейки. Короче мы знаем номер объекта, а вот как достать из хэндла юнита или молнию не можем. раньше это делали так, как привел выше (см. первые три функции). то теперь близзарды в качестве защиты переделали это.Нельзя сохранить в кэше юнита, молнию и прочих объектов. Но можно сохранять в кэше номера, и строки, логические значения. Короче сохраняли id-хэндл юнита или молнию. А когда нужно было достать юнита или молнию, то конвертировали из id-хэндла юнита в хэндла с помощью ретурна.
Теперь нам дали теперь на каждый тип объекта функцию
старая:local unit Unit1 = I2U(GetStoredInteger (udg_cache, I2S(H2I(Timer)), "Unit1"))
новая, сейчас можно использовать хэш-таблицуnative LoadUnitHandle takes hashtable table, integer parentKey, integer childKey returns unit
вотlocal unit Unit1 = LoadUnitHandle(udg_Hash, IGetHandleId(Timer), 0)
В принципе то что вы скинули все равно не решит главную проблему - невозможность кликать по декорации и под ней. В общем нашел только единственное решение сделать декорацию даммика, и при прохождении рядом с ней юнитов изменять им высоту в зависимости от той, которая была до этого, а по бокам ставить барьеры, и такое получится только при управлении клавишами, иначе не удобно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Steal nerves: Проверил, столкновение ничего не дало
Отредактирован ENAleksey
Отредактирован biridius
Отредактирован MpW
https://xgm.guru/forum/showthread.php?t=33861
http://www.hiveworkshop.com/threads/region-elevation-system-v1-0...
Steal nerves: Других вариантов нет?
Переместил карту в папку в пути которого нет кириллицы, теперь при сохранении появляется такое окно, а затем фатал
Отредактирован MpW
Теперь нам дали теперь на каждый тип объекта функцию
старая:
В принципе то что вы скинули все равно не решит главную проблему - невозможность кликать по декорации и под ней. В общем нашел только единственное решение сделать декорацию даммика, и при прохождении рядом с ней юнитов изменять им высоту в зависимости от той, которая была до этого, а по бокам ставить барьеры, и такое получится только при управлении клавишами, иначе не удобно.