22

» XGM Конкурсы / Warcraft 3 Custom Maps Contest 2019

В любом случае, этой ночью я решил, что буду снова делать карту на мемхаке, ну значит без участия в конкурсе
Зачем он тебе сдался, если скоро выйдет Рефорджед, в котором будут все новые функции и возможности
И на 1.30 уже можно много нового сделать из того, что там добавили
22

» Мир безумного / 23 февраля

конкурс мультиплеерных карт - отталкивает поддержка 130 патча
чем тебе 1.30 не угодил?
Я считаю, что это праздник только для тех, кто прошел армию. Остальным девочкам и неженкам даже не стоит вякать о принадлежности к мужчинам.Ваши родителя/вторые половинки просто пестуют вас как щеночков в этот день, это для них ролевая игра - они не считают вас настоящим мужиком и правильно делают!
GeneralElConsul, окей, давайте тогда не будем праздновать 23 февраля как нечто мужское, но будем праздновать 19 ноября - международный мужской день. И вообще, те, кто служил, но не служит сейчас, не достойны этого праздника, они ведь не защитники отечества. Да и вообще все, кто ни разу в войне не участвовал, не достойны, неженки.
Есть два замечания, Кристофер. Во-первых, это день защитника отечества, а не день ветерана. Кому его праздновать, тот сам знает. Во-вторых, следуя этой логике приобщения только во время участия, геями являются мужчины лишь во время акта гомосексуальной любви друг с другом, но потом они уже не геи. © новая логика
23 февраля - день образования Красной Армии, и каким образом сюда приплели "защитников", я не понимаю. Я также не понимаю, почему этот праздник исключительно мужской, ведь защитниками могут быть не только мужчины (вот только не надо тут про феменитивы). Если вам нужен день мужчины, то вот он, а вот ещё.
Давайте просто Защищать Древних ))
22

» WarCraft 3 / что за ошибку выдает синтаксис

Принятый ответ
Лучше писать код на Sublime Text 3 с подсветкой xgm.guru/p/wc3/jass-syntax-sublime-textmate
А потом копировать в мапу
На 1.27b там норм проверка встроенная, и всё чётко работает
22

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

Araders:
Proshel_Doty, с эффектами у нас хорошо дружит Empyreal , но его уже давно не было в сети. Если судить по ролику то можно взять стандартную волну силы и перекрасить ее в синий цвет.
Да мне не к спеху, к тому же много кому пригодилась бы такая модель.
ДА я сам пытался делать, не помню на подобие чего, но получилось так себе, потому что я не моделлер
А нужно, чтобы было на уровне
22

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

Буду очень признателен, если кто-нибудь сделает эффект типа Сплэш атаки как в Дота2 у Свена или Магнуса
Только там волны идут к каждому поражённому, а нужна одна волна побольше, которая будет покрывать всю область действия сплеша
В принципе и маленькие тоже пригодятся
Может такая модель даже есть, но сколько я искал на ХГМ или на Хайве, не смог найти. Переделывал сам какую-то модель волны, но получилось так себе. Думаю, истинный моделлер сделает мощно )
22

» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)

я ж не говорю всем убирать
просто интересно было бы иметь возможность сделать чтобы его не было
Ну так норм
Чем больше возможностей, тем больше нестандартных мап))
22

» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)

слишком большой объем работы
Так сказал, как будто тебя заставляют это делать
Да и все пункты по поводу анимации это уже просто человеческая лень и нежелание разбираться в чем-то.
Найс рофлы
Я просто предлагаю, что бы я хотел видеть в Рефордже, чтобы это можно было делать без гемора, а просто менять в РО и т.д.
Кет:
Так это всё можно сделать на JASS даже сейчас. Не хватает только функций для управления интерфейсом (хотя костыли есть), но таки функции, видимо, будут.
Я как и все пишу чтобы это было в новом варике. При чём тут какие-то костыли и прочая ерунда, которая связана с нынешним вариком?
Это вроде уже добавили в новых патчах, разве нет?
Не знаю, что там в новых патчах, да и не особо интересно. Я как поделываю свою старую мапу на 1.27b, чтобы не выбиваться так сказать. Я как увидел, что там размер мапы для мультиплеера увеличили до 128 Мб, так сразу его скачал, поставил и на нём мне как-то спокойнее сидеть. Потом вышел 1.28 и т.д., я почитал, что там как-то ерундово всё и остался на 1.27b. А так, теперь я жду Рефордж, чтобы на нём уже бахнуть, если, конечно, они там всё чётко запилят.
ClotPh:
интереснее было бы вообще без основного
Но ведь в основном по ним и идёт классификация Героев. Это же как сильная сторона Героя, у Воина - Сила, у Мага - Разум и т.д.
22

» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)

Предлагаю

  • Возможность добавлять герою неограниченное кол-во атрибутов или, хотя бы, не менее 10 (Сила, Ловкость, Разум и т.д.)
  • Возможность делать у героя несколько атрибутов ОСНОВНЫМИ, хоть один, хоть сразу все имеющиеся, чтобы получить больше видов комбинированных героев
  • Возможность менять Осн атрибуты героя прямо в процессе игры
  • Возможность менять зависимость атрибутов и того, что они дают, например Сила увеличивает Защиту, Разум увеличивает Здоровье и т.д. Изменить, чтобы сила атаки не зависела только от основного атрибута, а, например, от Силы
  • Возможность добавлять войскам до 3-х типов атаки одновременно с переключением через доп кнопку, как у Тролля Варлорда в Дота2 идёт переключение между ближним и дальним боем, с возможность устанавливать определённую анимацию атаки на каждый вид атаки, чтобы при атаке мечом герой воспроизводил определённые анимации, где он машет мечом, а также определённую анимацию при смене типа атаки, как при Морфе, например, когда герой держит в руке Меч, а при переключение типа атаки достаёт из-за спины Лук. Яркий пример - наличие разного оружия в каждой руке. Например, есть Герой, у которого в одной руке меч, а в другой — посох. А также возможность устанавливать лимит на количество атак. Например, есть герой у которого в одной руке Меч, а в другой Пистолет, и в Пистолете у него имеются типа патроны, которые и будут количеством атак. После того как лимит атак иссякнет в определённом типе атаки, автоматически менять на следующий тип атаки.
  • Возможность менять поворот Юнита, даже когда у того скорость передвижения 0, т.е. отсутствует, а также нормально менять его позицию через SetUnitX и SetUnitY
  • Возможность отключать у Юнита определённые анимации, чтобы не ковырять модель и не удалять ненужные, и не пересохранять в новую
  • Возможность у Юнита в процессе игры переключаться между режимом бега и режимом ходьбы, как с режимами атаки, очень пригодится для РПГ, синематиков, я думаю, ещё много где. Желательно наличия у модели определённых анимации, например, Walk и Walk Fast, но если у модели только обычная анимация бега Walk, то возможность устанавливать скорость анимации при беге и ходьбе.
  • Возможность у Юнита в процессе игры переключаться между такими состояниями как Ходьба, Полёт и Плавание, без наличия каких-либо доп способностей типа Превратиться в Ворона, как с переключениями типов атаки
  • Возможность добавлять у Юнита всего до 5-ти таких характеристик, как Здоровье и Мана, под его анимированным портретом (ну или где оно будет), а также шкалы над самим Юнитом. Возможность менять цвет каждой шкалы и вообще видимость.
  • Возможность увеличивать/уменьшать у Юнита его Макс здоровье и Макс Ману или другую такую характеристику в процессе игры
  • Возможность носить у Героя (или Юнита) неограниченное количество предметов в процессе игры. Просто при визуальном заполнении инвентаря возможность прокруткой или стрелками на инвентаре Вперёд/Назад переключаться как бы между отделениями, или возможность с помощью кнопки развернуть открыть открыть вверх большее окно инвентаря (например с 36 ячейками) с прокруткой так же, потому что предметов неограниченно.
  • Сделать окошко с приказами как какое-то отдельное, которое можно визуально отключать или изначально не показывать в карте, ибо они вообще не нужны. Никто не нажимает на них ЛКМ, а читать на них подсказки нет никакого смысла.
22

» WarCraft 3 / Не работает IsUnitIllusion

