Комментарии проекта WarCraft 3
2

Работник Мутант

» WarCraft 3
Модель сделанная на коленке каким-то ноунеймом Misha34 (Или Karte4)
Переименуйте текстуру на Units\Creeps\FacelessOne\FacelessOne

Читать далее...
PomogiteMneYaBo #2 - 2 дня назад 0
Ето немного страно....
8

Вопрос про триггер

» WarCraft 3
Я хочу сделать, чтобы если у здания под атакой здоровья меньше n %, то оно бы переходило игроку, который его атаковал и его здоровье пополнялось, но из моего триггера ничего не вышло. Здоровье пополняется, но здание не переходит. Вот триггер:

События
Боевая единица A жизнь становится меньше n %
Действия
Боевая единица изменить владельца A на {Владелец {Переключающий юнит}} и Сменить цвет
Боевая еденица установить жизнь A как n

Где А - юнит
n - число
Что не так?
KingMaximax #5 - 2 дня назад 1
Там же нужно давать владельцу от атакующего юнита, в jasse он же в виде нативки GetAttacker(), в русских триггеах он либо "Нападающий Юнит" или "Атакующий Юнит".
Hate #6 - 2 дня назад (отредактировано ) 1
триггеринг юнит же само здание скорее всего, это тот от кого сработало событие, а у вас событие что хп стало меньше
компилятор не экстрасенс, додумывать за вас не будет, подавляющее количество ошибок от невнимательности и незнания основ, что решается дебагом
Steal nerves #7 - 2 дня назад (отредактировано ) 2
где дебаг? триггер работает с этим событием?

мне кажется с этим событием нельзя найти того, кто нанес ушерб зданию или убил. и поэтому и не передается другому игроку.
{Владелец {Переключающий юнит}} - это кто?

мб событие - юнит умирает? или получает урон? или юнит атакован?

при получении урона проверяешь хп, правда дело твое. помню чит ставил на whosyourdaddy сносил здание за удар, и не мог захватить, никак отстроить в картах типа риск. при слишком большом дамаге наверн сносится быстро. лучше тогда использовать "юнит умирает", при смерти создает новое и все
XGM Bot #8 - 2 дня назад 2
Похожие вопросы:

» ответ
Zeuz, ты должно быть хотел спросить можно ли в функции "IniTrig_Bleach" создавать сразу несколько локальных триггеров, добавлять им ивенты и действия и не будут ли они мешать друг другу. Не будут. Хотя события так ты показал в примере не выйдет добавить. Должно быть ты просто не помнишь название функции.
» ответ
создаём юнита
даём юниту таймер
и проверяем что с ним стало
офигиваем от того что выяснили это сами
и не задаём тупых вопросов
на 4 дня пропал и уже 69 тупых вопросов
» ответ
Igor97, если не знаешь jass то и не трогай то что написано на jass
или учи jass
если коротко то у тебя конфликт имён функций и глобальных переменных из за того что ты тупо скопировал
чтобы конфликта не было во 2 триггере надо переименовать все функции
» ответ
проблема оказалась в событии "инициализация карты", поставил вместо него событие "времени прошло" и проблема решилась!

6

Добывание дерево через игрока

» WarCraft 3
Как сделать чтобы если игрок розовый добывал дерево, то оно доставалось мне?
NazarPunk #4 - 2 дня назад 0
Спасибо, а это постоянно работает?
А почему событию не постоянно работать?
Rockmaf #5 - 2 дня назад 0
8gabriel8:
Есть событие, что игрок получает ресурс. Отнимаешь у него этот ресурс и добавляешь себе.
Спасибо, а это постоянно работает?
8gabriel8 #6 - 2 дня назад 0
Есть событие, что игрок получает ресурс. Отнимаешь у него этот ресурс и добавляешь себе.
2

Аура только для водных юнитов

