11

» WarCraft 3 / Есть ли перегрузка функций в jass/vjass/cjass или где-то ещё тут?

Вот тебе несколько вариантов, передается один аргумент и конвертируется в строку или же возвращает строку, по такой же логике можешь допилить остальное и оптимизировать.
function CheckChar takes string char returns integer
    if char == "0" or char == "1" or char == "2" or char == "3" or char == "4"  then
        return 1;
    elseif char == "5" or char == "6" or char == "7" or char == "8" or char == "9"  then
        return 1;
    elseif char == "." then
        return 10;
    else 
        return 0
    endif
endfunction

function LenghtArg takes string arg returns integer
    local string char
    local integer i = 0
    local integer len = StringLength(arg)
    local integer lenArg = 0
    loop
        exitwhen i >= len
        set char = SubString(arg, i, i + 1)
        set lenArg = CheckChar(char) + lenArg
        set i = i + 1
    endloop
    return lenArg;
endfunction

function B2S takes boolean b returns string
    if b then
        return "true"
    endif
    return "false"
endfunction

function DS takes string arg returns nothing
    //Храним длину аргумента
    local integer lenght = StringLength(arg)
    //Проверяем каждый символ и возвращаем длину
    local integer len = LenghtArg(arg)

    if arg == "true" then
        call BJDebugMsg("boolean: " + arg)
        /* ТВОЙ КОД */
        return;
    endif
    
    if arg == "false" then
        call BJDebugMsg("boolean: " + arg)
        /* ТВОЙ КОД */
        return;
    endif
    
    if lenght == 0 then
        call BJDebugMsg("Пустая строка")
        /* ТВОЙ КОД */
        return;
    endif
    
    if lenght==(len - 9) then
       call BJDebugMsg("real: " + arg)
       /* ТВОЙ КОД */
       return;
    endif
    
    if lenght==len then
       call BJDebugMsg("int: " + arg)
       /* ТВОЙ КОД */
       return;
    endif
    
    call BJDebugMsg("str: " + arg)
        /* ТВОЙ КОД */
endfunction

function DR takes string arg returns string
    local integer lenght = StringLength(arg)
    local integer len = LenghtArg(arg)

    if arg == "true" then
        return "true"
    endif
    
    if arg == "false" then
        return "false"
    endif
    
    if lenght == 0 then
        return "null"
    endif
    
    if lenght==(len - 9) then
        return "real"
    endif
    
    if lenght==len then
        return "int"
    endif
        return "str"
endfunction

function Trig_Smeto_Actions takes nothing returns nothing
    local string str 
    local integer Int = 10
    local real Real = 10.23
    local boolean B = true
    local string overload
    call DS(R2S(Real))  //real
    call DS(I2S(Int))   //int
    call DS("")         //Пустая строка
    call DS("10")       //int
    call DS("10.001")   //real
    call DS("10.01")    //real
    call DS(" 10.01")   //str
    call DS("a")        //str
    call DS(B2S(B))     //boolean
    /////////////НИЖЕ ИЗВРАЩЕНИЯ////////////////////
    if DR("a") == "str" then
        /* ТВОЙ КОД */
    endif
    ////////////ДЛЯ ФУНКЦИЙ С типа АРГУМЕНТАМИ//////////////
    set overload = DR("a")
    if overload == "str" then
        set DSTR = "Hello World"
        call ExecuteFunc("D"+overload);
    endif
    
    set overload = DR(I2S(Int))
  
    if overload == "int" then
        set DINT = Int
        call ExecuteFunc("D"+overload);
    endif
    
    set overload = DR(R2S(Real))
    if overload == "real" then
        set DREAL = Real
        call ExecuteFunc("D"+overload);
    endif
     ///////////ДЛЯ ФУНКЦИЙ БЕЗ АРГУМЕНТОВ//////////////////
     call ExecuteFunc("D"+DR("a"))
endfunction

globals
    string DSTR
    integer DINT
    real    DREAL
endglobals

function Dstr takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), DSTR)
endfunction
function Dint takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), I2S(DINT))
endfunction
function Dreal takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), R2S(DREAL))
endfunction


//===========================================================================
function InitTrig_Smeto takes nothing returns nothing
    set gg_trg_Smeto = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Smeto, function Trig_Smeto_Actions )
endfunction
11

» WarCraft 3 / Программа редактирования эффектов для HD графики

Ответ выше прекрасен, но можешь попробовать сделать кучу движений от конвертирования с Рефы на Обычный и воспользоваться технологиями динозавров
или
11

» WarCraft 3 / Погода

Система погодных эффектов и тумана xgm.guru/p/wc3/weatherandfogsystem
Конкретно для тебя:
// Триггер для обработки команд в чате
function Trig_Weather_Control_Conditions takes nothing returns boolean
    return true
endfunction

function Trig_Weather_Control_Actions takes nothing returns nothing
    local string cmd = GetEventPlayerChatString() // Получаем текст сообщения
    local player p = GetTriggerPlayer() // Игрок, который отправил команду

    // Включение/выключение дождя
    if cmd == "дождь вкл" then
        call EnableWeatherEffect(AddWeatherEffect(GetWorldBounds(), 'RAhr'),true)
        call DisplayTextToPlayer(p, 0, 0, "Дождь включен.")
    elseif cmd == "дождь выкл" then
        call RemoveWeatherEffect(bj_lastCreatedWeatherEffect)
        call DisplayTextToPlayer(p, 0, 0, "Дождь выключен.")
    endif

    // Включение/выключение тумана
    if cmd == "туман вкл" then
        call SetTerrainFogEx(0, 1000, 5000, 85, 0.5, 0.5, 0.5)
        call DisplayTextToPlayer(p, 0, 0, "Туман включен.")
    elseif cmd == "туман выкл" then
        call SetTerrainFogEx(0, 0, 0, 0, 0, 0, 0)
        call DisplayTextToPlayer(p, 0, 0, "Туман выключен.")
    endif
