Хмммм, то что создает новый поток это конечно не очень для моего кода
А по поводу:"нет разницы", есть большая ошибочка, т.к. на луа, быстрейшим способом является впихивание в условие, т.к. не приходится вытаскивать юнита из группы, а в сравнении с BlzUnitAtGroup не приходится чистить группу после использования
Мне достаточно даже просто этого, и больше ничего не нужно... Ибо так надоели эти set/call/local и прочий хлам от jass'a...
Почему тогда просто не перейти на Lua?
Lua nesovmestim s 1.26, ya ne smogu v sluchae chego sdelat fast backup na jass dlya redaktora, a sidet cherez notepad=sebya ne uvajat, kak I svoe vremya
Мне плевать, я даже готов заплатить за это, немного, но готов.
Я обожаю эти макросы, эти скобки вместо takes nothing returns nothing, это же максимально эстетично и приятно, видеть этот код...Мне достаточно даже просто этого, и больше ничего не нужно... Ибо так надоели эти set/call/local и прочий хлам от jass'a...
Сам задал, сам ответил.
call BlzFrameSetParent выручает ситуацию, т.е. устанавливаешь предка, который не скрыт(любой созданный через blzCreateFrame, и к нему вешаешь.
А канал пробовали? В смысле, в канале же анимацию задать тоже можно в РО.
Там короче проблема появляется, в том, что если я начинаю чарджить, то анимации нет, в РО указывается только анимация, котороая будет проигрываться только после самого каста спелла. KaneThaumaturge:
Если нужно запретить атаковать, то можно дать способность Склад.
Вот тут по-подробнее~Calabe:
Можно дать безмолвие на время или периодически приказывать отставить
Отставить=проигрывание анимации stand, что будет сбивать мне анимацию
Мне нужно чтобы юнит в любой момент мог использовать способность или атаковать, только при своем желании
Нет, анимка не проигрывается триггерно, во время каста спелла, только через РО
В общем, нашел решение проблемы. Проблема оказалась в модели, однако если использовать последовательность анимаций, то можно кастануть необходимую.
void NWUAnimationsByIndexAct() {
timer t = GetExpiredTimer()
int id = GetHandleId(t)
int tick = LoadInteger(h,id,0) + 1
unit u = LoadUnitHandle(h,id,8)
SaveInteger(h,id,0,tick)
SetUnitAnimationByIndex(u,tick)
if tick >= 2 {
SetUnitAnimationByIndex(u,LoadInteger(h,id,1))
PauseTimer(t)
}
u = null
t = null
}
void NWUAnimationsByIndex(unit u, integer i) {
timer t = CreateTimer()
int id = GetHandleId(t)
SaveInteger(h,id,0,-1)
SaveUnitHandle(h,id,8,u)
SaveInteger(h,id,1,i)
TimerStart(t,0.01,true,function NWUAnimationsByIndexAct)
t = null
}
function Out takes real x, real y returns boolean
return ((GetRectMinX(bj_mapInitialPlayableArea)<=x)and(x<=GetRectMaxX(bj_mapInitialPlayableArea))and(GetRectMinY(bj_mapInitialPlayableArea)<=y)and(y<=GetRectMaxY(bj_mapInitialPlayableArea))) or IsTerrainPathable(x,y, PATHING_TYPE_WALKABILITY)==false
endfunction
Только проверять нужно у точки впереди, сюда же можно добавить функцию проверки декора в точке
function CheckDes takes nothing returns nothing
local destructable d=GetEnumDestructable()
if GetDestructableLife(d)>0 and cdb==false and d!=null then
set cdb=TRUE
endif
set d=null
endfunction
function PCD takes real x,real y, unit u returns boolean//PointConteintDes
local rect r
local real d=50
set r=Rect( x - d*2, y - d*2, x + d*2, y +d*2 )
set cdb=false
call EnumDestructablesInRect(r,null,function CheckDes)
call RemoveRect(r)
set r=null
return cdb
endfunction
где cdb - логическая глобалка
работает как часы со времён 2013
Ой не, спасибо, каждый тик создавать регион и проверять, там выше куда приятнее и быстрее способ, через разницу в назначенной и нынешней точкой
» WarCraft 3 / Что лучше использовать?
У меня жесткий абьюз глобалок во всех таймерах, выгружаемых с хеша, спонтанный новый поток буквально уничтожит весь код, хэх
Ред. LainMikoroso
» WarCraft 3 / Что лучше использовать?
А по поводу:"нет разницы", есть большая ошибочка, т.к. на луа, быстрейшим способом является впихивание в условие, т.к. не приходится вытаскивать юнита из группы, а в сравнении с BlzUnitAtGroup не приходится чистить группу после использования
» WarCraft 3 / Что лучше использовать?
» WarCraft 3 / Регистр после запуска рефорджет
Я вынужден
Ред. LainMikoroso
» WarCraft 3 / Регистр после запуска рефорджет
Да, спасибо, уже нашел,.
upd:
Хрен знает зачем ты мне свое мнение о рефорджете кинул, хэх
» WarCraft 3 / Хук оригинальной функции хоткея
Неа, не работает
» WarCraft 3 / Хук оригинальной функции хоткея
Подожду других ответов, бтв, может кто-то что-то знает
» WarCraft 3 / Интерфейсы
» WarCraft 3 / Cjass
Koroche, est' ki lobby umelcev kotorie rabotaut mad cjass parserom? Vadik eshe jiv?
» WarCraft 3 / Cjass
» WarCraft 3 / Cjass
Я обожаю эти макросы, эти скобки вместо takes nothing returns nothing, это же максимально эстетично и приятно, видеть этот код...Мне достаточно даже просто этого, и больше ничего не нужно... Ибо так надоели эти set/call/local и прочий хлам от jass'a...
» WarCraft 3 / Не знаю, помогут ли мне здесь с интерфейсами.
Ред. LainMikoroso
» WarCraft 3 / Вопрос по интерфейсу 1.31
call BlzFrameSetParent выручает ситуацию, т.е. устанавливаешь предка, который не скрыт(любой созданный через blzCreateFrame, и к нему вешаешь.
» WarCraft 3 / Запретить атаковать
KaneThaumaturge: Вот тут по-подробнее~Calabe: Отставить=проигрывание анимации stand, что будет сбивать мне анимацию KaneThaumaturge: Склад вырубает саму атаку, мне нужна только лишь автоатака
Ред. LainMikoroso
» WarCraft 3 / Запретить атаковать
В общем, нашел решение проблемы. Проблема оказалась в модели, однако если использовать последовательность анимаций, то можно кастануть необходимую.
» WarCraft 3 / Запретить атаковать
» WarCraft 3 / Вопрос по поводу отлова точки
» WarCraft 3 / Вопрос по поводу отлова точки
» WarCraft 3 / Вопрос по поводу отлова точки
» WarCraft 3 / AnimeRE@
» WarCraft 3 / Вопрос по поводу отлова точки
» WarCraft 3 / Вопрос по поводу отлова точки
» WarCraft 3 / Проигрывание анимации
» WarCraft 3 / Опять вопрос по освещению
PrincePhoenix: По вопросу кстати, есть более менне подходящее освещение, но все равно немного не то, что нужно, есть еще предложения?
» WarCraft 3 / Опять вопрос по освещению