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

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

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

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

да это не луа но можно запомнить его ифы как функции пишутся и когда варик окончательно сдохнет чуть легче будет перейти в тот же роблокс или дота 2 это как с джассом если ты его не знаешь то ты не можешь писать в луа варкрафт) ну и + это не нужно обнулять
24
quq_CCCP, что значит "не тот луа"? Ты всерьез веришь что близы сделали что-то большее, чем взяли стандартную поставку луа в виде исходного кода, отключили ряд модулей, подключили свое API и недавно вот немного со сборщиком мусора по шаманили?
32
prog, В том то и дело, что сделали по минимуму, точнее просто свой интерпретатор по апи языка, на одну и ту же вирутальную машину. Но пока слухи, и перевод с китайского сленга -не читаем после гугл переводчика, позже если на хайве всплывет то уже и будем говорить что они сделали. Ссылку где обсирали луа китаезы и разбирали код игры дестабилизированный есть у анрайза.
7
тему пора закрывать добавил ему изначально в ро бонус к броне с 2 уровнями работает
if GetIssuedOrderId() == 852055 and GetUnitTypeId(u) == FourCC('Hpal') then
DisplayTimedTextToPlayer(Player(0),0,0,10,"order")
SetUnitAbilityLevel(u,FourCC('AId0'),2)
end
if GetIssuedOrderId() == 852056 and GetUnitTypeId(u) == FourCC('Hpal') then
SetUnitAbilityLevel(u,FourCC('AId0'),1)
end
38
Для жасса - да, нет разницы. Вопрос по Lua, а не по жассу.
в бухгалтерии опять всё перепутали и лупа получил за пупу, а пупа получил залупу
не дезинформируй плиз, диод работал с байткодом
24
свой интерпретатор по апи языка, на одну и ту же вирутальную машину
Это бред и в этом нет никакого смысла, работы в разы больше, чем взять готовую луа машину и допилить. Более того, есть вещи, которые жассовая виртуальная машина не умеет просто по своей тупой природе и почему-то они отлично работают. То что сделан минимум - факт. То что интеграция луа кривоватая - факт. Работа луа поверх жассовой виртуалки - полный бред.
32
ScorpioT1000, я чето больше доверяю людям которые сейчас работают, а не тогда, когда еще писали что ХТ супер медленные и там про таймер експлоит что топ, на деле оказалось что нет. Пруфы кстати приводили, и старые методики вроде посмотреть какой способ лагает меньше в игре, тот и быстрее - тоже оказались не корректными.

prog, про луа будем говорить когда будет разбор полетов на английском хотя-бы, что они и как сделали. Кто их знает, но про то что у них там не та реализайция и тормазнутее в разы - я уже слышал, сам на эту тему спорить не буду, поживем - увидим.

Почему ссыллки на старые темы все упали? На форуме ничего уже не почитать?
27
я вот тоже думаю от локалок уйти в 1.26. и использовать чисто темповые глобалки для временных ссылок. и удобно, можно вызывать несколько функции посредством ExcecuteFunc (там где мб лимит ОП). Просто получается личное удобство, не надо в каждой функции объявлять тысячи лок по новой. Локалки работают только внутри функции, а использовались изначально как для мультиплеера, ну и для удобства конечно совместно с хэш-таблицей. инфа просто немного исказилась, их использовать можно только с вэйтами. Мне еще казалось, что локалки тратят и на создание, и на обнуление. А щас вот как Никакой разницы?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.