» WarCraft 3
Доброго дня.
Столкнулся с проблемой, мне при постройке маяка необходимо дать ускорение и урон только водным юнитам (кораблям). Планировал сделать через ауру, но в разрешенных целях нет ничего подобного "водный", только механический. Механический мне не подходит т.к. есть и другие механические юниты.
PrincePhoenix #2 - 2 дня назад 4
Дать им любую другую классификацию:
  • механизмы
  • мосты
  • древа
  • стены
  • др.

Как вариант пилить триггерный аналог
7

Юнит умирает при попытке использовать/подобрать предмет.

» WarCraft 3
Добрый день, в общем появилась небольшая проблема с предметами у меня в карте.
Попробую описать все подробно на сколько смогу.
Есть предмет у которого 5+ способностей по этому я вписываю им способности через Книгу заклинаний. (но вот в чем проблема), когда мой юнит подбирает данный предмет - он просто умирает, не могу понять в чем может быть трабл.
Юнит имеет способности использовать предметы как и герой.
Вот список способностей предмета
Talent damage - простой аналог способности которая добавляет физ урон (Предмет) ака Когти атаки.
Int mana regen - простой аналог маны регенерации ака маска собби
Mana points - увеличение маны - аналог талисмана на ману
Такая проблема возникала и с другими способностями но не могу понять почему.
Все способности относятся к предмету.
Hate #3 - 2 дня назад 0
Roy Mustang:
DracoL1ch:
Выходит баг и за апргейда на хп?
Но какой еще способ есть для выдачи хп в процентах?
высчитывание процентов вручную...
Roy Mustang #4 - 2 дня назад 0
DracoL1ch:
Выходит баг и за апргейда на хп?
Но какой еще способ есть для выдачи хп в процентах?
PT153 #5 - 3 дня назад 0
DracoL1ch, забавный баг.
DracoL1ch #6 - 3 дня назад (отредактировано ) 4
убирай у юнитов апгрейд на +хп или не давай им книжки. первое проще, выдать хп можно множеством способов, кроме ап грейда
8gabriel8 #7 - 3 дня назад 0
Пробовал убирать вторую и пятую способность, которые, судя по названию, связаны с Интеллектом? Проверь добавление способностей не через книгу заклинаний способности, а стандартно, вдруг из-за неё это
2

Текстуры и все что с ними связано

» WarCraft 3
Какая прога нужна для того чтобы делать или конвертировать текстуры к варкрафту?
Как их конвертировать?
Как их наложить?
Пишу это вопрос т.к. читал статью о наложении текстур и нифига не понял.Может мне - барану,кто нибудь объяснит как это сделать?
Steal nerves #1 - 2 дня назад (отредактировано ) 2
для редактирования изображения - фотошоп и пэйнт и любой др графический редактор. размеры и альфа-каналы там же настраивают.

для работы с иконками - Button Manager (конвертируют мелкие иконки с добавлением рамок)

для работы с большими текстурами типа тайлы, или текстуры от моделей есть WARCRAFT III Viewer rus - использую как просмотрщик иконок blp и моделей mdx, и конвертор. есть массовый конверт. работает хорошо в 1.26.

BLP Laboratory - тоже самое вроде, вроде как обычный конвертор иконок. есть массовый конверт. тоже хороший просмотр blp. видит прозрачность (альфа-канал), ну и сжимает файлы
Hate #2 - 2 дня назад 3
прямо тут же слева xgm.guru/p/wc3/tag/programs,texturing
либо почти вручную делать uv карту через мдлвис, либо конвертировать в более популярные форматы моделей и делать карту там, после чего через модел эдитор привязывать ее к материалу
делать можно через любой графический редактор
9

Триггерно заставить юнита стоять на месте

» WarCraft 3
Имеется юнит, который может нормально атаковать и передвигаться, скажем дефолтный паладин Альянса. Мне нужно заставить его стоять когда в поле зрения/ренжа атаки паладина пробегает враг, паладин не реагировал на него, лишь только по нажатию ПКМ на врага паладин шёл его атаковать, либо по ПКМ на землю шёл в указанное место.
Такое возможно без применения сторонних программ/аддонов к WE/прочего, что надо устанавливать?
PrincePhoenix #1 - 3 дня назад (отредактировано ) 0
EzEtoRIc, Кривой какой-то у вас метод вышел, теперь когда паладин получает урон, он будет стопить приказ, а это не есть хорошо.

