12

» WarCraft 3 / Способность с зарядами.

quq_CCCP, а у этих способностей можно какой-то функцией динамически менять заряды?
12

» WarCraft 3 / Способность с зарядами.

У меня в мапе есть такие. Правда для изображения зарядов и их перезарядки я использую плавающий текст над героем) В основе способность без кд. Если зарядов нет то я стоплю её каст и пишу сообщение об ошибки "Не осталось зарядов". Так что реализовать можно причем разными способами)
Кстати с удалением добавлением способности можно попробовать думаю должно получится...
12

» WarCraft 3 / Сохранение кд у предметов

Да действительно. Такая проблема только с предметом у которого стоит спеллбук.
Сейчас я попробовал другие способности и они сохраняют свой кд без проблем. Видимо придется отказаться от использования спелл бука.
12

» WarCraft 3 / Проблема с освещением

Если это источники света удали их через Model Editor во вкладке nodes по идеи должно помочь если ты хочешь избавится от зеленого свечения) Хотя может это "свечения" запекли в текстурку
12

» WarCraft 3 / ID приказа при использовании предмета

DracoL1ch:
нет, приказ ловится в момент отдачи и никак иначе
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
    set o_id = o_id - 852008
    if o_id>=0 and o_id<=5 then
     return GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
    endif
    return false
endfunction
оно тебе надо проверять, стоят ли проверки безопасности в функции?)
А ну да так лучше:D
biridius:
Странно, мб у меня кривой вар, но такое же событие у меня ловится только когда стан истекает и юнит начинает выполнять все эти приказы
А какое событие ты используешь?
12

» WarCraft 3 / ID приказа при использовании предмета

Спс все работает)
Незнаю у меня проблем нет. Предмет работает нормально. Снимает стан и при этом сам предмет проюзывается без проблем.
вот так вот я извратился
function msc_check_item_for_id takes unit u, integer o_id, integer it_id returns boolean
    local boolean flag
    set o_id = o_id - 852008
    set flag = GetItemTypeId ( UnitItemInSlot ( u, o_id ) ) == it_id
    return flag
endfunction

function Trig_UndisableStone_Conditions takes nothing returns boolean
    return msc_check_item_for_id ( GetTriggerUnit (), GetIssuedOrderId (), 'Pr0Z' ) 
endfunction

function Trig_UndisableStone_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit ()
    
    call UnitRemoveBuffs ( u, false, true )
    
    set u = null
endfunction

//===========================================================================
function InitTrig_UndisableStone takes nothing returns nothing
    set gg_trg_UndisableStone = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_UndisableStone, EVENT_PLAYER_UNIT_ISSUED_ORDER )
    call TriggerAddCondition( gg_trg_UndisableStone, Condition( function Trig_UndisableStone_Conditions ) )
    call TriggerAddAction( gg_trg_UndisableStone, function Trig_UndisableStone_Actions )
endfunction
12

» WarCraft 3 / Абилки которые можно кастовать сквозь стан

Basile2:
Еще можно сделать механику интересней, сделав предмет с задержкой. То есть планировать за пару секунд что тебя застанят
да я думал сделать и такие предметы)
12

» WarCraft 3 / Событие на получение урона

Можно наносить 0 урона и отлавливать этот момент но как получить нанесенный урон хз...
Может попробовать через хэш-табу передовать)
12

» WarCraft 3 / Событие на получение урона

Используй чистый урон и отлавливай его а размер этого чистого урона вычисля на основе своей системы.
12

» WarCraft 3 / Временное случайное событие

Если действие происходит 1 раз можно в начале время таймера поставить на GetRandomReal ( 0, 50 )
Хотя я походу не понял чего именно хочет автор поста
12

» WarCraft 3 / След который остовляет модель...

Принятый ответ
dave_wwid, прикрепляя к "cylinder02" ээфект работает когда модель перемещается в оба направления но изза вращения эффект отображается некорректно. Если прикреплять к другим костям то эффект ленты как и раньше появляется ток когда снаряд движется задом на перед.
Проблему решил поставив в материале галочку на twoside
12

» WarCraft 3 / Не работает DISBTN модели

DISBTN иконкам нужно прописывать путь: ReplaceableTextures\CommandButtonsDisabled\DISBTNимяиконки.blp
У BTNимяиконки путь можно не трогать. Ну и имяиконки у них должно быть одинаковым конечно же
12

» WarCraft 3 / Forward декларация функции в Jass

Принятый ответ
quq_CCCP, это не ии а просто тупо спаун мобов вокруг босса) типо его постоянная свита) Там есть команда на атаку но она сделана тупо для того чтобы заспауненые войны не тупили в сторонке а бежали к своему главному атакую противников по дороге) Впринципе можно воткнуть тригер смерти в переодик с ветвлением но в будующем мне все равно придется юзать тригер на смерть для создания взрыва на месте юнита и не только.
Я нашел решение просто изменил структуру кода) теперь все ок) Спасибо всем кто отозвался.
12

» WarCraft 3 / Forward декларация функции в Jass

Походу придется в структуру через статичные функции сделать) Там порядок следования функций не важен
12

» WarCraft 3 / Forward декларация функции в Jass

