14

» WarCraft 3 / Как сделать чтобы крипы бежали по указанной линии ?

Принятый ответ
Это прожевали 100500 раз, почему нельзя просто в интернетике забить "ы как сделатъ чтобы крипы шли по линии как в доте варыкрафт тры". я реально так забил, на первом же сайте решение
Если у тебя нет интернета (ты не умеешь им пользоваться) то вот:
Событие - каждые 30 сек
Условие
Действие:
TempPoint = центр (твоя область)
Создать юнита ... в TempPoint
RemoveLocation(TempPoint)
TempPoint = центр (твоя область в которую ему надо идти)
Приказать (последний созданный юнит) перейти нападая в TempPoint
RemoveLocation(TempPoint)
Бинго!
14

» WarCraft 3 / Как накренить декорацию?

В РО есть строчка "угол крена"
человек 3 карты выпустил, а элементарщину не знает... А, точно - милишники.
Загруженные файлы
14

» WarCraft 3 / Даммик не кастует способность

Tredor46, дезинформируете, товарищ. Канал работает при событии "юнит применяет способность" EVENT_PLAYER_UNIT_SPELL_EFFECT
14

» WarCraft 3 / Изменение типа доступности, замена зданий при строительстве

Принятый ответ
Я нашел такую функцию в гуи за 15 секунд, хотя не пользовался ей никогда. В чем проблема просто поискать?
Если даже это не помогло тебе, и ты не допетрил, что нужно делать то вот:
  1. добавляешь в РО рабочим оба здания и А, и Б
  2. в инициализации запрещаешь строить Б для всех игроков
  3. триггер "игрок сделал улучшение" -> сделанное улучшение == (твое улучшение) -> разблокировать строительство Б для (игрок триггера) и заблокировать строительство здания А для (игрок триггера)
  4. Бинго!
Загруженные файлы
14

» WarCraft 3 / Как сделать триггерный поджог?

Я не знаю как условить, что урон был нанесен именно заклинанием. У меня получилось поджигать юнита при любом нанесении урона. В событие добавил только паладина, чтобы работало на всех нужно сделать отдельный триггер "юнит вошел в область (вся карта) -> добавить событие триггеру (gg_trg_DetectFireDamage). В триггере сообщения для дебага есть, можешь удалить. Если есть вопросы, помощь в освоении жасса - контакты в профиле, пиши.
Вот код, карту также прикрепил ниже
function Trig_DetectFireDamage_Conditions takes nothing returns boolean
    return GetUnitTypeId(GetEventDamageSource()) == 'Hblm' //наш огненный... как там его... А, точно - еврей
endfunction

function TimerFire takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit u = LoadUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireUnit"))
    local unit u2 = LoadUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireSource"))
    local trigger trig = LoadTriggerHandle(udg_HASH, GetHandleId(t),StringHash("fireTrigger"))
    local integer count = LoadInteger(udg_HASH, GetHandleId(t),StringHash("fireСount"))
    local real damage = LoadReal(udg_HASH, GetHandleId(t),StringHash("fireDamage"))
    
    call DisplayTextToForce( GetPlayersAll(), "count" + I2S(count) )
    
    call DisableTrigger( gg_trg_DetectFireDamage ) //выключаем триггер, чтоб опять не сработал и горение не зациклилось
    //наносим урон. использую БЖ функцию, т.к. в нативке много непонятных страшных аргументов я не буду лезть в это дерьмо
    call UnitDamageTargetBJ( u2, u, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE )
    call EnableTrigger( gg_trg_DetectFireDamage ) //вкл триггер
    
    //какой нибудь эффект бахнуть к юниту
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Items\\AIfb\\AIfbSpecialArt.mdl",u, "head" ))
    
    call SaveInteger(udg_HASH, GetHandleId(t),StringHash("fireСount"),count-1) //уменьшаем количество срабатываний
    if count <= 1 then
        call DisplayTextToForce( GetPlayersAll(), "destroy" )
        call FlushChildHashtable(udg_HASH, GetHandleId(t))//очищаем хеш
        call PauseTimer(t)
        call DestroyTimer(t) //удаляем наш таймер, мол все, гореть больше не будет
    endif
    set t = null
    set trig = null
    set u = null
    set u2 = null
endfunction