Принятый ответ
Вот это чо за рак мозга? Какие еще локалки в фильтре с ифами? Ну с таким не удивительно что не работает.
Да всё работает, вообще-то
quq_CCCP:
Примерно так слабо?
И в чём смысл делать глобалку, а не просто писать тогда уж сразу GetFilterUnit( )
Я сдеал локалку, чтобы вместо GetFilterUnit( ) писать то, что мне нужно, в данном случае CLONE
quq_CCCP:
Потом клонов от способностей ищут не так,
Да так и я их могу найти
Точнее не совсем так, я их искал через Юнит входит в Область ( Игровая зона )
Но искать их в другом триггере и сдругим событием мне нафиг не нужно.
Мне нужно найти иллюзии сразу в триггере со способностью, чтобы потом не было геморроя
========================
И ещё раз повторюсь, что при повторном использовании способности, 2 прошлые иллюзии (да и вообще в принципе если рядом с гером будут другое любое ко-во иллюзий) перемещаются к противнику. Но две новосозданные остаются на месте.
Так же повторюсь, что когда проверка была IsUnitIllusion == false, то иллюзии определяло как не иллюзии!
Все кто пытались помочь, похоже проигнорировали это замечание...
========================
Мой вывод таков: Иллюзиям, призванным через стандартную Способность (Предмет: Иллюзии) присваивается статус иллюзий слегка позже, чем происходит проверка.
С другой стороны, скорее всего это может и можно как-то обойти, ведь есть карты примеры, где подобное работает нужным образом.
О том, как устроены чёртовы способности близов стоит только догадываться =\
К счастью Способность (Предмет: Иллюзии) не наносит 0.00 урона, и за это близам огромное спасибо (что у меня в очередной раз не бомбануло)
А вообще, проще по-моему сделать свою игру, чем нормальную карту в варкрафте -_-
22

» WarCraft 3 / Не работает IsUnitIllusion

ну возможно они еще не созданы при касте, поэтому лови через определенное время таймером (0.00 сек или 0.01 и так далее). Лучше проверять событием - юнит вызывает боевую единицу, засовывать в группу и так далее
Так прикол в том что в другой карте всё работает нормально.
Да и в первой карте как юнитов их определяет, но как иллюзии нет.
Proshel_Doty:
Стоит ещё учесть, что когда проверка была IsUnitIllusion == false, как я сказал ранее, то иллюзии определяло как не иллюзии
Т.е. ещё одно предположение, что когда создаются иллюзии на основе способности Предмет:Иллюзии, иллюзиям присваивается статус иллюзий слегка позже, чем происходит проверка на этот статус иллюзий
Никогда никаких проблем не было
IsUnitType(u,UNIT_TYPE_HERO) возвращет true ТОЛЬКО для героев, это фишка такая
иллюзии-герои включаются в фильтр через IsUnitIdType(GetUnitTypeId(u),UNIT_TYPE_HERO)
Та при чём тут вообще проверка на героя, блин
Кто-то завёз сюда эту дичь и других отвлекает
У меня нет проверки на героя
quq_CCCP:
Proshel_Doty, говорю же, код в студию
function IllusionFilter takes nothing returns boolean
local unit CLONE = GetFilterUnit()
local unit CASTer = LoadUnitHandle( udg_Hash, GetHandleId(GetExpiredTimer()), 1 )
if IsUnitIllusion( CLONE ) == true and IsPlayerAlly( GetOwningPlayer( CLONE ), GetOwningPlayer( CASTer ) ) and GetUnitTypeId( CLONE ) == GetUnitTypeId( CASTer ) then
    set CLONE = null
    set CASTer = null
    return true
else
    set CLONE = null
    set CASTer = null
    return false
endif
endfunction

function IllusionDetect takes nothing returns nothing
    local unit CASTer = udg_Game_CASTer
    local unit CASTed = udg_Game_CASTed
    local unit CLONE = GetEnumUnit()
    local real cstdX = GetUnitX( CASTed )
    local real cstdY = GetUnitY( CASTed )
    local real clnX = GetUnitX( CLONE )
    local real clnY = GetUnitY( CLONE )
    local real ANGto = 57.296 * Atan2( cstdY - clnY, cstdX - clnX)
    local real ANGbk = 57.296 * Atan2( clnY - cstdY, clnX - cstdX)
    if IsUnitIllusion( CLONE ) == true then
    call DisplayTextToPlayer( Player(0), 0, 0, "1")
    if GetUnitTypeId( CLONE ) == GetUnitTypeId( CASTer ) then
    call DisplayTextToPlayer( Player(0), 0, 0, "2")
    if GetOwningPlayer( CLONE ) == GetOwningPlayer( CASTer ) then
    call DisplayTextToPlayer( Player(0), 0, 0, "3")
        call SetUnitX( CLONE, cstdX + 32*Cos( ANGbk * bj_DEGTORAD ) )
        call SetUnitY( CLONE, cstdY + 32*Sin( ANGbk * bj_DEGTORAD ) )
        call SetUnitFacing( CLONE, ANGto )
        call IssueTargetOrder( CLONE, "attack", CASTed )
    endif
    endif
    endif
