Могут ли перезаписатся глобалки например тут, если это будет в 2-ух триггерах, которые имею одинаковый triggerevent ?
set bj_lastCreatedUnit = GetTriggerUnit()
GroupEnumUnitsInRange(g, x, y, radius, Condition(function anc) )
Принятый ответ
пример
Если действие мгновенное, то глобалки не перезапишут. И локалки не нужны.
set bj_lastCreatedUnit = GetTriggerUnit()
..... //что-то делаем с юнитом bj_lastCreatedUnit
Если есть работы с задержкой, короче со временем (с тем же вэйтом или таймером). То тут может переписаться инфа.
set bj_lastCreatedUnit = GetTriggerUnit()
..... //что-то делаем с юнитом bj_lastCreatedUnit
//вэйт
..... //что-то продолжаем делать с юнитом bj_lastCreatedUnit (но где гарантия, что его не перезаписали).
У тебя допустим есть триггерная способность, там накидывающая эффект отравления (дамаг триггером наносишь bj_lastCreatedUnit). Есть триггер, ловящий каст, он вещает в bj_lastCreatedUnit юнита-цель. Допустим эффект длится 50 сек. (там вэйт стоит). Когда ты каждый раз запускаешь триггер, он запускает поток. А вот вэйт, он паузит поток. Допустим ты кликнул на одного юнита, повесил эффект на 50 сек. Потом на другого юнита. А эффект на первом не снимется (точнее частично снимется, не будет дамага), так как ты перезаписал bj_lastCreatedUnit (там уже второй юнит.). Надеюсь понял? похожее описывалось в xgm.guru/p/wc3/jass_local_vars В статье предлагают использовать локи, лично ничего страшного не вижу в использований локи. Можно сделать так чтобы нельзя было перезаписать ненароком, например юзнуть хэш, только локалки не нужны были бы. Хотя вот в работе с GetLocalPlayer() нужна ли локалка? (например имя или число (равкод) изменить)
Если у тебя в двух триггерах используется одна и та же глобалка, например используется bj_lastCreatedUnit в качестве темповой глобалки (но только задержки чтобы не было, а то перезапишет), то ничего страшного, не перезапишут, так как действие мгновенно. В варкрафте два триггера одновременно не могут выполнить работу. Варкрафт мгновенно выполняет поочередно, в доле микросекунд. Возбмет один обработает, а потом переключается на второй триггер.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован biridius
сейчас проверил
И ищем,подобное жевали уже не раз, помнится даже была древняя статья где все это описывалась, я привел краткое содержание.
Отредактирован MpW
Отредактирован pro100master
Отредактирован MpW