function Trig_DetectFireDamage_Actions takes nothing returns nothing
    local timer t = LoadTimerHandle(udg_HASH, GetHandleId(GetTriggerUnit()),StringHash("fireTimer")) //загружаем таймер который будет переодически бить поджегом
    call DisplayTextToForce( GetPlayersAll(), "1" )
    
    if t == null then //если такого таймера нет, то создадим его
        set t = CreateTimer()
        call SaveTimerHandle(udg_HASH, GetHandleId(GetTriggerUnit()),StringHash("fireTimer"),t)
    endif
    
    call SaveReal(udg_HASH, GetHandleId(t),StringHash("fireDamage"),20) //урон
    call SaveInteger(udg_HASH, GetHandleId(t),StringHash("fireСount"),3) //количество срабатываний
    call SaveUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireUnit"),GetTriggerUnit()) //юнит которому наносим урон
    call SaveUnitHandle(udg_HASH, GetHandleId(t),StringHash("fireSource"),GetEventDamageSource()) //юнит от которого наносим урон
    call SaveTriggerHandle(udg_HASH, GetHandleId(t),StringHash("fireTrigger"),GetTriggeringTrigger())
    
    call TimerStart(t,1, true,function TimerFire) //переодический таймер в котором мы будем наносить урон
    
    set t = null
endfunction

//===========================================================================
function InitTrig_DetectFireDamage takes nothing returns nothing
    set gg_trg_DetectFireDamage = CreateTrigger(  )
    call TriggerRegisterUnitEvent( gg_trg_DetectFireDamage, gg_unit_Hpal_0001, EVENT_UNIT_DAMAGED )
    call TriggerAddCondition( gg_trg_DetectFireDamage, Condition( function Trig_DetectFireDamage_Conditions ) )
    call TriggerAddAction( gg_trg_DetectFireDamage, function Trig_DetectFireDamage_Actions )
endfunction
Загруженные файлы
14

» WarCraft 3 / Проседает фпс. Как лечить?

FDG89K, у тебя какой то странный варик, ты пробовал православный 1.26? Рефордж вроде у всех лагает, так как разрабы дауны
14

» WarCraft 3 / Проседает фпс. Как лечить?

Для проверки фпс есть команда /fps - немного сверху в центре экрана будет надпись.
Лагает на каких картах? Если непонятные неоптимизированные кастомки, то естественно будет лагать.
14

» WarCraft 3 / Простой атаки приказ для всех юнитов

Пуньк-сруньк, какии та англисикие букавы ничиво нипонятна.
Выбрать всех юнитов игрока (твой игрок) при условии (соответствующий юнит != рабочий) -> приказать (выбранный юнит) идти в (точка твоя) атакуя. Капец как сложно 2 строчки в ГУИ натыкать.
14

» WarCraft 3 / Cruiser Command

Drakemor_888, Если прям в списке карт выбрать нельзя, то скорее всего у тебя не та версия варика. У меня стоит 1.26, в рефе вроде тоже работает
14

» WarCraft 3 / Cruiser Command

Drakemor_888, Сейчас проверил - карта работает. Скорее всего у тебя варик не патченный и имеет ограничение 8мб на карты. В интернете есть много способов его обойти, у меня кастомный гейм.длл. Кинуть в папку с вариком с заменой. Также можно использовать функционал коннектора Урины бот.
Загруженные файлы
14

» WarCraft 3 / Cruiser Command

Drakemor_888, Одному нельзя, но есть ИИ если поставить бота на слот. Кеп и инж будут выполнять функции роботов-помощников, а пилоты копать руду.
14

» WarCraft 3 / Как начать писать свой код ИИ?

Если варик выдал тебе ошибку, то в чем проблема ее прочесть? Тебе черным по белому написано - нет такой функции Sleep(). В джассе есть функция TriggerSleepAction(), которая триггер на паузу ставит, скорее всего ее имеет ввиду автор. Такое могло произойти если автор на другой версии варкрафта сделал гайд.
14

» WarCraft 3 / Не запускает карты свыше 8мб. по локальной сети.

Установите кастомный гейм длл для снятия лимита, в чем проблема? А карты некоторые не видит скорее всего потому что они для других версий вара.
14

» WarCraft 3 / Как сделать полоску хп у юнита/здания невидимой?

Самым простым способом будет в РО в "графика - шкала выбора" поставить минусовое значение. это делается через шифт, может кто не знал. Хпбары будут скрыты у всех юнитов выбранного типа, поэтому он не подходит, если надо удалить хпбар только отдельного юнита.
14

» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT

Svintus, Создавай отдельные вопросы, чо ты все в один пихаешь. Тем более ты этот вопрос уже закрыл
14

» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT

Используй JNGP, там есть список всех функции с поиском, подсветка кода ну и много других плюх для кодинга. Также доступны всякие дополнения типо vJass'a для еретиков.
Лучше всего делать на 1.26, а еще лучше на ужапи. Почему именно эти версии? - это самые популярные версии на урина бот.
14

» WarCraft 3 / ИИ

Принятый ответ
Arturyq, Периодически сравниваешь условия, например:
  • если скилл наносит урон (молоток гнома например) - в радиусе от юнита есть враг, то применить к врагу скилл
  • если скилл лечит (свет палыча) - в радиусе есть союзник и у союзника меньше 50%хп - применить способность к союзнику.
Ну и так далее к другим скиллам прописывать