28

» WarCraft 3 / Официально стал доступен PTR 1.31

где/ что/ куда?
attacktype - тип атаки, может быть "Герой", "Хаос" и так далее. damagetype - тип урона, может быть магическим, чистым и так далее. weapontype влияет на звук при попадании снаряда.
Все эти типы были с самого запуска варика, как минимум в 1.26 они есть и никаким изменениям не подверглись.
28

» WarCraft 3 / Официально стал доступен PTR 1.31

Вот что это за дичь? я этот attacktype даже в стринг не знаю как конвертануть
Что? Все возможные типы есть в константах. А конверт в строку можно и самому написать, но зачем?
вроде добавили а как пользоваться?
Это не добавили, кек, данный тип всегда был.
на гуи ничего нет ни в 1 условии не встречается нигде его нет
Что за ориентация на ГУИ? Всё гуишное нужно смотреть в blizzard.j, про него писал на первой странице.
28

» WarCraft 3 / Официально стал доступен PTR 1.31

хочется еще больше информации про нововведения
Я под вечер кину всё про common.j, осталось только разобрать нативки, что в низу файла.
28

» WarCraft 3 / Официально стал доступен PTR 1.31

Начну с простого. Изменения по сравнению с 1.30.4.

common.ai - без изменений.
blizzard.j
  • Добавлена переменная boolean bj_lastInstObjFuncSuccessful. Хранит информацию о том, была ли последняя операция с полями Редактора объектов завершена успешно или нет.
  • Обновлена функция GetCurrentCameraSetup(), так как в common.j были добавлены новые переменные типа camerafield.
  • Исправлена утечка в SmartCameraPanBJ(...).
  • Добавлены функции типа Set, Add, Remove по взаимодействию с полями Редактора Объектов. Аналоги таких же функций из common.j с сохранением статуса вызванной операции в bj_lastInstObjFuncSuccessful.
cheats.j
  • Обновлена функция DebugCamInfo(). Добавлен вывод информации о новых camerafield.
common.j на подходе.
28

» WarCraft 3 / Официально стал доступен PTR 1.31

Новые возможности просто шик!
Мне особенно понравилось новое меню открытия карты. Теперь никто не будет спрашивать (будут) "А где взять такую-то миссию из кампании?".
28

» WarCraft 3 / Официально стал доступен PTR 1.31

Исправлена утечка с GroupAddUnit/GroupRemoveUnit
Какая утечка?
Теперь эти функции возвращают boolean, по которым можно узнать, был ли добавлен\удалён юнит, как с UnitAddAbility\UnitRemoveAbility.
28

» WarCraft 3 / Патч 1.31, скоро?

Кидай прямо в комментарии. Или можешь новой новостью оформить
Скорее сделаю гугл док, или одним комментом тут. Ближе к вечеру, днём сильно занят сейчас.
28

» WarCraft 3 / Патч 1.31, скоро?

кто переведет все новых функционалов?
Я сделаю док со всеми изменениями в скриптовых файлах в доке и скину админ составу, если, кончено. кто-нибудь это раньше меня не сделает.
28

» WarCraft 3 / Выбрать юнитов, выделенные игроком при условии.

Можно сразу все действия делать в фильтре, так будет гораздо быстрее.

Согласно тестам DracoL1ch, вытаскивание юнитов группы через FirstOfGroup() и выполнение над ними нужных действий в цикле будет быстрее ForGroup().