И вообще, наработка выше - полный бред, не используйте её
Кривой, но рабочий метод.
прикреплены файлы
EzEtoRIc #2 - 3 дня назад 0
world_editor:
Паладин стоит на месте если синий вражеский пехотинец рядом и атакует его при нажатие на нём пкм 1 раз. (надеюсь правильно понял вопрос)
Да, это помогло. Юнит перестаёт атаковать, но начинает бежать от атакующего врага. Пришлось ещё триггер сделать и в итоге вот что получилось
 PaladinAttacked
     События
         Боевая единица - Паладин 0000 <gen> Получает урон
     Условия
     Действия
         Боевая единица - Order (Паладин 0000 <gen>) to Отставить
 Trigger
     События
         Map initialization
     Условия
     Действия
         Боевая единица - Add classification of Работник или аналог to Паладин 0000 <gen>
8gabriel8 #3 - 3 дня назад 1
Попробуй добавить в РО классификацию Работник.
world_editor #4 - 3 дня назад (отредактировано ) 1
Паладин стоит на месте если синий вражеский пехотинец рядом и атакует его при нажатие на нём пкм 1 раз. (надеюсь правильно понял вопрос)
прикреплены файлы
Hate #5 - 3 дня назад 0
PT153:
EzEtoRIc, ставишь дистанцию получения автоприказа на 0 и всё.
не подойдет для дистанционных атак
PT153 #6 - 3 дня назад 0
EzEtoRIc, ставишь дистанцию получения автоприказа на 0 и всё.
Extremator #7 - 3 дня назад 3
Способность постоянная невидимость со временем ухода в невидимость на -1.00 сек. и отключённым автоматическим поиском целей для нападения.
Drynwhyl #8 - 3 дня назад 0
Trigger1
    События
        Боевая единица - Паладин 0000 <gen> Получил приказ атаковать
    Условия
    Действия
        Боевая единица - Order (Triggering unit) to Охранять
Trigger2
    События
        Боевая единица - A unit Атакован
    Условия
        (Attacking unit) равно Паладин 0000 <gen>
        (Current order of (Attacking unit)) равно (Order(Не боевая единица))
    Действия
        Боевая единица - Order (Attacking unit) to Отставить
7

Музыка из текста при включении ролика

» WarCraft 3
Здравствуйте! написал небольшой триггер где включается ролик. вопрос такой...как за счет текста которого пишу звук озвучивал этот текст
я указал в качестве звука gg_snd_ArcherPissed1 но текст не озвучивается..точнее работает только звук который указал а не текст
PrincePhoenix #1 - 3 дня назад 5
Игра 2002-2003 года, text-to-speech с верной интонацией, разными голосами, конечно... А долбанный гугл до сих пор юзает корявого робота
PT153 #2 - 3 дня назад 3
отвечаю PT153 неправильно! в игре есть text-to-speech правда как они это реализовали остается загадкой пока что.
Найс рофл, вот только все разговоры заранее записаны.
NazarPunk #3 - 3 дня назад 3
правда как они это реализовали остается загадкой пока что.
Вы не поверите, но они записали звук.
Centyrion #4 - 3 дня назад 0
я поиграл еще раз в кампанию за мстителей в шестой главе ради интереса включил звук в игре и когда читал диалог, там и озвучка была...поэтому отвечаю PT153 неправильно! в игре есть text-to-speech правда как они это реализовали остается загадкой пока что.
а написать самому в микрофон както не хочется )))
ну да ладно....либо самому написать либо импортировать либо поставить без звука.
NazarPunk #5 - 3 дня назад 0
тоесть самому написать звук?
Насколько я помню, в играх так и делают.
Centyrion #6 - 3 дня назад 0
тоесть самому написать звук?
PT153 #7 - 3 дня назад 0
В WC3 нет text-to-speech, потому что в 2002 таких технологий не было.
4