endfunction

function ShadowClonesMissile takes nothing returns nothing
    local timer TMRab = GetExpiredTimer()
    local integer HNDL = GetHandleId( TMRab )
    local integer i = 1
    local unit CASTer = LoadUnitHandle( udg_Hash, HNDL, 1 )
    local unit CASTed = LoadUnitHandle( udg_Hash, HNDL, 2 )
    local unit MISSILE = LoadUnitHandle( udg_Hash, HNDL, 3 )
    local unit array DUMMY
    local group CLONES = CreateGroup()
    local real cstrX = GetUnitX( CASTer )
    local real cstrY = GetUnitY( CASTer )
    local real cstdX = GetUnitX( CASTed )
    local real cstdY = GetUnitY( CASTed )
    local real mslX = GetUnitX( MISSILE )
    local real mslY = GetUnitY( MISSILE )
    local real ANGto = 57.296 * Atan2( cstdY - mslY, cstdX - mslX)
    local real ANGbk = 57.296 * Atan2( mslY - cstdY, mslX - cstdX)
    local real DIST = SquareRoot( ( ( cstdX - mslX ) * ( cstdX - mslX ) ) + ( ( cstdY - mslY ) * ( cstdY - mslY ) ) )
    if DIST < 32.00 then
        call FlushChildHashtable( udg_Hash, HNDL )
        call DestroyTimer( TMRab )
        call DestroyEffect( AddSpecialEffect( "war3mapImported\\EffectShadowMissile.mdl", mslX, mslY ) )
        loop
            exitwhen i > 2
            set DUMMY[i] = CreateUnit( GetOwningPlayer( CASTer ), 'e000', GetUnitX( CASTer ), GetUnitY( CASTer ), ANGto )
            call UnitApplyTimedLife( DUMMY[i], 'BTLF', 0.50 )
            call UnitAddAbility( DUMMY[i], 'A084' )
            call IssueTargetOrderById( DUMMY[i], 852274, CASTer)
            set i = i + 1
        endloop
        set udg_Game_CASTer = CASTer
        set udg_Game_CASTed = CASTed
        call GroupEnumUnitsInRange( CLONES, cstrX, cstrY, 256.00, Condition(function IllusionFilter ) )
        call ForGroup( CLONES, function IllusionDetect )
        call RemoveUnit( MISSILE )
    else
        call SetUnitFacing( MISSILE, ANGto )
        call SetUnitX( MISSILE, mslX + 10*Cos( ANGto * bj_DEGTORAD ) )
        call SetUnitY( MISSILE, mslY + 10*Sin( ANGto * bj_DEGTORAD ) )
    endif

    set CASTer = null
    set CASTed = null
    set MISSILE = null
    set DUMMY[1] = null
    set DUMMY[2] = null
    call DestroyGroup( CLONES )
    set TMRab = null
endfunction

function Trig_ShadowClones_Actions takes nothing returns nothing

    //Основные локальные переменные
    local unit CASTer = udg_Game_CASTer
    local unit CASTed = udg_Game_CASTed
    local unit MISSILE
    local location CASTerLOC = udg_Game_CASTerLOC
    local location CASTedLOC = udg_Game_CASTedLOC
    local real ANGto = udg_Game_ANGto
    local real ANGbk = udg_Game_ANGbk
    local integer AbLVL = udg_Game_ABILLVL

    //Локальные переменные конкретной способности
    local timer TMRab = CreateTimer()
    local integer HNDL = GetHandleId( TMRab )
    
    //Работа способности
    set MISSILE = CreateUnit( GetOwningPlayer( CASTer ), 'e00V', GetUnitX( CASTer ), GetUnitY( CASTer ), ANGto )
    call SetUnitPathing( MISSILE, false )
    call SetUnitX( MISSILE, GetUnitX( CASTer ) )
    call SetUnitY( MISSILE, GetUnitY( CASTer ) )
    call SetUnitFacing( MISSILE, ANGto )
    call SaveUnitHandle( udg_Hash, HNDL, 1, CASTer )
    call SaveUnitHandle( udg_Hash, HNDL, 2, CASTed )
    call SaveUnitHandle( udg_Hash, HNDL, 3, MISSILE )
    call SaveReal( udg_Hash, HNDL, 4, ANGto )
    call SaveReal( udg_Hash, HNDL, 5, ANGbk )

    call TimerStart( TMRab, 0.02, true, function ShadowClonesMissile )

    set CASTer = null
    set CASTed = null
    set MISSILE = null
    call RemoveLocation( CASTerLOC )
    call RemoveLocation( CASTedLOC )
    set CASTerLOC = null
    set CASTedLOC = null
    set TMRab = null
