Еще есть Custom Value of Unit (GetUnitUserData) - но это значение нам не поможет, дело в том, что когда юнит создается в игре, у него это значение изначально равно 0. Вы не узнаете сколько. Ибо в ро кажется нельзя задать, только триггерах можно менять
Когда здание построится, можно записать в Custom Value Point Value (где записана стоимость), а при улучшении добавлять к Custom Value стоимость улучшения. Так сделано в близовских тдшках.
По поводу бд. Бд лучше сделать на структурах, это описано тут.
Это просто гуглится. А ещё можно открыть близовскте карты и скопипастить оттуда.
Самый банальный способ.
В Редакторе Объектов ставишь своей башни Point Value равное стоимости башни. Даёшь башне способность Х на основе Channel (Канал).
А теперь триггер.
События:
Юнит начинает применять способность.
Условия:
Тип юнита равно Здание
Применяемая способность равно Х
Действие:
Add Integer(0.70 x (Real(Point Value of Casting Unit))) to (Owner of Casting Unit) Current Gold
Удалить Casting Unit
Кто-нибудь, переведите части на английском на русский, я не пользуюсь русской версией редактора.
quq_CCCP, не получается - в качестве эффекта я использую модель юнита и она не показывается если изменить модель спецэффекта у Ауры или у предметов типа Захват знамени
Даёшь предмету абилку с эффектом, а абилка сделана на основе перечисленных тут. FYAN:
Открой модель в Model Editor, Edit -> Calculate Extents (Рассчитать границы), и сохрани модель с новыми границами в новый файл. И проверь отображение модели с новыми границами при сдвинутой камере.
То, что патч выпустили без многих багфиксов, - норма. Разработчикам поставили конкретный дедлайн, возможно, очень малый, а они не успели всё пофиксить. Их можно понять. Они обычные люди, устроились на работу и им дали разбираться со старой игрой, где местами было сделано на скорую руку. Вряд ли ими движет какой-то энтузиазм. По крайней мере, точно не всеми - выход патча это подтверждает.
Потому я не рекомендую делать карту на патчах выше 1.28. Всё ещё может много раз поменятся. Лучше всё продумать на 1.26, местами сделать костыльно, но это будет работать, и люди будут играть. Как только в редакторе поздних версий всё наладится, перенести карту, как мне кажется, не составит труда.
Делаешь на гуи.
Потом заходишь в меню Edit -> convert to custom script. И смотришь.
Сначала надо определить функцию F. Потом функция, где происходит всё остальное.
function F takes nothing returns nothing
local unit u = GetEnumUnit()
...
set u = null
endfunction
function action takes nothing returns nothing
local group g = CreateGroup()
set g = GroupEnum...(g, ...) // добавляет юнитов в группу. Сама функция зависит от того, как ты выбираешь юнитов.
call ForGroup(g, function F)
call DestroyGroup(g)
set g = null
endfunction
Можешь циклом перебирать всех юнитов в группе.
Взял первого юнита группы, сделал с ним что-то нехорошее, удалил из группы (Переместил во вторую группу, если они тебе в дальнейшем нужны именно в этом составе). Повторил, пока юниты в группе не закончатся. Если юзал вторую группу - добавил ее юнитов в исходную.
В итоге ты кучу раз вызываешь функцию ForGroup, вместо того, чтобы вызвать её только один раз.
PT153, у меня даже через обычных не проходит, обходит их.
Единственное. что выяснил случайно: Моя тень не может проходить насквозь юнитов, а вот другие юниты могут через мою тень ходить.
Я делаю ТДшку, и у меня с этой способностью всё хорошо, так как приказы отдаются триггерно. Миньоны просто идут через друг друга. Без неё спотыкаются друг о дружку.
Делаешь на гуи.
Потом заходишь в меню Edit -> convert to custom script. И смотришь.
А так, делаешь локальную группу через local group g = Create Group(), потом добавляешь в неё тех, кого нужно, а после ForGroup(g, function F). F - функция, в которой описано, что делать с юнитами в группе. Уничтожаешь группу и обнуляешь g после ForGroup().
В структурах нужно обязательно указывать размер массива, так как для каждого поля создаётся массив (размер которого 8192). После на каждую инстанцию структуры отводится столько ячеек из 8192, сколько есть максимальный размер массива, который используется в структуре.
На каждый объект этой структуры будет отведено 10 ячеек из 8192, при этом ячейка 0 занята на "null" структуры, а 8191 не используется. То есть всего объектов мы можем единовременно иметь 8190 / 10 = 819. Если захотим создать больше, будут выводиться ошибки, если включён Debug Mode, а объект просто не будет создан: функция allocate вернёт 0.
А чтобы использовать константы в определении размера массивов, пишите так:
globals
constant integer H = 500
constant integer P = 2 * H
endglobals
struct MyStruct
static constant integer U = 400
integer array z[P]
endstruct
Тут нужно отметить факт, что константы должны быть заданы чётко. vJass не будет вычислять P при компиляции, потому размер массива z в структуре равен 2 - первому числу, которое встречается в выражении P. Компилятор vJass просто копирует значение переменной и генерирует Jass код. Отсюда вытекает, что вы не можете регулировать размер массива во время игры - он отводятся при компиляции и записан в коде.
А вообще, читайте это. Там всё рассказано очень хорошо (почти).
PT153, эти точно на проходимость через всех юнитов влияет?
Давал юнитам (не зданиям) в своей карте - проходят через всех, кроме зданий. Возможно, стоило сразу указать, просто для меня юнит = боевая единица, которая зданием не является.
Способность Ghost (Visible) 'Aeth' - проходимость через всех юнитов, сам юнит видим.
Способность Ghost 'Agho' - проходимость через всех юнитов, сам юнит невидим.
» WarCraft 3 / Продажа юнита
Ред. PT153
» WarCraft 3 / Равкод 'A00\'
» WarCraft 3 / Продажа юнита
По поводу бд. Бд лучше сделать на структурах, это описано тут.
Ред. PT153
» WarCraft 3 / Продажа юнита
Самый банальный способ.
В Редакторе Объектов ставишь своей башни Point Value равное стоимости башни. Даёшь башне способность Х на основе Channel (Канал).
А теперь триггер.
Ред. PT153
» WarCraft 3 / вопрос по удалению спецэффектов
FYAN:
» WarCraft 3 / Вопрос по моделированию
» WarCraft 3 / 7.Перечисления
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Потому я не рекомендую делать карту на патчах выше 1.28. Всё ещё может много раз поменятся. Лучше всё продумать на 1.26, местами сделать костыльно, но это будет работать, и люди будут играть. Как только в редакторе поздних версий всё наладится, перенести карту, как мне кажется, не составит труда.
Ред. PT153
» WarCraft 3 / OrderById
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Ред. PT153
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Узнал об этом из рекламы этого патча в Battle.net Launcher во вкладке StraCraft II.
» WarCraft 3 / Что это?
Этот ресурс утверждает, что смысл этого поля неизвестен. Потому Вы вряд ли сможете узнать ответ.
Ред. PT153
» WarCraft 3 / Что это?
» WarCraft 3 / Вопрос про Custom Script
Ред. PT153
» WarCraft 3 / Вопрос про Custom Script
Ты смотрел так?
Ред. PT153
» WarCraft 3 / Как сделать прозрачный (бестелесный) юнит?
Ред. PT153
» WarCraft 3 / Вопрос про Custom Script
Потом заходишь в меню Edit -> convert to custom script. И смотришь.
Ред. PT153
» WarCraft 3 / [jass] Кроме констант как можно добавить в массив?
Ред. PT153
» WarCraft 3 / Как сделать прозрачный (бестелесный) юнит?
» WarCraft 3 / Как сделать прозрачный (бестелесный) юнит?
Способность Ghost 'Agho' - проходимость через всех юнитов, сам юнит невидим.
» WarCraft 3 / Иконка в mpq
» WarCraft 3 / Иконка в mpq
» WarCraft 3 / Иконка в mpq
» WarCraft 3 / Этот спелл можно сделать без heshtable
Насколько я знаю, если хеш чистить, то утечек не будет.
Ред. PT153
» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4