Лаг триггера при первом срабатывании

» WarCraft 3
При первом срабатывании триггера происходит лаг в 1 секунду. Последующие срабатывания триггера не лагают вовсе. Максимально возможный уровень данной способности, добавляемой дамми юниту - 100 лвл. Лаг происходит вне зависимости от того уровня, который устанавливается для способности. Хелп
ps какие у вас есть идеи по реализации способности уменьшения брони противнику на любое число?
easypeasy #1 - 3 дня назад 0
Drynwhyl, спасибо
Drynwhyl #2 - 3 дня назад 7
easypeasy, во время инициализации карты дай способность дамми-юниту, установи уровень способности на максимальный, после чего юнита можно удалить
easypeasy #3 - 3 дня назад 0
сначало инизиализируй способность
как это делать?
pro100master:
лаги из за того что у способности много уровней?
pro100master #4 - 3 дня назад 1
сначало инизиализируй способность а потом в игре вручай абилку а так лаги из за абилку
7

Лагодром № 1.31

» WarCraft 3
Перешел на 1.31. При открытии любой карты, хоть старой хоть новой выдает это:
А при попытке протестировать карту вот так:
(ни сохранить ни протестировать не дает)
Может дело в языке? Если да то как перейти на англ и исправят ли это?
  1. И еще подскажите пожалуйста, JASS NewGen же больше не поддерживается в последней версии ведь так? Как теперь писать код? это же невозможно
Есть ли тут нормальный интерфейс? Чем можно воспользоваться кроме кривого JassCraft, тем более как можно писать код в разных окнах и туда сюда копировать его, это ж неудобно. Кто чем пользуется?
Roflan #2 - 3 дня назад 0
От желтых надписей помогла смена языка.
От второго - путь к тестовой карте.
Спасибо.
Еще вопрос: можно ли на русском редакторе работать но чтоб без желтых надписей? Это у всех такое всплывает?
PT153 #3 - 3 дня назад 1
А при попытке протестировать карту вот так:
Зайди в настройки редактора и сотри путь к тестовой карте.
NazarPunk:
Не только у вас такая проблема. Пока не вычислили из-за чего возникает.
Проблема в пути к тестовой карте, у 1.26 и 1.31.1 он отличается.
ScopteRectuS #4 - 3 дня назад 2
Для смены языка нужно:
  1. Найти в папке установленной игры файл Launcher.db
  2. Открыть его через блокнот.
  3. Там будет всего 4 буквы, их нужно заменить на enUS.
  4. Далее открываем Warcraft III Launcher.exe и закрываем.
  5. Всё.
NazarPunk #5 - 3 дня назад 0
Локализация английская нужна или без разницы?
На английской нет, но их мало и они не мешают.
Запускаю от имени администратора - все равно.
Не только у вас такая проблема. Пока не вычислили из-за чего возникает.
Roflan #6 - 3 дня назад 0
NazarPunk:
Это отсутствие локализации
С правами что-то не так
И еще подскажите пожалуйста, JASS NewGen же больше не поддерживается в последней версии ведь так?
Не поддерживается. Все юзают VS code lua.

Хотя я хочу .dtf для PhpStorm запилить
Локализация английская нужна или без разницы? Не знаете где достать эту локализацию? Игра лицензионная с сайта близов качал.
Запускаю от имени администратора - все равно. На предыдущих версиях такого не было.
NazarPunk #7 - 3 дня назад 0
Это отсутствие локализации
С правами что-то не так
И еще подскажите пожалуйста, JASS NewGen же больше не поддерживается в последней версии ведь так?
Не поддерживается. Все юзают VS code lua.

Хотя я хочу .dtf для PhpStorm запилить
прикреплены файлы
12

Способность огненный голем

