13

» WarCraft 3 / Причины FATAL ERROR?

  1. Утечки 2. Скрытые кнопки 3.Поломанная модель(но тут не помню краш или вылет) 4.Деформация земли (сюда же относится способность топот горного короля) 5. Молнии могут крашить при неправильном использовании 6.Мемхак 7. Действия с мертвыми (ауры и т.д) 8. xgm.guru/p/wc3/Fatalnaya-oshibka-u-artilerii-XUc 9. Функции с установкой высоты по Z 10. Превращение юнитов в героев и обратно
возможно еще есть
Загруженные файлы
13

» WarCraft 3 / Подскажите пожалуйста как отловить включение/выключение…

Принятый ответ
Отлавливать приказ
function Trig_order_Actions takes nothing returns nothing
    if GetIssuedOrderId() == OrderId("healon") then
        call BJDebugMsg("On")
    elseif GetIssuedOrderId() == OrderId("healoff") then
        call BJDebugMsg("Off")
    endif
endfunction

function InitTrig_order takes nothing returns nothing
    set gg_trg_order = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_order, EVENT_PLAYER_UNIT_ISSUED_ORDER )
    call TriggerAddAction( gg_trg_order, function Trig_order_Actions )
endfunction
13

» WarCraft 3 / Как сделать так, чтобы конкретный таил стал непроходимым для…

Примерно как тут xgm.guru/p/wc3/death-on-lava сравниваешь тип тайла и добавляешь проверку что юнит пеший и дальше перемещаешь его, все это в периодическом таймере
13

» WarCraft 3 / Помогите, пж, реализовать следующую идею: при каждом повышении…

Все зависит как ты это себе представляешь, если речь о большом количестве типа 50, что в стандарте через красный плюс не помещается, нужно делать кастомно, а это можно показывать фреймами( необходим рефордж или мемхак или UjAPI) или стандартными средствами трекейблеми или самое простое через спелбук.
13

» WarCraft 3 / Как обратится к юниту спустя некоторое время, если триггер срабатывает множество раз для разных юнитов?

Solar3584, Вообще изначально не правильно использовать через событие атакован, логичнее все это делать через события детекта урона, а если у тебя патч 1.26 это надо добавлять для начала систему отлова урона.
Затем создавать таймер с 15 сек. временем для первого применения, удалять абилку и обнулять таймер при каждом получении урона. Если в течении 15 сек. юнит не получил урона, добавлять абилку.
То что у тебя сейчас будет вызывать много багов, так как по логике твоего триггера может произойти следующее, если юнита 3 раза атакуют, ему 3 раза может добавится абилка подряд и если в один момент она удалится в этот же момент она может и добавится, от вейтов лучше отказаться.
13

» WarCraft 3 / Столкновение юнитов

Joma, Да, на больших размеров юнитах поставь примерно 200 и увидишь разницу
13

» WarCraft 3 / Где утечки

Тут нужно оптимизировать код, много вижу лишних функций с группами. Если я правильно понял, твой скил мгновенный, создает в точке каста вокруг ведьмаков, которые станят вокруг себя в радиусе 100.
Более оптимизированная версия, попробуй проверить ее на уточки.
globals
    group TempGroup = CreateGroup()
endglobals

function Trig_R_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A006'
endfunction

function Stun_R takes unit enemy, unit u returns nothing
    local real ux = GetUnitX(u)
    local real uy = GetUnitY(u)
    local real x = GetUnitX(enemy)
    local real y = GetUnitY(enemy)
    local real a = Atan2(y-uy, x-ux)
    // стан
    local unit dummy = CreateUnit(GetOwningPlayer(u), 'u000', x, y, 0.) // Создадим дамми в координатах цели
    
    call UnitApplyTimedLife(dummy, 'BTLF', 1) // Укажем время жизни дамми
    call UnitAddAbility(dummy, 'A007')
    call IssueTargetOrder(dummy, "thunderbolt", enemy)
    // двигаем
    call SetUnitX(enemy, x + 40*Cos(a))
    call SetUnitY(enemy, y + 40*Sin(a))
    // визуал
    call SetUnitAnimation(u, "spell")
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Incinerate\\IncinerateBuff.mdl", ux, uy))
    
    set dummy = null