endfunction
//Created by Smeto
function InitTrig_Weather takes nothing returns nothing
    local trigger t = CreateTrigger()
    local integer i = 0
    local integer players = 12

    loop
        exitwhen i >= players
        call TriggerRegisterPlayerChatEvent(t, Player(i), "", false)
        set i = i + 1
    endloop

    call TriggerAddCondition(t, Condition(function Trig_Weather_Control_Conditions))
    call TriggerAddAction(t, function Trig_Weather_Control_Actions)
endfunction
С тебя локалки удалить и добавить переменную, чтоб при двойном прописывании команды не создавался новый эффект поверх старого
11

» ВалактерисМод / Набор Нежити Валактериса

RvzerBro, он просто сторонник древних традиций, там ещё не знают, что такое реф
11

» WarCraft 3 / Tobirama Senju

Слишком мультяшные модельки, ощущение, что не вольются в графику варика
11

» WarCraft 3 / Возможно ли получить область триггера? - [Jass]

Возможно, связав регион с прямоугольником.
Локалки сам обнуляй
globals
    region array regions
    rect array rects
    integer regionCount = 0
endglobals

function CreateRegionRect takes rect r returns region
    local region reg = CreateRegion()
    call RegionAddRect(reg, r)
    set regions[regionCount] = reg
    set rects[regionCount] = r
    set regionCount = regionCount + 1
    return reg
endfunction

function GetRectFromRegion takes region reg returns rect
    local integer i = 0
    loop
        exitwhen i >= regionCount
        if regions[i] == reg then
            return rects[i]
        endif
        set i = i + 1
    endloop
    return null
endfunction

function OnEnterRegion takes nothing returns nothing
    local region triggeringRegion = GetTriggeringRegion()
    local rect triggeringRect = GetRectFromRegion(triggeringRegion)
    local unit enteringUnit = GetTriggerUnit()

    // Теперь у тебя есть прямоугольник, в который вошел юнит
    call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Юнитыч вошёл в область ЫЫЫЫ: " + R2S(GetRectWidthBJ(triggeringRect)) + "x" + R2S(GetRectHeightBJ(triggeringRect)))
    
endfunction

function InitTrigSmetoGPT takes nothing returns nothing
    local trigger t = CreateTrigger()
    local rect r1 = Rect(0, 0, 512, 512)
    local rect r2 = Rect(512, 512, 1024, 1024)
    local region reg1 = CreateRegionRect(r1)
    local region reg2 = CreateRegionRect(r2)
    call TriggerRegisterEnterRegion(t, reg1, null)
    call TriggerRegisterEnterRegion(t, reg2, null)
    call TriggerAddAction(t, function OnEnterRegion)
endfunction
А если ручками не хочется Rectы делать, то динамическое создание триггеров в помощь
11

» WarCraft 3 / Doctor Strange (MCU)

Откуда данные модели? Мне нравится, как они проработаны. Было бы прекрасно увидеть тематику Варкрафт
11

» WarCraft 3 / HulkBuster

Модель очень мощная по количеству анимаций, прям даже мощнее чем из 300 heroes. Отличная работа
11

» Администрация XGM / Не подгружается картинка видео при переходе на ресурс и так далее

VPN не помогает, да в целом видео куда бы не загружено должно сразу показываться, а при такой скорости странно, что не всегда подгружается, YouTube сразу вообще картинка не грузит, только после нажатия
Загруженные файлы
11

» WarCraft 3 / Нефрен Рук Инсания [300 Heroes]

Как эти модели созданы, тут всегда очень много анимацией неужели это все в ручную делают?
11

» WarCraft 3 / Удаление области

native RemoveRegion takes region whichRegion returns nothing
\\Зачем удалять регион?
11

» WarCraft 3 / Warcraft III: Reforged 2.0.1

Ydav, надо чтоб еще они у нас залегали представителя как на Hive, а нам получить награду Призвал на XGM сотрудника Blizzard
11

» WarCraft 3 / Warcraft III: Reforged 2.0.1

Ясно. А приколы в зависимости от графики так и остались с 2020 года.
  • Громовой удар, топот войны и множество звуков грома повторяются 3 раза после анимации с пользовательскими заклинаниями (не заклинаниями по умолчанию!).
  • Некоторые наборы звуков юнитов кажутся несовместимыми с некоторыми юнитами.
  • Эффекты молнии можно создавать, но не изменять (перекрашивать, перемещать, делать постоянными, удалять). То есть создать именно молнию постоянную call AddLightning “CLPB” , “CLSB” не получится
Все эти ошибки исправляются сами собой при переключении на классическую графику
11

» WarCraft 3 / Рефоржет перестал запускаться! Чёрный экран - виснет намертво!

SсRealm,все на чем живет УЖОПа это Ирина бот, потому что нет сервера
Ванила же на Писикапе (давно там не был)
Ваниль же на рубатле 1.27b (умирает, но реанимация тут как тут)