» WarCraft 3
Хотел из способности огненный голем сделать просто падение метеорита(без голема), но убрать голема никак не получалось и тогда просто в файле модели приписал букву и модели голема не оказалось да и вообще никакой, вот думаю если в параметр файла модели приписал левый никаких багов и крашей быть не может или это к чему о приводит?
PT153 #12 - 3 дня назад 2
NazarPunk, зачем писать код и мучиться, если нужно просто поставить призыв даммика и время жизни на 0.01? Писать свой спел нужно, только если у стандартного есть конкретные недостатки.
33

Как закрепить плавающий текст вверху экрана?

» WarCraft 3
В маньяке с бензопилой помню было такое, хп и стамина отображались сверху в виде плавающего текста, только мне для другого надо. Не знаю как закрепить, пытался многими способами, но ни к чему хорошему не пришел, может есть идеи как это исполнить на GUI ну или если на Jass, то тогда объяснить, что и как там можно менять и для чего)
ScopteRectuS #28 - 3 дня назад 0
NazarPunk, да там у меня всё простенько для конкретной карты:
» раскрыть
BUILDING_GRAVE                                                      = FourCC( "h003" )
BUILDING_TAVERN = { 
    [0]                                                             = FourCC( "n000" ),
    [1]                                                             = FourCC( "n001" ),
    [2]                                                             = FourCC( "n002" ),
    [3]                                                             = FourCC( "n00A" ),
    [4]                                                             = FourCC( "n00B" ),
    [5]                                                             = FourCC( "n00C" )
}

function IsUnitTavern( whichUnit )
    return 
        GetUnitTypeId( whichUnit ) == BUILDING_TAVERN[0] or 
        GetUnitTypeId( whichUnit ) == BUILDING_TAVERN[1] or 
        GetUnitTypeId( whichUnit ) == BUILDING_TAVERN[2] or 
        GetUnitTypeId( whichUnit ) == BUILDING_TAVERN[3] or 
        GetUnitTypeId( whichUnit ) == BUILDING_TAVERN[4] or 
        GetUnitTypeId( whichUnit ) == BUILDING_TAVERN[5] 
end

function CreateTaverns( )
    tavern = {
        [0] = CreateUnit( NEUTRAL_PASSIVE_PLAYER, BUILDING_TAVERN[0], 7744.0, - 8256.0, 270.000 ),
        [1] = CreateUnit( NEUTRAL_PASSIVE_PLAYER, BUILDING_TAVERN[1], 8000.0, - 8256.0, 270.000 ),

        [2] = CreateUnit( NEUTRAL_PASSIVE_PLAYER, BUILDING_TAVERN[2], 7488.0, - 8512.0, 270.000 ),
        [3] = CreateUnit( NEUTRAL_PASSIVE_PLAYER, BUILDING_TAVERN[3], 8000.0, - 8000.0, 270.000 ),

        [4] = CreateUnit( NEUTRAL_PASSIVE_PLAYER, BUILDING_TAVERN[4], 8000.0, - 8512.0, 270.000 ),
        [5] = CreateUnit( NEUTRAL_PASSIVE_PLAYER, BUILDING_TAVERN[5], 7744.0, - 8512.0, 270.000 )
    }

    for i = 0, #tavern do
        SetUnitColor( tavern[i], ConvertPlayerColor( i ) )
        SetUnitPathing( tavern[i], false )
        SetUnitVertexColor( tavern[i], 0xFF, 0xFF, 0xFF, 0xA0 )

        ForForce( HEROES_FORCE, function( )
            UnitShareVision( tavern[i], GetEnumPlayer( ), true )
        end )
    end
end

function IsUnitHero( whichUnit )
    local isHero = false
    
    ForForce( HEROES_FORCE, function( )
        local id = GetPlayerId( GetEnumPlayer( ) )

        if hero[id] == whichUnit then
            isHero = true
        end
    end )

    return isHero
end

function IsHeroPicked( unitId )
    local isPicked = false
    
    ForForce( HEROES_FORCE, function( )
        local id = GetPlayerId( GetEnumPlayer( ) )

        if GetUnitTypeId( hero[id] ) == unitId then
            isPicked = true
        end
    end )

    return isPicked