Примеры
struct Tower

    ...

    private static method DistributeExpFilterFunc takes nothing returns nothing
        local thistype t = GetUnitUserData(GetFilterUnit())
        if IsFilterUnitTower() and t.isReady and t.data.hasexp and t.selfupgrade then
            call t.addExp(TransmittedExpAmount)
        endif
    endmethod
    
    private static boolexpr DistributeExpFilter
    private static integer TransmittedExpAmount
    
    static method distributeExp takes Minion m, thistype killer returns nothing
        local real x = GetUnitX(m.minion)
        local real y = GetUnitY(m.minion)
        set TransmittedExpAmount = m.data.towexpgain
        // Add to killer if it has experience, is upgradable, but is out of range.
        if killer.data.hasexp and killer.selfupgrade and not IsUnitInRangeXY(killer.tower, x, y, ExpRange) then
            call killer.addExp(TransmittedExpAmount)
        endif
        call GroupEnumUnitsInRange(bj_lastCreatedGroup, x, y, ExpRange, DistributeExpFilter)
    endmethod
    
    ...

    private static method UpgradeTowerFilterFunc takes nothing returns boolean
        local thistype t = GetUnitUserData(GetFilterUnit())
        return IsFilterUnitTower() and t.isReady and not t.data.hasexp and t.selfupgrade and t.owner.isGoldEnough(t.ToNextLevel)
    endmethod
    
    private static boolexpr UpgradeTowerFilter
    
    static method upgradeTower takes thistype this returns nothing
        local thistype array selected
        local thistype temp1
        local thistype temp2
        local integer n = -1
        local integer i = -1
        local group g = CreateGroup()
        local unit u
        call GroupEnumUnitsSelected(g, this.owner.user, UpgradeTowerFilter)
        // Sort selected towers from tower with the lowest cost to the highest.
        loop
            set u = FirstOfGroup(g)
            exitwhen u == null
            call GroupRemoveUnit(g, u)
            set temp1 = GetUnitUserData(u)
            set n = n + 1
            set selected[n] = temp1
            loop
                exitwhen i < 0 or selected[i].ToNextLevel <= temp1.ToNextLevel
                set temp2 = selected[i]
                set selected[i] = temp1
                set selected[i + 1] = temp2
                set i = i - 1
            endloop
            set i = n
        endloop
        call DestroyGroup(g)
        set g = null
        if n > -1 then
            // Upgrade towers starting from towers with the highest cost.
            loop
                set temp1 = selected[n]
                exitwhen not this.owner.spendGoldNoMessage(temp1.ToNextLevel)
                call temp1.incLevel()
                set n = n - 1
                exitwhen n == -1
            endloop
        else
            // Raise "Not enough Gold" error.
            call this.owner.messageNotEnoughGold()
        endif
    endmethod
    
    private static method onInit takes nothing returns nothing
        ...
        set DistributeExpFilter = Filter(function thistype.DistributeExpFilterFunc)
        set UpgradeTowerFilter = Filter(function thistype.UpgradeTowerFilterFunc)
    endmethod
endstruct
28

» WARTRACK / WARTRACK V0.3

Вы имеете ввиду арт
Ну статьи я и сам найти могу, да и сами близы так делали, так что с этим нет проблем. Я вёл речь про арт.
28

» WARTRACK / WARTRACK V0.3

Лучше Element TD не сделают.
Не согласен, на мобилках есть много неплохих ТД, одна из них - Kingdom Rush, очень интересная.

Кто делает такие загрузочные экраны? Мне бы пригодилось.
28

» Мир безумного / WoW теперь и на Windows 7 поддерживает DirectX 12

особенно почти неотключаемых автообновлений
Заходим в службы -> отключаем службу обновлений. Также можно скачать версию, на которую выходят только важные обновления с опцией их отсрочивания (LTSB, LTSC).
28

» WarCraft 3 / Способности героя "Волна силы"

Типичная проблема способностей the Frozen Throne
Не только, с молниями тоже не работает.
28

» WarCraft 3 / Помогите с системой формации

Я так понимаю, что на JASS пишут только пришедшие с других языков, а остальные занимаются глупостью?
Он говорит про GUI. Если делаешь на GUI, то уж делай на GUI, а если хочешь больше возможностей - учи JASS (что там учить) и пиши на нём.
28

» WarCraft 3 / Как отключить автоатаку?

Принятый ответ
Был недавно вопрос. Можно поставить дистанцию получения автоприказа на 0 или дать классификацию Рабочий.
28

» WarCraft 3 / Таверна, как брать героя, которого выбрал

picked player утечный.
С чего бы это?
8gabriel8:
Лучше, например:
В чём проблема сделать покупку героя, у которого в РО стоит начальное кол-во для магазина 1, а кд много времени. Как только 1 купит, остальные не смогут это сделать.