Конечно, когда два события происходят одновременно, то один триггер может отдать юниту приказ по истечении, а другой что-то сделать и заново запустить таймер, в итоге юнит не будет слушать приказы, так как ему новый поступает каждые 0.02 секунды. Поставь в каждый триггер с таймером дебаг, чтобы первым действием выводилось на экран сообщение с номером триггера, хоть увидишь так триггеры, которые вызывают проблему.
я думаю гадать, что его триггеры там делают бесполезно, проще будет если автор прикрепит карту, тогда картинка станет чуточку яснее. Я предположил лишь одну проблему, но возможно там все куда проще и он своих юнитов забивает приказами и поэтому они не слушаются.
Насколько знаю сам несколько раз сталкивался с похожей проблемой, когда использовал группу б.е. с условием "units selected by игрок", избавился от нее везде и игроки перестали терять контроль над персонажами. Если такая же проблема, то рекомендую заменить условие на "units onwed by игрок" matching condition и выбрать там "unit selected by игрок" в логической. Этой функцией лучше не пользоваться, судя по всему она и вызывает данную проблему.
П.с. то, что я описал выглядит примерно так: юнит приказы получает и отзывается, но ничего не делает, все приказы ставятся в очередь и ничего не происходит пока юнита не перевыберет игрок владелец.
к счастью для меня, я в курсе про утечки, я сейчас попробую сделать и отпишу о результате, спасибо.
Эх и в правду сильно дергается, в DGUI я к сожалению не разобрался, пока не знаю как буду решать, пока оставлю дерганный, если в будущем придумаю как усовершенствовать, то сделаю что-нибудь, всем спасибо.
Можно прикрепить к положению камеры игрока и с очень малым периодом смещать в текущее местоположение, если координаты камеры сменились. По такому принципу сделан DGUI.
я так и пытался, только не понял как прикрепить к положению камеры игрока, можно тут поподробнее.
Centyrion, если это ответ ко мне, то ты мне лучше скажи, у тебя планируются предметы, которые можно носить больше чем в 1 экземпляре, но не больше чем в 2-3+? Просто если не планируются, то я вообще не понимаю в чем проблема повторить как у меня и перед этим if then else всунуть еще один исключающий ненужные предметы или наоборот включающий только нужные. Если же планируются, то лучше обращайся к тем, кто тебе этот код написал, я не очень хочу лезть в него ибо не знаю всех его деталей.
Простите слепой челик на мне не заметил, что это условие уже раньше писали тут, я исчезаю короч).
Дружище, если постоянно задавать вопросы и просить сделать все за тебя ты ничему научишься. Если ты так всю карту собрался делать, задавая вопросы на каждую сложность, то ты никогда не поймешь, что у тебя за что отвечает и баги ты кстати свои без вопросов на этом проекте тоже исправить не сможешь) Сорян за оффтоп, ответ уже дали выше.
Так, я не очень уловил о чем идет речь, но попытаюсь помочь. Недавно сам гуглил систему, чтоб каждый предмет мог быть не больше чем в 1 экземпляре в инвентаре юнита. Подсмотрел на хайве системку и делал вот так, у меня система работает.
По идее если покопаться с условиями, то можно сделать и для определенных предметов, однако все еще не больше чем 1, если надо не больше чем 2 или больше, то не пойдет.
Пс самое первое условие можно заигнорить, это для моей карты, без него система будет работать всегда)
Тимколор накладывается на прозрачные части текстуры, новый слоем под низ добавьте непрозрачный цвет, обычно делают чёрный
Боюсь меня неправильно поняли. Я про изменения цвета самого юнита, которые по RGB делаются (255,255,255 и альфа 0-100%). В триггерах или в редакторе объектов можно поменять. Я просто не знаю возможно ли это вообще, тимколора у модельки деревенщин вообще нет насколько я знаю, я использую модельки villager 40 animations, villager robe 40 animations и female villager 40 animations. Все три на хайве есть. Боюсь, что это все либо не так просто как кажется, либо вообще невозможно.
Mate, очевидно что прежде чем триггеру добавить действие, его нужно сначала написать, у этой функции, назовем её TriggerAction не должно быть аргументов,
function TriggerActions takes nothing returns nothing
Функцию эту нужно обьвить выше того места где ты собрался добавлять триггеру действие.
А уже в самой функции ты будешь удалять юнитов, ссылаясь на GetTriggerUnit() - это тот на кого сработало событие триггера, разумеется это работает на те события, которые напрямую связанны с юнитом.
Мне пока что очень тяжело понять, о чем Вы говорите, мой Джаз всегда ограничивался на кастомных скриптах подсмотренных у разных кодеров). С 2012-го года я залипаю в GUI ибо желание учить JASS так и не появилось. NazarPunk:
Я пытаюсь сделать спелл который при попадании в героя заменяется на другой спелл в течении короткого периода времени, это еще и МУИ, так что вэйт тут не подойдет)
Mate, а почему вы пытаетесь добавить триггеру действие, ссылаясь на нативную функцию которая требует аргументы.
функция TriggerAddAction требует триггера и code, ссылку на функцию, при этом у этой функции не должно быть ни входных аргументов.
Та потому что у меня в этом маломальские знания, но мне нужно как-то сделать добавление действий в триггер и их последующее удаление после того как этот триггер сработает, увы другого способа я пока что не нашел.
А на крайний случай можно же сконвертировать пустой триггер в код и посмотреть синтаксис вызова.
function Trig_temp_Actions takes nothing returns nothing
endfunction
//===========================================================================
function InitTrig_temp takes nothing returns nothing
set gg_trg_temp = CreateTrigger( )
call TriggerAddAction( gg_trg_temp, function Trig_temp_Actions )
endfunction
Вот кстати когда писал вопрос сообразил поменять QD_Timeout на gg_trg_QD_Timeout, но ошибка осталась.
Может ли это быть, что я делаю через custom скрипты?
Тоже сегодня гуглил на английском, увы наткнулся только на то, что уже упомянули выше. Как вариант просто делать мелководье через редактор и когда прожимают способность поднимать уровень через триггеры (на английском у меня там что-то про кратер было), выставив там отрицательную высоту будет горка, дальше уже на свое усмотрение.
Тип передвижения на Нет ставишь?
Хотя, если здание, значит прямоугольная карта путей по игровой сетке, а не любое местоположение. Тип передвижения в этом случае не важен.
Я думаю кроме нас тут уже больше никто не напишет поэтому я закрою вопрос, спасибо за внимание и ответы.
По идее приказы важны, когда будешь возникновение стены делать не столько над героем, управляемым человеком, сколько над управляемым ИИ крипом, чтобы он из-за стены не оставался стоять на месте до конца игры. Также можешь попробовать сделать стену юнитом с типом движения Нет, у этого юнита изначально будет способность Москиты (Aloc), так юнит будет появляться в том месте, которое указал, а не рядом с тамошним юнитом, но после создания отбирай у этого юнита Москиты (Aloc). Но может быть это и будет приводить к застреванию в стене, а может и нет)
Извиняюсь за поздний ответ, я не наблюдаю никаких застреваний, даже если стена и появляется прямо на игроке его сразу же смещает, возможно это из-за того, что сам юнит стена - здание.
По идее можно спавнить стену и сразу делать ей collision off, через 0.001 секунду, например, делать collision on, либо выбирать всех юнитов в области создания стены и им отключать и включать collision. Но не проверял, вдруг это будет приводить к застреванию юнита. По идее твой вариант с мгновенным перемещением хорош, но не сбивает ли он очередь приказов перемещённого юнита?
конкретно у стены нет приказов, у того на чьей голове она показывается увы пока не проверял так как тестировал через установку МСа на 0 (то есть на стоящего юнита ставил наверх стену) и потом возвращал ему стандартный МС и юнит спокойно выходил из стены с той стороны где ему было ближе и шел меня атаковать.
Если даже и сбивает приказ по-моему можно отследить какой был приказ до мува и перевыдать его, но опять же я с этим не баловался. Твой вариант я попробую позже, спасибо за ответ.
Mate, ну вообще система не самая лучшая, сходу назову то, что не исчезает зачастую эффект после Дизморали, а также не удаляется группа после создания юнита. Дело в том, что создаётся группа из нескольких юнитов, в данном случае из одного. Сам юнит удаляется, а группа нет.
Тоже не разбираюсь почти в jass, лишь примерно понимаю, что делают такие триггеры, но писать их не очень готов. И там более не понимаю людей, которые понтуются знанием jass, но пишут на нём очень корявые триггеры. Не имел ввиду кого-то из присутствующих, просто неоднократно сталкивался с кривыми jass-реализациями.
Эффект от дизморали я уже сменил на другой и там все работает нормально, я наверное пока прикрою этот вопрос, если что-то будет опять не работать, то пойду учится JASS'у.
Всем спасибо.
Mate, посмотрел карту, способности перестали применяться через несколько использований, стал смотреть триггеры, некоторые действия в триггере Damage Engine Config не работали, может быть где-то ещё тоже. Чтобы их запустить, открывал действие и нажимал Ok. Опять запустил карту и довольно долго тестировал, способности не прекращали работать.
Странно, в Damage Engine config находятся только переменные и те что выключены нужны для копирования, их не нужно было включать кроме рунных браслетов, они ситуативные. В общем я понял, что я ничего не понял и баг какой-то супер рандомный. noyl:
Учить GUI в 2018 - себя не уважать.
Столько хороших статей написано чтобы JASS начать учить!
Да я по старым статьям из 2007-2013 смотрю, в JASS'e я вообще ничего не понимаю..
Mate, ну тебе нужно хранить где то данные о том кто кастанул спелл и куда, ты их сохраняешь в массив, там стоит счетчик который выдает новые ячейки если кто то еще этот самый спелл применит, так тут реализована мультиприменяемость, а ты варочтно не учитваешь этого и из за этого все ломается. Смотрел код бегло, хз как там сделать получше.
На вид что то вроде волны которая кастует увечье и наносит урон всем на своем пути, карту даже не запускал.
Не суть, там не на что смотреть кроме двух скиллов. Я не могу понять почему я не могу вызвать этот баг с момента как поменял пару значений.
Mate, ну очивидно ошибка реализации, ибо используются одни и те же массивы, в которых происходит коллизия, одни и те же ячейки используют раные способности. Вовсе я бы не советовал так замарачиватся с гуи, а прочитать статьи на jass и забить на все это дело, юзая хештаблицы.
Можно немного подробнее. Я не специалист в этом. Я так понял моя ошибка заключается в том, что я использую один и тот же массив везде?
Я так понял это просто копипаст с чужих наработок, и вы не разбираетесь как они работают? Это гуи спелл, но его переменные и обьекты не могут использовать другие спеллы, такая сложность и замороченность - это ГУИ, на гуи сложно делать сложные способности, а так же реализовать бы универсальный движок для различных однотипных способностей, вроде волны силы. Либо копируйте готовое как есть и не меняете, либо разрабатывайте спелл с нуля учитывая все "но" и "если".
Ну как не разбираюсь, я конечно лошок в этом я отрицать не буду, но тут я переделал почти все использовав наработку как шаблон на который опирался. Indexer и Damage систему позаимствовал с хайва, ибо зачем изобретать велосипед когда уже есть идеальная его версия. Сейчас попробую нормально объяснится. Я скопировал Template ака шаблон, то есть карту из туториала Bribe'a по которой он учит как создавать MUI спеллы на GUI используя его системку(ну это как я понимаю).
Я понимаю, что ту вопрос скорее к нему чем сюда, но сомневаюсь, что там мне кто-то ответит.
Я то знаю как работают эти два спелла, я просто не вижу где я допустил ошибку и почему спелл после нескольких использований перестает работать, я лишь вижу, что у меня юнит начинает удалятся после нескольких использований, а вот почему он удаляется я не вижу.
UPD. Я возможно уже даже разобрался в чем дело, сейчас еще несколько раз проверю и напишу если исправил.
» WarCraft 3 / Потеря контроля над персанажам
Ред. Mate
» WarCraft 3 / Потеря контроля над персанажам
П.с. то, что я описал выглядит примерно так: юнит приказы получает и отзывается, но ничего не делает, все приказы ставятся в очередь и ничего не происходит пока юнита не перевыберет игрок владелец.
» WarCraft 3 / Как закрепить плавающий текст вверху экрана?
Эх и в правду сильно дергается, в DGUI я к сожалению не разобрался, пока не знаю как буду решать, пока оставлю дерганный, если в будущем придумаю как усовершенствовать, то сделаю что-нибудь, всем спасибо.
» WarCraft 3 / Как закрепить плавающий текст вверху экрана?
Ред. Mate
» WarCraft 3 / Ограничение для предметов
Ред. Mate
» WarCraft 3 / Иконки выбора героев
Сорян за оффтоп, ответ уже дали выше.
» WarCraft 3 / Ограничение для предметов
Пс самое первое условие можно заигнорить, это для моей карты, без него система будет работать всегда)
» WarCraft 3 / Как сделать, чтобы части модели нельзя было поменять цвет?
PrincePhoenix: ну что-то в моем случае не помогло, похоже я тут сам себе помочь не смогу. -.-
» WarCraft 3 / Как сделать, чтобы части модели нельзя было поменять цвет?
» WarCraft 3 / Как создать процентный отхил? (триггерно)
» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.
NazarPunk: Пойду во всем этом теперь разбираться, буду делать иначе, всем спасибо.
» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.
» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.
» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.
Ред. Mate
» WarCraft 3 / Syntax Error, unexpected: "(" ? - Ошибка в Jass.
Может ли это быть, что я делаю через custom скрипты?
» WarCraft 3 / Способность, создающая мелководье
» WarCraft 3 / Как сделать спавн юнита на другом юните без смещения?
» WarCraft 3 / Как сделать спавн юнита на другом юните без смещения?
» WarCraft 3 / Как сделать спавн юнита на другом юните без смещения?
Если даже и сбивает приказ по-моему можно отследить какой был приказ до мува и перевыдать его, но опять же я с этим не баловался. Твой вариант я попробую позже, спасибо за ответ.
» WarCraft 3 / Проблема с триггером.
Всем спасибо.
» WarCraft 3 / Проблема с триггером.
noyl: Да я по старым статьям из 2007-2013 смотрю, в JASS'e я вообще ничего не понимаю..
» WarCraft 3 / Проблема с триггером.
» WarCraft 3 / Проблема с триггером.
Ред. Mate
» WarCraft 3 / Проблема с триггером.
Я понимаю, что ту вопрос скорее к нему чем сюда, но сомневаюсь, что там мне кто-то ответит.
» WarCraft 3 / Как сделать голосование как в Trolls And Elves при выборе тролля(Желательно GUI)