end

function GetHeroStartX( whichPlayer )
--  Only for Player(1), Player(2), Player(3), Player(4), Player(5), Player(6).
    return  5312.0 + 256.0 * Cos( 3.5430 + 0.5585 * GetPlayerId( whichPlayer ) )
end
    
function GetHeroStartY ( whichPlayer )
--  Only for Player(1), Player(2), Player(3), Player(4), Player(5), Player(6).
    return -5568.0 + 256.0 * Sin( 3.5430 + 0.5585 * GetPlayerId( whichPlayer ) )
end
    
function GetHeroStartFacing( whichPlayer )
--  Only for Player(1), Player(2), Player(3), Player(4), Player(5), Player(6).
    return bj_RADTODEG * Atan2( GetUnitY( GetTown( ) ) - GetHeroStartY( whichPlayer ), GetUnitX( GetTown( ) ) - GetHeroStartX( whichPlayer ) )
end

function InitHeroPick( )
    hero = { }

    TriggerRegisterForceUnitEvent( CreateTrigger( ), NEUTRAL_PASSIVE_FORCE, EVENT_PLAYER_UNIT_SELL, nil, function( )
        if IsUnitTavern( GetSellingUnit( ) ) then
            local id = GetPlayerId( GetOwningPlayer( GetSoldUnit( ) ) )

            hero[id] = GetSoldUnit( )

            SetPlayerAlliance( NEUTRAL_PASSIVE_PLAYER, Player( id ), ALLIANCE_SHARED_CONTROL, false )

            ForForce( DEFENSIVE_FORCE, function( )
                SetPlayerTechMaxAllowed( GetEnumPlayer( ), GetUnitTypeId( hero[id] ), 0 )
            end )

            SetUnitX     ( hero[id], GetHeroStartX( Player( id ) ) )
            SetUnitY     ( hero[id], GetHeroStartY( Player( id ) ) )
            SetUnitFacing( hero[id], GetHeroStartFacing( Player( id ) ) )

            UnitAddAbility( hero[id], ABILITY_REINCARNATE )
            UnitAddAbility( hero[id], ABILITY_MOVESPEED_INC )
            UnitAddAbility( hero[id], ABILITY_ADDITIONAL_SKILLZ )
            UnitAddAbility( hero[id], ABILITY_TOWN_PORTAL )
            UnitAddAbility( hero[id], ABILITY_INVENTORY )

            SetUnitState( hero[id], UNIT_STATE_LIFE, GetUnitState( hero[id], UNIT_STATE_MAX_LIFE ) )
            SetUnitState( hero[id], UNIT_STATE_MANA, GetUnitState( hero[id], UNIT_STATE_MAX_MANA ) )

            if GetLocalPlayer( ) == Player( id ) then
                ClearSelection( )
                ClearTextMessages( )
                SelectUnit( hero[id], true )
                SetCameraPosition( GetUnitX( hero[id] ), GetUnitY( hero[id] ) )
            end
        end
    end )

    SuperTextPrinter( GetLocalPlayer( ), 12.0, "|cFFFFFF00P I C K   H E R O|r" )
    DisplayTimedTextToPlayer( GetLocalPlayer( ), 0.0, 0.0, 0.0, " " )
    DisplayTimedTextToPlayer( GetLocalPlayer( ), 0.0, 0.0, 0.0, "|cFF32CD32HINT|r - Choose the right character for your game. To complete the game, your team must have at least one hero from each class. For more information, click on the tavern you are interested in." )
--  DisplayTimedTextToPlayer( GetLocalPlayer( ), 0.0, 0.0, 0.0, "|cFFFED312Ability Power:|r  Ability Power гладиаторы в битве полагаются в основном на урон с заклинаний, при этом сами обладают небольшим количеством брони и здоровья." )
--  DisplayTimedTextToPlayer( GetLocalPlayer( ), 0.0, 0.0, 0.0, "|cFFFED312Attack Damage:|r  oписание находится в разработке." )
--  DisplayTimedTextToPlayer( GetLocalPlayer( ), 0.0, 0.0, 0.0, "|cFFFED312Support:|r  сами Support'ы по себе не сильны, однако очень полезны для команды. Они могут как лечить раненных в бою союзников, так и усиливать огневую мощь атакующих." )
--  DisplayTimedTextToPlayer( GetLocalPlayer( ), 0.0, 0.0, 0.0, "|cFFFED312Tank:|r  гладиаторы класса Tank отвлекают в бою внимание противника на себя, предотвращая нанесение урона слобозащищённым персонажам. Могут также перехватить часть повреждений, нацеленных на союзников. Для выполнения поставленных задач Tank'и имеют хорошую защиту и большой запас здоровья." )
    StartSound( questHintSound )
    SetCameraTargetController( tavern[0], 0.0, 0.0, false )

    ForForce( HEROES_FORCE, function( )
        SetPlayerAlliance( NEUTRAL_PASSIVE_PLAYER, GetEnumPlayer( ), ALLIANCE_SHARED_CONTROL, true )
    end )
end

function InitHeroTriggers( )
    InitHeroPick( )
    InitHeroRevive( )
    InitHeroExperience( )
end
NazarPunk #29 - 3 дня назад (отредактировано ) 0
бегом писать статью про интерфейс в новых патчах
Судя по ответам в этом вопросе главный специалист по фрэймам это pro100master.

ScopteRectuS, вам это для выбора героя нужно? Может опубликовать простенькую наработку на фрэймах, чтоб с тавернами не заморачиваться?
ScopteRectuS #30 - 3 дня назад 0
Кажется получилось сделать:
function SuperTextPrinter( toPlayer, duration, message )
    local GAME_UI = BlzGetOriginFrame( ORIGIN_FRAME_GAME_UI, 0 )
    local tooltip = BlzCreateFrameByType("TEXT", "", GAME_UI, "", 0)

    BlzFrameSetPoint( tooltip, FRAMEPOINT_TOP, GAME_UI, FRAMEPOINT_TOP, 0.0, -0.03 )
    BlzFrameSetText( tooltip, message )
    BlzFrameSetVisible( tooltip, GetLocalPlayer( ) == toPlayer )
    BlzFrameSetScale( tooltip, 2.0 )

    if duration > 0.0 then
        TimerStart( CreateTimer( ), duration - 1.0, false, function( )
            local alpha = 0xFF

            TimerStart( GetExpiredTimer( ), 0.03125, true, function( )
                alpha = alpha - 0x08

                if alpha >= 0x00 then
                    BlzFrameSetAlpha( tooltip, alpha )

                else
                    DestroyTimer( GetExpiredTimer( ) )
                    BlzDestroyFrame( tooltip )
                end
            end )
        end )

        return nil

    else
        return tooltip
    end
end
Сделал через setScale.
прикреплены файлы
Steal nerves #31 - 3 дня назад 1
NazarPunk, бегом писать статью про интерфейс в новых патчах
NazarPunk #32 - 3 дня назад 0
ScopteRectuS, вчера нашёл нативку BlzFrameSetFont(frame, fileName, height, flags), попробуйте её заюзать.
ScopteRectuS #33 - 3 дня назад (отредактировано ) 0
    FrameFont "MasterFont", 0.013, "",
0.013 это же размер шрифта, да? Попробывал все варинаты, а размер шрифта всё равно не меняется.
NazarPunk, есть ли хоть маленький шанс найти нужный мне шрифт с нужным размером здесь
1

Вопрос о 1.31

» WarCraft 3
В какую папку мне в варкрафте, карту положить, чтобы я мог в нее поиграть?Ибо папки Maps больше нет
Roy Mustang #1 - 3 дня назад (отредактировано ) 4
C:\Users\User\Documents\Warcraft III Public Test\Maps - если птр
C:\Users\User\Documents\Warcraft III\Maps - если ласт патч.
Если на русском то вот такой путь
прикреплены файлы