Представляю Вашему вниманию карту, в которой ваша главная задача - рубить Лес. Здесь Лес ваш главный противник и союзник в борьбе за превосходство вашей лесозаготовительной гильдии над всем лесом.
Карта
@arthas65536: Как скачать 1.3.1? По кнопке скачивается 1.1 17 6.9K
dict это удобный и расширяемый модуль для работы со таблицами как словарями на языке Lua. Модуль предоставляет объектно-ориентированный интерфейс, который инкапсулирует операции над таблицами, делая код более структурированным, читаемым и поддерживаемым.
Компонент
210

War3-lua-NDArray

Модуль многомерных таблиц или многомерного массива. Организация класса позволяет реализовывать методы автоматического заполнения всей таблицы числами или через генераторы. Все мульти таблицы хранятся только в числовых ключах, что решает вопрос десинхронизации.
Компонент
Данная библитека math расширяет возможности текущей версии одноименной библеотеки в Warcraft 3 reforged. Расширение на даный момент добавляет два модуля math.special и math.random.
Компонент
@nazarpunk: cheapack - совсем не дешевый упаковщик *.lua файлов в *.wct файл Warcraft 3. Почему он не дешёвый, коль не секрет? 13 262
Данный ресурс посвящен библиотеки table расширяющей функционал текущей реализации одноименной библиотеки в Warcraft 3 reforged. Список всех поддерживаемых функций расположен в разделе программного интерфейса - API.
Компонент
@Koladik: Добавлены методы find, find_first, unique. Обновлена структура библиотеки. 11 401
Позволяет создать случайное распределение точек, минимальное расстояние между которыми фиксированно, но тем не менее само распределение точек сохраняет свойства случайного. Например это нужно, для того, что бы случайное появление Баз в wc3 или героев имело минимальное расстояние между собой.
Компонент
@BrEd Pitt: За питоновый алгоритм отдельное спасибо! Даже не знал про такой способ генерации 1 358
Разработан алгоритм появления деревьев. Алгоритм позволяет контролировать количество пеньков и максимальное количество деревьев для предотвращения утечек из-за перенаполнения декорациями.
Компонент
@Darkmen500: Очень круто, я под впечатлением. Казалось деревья, а тут на крутой алгоритм так ещё вероятно без утечек. 1 457
Предлагается алгоритм генератора случайного ландшафта похожего на белый шум. Алгоритм нацелен на предварительную генерацию до начала основных действий игры. Описание алгоритма состоит из трех частей. Генерация текстур рельефа, генерация деформаций рельефа, генерация декораций. Алгоритм не содержит никаких публичных функций кроме инициализации. В целом готов к копированию в любую карту без изменений, возникающие проблемы легко решаются изменением малого числа констант.
Компонент
@drmax24: Вы перегенерировали миникарту как-то после генерации ландшафта? 9 936
В данный момент невозможно в одно действие проверить удерживается ли конкретная клавиша на клавиатуре или кнопка мышки, данная библиотека призвана помочь в решении проблемы.
Компонент

Отслеживание мышки

Статья предлагает решение старой проблемы, найти положение мышки без сторонних утилит
Компонент
@Nelloy: МрачныйВорон, абсолютно не тестировал, но примерно так Screen.lua Скопировать в буферlocal Screen = {} Screen.pos = {0, 0} Screen.size = {0.8, 0.6} local pixel_w = 0 local pixel_h = 0 local function update() local cur_pixel_width = BlzGetLocalClientWidth() local cur_pixel_height = BlzGetLocalClientHeight() if (cur_pixel_width == pixel_w and cur_pixel_height == pixel_h) then return end pixel_w = cur_pixel_width pixel_h = cur_pixel_height local default_zone_width = cur_pixel_height * 0.8 / 0.6 Screen.size[0] = 0.8 * cur_pixel_width / default_zone_width Screen.pos[0] = - (Screen.__size.x - 0.8) / 2 end local timer = CreateTimer() TimerStart(timer, 1, true, update) update() return Screen ((кат Grid ((код local Grid = {} local COLS = 7 local ROWS = 7 local __pos = {0, 0} local __size = {0, 0} local btns = {} local tools = {} local parent = BlzGetFrameByName("ConsoleUIBackdrop", 0) for x = 1, COLS do btns[x] = {} tools[x] = {} for y = 1, ROWS do btns[x][y] = BlzCreateFrameByType("GLUETEXTBUTTON", "MyButton", parent, "ScriptDialogButton", 0) BlzFrameSetAlpha(btns[x][y], 25) BlzFrameSetAbsPoint(btns[x][y], FRAMEPOINT_BOTTOMLEFT, 0, 0) BlzFrameSetSize(btns[x][y], 0, 0) tools[x][y] = BlzCreateFrameByType("FRAME", "FaceFrame", parent, "", 0) BlzFrameSetAlpha(tools[x][y], 0) BlzFrameSetAbsPoint(tools[x][y], FRAMEPOINT_BOTTOMLEFT, 0, 0) BlzFrameSetSize(tools[x][y], 0, 0) BlzFrameSetTooltip(btns[x][y], tools[x][y]) end end local function __updateGrid() local w = __size[0] / COLS local h = __size[1] / ROWS for x = 1, COLS do for y = 1, ROWS do BlzFrameSetAbsPoint(btns[x][y], FRAMEPOINT_BOTTOMLEFT, __pos[0] + x * w, __pos[1] + y * h) end end end function Grid.setPos(pos) __pos = pos __updateGrid() end function Grid.setSize(size) __size = size __updateGrid() end -- return true, x, y, w, h -- return false function Grid. 33 5.6K
`
ОЖИДАНИЕ РЕКЛАМЫ...
Scroll Lock - быстрая модерация