endfunction

function Trig_R_Actions takes nothing returns nothing
    local unit caster = GetTriggerUnit()
    local integer i = 0
    local real a
    local real ux
    local real uy
    local unit witchers
    local unit enemy
    local real rx = GetSpellTargetX()
    local real ry = GetSpellTargetY()
    
    loop
    exitwhen i >= 15 // Создаёт 8 стен, образуя круг
        set a = i * 24 * bj_DEGTORAD
        set ux = rx + 400 * Cos(a)
        set uy = ry + 400 * Sin(a)
        set a = Atan2(ry-uy, rx-ux) * bj_RADTODEG
        set witchers = CreateUnit(GetOwningPlayer(caster), 'h006', ux, uy, a)
        call SetUnitAnimation(witchers, "stand defend")
        call UnitApplyTimedLife(witchers, 'BFig', 3) // Исчезает через 10 сек sum i +14
        
        call GroupEnumUnitsInRange(TempGroup, ux, uy, 100, null)
        loop
            set enemy = FirstOfGroup(TempGroup)
        exitwhen enemy == null
            if IsPlayerEnemy( GetOwningPlayer(caster), GetOwningPlayer(enemy)) and UnitAlive(enemy) and not IsUnitIdType(GetUnitTypeId(enemy), UNIT_TYPE_STRUCTURE) then
                call Stun_R(enemy, witchers)
            endif
            call GroupRemoveUnit(TempGroup, enemy)
            set enemy = null
        endloop
        set witchers = null
        set i = i + 1
    endloop
    call GroupClear(TempGroup)
    
    set caster = null
endfunction

