Для того чтобы легко поддерживать хоть сколько то большой проект на lua необходимы подсказки типов. А те typechecker которые есть сейчас не имеют возможности описывать generic типы.
Из за того что стандартный тип table имеет разные порядок при обходе через pairs() на разных ПК, это критически требует создания собственных коллекций просто чтобы начать хранить данные, а без generic типов поддержка коллекций быстро превратится в ад
Попробовал я перейти на луа. Ну сложна. Вышел на моменте что в карту что-то запаковывать надо будет руками чуть ли не через mpq архивы. Ну неудобно. Сделайте встроенную визуальную поддержку луа в джнгп. Тогда на это можно будет переходить.
Для того чтобы удобно было разрабатывать карту на lua сейчас надо выполнить следующие действия:
Положить в карту файл war3map.lua с одной строчкой
local my = require "my"
Создать в папке файл Game\Warcraft 3 Frozen Throne\lua\my.lua
Запустить игру с флагом -dev (режим разработчика)
С этого момента при запуске карты игра будет автоматически подгружать файл my.lua. Туда можно вносить изменения с помощью любой IDE.
Для того чтобы проверить изменения в my.lua даже не надо закрывать игру, достаточно нажать в меню перезапустить карту и новый my.lua подтянется автоматически.
Только когда надо релизить новую версию карты, тогда необходимо перенести изменения из my.lua в war3map.lua, чтобы код работал в обычном режиме.
каким образом можно писать что lua hrua cjass vjass ...{вставить ещё сотню языков} могут больше чем оригинал?
если они в конце компиляции тупо конвертят свой личный код в обычный жас
lua не конвертируется в jass, это отдельный язык со своей luaVM который интегрируется в игру и дергает нативки как сишные функции, оп-лимит это прикол исключительно jassVM
вчера он аналогично не захотел обработать 50 строк длиннее 1000 символов - ну ладно, на тебе второй триггер
но нет же, сегодня во втором триггере заглох при обработке одной строки на 1400 символов (во время вызова доп функции) - пришлось делать триггер в триггере
итого 3 раза цикл из-за оплимита оборвался и не доработал, пока его на триггер не посадили
сидишь только и борешься с оплимитом в циклах сутками
Да понимаю что это сложно, поэтому рекомендуй уйти на lua где нет такого лимита и больше перфоманс. Если такой возможности нет то дели код на части и делай отложенные вычисления типа таймером на 0 сек и т.п.
или надо периодически обнулять всю ht и заполнять заново? (разве нет команды очищения ht? только через пересоздание?)
Инициировать хеш-таблицу (InitHashtable()) насколько мне известно можно только 255 раз. Чтобы работать с пересоздаваемыми хеш-таблицами на jass нужно писать свою систему, типа такой xgm.guru/p/wc3/hashtable8000
Я всё ещё не вижу пруфов, что в открытом коде нет бекдоров. А также, что вскода собранна именно из этого кода.
Открытый код не гарантирует что там нет бекдоров и т.п, но он хотя бы предоставляет возможность всем участникам это проверить, в том числе с использованием автоматизированных средств проверки, а собирать можно из исходников
Может не только просто перестать работать, а даже нанести ущерб PT153:
то бремя предоставления доказательств лежит на
лежит на утверждающем - без проблем
Исходный код закрыт поэтому нет возможности убедиться в отсутствии недокументированных возможностей. А даже если мы убедимся в этом для одной версии, то нет гарантий для будущих версий
Получается если чего то не было значит и не будет, это отличный аргумент
Смысл в том что вместо того чтобы пользоваться инструментами которые позволят переиспользовать продукт в любой IDE мы будем писать так, чтобы это работало только в одном месте, огромные благодарности
Ну это просто хохма. Изначальный разговор был о том, что Назару не нравится API вскода. В результате дискуссии Назар привёл пример с инжектом. Ты на него решил ответить и спустя пару сообщений заявить следующее:
Но говорить что IDE зиждиться на langiage injection это слишком громко
Эта хохма тут чтобы показать насколько нелепо приводить единственный обсуждаемый и по сути доказательный пример качества api IntelliJ и некачества api vscode, можно сравнить с другими редакторами nvim например
Насколько мне известно, пиратки есть. Также, если ты не продлишь подписку на Professional Edition, у тебя останется та версия, которая была доступна на момент истечения подписки, обновлений не будет.
То есть доказательств что внезапно что-то пойдет не так по сути нет
Идём к окулисту, лечим избирательную слепоту, читаем изначальный комментарий и разбиваем его по тезисам
Там написано, не хочу пользоваться js, не хочу пользоваться ts, не хочу пользоваться сборщиками - все говно. Какие тут нужны комментарии.
По поводу того что надо обязательно собирать дерево на стороне vscode, это точно так у всех плагинов? например у lua-language-server. Что то мне подсказывает что если lsp сервер собрал дерево, то vscode просто наводит визуал по нему
Не перестанут, для работы не требуется соединение к серверам JetBrains
Есть какие то доказательства что его нельзя отключить удаленно или что оно через время не превратится в тыкву, насколько известно это ПО работает через лицензию. Предлагаешь пиратить?
Господа, вы с каждым сообщением всё дальше от Бога изначальной темы, а именно, что API VS Code унылое.
Сервер проверки кода должен иметь минимум зависимостей от конкретной IDE
Во вторых кроме названных двух IDE есть еще консольные, которой некоторые сотрудники и в том числе лиды пользуются на работе
Если есть какие то претензии к API VSCode можно создать публичную дискуссию на гите которую можно лайкнуть. Но говорить что IDE зиждиться на langiage injection это слишком громко
» WarCraft 3 / Lua для чайников
» WarCraft 3 / Триггер на стак предметов в инвентаре
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Определение хоста карты
» WarCraft 3 / Приоритеты атаки
» Quro / Quro
- Создать в папке файл Game\Warcraft 3 Frozen Throne\lua\my.lua
- Запустить игру с флагом -dev (режим разработчика)
С этого момента при запуске карты игра будет автоматически подгружать файл my.lua. Туда можно вносить изменения с помощью любой IDE.Для того чтобы проверить изменения в my.lua даже не надо закрывать игру, достаточно нажать в меню перезапустить карту и новый my.lua подтянется автоматически.
Только когда надо релизить новую версию карты, тогда необходимо перенести изменения из my.lua в war3map.lua, чтобы код работал в обычном режиме.
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
» WarCraft 3 / как создавать юнитов с уникальным HandleId ?
Ред. Vlod
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
» WarCraft 3 / как создавать юнитов с уникальным HandleId ?
» WarCraft 3 / Как изменить модели строительства зданий
» WarCraft 3 / Программа для конвертации jass кода в lua
» WarCraft 3 / как занулить возвращаемую локальную переменную юнита в функции ?
» WarCraft 3 / Как изменить модели строительства зданий
» WarCraft 3 / как занулить возвращаемую локальную переменную юнита в функции ?
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
PT153:
Исходный код закрыт поэтому нет возможности убедиться в отсутствии недокументированных возможностей. А даже если мы убедимся в этом для одной версии, то нет гарантий для будущих версий
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
По поводу того что надо обязательно собирать дерево на стороне vscode, это точно так у всех плагинов? например у lua-language-server. Что то мне подсказывает что если lsp сервер собрал дерево, то vscode просто наводит визуал по нему
» WarCraft 3 / Visual Studio Code: WarCode
Во вторых кроме названных двух IDE есть еще консольные, которой некоторые сотрудники и в том числе лиды пользуются на работе
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode