if GetUnitTypeId(u) == FourCC('Hpal') and GetIsssuedOrderId() == OrderId("defend") then
что надо писать для дефенда чтобы он работал?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
7
prog:
а ссылки на функции тем более.
Иногда есть смысл выносить функции в локальные переменные, но только когда они используются много раз в одном месте - доступ к локалкам быстрее доступа к глобалкам.

FourCC('ORDER_defend')
FourCC работает только с 4-символьными равкодами, пытаться подсунуть ему приказ смысла нет.
да это после много попыток пытался так проверить)) все равно не робит
7
prog:
а ссылки на функции тем более.
Иногда есть смысл выносить функции в локальные переменные, но только когда они используются много раз в одном месте - доступ к локалкам быстрее доступа к глобалкам.

FourCC('ORDER_defend')
FourCC работает только с 4-символьными равкодами, пытаться подсунуть ему приказ смысла нет.
Я высказался по поводу именно данного кода, а не в общем.

GetIsssuedOrderId()
Добавь функцию BJDebugMsg(GetUnitName(GetOrderedUnit()) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
и посмотри что происходит.
7
BJDebugMsg(GetUnitName(GetOrderedUnit()) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
прикинь ничего не может прочитать евент
7
Ельнур:
BJDebugMsg(GetUnitName(GetOrderedUnit()) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
прикинь ничего не может прочитать евент
в смысле?
7
TheMilka:
Ельнур:
BJDebugMsg(GetUnitName(GetOrderedUnit()) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
прикинь ничего не может прочитать евент
в смысле?
ну триггер не робит хотя все правильно создано
do
  local c = InitGlobals -- записываем InitGlobals в переменную
  function InitGlobals() -- заменяем оригинальную InitGlobals своей
       c() -- вызываем оригинальную InitGlobals из переменной
       InitMyTrigger1()
  end
end
do
function InitMyTrigger1()
function razboinikorder()
local u = GetOrderedUnit()
DisplayTimedTextToPlayer(Player(0),0,0,10,GetUnitName(u) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
DisplayTimedTextToPlayer(Player(0),0,0,10,"order")
end
local t5 = CreateTrigger()
local cot5 = razboinikorder
local evenk5 = EVENT_PLAYER_UNIT_ISSUED_ORDER
local p0 = Player(0)
local p1 = Player(1)
local p2 = Player(2)
local p3 = Player(3)
local p4 = Player(4)
TriggerRegisterPlayerUnitEvent(t5,p0,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p1,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p2,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p3,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p4,evenk5,nil)
TriggerAddAction(t5,cot5)
end
end
ошибочка, триггер робит если я удалю твою строку DisplayTimedTextToPlayer(Player(0),0,0,10,GetUnitName(u) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
7
Ельнур:
TheMilka:
Ельнур:
BJDebugMsg(GetUnitName(GetOrderedUnit()) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
прикинь ничего не может прочитать евент
в смысле?
ну триггер не робит хотя все правильно создано
do
  local c = InitGlobals -- записываем InitGlobals в переменную
  function InitGlobals() -- заменяем оригинальную InitGlobals своей
       c() -- вызываем оригинальную InitGlobals из переменной
       InitMyTrigger1()
  end
end
do
function InitMyTrigger1()
function razboinikorder()
local u = GetOrderedUnit()
DisplayTimedTextToPlayer(Player(0),0,0,10,GetUnitName(u) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
DisplayTimedTextToPlayer(Player(0),0,0,10,"order")
end
local t5 = CreateTrigger()
local cot5 = razboinikorder
local evenk5 = EVENT_PLAYER_UNIT_ISSUED_ORDER
local p0 = Player(0)
local p1 = Player(1)
local p2 = Player(2)
local p3 = Player(3)
local p4 = Player(4)
TriggerRegisterPlayerUnitEvent(t5,p0,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p1,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p2,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p3,evenk5,nil)
TriggerRegisterPlayerUnitEvent(t5,p4,evenk5,nil)
TriggerAddAction(t5,cot5)
end
end
ошибочка, триггер робит если я удалю твою строку DisplayTimedTextToPlayer(Player(0),0,0,10,GetUnitName(u) + " выполняет приказ "+I2S(GetIsssuedOrderId()))
Отсюда вывод. У тебя ошибка в построении триггера. В моей функции выводится в чат имя "юнита получившего приказ" и "полученный приказ".
7
там было 3 sss просто )) GEtisssued orderid
if GetIssuedOrderId() == 852055 and GetUnitTypeId(u) == FourCC('Hpal') then
UnitAddAbiliy(u,FourCC('Aid0'))
end
if GetIssuedOrderId() == 852056 and GetUnitTypeId(u) == FourCC('Hpal') then
UnitRemoveAbiliy(u,FourCC('Aid0'))
end
дебаг высвечивает но абилка не добавляется пробовал два варианта с AId0 и Aid0

даже рпробовал вместо ' > " все равно не добавляет
32
prog, Бред, драколич и анрайз доказали обратное, у них одно адресное пространство, вовсе эти обьекты в вируальной машине практически не отличаются, ибо там можно создавать и удалять переменные на лету, поэтому нет никакой разницы. Чтение значения напрямую быстрее чем через переменную, речь идет о интерпретируемых языках а не о компилируемых.
24
quq_CCCP, для луа - это не бред, а факт. Для жасса - да, нет разницы. Вопрос по Lua, а не по жассу.
32
Ельнур, быть может 'Ald0'?
В гуях укажи эту абилку, а потом конвертни в код скопируй рокод абилки.

prog, тут тоже кстати не тот луа, о котором все говорят. Но пока инфы на понятном языке нет (китайцы только), спорить с вами не буду.
7
quq_CCCP:
Ельнур, быть может 'Ald0'?
В гуях укажи эту абилку, а потом конвертни в код скопируй рокод абилки.

prog, тут тоже кстати не тот луа, о котором все говорят. Но пока инфы на понятном языке нет (китайцы только), спорить с вами не буду.
call UnitAddAbilityBJ( 'AId0', GetTriggerUnit() )

да это не луа но можно запомнить его ифы как функции пишутся и когда варик окончательно сдохнет чуть легче будет перейти в тот же роблокс или дота 2 это как с джассом если ты его не знаешь то ты не можешь писать в луа варкрафт) ну и + это не нужно обнулять
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.