function InitTrig_R takes nothing returns nothing
    local trigger trg = CreateTrigger()
    local integer index = 0

    loop
        call TriggerRegisterPlayerUnitEvent(trg, Player(index), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
        set index = index + 1
        exitwhen index == bj_MAX_PLAYER_SLOTS
    endloop
    
    call TriggerAddCondition(trg, Condition(function Trig_R_Conditions))
    call TriggerAddAction(trg, function Trig_R_Actions)
    
    set trg = null
endfunction
13

» WarCraft 3 / Где утечки

LastUchiha, там ведь речь и идет про локалки, не все локалки нужно обнулять.
13

» WarCraft 3 / Где утечки

Tredor46, у него есть в коде call UnitApplyTimedLife(dummy, 'BTLF', 1), которая должна освободить память после разложения.
13

» New Naruto Ultimate / New Naruto Ultimate

Altrrik_derff34, сыграл, там много есть ошибок
у гая, первые три скила норм, 4 скил врата, после каста пропадает возможность их юзать и кроме быстрого перемещения ничего не дают, 5 скил так не активировался
рок ли в основном лотусе использует скил даже на мертвых, врата опять одноразовые, пропадают после каста
у неджи при активации бьякугана выходит модель шарингана и не тратится мана, в том числе не сжигает ману у юнитов, непонятно для чего он
нету 64 и 128 ударов небес
у мей два водяных дракона скила и оба с одним ID приказа и хоткеем
у тсунаде печать бьякуи ничего не дает
это вот пример
исправлению скилов это важно, но в карте толку от них если нет какой либо истории, сюжета или цели игры, было бы не плохо разнообразить квестами карту, вот выбрал игрок героя и что ему делать дальше, игра пока что на пару минут, потом уже надоедает бить крипов, а после этого еще можно записать видео гайд как в этой карте проходить. Думаю стоит начать с этого.
13

» New Naruto Ultimate / New Naruto Ultimate

Altrrik_derff34, в старой версии нет нового функционала, в 1.29 могут быть новые нативные функции
13

» New Naruto Ultimate / New Naruto Ultimate

Altrrik_derff34, попробуй открыть ее для начала на 1.26, если не открывается удали новый функционал с триггеров который используешь на 1.29 версии
13

» New Naruto Ultimate / New Naruto Ultimate

Рад увидеть новую карту про Наруто, но в игре много чего нужно исправить.
Из того что понравилось
  • Много разных героев на выбор и много моделей героев как NPC
  • Большое количество локаций
  • Триггерные способности
  • Ландшафт местами хорош, но и местами ужасен( об этом в минусах)
  • Музыка из Наруто
  • Динамичное движение NPC и происходит какая то динамика сражений
  • Озвучка способностей
Теперь минусы и баги:
Из минусов выделю сначала самые жирные
  • Лаги... Периодически карта начинает подвисать
  • Карта на самых невостребованных патчах, 1.29 и 1.31
  • Нет описания что нужно делать собственно или в чем заключается цель карты
  • Строки в описаниях почему то сломаны, что непонятно становится что собирать из предметов или прочитать описание чего либо
  • Аниме ландшафт лучше не сочетать с дефолтом варкрафта, как и с юнитами(аколиты, кузницы, водные элементали и т.д) это все стоит убрать.
  • Дефолт иконки тоже стоит убрать и заменить по тематике
  • Некоторые здания, декорации, юниты слишком замаштабированы по сравнению с другими
  • Способности конечно есть и даже триггерные, но их мало у некоторых и некоторые с багами( можно как вариант было бы сделать героев по чуть чуть, но с большим количеством спелов)
  • Некоторые модели уже устарели, стоит обновить.
  • При увеличении камеры видны куски закрытых территорий
  • Непонятно почему однохвостый и девятихвостый делают на базе акатсуки
  • У крипов слишком занижен радиус агра, то есть если пикнуть дальнего героя, Гаару например и бить крипов, они просто стоят и не нападают даже
Огненный расенган Джирайии ничего не дает при активации.
У Наруто клоны вечные!?
При пике Орочимару, герой завис и камера переместилась в закрытую темную территорию
Если Саске наводит чидори на себя он зависает
Текстура пола слишком увеличена и в некоторых местах можно проходить сквозь декор
При касте Саске 3 и 4 катона, происходят сильные лаги, а при 4 катоне еще и зависает герой в паузе
При касте проклятой печати Саске пропали все скилы в спелбуке чидори и огненных техник
Почему то только в Конохе и в деревне Дождя есть магазины для закупа. Героям из других деревень придется бежать туда.
При касте каварими стоит убрать иконку бафа стремительности и добавить бревно на место каста что ли.
Предложения: Если карта жанра рпг, было бы не плохо добавить квесты. Желательно с инструкцией. Ее тут не хватает.
Итог: Работы над картой довольно много, я еще не сыграл за всех героев, если сыграю отпишу по багам еще, но в первую очередь стоит исправить ошибки, в первую очередь критические. Удачи тебе в проекте, интересно всегда поиграть в карты по Наруто, коих становится все меньше в наше время.
13

» WarCraft 3 / Юниты стоят на месте. Что делать?

Попробуй занулить задержку реагирования в игровых константах
и как вариант разбей спавнящих юнитов на разные группы
Загруженные файлы
13

» WarCraft 3 / При удалении способности из РО, выходит ошибка

Попробуй удалить при открытии редактора способность которая не удаляется, если она удалится, скорее всего у тебя баг с редактором, а не в способности, как у меня был, в таком случае я удалял их условно по 5-10 потом сохранялся и так каждый раз. Это касается любых объектов в редакторе объектов.
13

» WarCraft 3 / Как удалять локальные переменные типа location?

Вот так должны быть твои первые три действия вместо твоих четырех, устанавливаешь координаты, затем создаешь и удаляешь эффект таким путем
лучше это конечно писать через код
local real xRandom = GetRandomReal(GetRectMinX(bj_mapInitialPlayableArea), GetRectMaxX(bj_mapInitialPlayableArea))
local real yRandom = GetRandomReal(GetRectMinY(bj_mapInitialPlayableArea), GetRectMaxY(bj_mapInitialPlayableArea))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\Human\\Blizzard\\BlizzardTarget.mdl", xRandom, yRandom))
Загруженные файлы
13

» WarCraft 3 / Как удалять локальные переменные типа location?

Принятый ответ
Если используешь Jass, пользуйся координатами их не надо чистить, забудь про точки
13

» WarCraft 3 / Почему Jass код не работает?

Принятый ответ
nazarpunk, сейчас посмотрел код ещё раз и понял, что за 0.05 сек. переменная random могла поменяться.
Сейчас переделаю.
у тебя есть переменная r, ей надо задать значение, то есть local integer r = 0, что бы запустить цикл
Загруженные файлы