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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
7
TheMilka:
Ельнур:
852055
не робит if GetUnitTypeId(u) == FourCC('Hpal') and GetIsssuedOrderId() == 852055 then
Значит у тебя неправильное событие.

local t = CreateTrigger()
local cot = razboinikorder
local evenk = 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(t,p0,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p1,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p2,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p3,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p4,evenk,nil)
TriggerAddAction(t,cot)
7
Ельнур:
TheMilka:
Ельнур:
852055
не робит if GetUnitTypeId(u) == FourCC('Hpal') and GetIsssuedOrderId() == 852055 then
Значит у тебя неправильное событие.

local t = CreateTrigger()
local cot = razboinikorder
local evenk = 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(t,p0,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p1,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p2,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p3,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p4,evenk,nil)
TriggerAddAction(t,cot)
Ты совершенно неправильно строишь свой код. Не нужно выносить в переменные константы, созданные самой игрой, а ссылки на функции тем более.
Твой код становится ужасным, а твоё мышление тупится, как от резки ножиком для еды каменных булыжников.
GetUnitTypeId(u) == FourCC('Hpal') - Что за переменная 'u' ?
7
TheMilka:
Ельнур:
TheMilka:
Ельнур:
852055
не робит if GetUnitTypeId(u) == FourCC('Hpal') and GetIsssuedOrderId() == 852055 then
Значит у тебя неправильное событие.

local t = CreateTrigger()
local cot = razboinikorder
local evenk = 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(t,p0,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p1,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p2,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p3,evenk,nil)
TriggerRegisterPlayerUnitEvent(t,p4,evenk,nil)
TriggerAddAction(t,cot)
Ты совершенно неправильно строишь свой код. Не нужно выносить в переменные константы, созданные самой игрой, а ссылки на функции тем более.
Твой код становится ужасным, а твоё мышление тупится, как от резки ножиком для еды каменных булыжников.
GetUnitTypeId(u) == FourCC('Hpal') - Что за переменная 'u' ?
do
  local c = InitGlobals -- записываем InitGlobals в переменную
  function InitGlobals() -- заменяем оригинальную InitGlobals своей
       c() -- вызываем оригинальную InitGlobals из переменной
       InitMyTrigger1()
  end
end
do
function InitMyTrigger1()
function razboinikorder()
local u = GetOrderedUnit()
if GetUnitTypeId(u) == FourCC('Hpal') and GetIsssuedOrderId() == FourCC('ORDER_defend')  then
DisplayTimedTextToPlayer(Player(0),0,0,10,"order")
end
end
24
а ссылки на функции тем более.
Иногда есть смысл выносить функции в локальные переменные, но только когда они используются много раз в одном месте - доступ к локалкам быстрее доступа к глобалкам.

FourCC('ORDER_defend')
FourCC работает только с 4-символьными равкодами, пытаться подсунуть ему приказ смысла нет.
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

даже рпробовал вместо ' > " все равно не добавляет
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.