endfunction

//===========================================================================
function InitTrig_ShadowClones takes nothing returns nothing
    set gg_trg_ShadowClones = CreateTrigger(  )
    call TriggerAddAction( gg_trg_ShadowClones, function Trig_ShadowClones_Actions )
endfunction
Этот триггер запускается другим общим триггером, где отлавливаются все способности.
22

» WarCraft 3 / Требуется помощь!

Нужно сделать так, чтобы можно было выбирать один культ на выбор
Да можно хоть через мультиборд сделать, кто знает, что именно ты хочешь сделать
22

» WarCraft 3 / Не работает IsUnitIllusion

Вот вам пример, все прекрасно работает.
У меня есть такой же пример в виде другой моей карты, там тоже не джасс и тоже работает)
ClotPh:
ИЛЛЮЗИИ ГЕРОЕВ НА ПРОВЕРКУ ISUNITHERO ОТВЕЧАЮТ НЕТ
Да вот как раз у меня с этим всё норм, потому что я не проверяю на это
Когда я проверяю:
if IsPlayerAlly( GetOwningPlayer( CLONE ), GetOwningPlayer( CASTer ) ) and GetUnitTypeId( CLONE ) == GetUnitTypeId( CASTer ) then
К противнику перемещаются и иллюзии и герой
Когда добавляю проверку на иллюзии, то их тупо не находит
Писал и так и так и так:
IsUnitIllusion( CLONE )
IsUnitIllusion( CLONE ) == true
IsUnitIllusionBJ( CLONE ) == true
IsUnitIllusion( GetFilterUnit() )
IsUnitIllusion( GetFilterUnit() ) == true
IsUnitIllusionBJ( GetFilterUnit() ) == true Кстати это вариант, который делается через обычные триггеры, но тут он тоже не работает
Потом для прикола проверил
IsUnitIllusion( CLONE ) == false
И тут оно перемещало и героя и иллюзии к противнику
=========================================
Потестив ещё, было замечено, что когда способность применяется первый раз, то иллюзии остаются рядом с кастером
Если применить способность второй раз, то рядом с кастером появляются новые иллюзии, а старые, которые стояли рядом с ним перемещаются к противнику и т.д.
Следует предположение, что как только дамми получает приказ применить способность на основе Предмет:Иллюзии, условие IsUnitIllusion просто не успевает какаим-то образом сделать проверку =/
Почему каким-то? Потому что аналогичная способность в другой моей карте сделанная через триггеры работает всегда
Стоит ещё учесть, что когда проверка была IsUnitIllusion == false, как я сказал ранее, то иллюзии определяло как не иллюзии
Т.е. ещё одно предположение, что когда создаются иллюзии на основе способности Предмет:Иллюзии, иллюзиям присваивается статус иллюзий слегка позже, чем происходит проверка на этот статус иллюзий
Хрен знает что, в общем, хватит пока с меня редактора варкрафта =\
22

» WarCraft 3 / Предметы для классов

Не могу понять, как сделать.
(Желательно на GUI)
(Хотел сделать на основе:
Юнит получает предмет
If , then, also
Если уровень предмета равен 2
Если уровень способности (Танк) =1
То:ничего не делать
Иначе:Выбросить манипулируемый предмет
Что значит не могу понять как сделать? И потом ты описываешь процесс как это сделать =\
22

» WarCraft 3 / Полет снаряда по дуге

С такими названиями локалок как вообще можно нормально работать)
Там даже профи запутается, особенно, если будет строчек раза в 3 больше
22

» Модели из World Of WarCraft / Загробник света

скриншоты это самая информативный кусок описания
Это да, ну главное, чтобы на нём было понятно, что за ресурс
И ещё очень важно, чтобы были метки
22

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Лучше изначально представить, что этого всего не будет, чтобы потом не разочаровываться вдвойне)
А если будет, то круто