22

» WarCraft 3 / Fighting for Azeroth: 3D

Пофиксил кое-какие баги с мультиплеером и физикой, добавил приемов.
У всех теперь есть хотя бы 16 приемов, ярость, бросок, атака с воздуха.
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

function GetUnitsOfPlayerMatching takes player whichPlayer, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsOfPlayer(g, whichPlayer, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction
да, эта бж-функция выбора всех юнитов игрока утекает из-за необнуленной переменной, даже если удаляется сама группа
говорил себе не юзать бж-функции не глянув что там внутри
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

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

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

Hate правильно предложил юзать таймер
сделай переменную таймер
во втором триггере событие что таймер истекает и действие остановить музыку
в первом триггере вместо ожидания и остановки музыки, сделай запуск таймера на нужное время, например 6 сек.
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

можно попробовать сделать проигрывание и остановку музыки отдельным триггером, который запускать из этого
триггер2 - только действия:
1, выключить триггер2
2, запустить музыку
3, ждать
4, выключить музыку
5, включить триггер2
да таймер лучше чем вейт
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

Bismarc_Dark, не, это от утечки отряда, т.к. функция "Pick every unit..." создает группу, но если прописать ту строку то группа удаляется после всех этих действий.
Утечки есть от всех объектов вроде юнитов, точек, отрядов, групп игроков (кроме заранее созданных вроде All Players), но от музыки не должно быть.
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

кидал в лп, посмотри в xgm.guru/mail
а вобще мы начинали без всяких русификаторов и без знания английского и ничего, выучились
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

Bismarc_Dark, Да/Нет - логическая
она там для того чтобы не запускать музыку сто раз если у игрока несколько героев с когтями
22

» WarCraft 3 / врянты записи

local unit u // в начале триггера, до других действий
//...
set u = CreateUnitAtLoc(p,'h013', TargetLoc, 0)
call UnitApplyTimedLife(u,'BTLF',2.00)
//...
set u = null // это в конце триггера
22

» WarCraft 3 / Воскрешение в мультиплеере

8gabriel8, PolledWait это бж функция внутри которой жуть что делается
спс жнгп за Function list
function PolledWait takes real duration returns nothing
    local timer t
    local real  timeRemaining

    if (duration > 0) then
        set t = CreateTimer()
        call TimerStart(t, duration, false, null)
        loop
            set timeRemaining = TimerGetRemaining(t)
            exitwhen timeRemaining <= 0

            // If we have a bit of time left, skip past 10% of the remaining
            // duration instead of checking every interval, to minimize the
            // polling on long waits.
            if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then
                call TriggerSleepAction(0.1 * timeRemaining)
            else
                call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
            endif
        endloop
        call DestroyTimer(t)
    endif
endfunction
22

» WarCraft 3 / Воскрешение в мультиплеере

Совсем без джасса, т.е. без локальных переменных?
Ну можно хранить героев и время до воскрешения в массивах, пробегаться по ним циклом по таймеру, и когда время достигает 0 воскрешать героя.
триггер1 - герой умер - установить время до реса №индекс_игрока на столько-то сек.
триггер2 - каждые 0,3 сек - цикл А от 1 до сколько там игроков - если герой №А мертв, то отнять 0,3 от времени №А; если время меньше либо равно 0, воскресить героя №А
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

нельзя просто так по-русски сказать компьютеру что делать
нет никакого "владельца предмета боевые когти".
есть 16 "игроков", им принадлежат всякие юниты, у которых могут быть предметы.
надо каждого из них проверять, есть у них когти, или нет.
ужасные заклинания на латыни
события создаются при запуске карты, и на определенных юнитов/игроков которые в них указываются, и которые должны быть в этот момент.
переменные вроде "герой манипулирующий предметом" свои для каждого события. на события связанные с игроками вроде ввода в чат или нажатия эскейпа есть только Triggering player - игрок вызвавший событие.
Загруженные файлы
22

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

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

» WarCraft 3 / Владец предмета пишет сообщение в чат - Триггеры

в события где указывается конкретный игрок надо вставлять конкретного игрока, например красного. и потом копировать-вставлять меняя на синего, зеленого т.д. Оно будет срабатывать только для указанных конкретных игроков.
"герой манипулирует предметом" это переменная в которой что-то будет только если триггер сработал на событие вроде "юнит использует предмет", "юнит выкинул предмет".
на события вроде чата в этой переменной ничего не будет.
22

» WarCraft 3 / Эффект страха

Хз я делал без мемхака
создавал триггер отлавливающий приказы и отдающий вместо них приказ убегать с сохранением координат куда убегать (которые при этом менялись каждую секунду чтобы бег был в панике)
только нужно еще чтобы триггер не зацикливал себя
только та арена вроде запротекчена
22

» WarCraft 3 / Как узнать кол-во единиц атаки у юнита?

новые функции из недавних патчей 1,29 есть в сети
// базовый урон
native BlzGetUnitBaseDamage takes unit whichUnit, integer weaponIndex returns integer
// число костей
native BlzGetUnitDiceNumber takes unit whichUnit, integer weaponIndex returns integer
// граней у кости
native BlzGetUnitDiceSides takes unit whichUnit, integer weaponIndex returns integer
22

» WarCraft 3 / Fighting for Azeroth: 3D

Таки дофиксил мультиплеер, тестил universal kloader'ом. Точно работает на 1,26 и 1,29.
22

» WarCraft 3 / Нужна модель? - Вам сюда!

нужно включить ленточный источник частиц на мече для анимаций:
Attack Gold 67000-67910
Attack Swim 71000-71733
Attack Slam Alternate 74000-74845
пробовал проставить 1 в видимости, не работает
Загруженные файлы
22

» WarCraft 3 / JASS - Дамми-юнит не исчезает

call CreateUnit(GetOwningPlayer(caster),'e000',kursor_x,kursor_y,0.00)
set dummy = bj_lastCreatedUnit
нативная CreateUnit не записывает юнита в bj_lastCreatedUnit, это делают только БЖ функции (вон там префикс bj_)
поменяй на
set dummy = CreateUnit(GetOwningPlayer(caster),'e000',kursor_x,kursor_y,0.00)
22

» WarCraft 3 / Fighting for Azeroth: 3D

  • Новый герой: Нага
  • Новые анимации для всех героев: при попаданиях от Low атак, шаге назад/в сторону, и когда их бросает противник
  • Несколько новых приемов для Келя, Панды и Паладина
  • Некоторые приемы теперь наносят доп. wallsplat урон, если противник ударяется об стену при отбросе, даже если сам удар был заблокирован: плечо фелгарда/крестьянина, удар посохом джайны и еще несколько
  • Поменял имя карты, переставил героев при выборе, и обновил лоадскрин
22

» WarCraft 3 / Как удалить способность?

Likon, лишний раз написал "custom script: custom script"
еще забыл после добавления абилки занести unit = Target unit of ability being cast
22

» WarCraft 3 / Как удалить способность?

Likon, кидай скриншот своего триггера сюда
прикрепить файлы > потом "вставить ссылку на файл"