22

» WarCraft 3 / почему не работает Изменение структуры событие

Если ты хочешь создавать событие только для юнитов, у которых есть нужная абилка, делай это отдельным триггером отслеживая вход юнита на карту, а не в инициализации этого триггера.
Но все равно это все ерунда, просто поменяй назад как было, не надо ломать то что работает. Эти события не нужно оптимизировать.
22

» WarCraft 3 / почему не работает Изменение структуры событие

не, вот он развернутый
никаких GetPlayerId(GetOwningPlayer(GetTriggerUnit())) там нету
Загруженные файлы
22

» WarCraft 3 / почему не работает Изменение структуры событие

function InitTrig_SPELL_ACT takes nothing returns nothing
    set gg_trg_SPELL_ACT = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_SPELL_ACT, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( gg_trg_SPELL_ACT, function Trig_SPELL_ACT_Actions )
endfunction
.
function InitTrig_SPELL_END takes nothing returns nothing
    set gg_trg_SPELL_END = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_SPELL_END, EVENT_PLAYER_UNIT_SPELL_FINISH )
    call TriggerAddAction( gg_trg_SPELL_END, function Trig_SPELL_END_Actions )
endfunction
обычная генерация событий из ГУИ, зачем там было что-то менять?
22

» WarCraft 3 / почему не работает Изменение структуры событие

function InitTrig_SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
local unit u = GetTriggerUnit() // Вот это вот что такое?
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_FINISH) //  на кого у тебя событие создается? юнит не существует, события на него не создастся, конечно отслеживаться не будет
call TriggerAddAction(t, function SPELL_ACT )
set t = null
set u = null
endfunction
22

» WarCraft 3 / почему не работает Изменение структуры событие

Это вообще другой триггер, хотя тут тоже такая же ерунда с событием.
вобщем меняй на exitwhen i > 15
22

» WarCraft 3 / почему не работает Изменение структуры событие

вообще судя по имени этой функции
InitTrig_SPELL_END
Это функция инициализации триггера "SPELL_END". она запускается только при запуске самой карты. В этот момент GetTriggerUnit() не существует.
22

» WarCraft 3 / почему не работает Изменение структуры событие

Надо все делать заново и разбирать что именно ты хочешь достичь этим триггером. Почему цикл выполняется именно для всех игроков с номером не больше номера владельца несуществующего владельца юнита вызывающего инициализацию конвертнутого ГУИ триггера?
22

» WarCraft 3 / почему не работает Изменение структуры событие

MATRITSA, потому что сперва будет
TriggerRegisterPlayerUnitEvent(t, Player(-1), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
и только потом i=i+1
индекс игрока нельзя делать меньше 0 или больше 15
22

» WarCraft 3 / почему не работает Изменение структуры событие

что именно должен делать этот триггер?.
exitwhen i == GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
Возможно фатал выдает потому что если событие вызвал юнит красного игрока то цикл бесконечный и создается куча событий у триггера. В какой то момент вызывается Player(i) с недопустимо большим i.
У красного игрока номер 0, и условие exitwhen никогда не выполнится т.к. к моменту проверки i уже =1.
Либо событие вызвал вообще не юнит, тогда тоже индекс игрока будет 0.
22

» WarCraft 3 / ТЕКСТ

Просто строки хранятся в таблице строк карты но на ГУИ этого не видно, а при конверте в джасс это заметно. Редактор подменяет саму строку на вот этот TRIGSTR и потом во время игры при исполнении кода по этому номеру находит строку в этой таблице.
на джассе можно писать текст как обычно, в кавычках
BJDebugMsg("вот этот вот текст выведется на экран")
Не стоит делать кучу ГУИ действий и потом конвертить, все равно ничего хорошего из этого не выйдет, делайте сразу на джассе. В jngp есть поисковик функций так что не нужно копаться с накликиванием чтобы что-то найти.
22

» WarCraft 3 / как найти айди юнита

ток фигня в том что в массиве максимум 8192 ячеек
а хендлов в игре может насоздаваться и поболее
т.ч. просто вычитать число из хендлид не выход, может будет фатал
22

» WarCraft 3 / Есть ли функция

native CreateUnit takes player id, integer unitid, real x, real y, real face returns unit
unitid - id юнита
если нужно из GetHandleId сделать обратно юнита, то такой нет, делать базу данных самому, ну или в мемхаке наверняка есть что-то такое
22

» WarCraft 3 / Не работает заклинание

Проблема в том что это конверт из ГУИ со всякими ненужными бжфункциями типа GetLastCreatedLightningBJ() и CountUnitsInGroup(Group) == 0 вместо FirstOfGroup(Group)==null, без форматирования под код, в котором черт ногу сломит.
target_integer - переменная объявлена, нигде не используется, и т.д.
22

» WarCraft 3 / Fighting for Azeroth

Запостил на хайв.
Начал делать 3д вариант на 6 игроков. Будет типо теккен7 с рейджартами и слоумоушеном при одновременных ударах. Пока сделал меню и движение вроде рывков и прыжков, плюс основу для работы с камерой и скоростью игры. Мб запощу проект когда сделаю больше, нужно будет тестить систему с дуэлями через диалоги в мультиплеере.
22

» WarCraft 3 / Разъясните про номер игрока

надо юзать GetPlayerId вместо GetConvertedPlayerId, тогда ничего отнимать не надо будет
джасс это типа тру погромирование поэтому нумерация с нуля
а ГУИ в нем для простоты Игрок 1 - номер 1
22

» WarCraft 3 / Fighting for Azeroth

Вобщем больше двух игроков не буду делать.
rant
Слишком много всего переписывать, не знаю с чего начать даже. Переделывать полностью меню причем я вообще не представляю на что, таймеры сокращать чтобы не фаталило, переменные связанные с боем и ареной менять на массивы везде, все триггеры управления переделывать. Клава еще эта поломанная с нерабочими скобками, 8,9,0 кнопками u, o, r, кодить с экранной клавы ад. Плюс все равно анимации по сети толком не синхронизируются почему-то да и народу столько не найти.
Доделаю оставшихся двух героев и звук и ладно.
22

» WarCraft 3 / Extreme Candy War AI

Здорово. Давно хотел поиграть в эту карту, а самому ИИ писать лень.
Только боты юзают абилки когда не надо, например маг юзает кольцо холода хотя в радиусе действия только башня. При этом моего героя боты не бьют. Играл 3на3 орком рогой. Напротив маг, жрец и друид, только пару раз гнев деревьев в меня кинули.