Представляю Вашему вниманию карту, в которой ваша главная задача - рубить Лес. Здесь Лес ваш главный противник и союзник в борьбе за превосходство вашей лесозаготовительной гильдии над всем лесом.
Карта
@Koladik: Главное Карта полностью переписана на Lua. Полностью переработанная и максимально оптимизированная система роста деревьев. Оптимизированы все системы карты, что обеспечило стабильный геймплей, даже если участвует 21 игрок. Юниты Новый юнит: "Энт-воин" - самый сильный энт 5-го тира Духов леса; имеет 25 % шанс нанести 4-кратный урон при попадании. Новый юнит: "Энт-моряк" - шанс 0,05 % появиться из металлической клетки или Магического ящика вместо капитана гоблинов; награда - 150000 дерева. Добавлен дополнительный источник золота - магические деревья. За магические деревья можно получить золото в размере от 10 до 150 золота. Баланс Броня Черной горы теперь дает +5 защиты Бонус к способности "Черная броня" увеличен с +1 до +2 к броне. Уменьшение брони "Разлагающийся смрад" бомжей увеличено с -2 до -4. Мародерство теперь крадет 30 золотых (было 20) и 2000 бревен (было 1000) за удар. Добавлена награда за заброшенную шахту: теперь также можно получить 3000 дерева (всего 750 золотых + 3000 дерева). Броня живого пня увеличена с 4 до 6 16 5.7K
dict это удобный и расширяемый модуль для работы со таблицами как словарями на языке Lua. Модуль предоставляет объектно-ориентированный интерфейс, который инкапсулирует операции над таблицами, делая код более структурированным, читаемым и поддерживаемым.
Алгоритмы, Наработки и Способности
144

War3-lua-NDArray

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

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

Статья предлагает решение старой проблемы, найти положение мышки без сторонних утилит
Алгоритмы, Наработки и Способности
@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.5K
`
ОЖИДАНИЕ РЕКЛАМЫ...
Scroll Lock - быстрая модерация