32

» WarCraft 3 / "Десинхрон" и всё о нём!

Fraps:
Да эт жесть конечно.... Но благо скоро гарену переделают, и можно будет реконект сделать как в Доте 2 - это в корне решит эту проблему)
Эмм рекконект дело скорее не платформы а хост бота.
32

» WarCraft 3 / Как взорвать на куски с помощью ATTACK_TYPE_?

nvc123:
quq_CCCP, ну так спрашивают про взрыв при получении смертельного урона
call SetUnitExploded(whichUnit, true )
call UnitDamageTarget( whichUnit, sourceUnit, 100.00, false, false, null, null,  null )
call SetUnitExploded(whichUnit, false )
Ну ниужели никто не догадался, я с вас падаю... Просто нет слов!
Данный кусок кода будет взрывать юнита если урон смертелен, и не взрывать если он выживет от этого урона и сдохнет чуть чуть попозже...
32

» WarCraft 3 / Как взорвать на куски с помощью ATTACK_TYPE_?

DracoL1ch:
quq_CCCP:
Никак, за это отвечает функция ExplodeOnDeath и тип урона тут не причем.
палец смерти с тобой несогласен
Там взрывают юнита если урон смертелен...
32

» WarCraft 3 / "Десинхрон" и всё о нём!

nvc123, Ну почему, порой без локал плеера можно вылететь из того что у каждого игрока значение в переменной типа real немножно другое...
Такое бывает при измерении длинны файла звука (есть такая нативка) но лучше вбивать длинну в ручную, потому что длинна файла звука у разных игроков может быть немножко разной.
Ретурн баг на строках, юз строк в качестве ключей - тоже десинхи.
32

» WarCraft 3 / Что же лучше, таймеры или периодик

nvc123:
что триггер что таймер создают переменные
просто в случае с триггером редактор делает это за тебя
таймер лучше т.к. он более лёгкий чем триггер
триггер же мало того что дофига весит так ещё использует дополнительные объекты в процессе работы (обработчик событий, условия, действия и т.д.)
В добавок триггер сам считать неможет и создает для событие собственный таймер, идеинтичный обычному таймеру, тока его хер перезапустишь и использовать снова низя, потому если вам нужен триггер (отловить смерть юнита к примеру или урон, ибо других путей нету) то предпочтительнее юзать отдельный триггер и отдельный таймер.
Выше сказанное относится к модмейкерам пишущих свои карты на Jass, vJass и cJass, гуишникам и новичкам лучше не морочить себе этим голову.
32

» WarCraft 3 / Что же лучше, таймеры или периодик

2
NekoriDes, как минимум на вес карты. Пару сотен пустых переменных должны как-то влиять на работоспособность, так к
10 000 + начинают влиять.
32

» WarCraft 3 / Не срабатывает триггер на получение урона

nvc123:
Yonsen, вейт это баганая херня которая не должна юзаться в подобных случаях
кроме того не забывай что враг может отбежать и тогда урон будет нанесён раньше чем долетит снаряд
данный спелл можно сделать 2 способами
  1. юзаем систему снарядов и канал (необходим школьный курс геометрии и статьи про движение)
  2. через отлов урона и даммик (герой кастует канал на врага - создаётся дамми юнит - дамми юнит кастует спелл на врага; срабатывает событие юнит получил урон, условие: тип юнита (источник урона) равен типу дамми юнита, действие: удаляем юнита источник урона и проверяем баффы, наносим доп урон и т.д. )
quq_CCCP, не самая лучшая реализация (куча триггеров и прочее)
Самая простая из нормально работающих для копипаста, там где все на 1 триггере - вовсе не читаемо.
Yonsen,
Из твоих слов я не знаю как проверить, что юнит получил урон от КОНКРЕТНОГО юнита. А вообще лучше скинь пример, только картой, не скрином. Заранее благодарствую
Свою карту даже не знаю есть ли смысл вам кидать, детект урона там да и все скиллы там сделаны несколько нестандартно (за 100+ скиллов и отвечает 1 триггер) да и читабельность хромает, не говоря про мемхак который занимает треть кода карты и новичкам доступен так же, как нам путешествия на луну.
32

» WarCraft 3 / Как сделать ауру на увеличение хп