EnergyFrost, может и можно но мне надо будет передать через хэш в ту функцию юнита ( босса ), группу и лимит юнитов, а через екзекут такое дело не проканает. Так что видимо придется какой-то дикий костыли иззобретать) Ну и собсо как я понял предопределить функцию нельзя в Жассе а жаль)
12

» WarCraft 3 / Forward декларация функции в Jass

Hate:
собственно, не проще делать систему с массивом и перебором, чем делать такой костыль?
один триггер на смерть, и не зачем нужно будет делать такие обходные маневры
не совсем понял что ты имеешь в виду с перебором массива и зачем он здесь.
Функция ( которая нижняя ) спаунит юнита и добовляет его в группу которая используется для других скиллов босса и создает для этого юнита тригер смерти который служит для того чтобы удалить юнита из группы, и запустить таймер на спаун нового такого же юнита..
12

» WarCraft 3 / Forward декларация функции в Jass

Hate:
во первых, с точки зрения дизайна зачем так делать?
во вторых, можно делать экзекут функции, если обстоятельства позволяют
экзекут сделать нельзя функция передается в таймер.
function BOSSgnoll_comander_mob_death takes nothing returns nothing
        local unit u = GetTriggerUnit ()
        local trigger trig = GetTriggeringTrigger ()
        local group gr = LoadGroupHandle ( HASH, GetHandleId ( trig ), 'ugrp' )
        local timer t = CreateTimer ()
        
        call TimerStart ( t, 30.0, false, function BOSSgnoll_comander_add_spawn ) //собсно то самое проблемное место
        
        call GroupRemoveUnit ( gr, u )
 
        call FlushChildHashtable ( HASH, GetHandleId ( trig ) )
        call DestroyTrigger ( trig )
        set u = null
        set trig = null
        set t = null
    endfunction
    
    function BOSSgnoll_comander_add_spawn takes nothing returns nothing
        local timer t = GetExpiredTimer ()
        local integer t_id = GetHandleId ( t )
        
        local unit u = LoadUnitHandle ( HASH, t_id, 'unit' )
        local integer lim = LoadInteger ( HASH, t_id, 'ulim' )
        local group gr = LoadGroupHandle ( HASH, t_id, 'ugrp' )
        
        local real dist
        local real ang
        local real x = GetUnitX ( u )
        local real y = GetUnitY ( u )
        local unit u_new 
        local integer cnt = CountUnitsInGroup  ( gr )
        
        local trigger trig = null
        
        local location land = null
        local real x_land
        local real y_land

        if ( cnt < lim ) then
            set dist = GetRandomReal ( 800, 1600 )
            set ang = GetRandomReal ( 0, 360 )
            set land = msc_get_landinglocation ( x, y, dist, ang, 50, 0, 0 )
            set x_land = GetLocationX ( land )
            set y_land = GetLocationY ( land )
            call RemoveLocation ( land )
            set dist = msc_dist_between ( x, x_land, y, y_land )
            set ang = ang_beetwen ( x, x_land, y, y_land )
            set x = msc_polar_x ( GetUnitX ( u ), dist, ang )
            set y = msc_polar_y ( GetUnitY ( u ), dist, ang )
            set u_new = CreateUnit ( GetOwningPlayer ( u ), 'n005', x, y, ang - 180 )
            call IssuePointOrder ( u_new, "attack", GetUnitX ( u ), GetUnitY ( u ) )
            call SpawnManager.add_to_group ( u_new )
            call msc_fade_effect ( u_new, 3.0, -1, null )
            
            set trig = CreateTrigger ()
            call TriggerRegisterUnitEvent( trig, u_new, EVENT_UNIT_DEATH )
            call TriggerAddAction( trig, function BOSSgnoll_comander_mob_death )
            call SaveGroupHandle ( HASH, GetHandleId ( trig ), 'ugrp', gr )
            call SaveTimerHandle ( HASH, GetHandleId ( trig ), 'time', t )
            
            call GroupAddUnit ( gr, u_new )
        endif
    
        set t = null
        set u = null
        set u_new = null
        set trig = null
    endfunction
12

» WarCraft 3 / Не работает модель? - Вам сюда!

Собственно модель взята с самого сайта xgm) Модель гнома в черной шляпе именно она мне нужна. При выборе её в редакторе редактор перестает отвечать и вылетает ( сообщения об ошибки нет ). Модель я не менял. Пробовал переписать путь к текстурам не помогло.
12

» WarCraft 3 / Как сделать способность мгновенной?

Используй как пустышку "Безумие" у троллей с длительностью 0.01 оно применяется мгновенно, а потом даммиком накладывай на кастера кровожадность. Правда эта способность без цели. Возможно ещё канал с длительностью 0.01 для каста на цель и опять же даммиком накладываешь кровожадность.
12

» WarCraft 3 / Угол крена

Не выходит с моделями снарядов ( например снаряд орудийного расчета ). Может дело в том что там только одна кость?
12

» WarCraft 3 / Снижение магического сопротивление

Может я что-то не так делаю но когда я ставлю в маг уроне отрицательное значение он вообще перестает наносится. Какую графу и как изменять не подскажите?