quq_CCCP, пользуясь случаем, хотел еще спросить.
Нет ли какой-либо разницы в добавлении в один триггер нескольких trigger condition и trigger action (кроме вышесказанного)
KingMaximax, я собирался это сделать, если никто тут не ответит.
Там куча карт, открывать каждую и вникать для меня сложно. К тому же там все триггеры написаны на GUI, а это очень сложно понимать, потому-что он тупо не читабелен. Миллион кликов мышью, чтобы открыть то, открыть это... Вот если бы там было написано на JASS....
У меня нет списка, так сделай свой. Не понимаю, обязательно делать как было у близзард 3? главное, чтоб красиво, быстро и удобно было, без излишевств. Если так надо перерой весь варкрафт 3, потом скинь на сайт.
Текст сообщения будет записан на след. строке, а не в один с "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО"
"|n" - перенос на другую строку. Эта фишка может не везде работать, например в описаний баффов. Но здесь пригодится, должно сработать по идее.
Если "|n" не работает, ну мало ли там, вот в описаний итемов и юнитов работает норм. так введи два сообщения последовательно: Сначало одно сообщение, потом другое. Второе на следующую строку перенесет. И будет тебе два как одно.
допустим, когда вы получаете новое задание, сообщение "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО" будет закрашено в цвет "ffcc00" и именно в такой, а не в зеленый (00ff00) например.
Ну нужно иметь набор готовых строк. Короче базу данных. При конкретных ситуациях выдавай соответствующее сообщение. Я тоже хотел бы иметь этот набор
вот где полезны штуки, так вот здесь
Вот например, для игроков эти штуки пригодятся, в мультибордах или в оповещениях при убийствах и др.
Я уже сделал функцию, но там еще много не доделано.
Steal nerves, я имел ввиду оформление.
допустим, когда вы получаете новое задание, сообщение "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО" будет закрашено в цвет "ffcc00" и именно в такой, а не в зеленый (00ff00) например.
И текст будет написан полностью большими (прописными) буквами, а не строчными, например.
Текст сообщения будет записан на след. строке, а не в один с "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО".
Steal nerves, Я имел ввиду снова не это. В твоём случае это происходит потому-что идёт выравнивание не по центру, а по правому краю.
Есть multiboard (2 строки, 2 столбца.):
ширина первого столбца первой строки 5%
ширина второго столбца первой строки 5%
ширина первого столбца второй строки 25%
ширина второго столбца второй строки 25%
Что мы должны иметь в итоге?
ширина первой строки в общем - 10%
ширина второй строки в общем - 50%
Казалось бы, теперь ширина всего multiboard должна быть равна 50%, (т. к. это ширина самой широкой строки). Но на деле мы имеем multiboard , ширина которого равна 10%. Потому что, ширина multiboard высчитывается по ширине первой строки.
Я попытался исправить это таким образом: увеличивал количество столбцов всего multiboard. Например, если брать вышеприведённый пример, то мне нужно добавить третий столбец и установить его ширину на 40% (потому что вторая строка именно на столько больше первой).
В этом вопросе я хотел узнать, как увеличить ширину всего multiboard, не добавляя новых столбцов.
Steal nerves, спасибо, конечно, за список функций. Но я спрашивал не это. Представь МБ, 2строки, 2 столбца.
Если задать ширину всех ячеек в строке 1 на 0.05, то если поставить ширину ячеек второй строки 0.5 и 0.2 - текст во второй строке не поместиться. МБ не увеличивается в ширине. Его ширина задаётся по перво й строке.
quq_CCCP, потому что этот эвент срабатывает еще до того, как юнит получит урон, достаточно лишь замахнуться, чтобы запустить триггер. А в этой библиотеке, триггер запускается, когда цель получит урон.
library TriggerRegisterAnyUnitDamagedEvent initializer Init
globals
public constant trigger TRIGGER = CreateTrigger()
private constant trigger TRIGGER_ADDER = CreateTrigger()
endglobals
private function TriggerAddEvent takes nothing returns boolean
if not HaveSavedHandle(HASHTABLE, GetHandleId(GetFilterUnit()), StringHash("bla_bla")) then
call SaveTriggerEventHandle(HASHTABLE, GetHandleId(GetFilterUnit()), StringHash("bla_bla"), TriggerRegisterUnitEvent(TRIGGER, GetFilterUnit(), EVENT_UNIT_DAMAGED))
endif
return false
endfunction
private function Init takes nothing returns nothing
local group g = CreateGroup()
local rect r = GetWorldBounds()
local region reg = CreateRegion()
local boolexpr filter = Condition(function TriggerAddEvent)
call GroupEnumUnitsInRect(g, r, filter)
call RegionAddRect(reg, r)
call TriggerRegisterEnterRegion(TRIGGER_ADDER, reg, filter)
call DestroyGroup(g)
call RemoveRect(r)
set g = null
set r = null
set reg = null
endfunction
function TriggerRegisterAnyUnitDamagedEvent takes code c returns nothing
call TriggerAddCondition(TRIGGER, Condition(c))
endfunction
endlibrary
Как видишь, на каждого нового заспавненного крипа прикрепляется евент, который остаётся после смерти крипа.
А такой триггер мне нужен, чтобы правильно работали скиллы у таверов. Например, один товер, атакуя кастует огненный столб на атакованного и т.д.
quq_CCCP, ты отвечал в моём предыдущем вопросе (про библиотеку, которая добавляет событие на получение урона всем юнитам), там добавляется событие на каждого юнита на карте. Так как карта у меня жанра TD, получается, что карта будет иметь миллион утечек памяти?
quq_CCCP, переделал, посмотри, пожалуйста. А проверка на дамми и т. д. не нужна, мне кажется. То что они дамми, ведь не отменяет то, что они получили урон, а если нужно их отсеять, то можно уже сделать это в самой функции, где это нужно.
или уберите:
local boolexpr b = Condition(function Trigger_Conditions)
call DestroyBoolExpr(b)
set b = null
Замените call TriggerAddCondition(TRIGGER, b) на call TriggerAddCondition(TRIGGER, Condition(function Trigger_Conditions))
Это помогло. Но почему так? Там же утечка создаётся.
Ред. scopterectus
» WarCraft 3 / Поиск путей?
добавил скрин.
Ред. scopterectus
» WarCraft 3 / vJass
» WarCraft 3 / Trigger action vs. Trigger condition
Нет ли какой-либо разницы в добавлении в один триггер нескольких trigger condition и trigger action (кроме вышесказанного)
» WarCraft 3 / Trigger action vs. Trigger condition
» WarCraft 3 / Оформление заданий от BLIZZARD
Там куча карт, открывать каждую и вникать для меня сложно. К тому же там все триггеры написаны на GUI, а это очень сложно понимать, потому-что он тупо не читабелен. Миллион кликов мышью, чтобы открыть то, открыть это... Вот если бы там было написано на JASS....
» WarCraft 3 / Оформление заданий от BLIZZARD
» WarCraft 3 / Оформление заданий от BLIZZARD
допустим, когда вы получаете новое задание, сообщение "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО" будет закрашено в цвет "ffcc00" и именно в такой, а не в зеленый (00ff00) например.
И текст будет написан полностью большими (прописными) буквами, а не строчными, например.
Текст сообщения будет записан на след. строке, а не в один с "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО".
» WarCraft 3 / multiboard
» WarCraft 3 / multiboard
Если задать ширину всех ячеек в строке 1 на 0.05, то если поставить ширину ячеек второй строки 0.5 и 0.2 - текст во второй строке не поместиться. МБ не увеличивается в ширине. Его ширина задаётся по перво й строке.
» WarCraft 3 / Функция для удаления евента триггера
Ред. scopterectus
» WarCraft 3 / Функция для удаления евента триггера
ps нашел
ps2: зачем при спавне крипов что то им добавлять, если та библиотека делает тоже самое?
» WarCraft 3 / Функция для удаления евента триггера
» WarCraft 3 / Функция для удаления евента триггера
» WarCraft 3 / Функция для удаления евента триггера
» WarCraft 3 / Функция для удаления евента триггера
» WarCraft 3 / про boolexpr, filterfunc...
» WarCraft 3 / Функция для удаления евента триггера
Ред. scopterectus
» WarCraft 3 / Функция для удаления евента триггера
» WarCraft 3 / Функция для удаления евента триггера
Ред. scopterectus
» WarCraft 3 / Правильно ли я написал библиотеку?
Ред. scopterectus
» WarCraft 3 / Правильно ли я написал библиотеку?
» WarCraft 3 / Ошибка в коде
» WarCraft 3 / Ошибка в коде
» Блог им. nvc123 / оптимизация вызова триггерных заклинаний
Ред. scopterectus
» WarCraft 3 / textag