Могу кинуть пример тараски и даггера, но там сложно и юзается мемхак, зато предмет можно перекладывать, выбрасывать, продавать пока он в кд, передавать другим - ничего не собьется.
Если хочется повысить макс хп юнита - система кастом статов юнита в помощь, а сделать кастом ауру вовсе изи - перебирай всех на карте, если есть бафф вручай бонус хп, нету баффа удаляй - все просто.
32

» WarCraft 3 / Как сделать невидимый скилл

ClotPh:
  1. Скилл в спеллбук и спеллбук запретить.
  2. Вроде на xgm еще говорили про вариант с координатами X и Y такими, что скилл не видно (все никак руки не дойдут проверить, пока все спеллбуком по привычке пользуюсь, не сильно сложнее).
Работает если задавать через слк таблицу, в РО сделать невозможно, только для людей кто шурудят в картах после слк оптимизации (чаще всего во взломанных картах)
32

» WarCraft 3 / как отключить защиту одиночной игры в рпг мапах типа TBW?

darkowlom:
nvc123, то есть если человек только зарегистрировался он априори нихера не умеет или же не умеет учиться?
Это повод клянчить взлом чужой карты? При этом ему исходник дай, он будет хлопать глазами и нечего не сможет сделать. Дык нужно учится.
32

» WarCraft 3 / Не срабатывает триггер на получение урона

   struct DMD
        trigger trg
        triggercondition trc
        triggeraction tra
        triggeraction extra
        unit cast
        unit targ
        unit ex
        integer id
        timer trix
        boolean del
            
        method FlushData takes nothing returns nothing
            call DisableTrigger( .trg )
            call TriggerRemoveCondition( .trg, .trc )
            call TriggerRemoveAction( .trg, .tra )
            call TriggerRemoveAction( .trg, .extra )
            call TriggerClearActions( .trg )
            call TriggerClearConditions( .trg )
            call RemoveDataBX( .trg )
            call RemoveDataBX( .trix )
            call DestroyTrigger( .trg )
            call DestroyTimer( .trix )

            set this.trg = null
            set this.trc = null
            set this.tra = null
            set this.extra = null
            set this.cast = null
            set this.targ = null
            set this.ex = null
            set this.trix = null
            set this.id = 0
            set this.del = false
        endmethod
    endstruct

    function IsTargetHasBuff takes nothing returns boolean
        local DMD st = GetDataBX( GetTriggeringTrigger( ) )
        set bj_lastEventId = GetTriggerEventId( )
        
        if bj_lastEventId == EVENT_WIDGET_DEATH then
            call TriggerRemoveAction( st.trg, st.tra )
            return true
        endif
        
        if bj_lastEventId == EVENT_UNIT_DAMAGED then
            if  GetEventDamageSource( ) == DummyAttacker then
                return false
            elseif GetEventDamage( ) == 0.00 and GetEventDamageSource( ) == st.cast  and GetUnitAbilityLevel( st.targ, 'BNss' ) > 0  then
                call TriggerRemoveAction( st.trg, st.tra )
                return true
            endif
        endif
    
        return GetEventDamage( ) == 0.00 and GetUnitAbilityLevel( st.targ, st.id ) > 0 and GetEventDamageSource( ) == st.cast 
    endfunction

    function Destroy_DMD takes nothing returns nothing
        local DMD st = GetDataBX( GetExpiredTimer( ) )
        call st.FlushData( )
        call st.destroy( )
    endfunction
    
    function RemoveDMDBuff takes nothing returns nothing
        local DMD st = GetDataBX( GetTriggeringTrigger( ) )
        if st.del then
            call UnitRemoveAbility( st.targ, st.id )
        endif
        call PauseTimer( st.trix )
        call DisableTrigger( st.trg )
        call TimerStart( st.trix, 10.00, false, function Destroy_DMD )
        return
    endfunction
    
    function DummyMissile takes unit target, unit caster, integer buffid, real time, boolean del, code actions returns nothing
        local DMD st = DMD.create( )
        set st.cast = caster
        set st.targ = target
        set st.id = buffid
        set st.del = del
        set st.trix = CreateTimer( )
        set st.trg = CreateTrigger( )
        set st.trc = TriggerAddCondition( st.trg, Condition( function IsTargetHasBuff ) )
        set st.tra = TriggerAddAction( st.trg, actions )
        set st.extra = TriggerAddAction( st.trg, function RemoveDMDBuff )
        call TriggerRegisterUnitEvent( st.trg, target, EVENT_UNIT_DAMAGED )
        //call TriggerRegisterUnitEvent( st.trg, target, EVENT_UNIT_SPELL_EFFECT)
        call TriggerRegisterDeathEvent( st.trg, target )
        call TimerStart( st.trix, time, false, function Destroy_DMD )
        call SetDataBX( st.trg, st )
        call SetDataBX( st.trix, st )
    endfunction
    
