28

» WarCraft 3 / Нейросеть Craiyon

A car won't take your job, another horse driving a car will.
Horse Influencer in 1910
Загруженные файлы
28

» WarCraft 3 / Как правильно обнулять данные в структуре? vJass.

Обнулять нужно, только если что-то более не нужно. И в деструкторе все объекты удалить, можно без обнуления переменных.
28

» Stormgate / Аллен Диллинг вкатился в Stormgate

Agren, он, очевидно, уже давно не работал над sc2, потому что над sc2 давно никто не работает (кроме community council из ESL).
28

» Stormgate / Аллен Диллинг вкатился в Stormgate

WilliamBz, у ZeroSpace нет Early Access, поэтому говорить о том, что он лучше реализован, очень преждевременно.
28

» Stormgate / Аллен Диллинг вкатился в Stormgate

ScorpioT1000, настолько провалился, что некоторые люди зарабатывают себе на жизнь, делая моды и кастомки под ск2 фуллтайм. 🤣
28

» WarCraft 3 / Поиск незакрытых if'ов

Тоже как-то писал для себя.
Тоже не чекает multiline строки
Так-то pjass показывает, какой блок не закрыт, но всё упирается в vJass, который руинит до pjass.
28

» WarCraft 3 / Fraction War Alpha v0.02

Fraction - часть, доля, дробь. Если речь про фракции, то верно будет Faction.
28

» WarCraft 3 / Имеет ли смысл обнуление глобальных переменных? Jass

Я только в деконструкторах стуктур обнуляю или если мне потом важна будет проверка на null.
28

» Stormgate / Stormgate, анонс обновления 0.1.0

Не бывает плохих игр, бывают хорошие игры в раннем доступе.
До слёз...
28

» Stormgate / Интервью Тима Мортена

nazarpunk, мы с тобой в разных комнатах 😀
Поэтому Art Tools не могут быть с нами в одной.
28

» WarCraft 3 / War3-lua-table

warcraft 3 по умолчанию не поддерживает данную библиотеку
В последней версии рефа она присутствует.
Загруженные файлы
28

» Stormgate / Интервью Тима Мортена

nazarpunk, Blizzard хотя бы Art Tools выпустили, EA для моделлинга Tiberian Sun и Red Alert 2 вообще ничего не сделали. Даже редактора карт в комплекте игры нет.
28

» Stormgate / Интервью Тима Мортена

nazarpunk, ага, реверс инжинирингом в 2003 были добыты 🤣

Совсем уже оторвались от реальности. Без нормального редактора моддинг в варе никому бы не всрался, и игра бы умерла, так как одних мили недостаточно, чтобы поддерживать интерес к игре. Именно благодаря интуитивно понятному и простому редактору моддинг в варе стал настолько популярен, и именно поэтому сейчас есть заинтересованные люди, чтобы реверсировать игру.
Сами моддеры чёт за 20 лет так и не смогли нормальный аналог редактора сделать. Только всякие инжекты типа JNGP или недоделанные проекты типа HiveWE. Поэтому заслуга у Blizzard в этом очень и очень большая.
28

» WarCraft 3 / Jass MythBusters

Вопрос:
оно удалится при удалении триггера или останется висеть в памяти как отдельный handle
Ответ:
На ужапи - да, на ванилле/рефе нет
Вопрос в общем ты задал не совсем корректно
🤡

Вопрос как раз-таки сформулирован абсолютно верно, а вот ответ абсолютно некорректен:
  1. Вопрос альтернативный, на него нельзя ответить "да" или "нет", как на общий.
  2. В первую очередь упоминается ненужная информация о действиях, когда в вопросе речь только про события.
По содержанию ответ, конечно, включают верную информацию, но формулировка меня позабавила)
28

» За огненной стеной / Комментарий от сотрудника Blizzard по поводу vJass

И на самом деле можно указать размер в 8191, последний индекс будет работать, а указание размера не выльется в создание доп. массивов для структуры.
Тут я немного ошибся, доп. массивы будут созданы и все присвоения/получения будут делаться через функцию, но сами массивы не будут использованы.
код
globals
constant integer A_size= 8191

//JASSHelper struct globals:
constant integer si__A=1
integer si__A_F=0
integer si__A_I=0
integer array si__A_V
integer array si__A_2V
integer array s__A_2a
integer array s__A_a

endglobals

function sg__A_get_a takes integer i returns integer
        return s__A_a[i]
endfunction

function sg__A_set_a takes integer i,integer v returns nothing
        set s__A_a[i]=v
endfunction

//Generated allocator of A
function s__A__allocate takes nothing returns integer
 local integer this=si__A_F
    if (this!=0) then
            set si__A_F=si__A_V[this]
    else
        set si__A_I=si__A_I+1
        set this=si__A_I
    endif
    if (this>8191) then
        call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,1000.,"Unable to allocate id for an object of type: A")
        return 0
    endif

        set si__A_V[this]=-1
 return this
endfunction

//Generated destructor of A
function s__A_deallocate takes integer this returns nothing
 local integer used
    if this==null then
            call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,1000.,"Attempt to destroy a null struct of type: A")
        return
    else
            set used=si__A_V[this]
        if (used!=-1) then
            call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,1000.,"Double free of type: A")
            return
        endif
    endif
        set si__A_V[this]=si__A_F
    set si__A_F=this
endfunction
Отчего была зажата рабочая ячейка - неясно. Если указать размер 16382, то будут созданы 2 доп. массива, но использоваться будет только один. Если указать 16383, то будут использоваться все, хотя места хватает, ведь 16383 = 8192 * 2 - 1.

Ну и чего это не в ветке отказалось...
28

» За огненной стеной / Комментарий от сотрудника Blizzard по поводу vJass

fenathesnake, так кол-во индексов для структуры можно указать после имени структуры. И на самом деле можно указать размер в 8191, последний индекс будет работать, а указание размера не выльется в создание доп. массивов для структуры. Не знаю, почему по умолчанию размер 8190.
28

» За огненной стеной / Комментарий от сотрудника Blizzard по поводу vJass

ScorpioT1000, бинарного поиска там нет, аллокация происходит за константное время. Там больше проблема в том, что эти 8к общие для класса и всех его наследников. И наличие массивов в атрибутах тоже уменьшает кол-во возможных объектов.