32

» WarCraft 3 / как отключить защиту одиночной игры в рпг мапах типа TBW?

dankoval, Чувак чтобы ломануть чужую карту нужны маленько мозги, много больше чем требуется для игры в эту карту.
Для начала нужно выучить устройство карты варкравта и язык JASS, тока потом идти ломать карты и спрашивать на форуме а как же реализована защита... Тебе если даже на видео показать, ты похлопаешь глазами и не поворотишь это даже с 100той попытки.
32

» WarCraft 3 / Как увеличить/уменьшить урон по юниту в процентном соотношении?

Что мешает отслеживать урон триггерно и хилить юнита если нужно заблокировать часть урона, или наносить еще немного урона.
32

» WarCraft 3 / Не срабатывает триггер на получение урона

Yonsen, Ну кто так делает? Выкини свой триггер в утиль... Какой вейт, это никогда не будет работать!
При касте создавай событие для отдельного триггера, где проверяй что цель получила урон от того кто кастанул стрелу и имеет бафф способности этой стреллы, если все сходится удаляй бафф и наноси урон.
Чтобы не добавлять по 100 событий на одного юнита заноси его в группу - уже попавшиеся, так же ставь метку на юнита на котором уже есть событие с помощью хеш таблицы или custo, value что на них пока срабатывать триггерну ненужно.
Могу скинуть пример как делается по нормальному детект автокастов и снарядов дефолтных способностей.
32

» WarCraft 3 / Триггер, для хождения юнитов аля дота.

А дальше то шо? Свою доту? (не стоит, таких дотамастеров 100500)
Мб для начала нужно подучить редактор, а потом делать доту ( в доте очень мало достойных наработок, а методы исполнения многих сравнительно оригинальных способностей оставляют желать лучшего )
32

» WarCraft 3 / Помогите со способностью

Нужна особая анимация, смотри внимательно анимации гулей и мясников, там вроде spell channel, у волков нету такой анимации, так что либо кастом проигрывай анимацию атаки либо делай свою модель волка с нужными анимациями, на основе стандартной.
32

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

Добавь им способность Бродяий (нейтральный) или торнадо (перемещение).
А если хочится чтобы они ходили и искали, то нужен псевдо ИИ.
Вот пример ИИ который ищет и преследует противников + применяет способности.
Загруженные файлы
32

» WarCraft 3 / Триггерно выучить скилы герою.

Там же есть проверка уровень героя равен == целое число, в чем проблема?
Посмотри ИИ скрипты, там есть доступный пример с комментариями как бот выучивает скиллы.
32

» WarCraft 3 / Помогите вспомнить, где мог видеть эффект

LeikyS:
Nikson12:
LeikyS, там звездопад же вроде был
Я помню что она стреляла в небо. Мне кажется там был кастомный звездопад, что-то похожее на дождь стрел. Но точно утверждать не могу. Слишком давно я проходил варик.
У жрицы луны это такая чаннел анимация, не связаная со скиллом.
32

» WarCraft 3 / Хак на память Warcraft3

Daniil18:
Drynwhyl, все сделал, но как саму проверку на конкретную клавишу сделать. Как узнать интегер этой кнопки?
я опять ретард, только спросил тут же нашел выход. Хочу сделать шутанчик с управлениями кнопками, тут надо будет париться с локал плеерами от десинков?
Увы да, если ты будешь играть не в сингл плеер.
32

» WarCraft 3 / Как поменять эффект области у способности?

Верно, это тупо изображение с настроенной прозрачностью, им делают всякие эффекты на земле в варкравте, лежат по пути replaceable textures/splats