он плох в случае GetRandomIntTable(-100500, 100500, 10)
Хм, верно. Тут уж нужно замерять производительность, и смотреть, какой способ лучше.
алло
-- while true do
-- if #out >= count then return out end
while #out < count do -- вот так лучше
local i = math.random(min, max)
if keys[i] == nil then
keys[i] = true
table.insert(out, i)
end
end
return out
Тут есть избыточность, конечно, потому что оно может, теоретически, 5 раз в ряд генерить одно и тоже значение, но не думаю, что это очень критично.
Вообще-то, критично для производительности, могут выпадать повторения ключей, что замедлит генерацию, и чем больше ключей уже сделано, чем выше шанс их повторения.
Алгоритм, что зависит только от числа элементов и производительности функции рандома.
Генерируем массив Vals от min до max, включая концы промежутка.
top = #Vals
Если #Vals < length, то lenght = #Vals.
Для а = 1 по length делаем.
а. i = rand(1, top)
b. result[a] = Vals[i]
c. Vals[i] = Vals[top]
d. top = top - 1
Добавить возможность менять героя в обычную боевую единицу (в параметрах редактора объектов)
Достаточно добавить в равкод юнита прописную букву.
Добавить редактор математического просчёта траекторий с мини-обучением и подсказками (синусы, косинусы, как сделать так, чтобы снаряд следил за целью)
Это не нужно в редакторе, для этого есть статьи.
Добавить возможность изменять интерфейс игры по своему усмотрению, возможность изменять управление героем. События: "Нажато сочетание клавиш" (напр. a+s).
Есть с 1.31 с некоторыми ограничениями, нет в GUI.
Добавить событие для всех юнитов ("получает урон") а только для одного.
Есть с 1.31.
Чтобы юнит не просто стоял и ждал применения, а производил анимацию "Stand Channel" и рядом с ним появлялось время до применения заклинания.
Воспроизведение анимации настраивается в способности, время можно сделать через скрипты.
Усовершенствовать заклинания: возможность отменить или добавить те или иные характеристики. Например, чтобы "Целительная волна" не только исцеляла союзников, а также воскрешала одного из юнитов. Также, дать назначать каждому заклинанию назначит свой id, чтобы, например, было возможно создать два новых заклинания из целительной волны и назначить их одному юниту (с разной перезарядкой).
Данные поля не требуются, так каждому мапмейкеру нужно своё поле, такое нужно через триггер или скрипт. ID (равкод) у заклинаний и так разный, а вот ID приказа хотелось бы менять.
Добавить возможность работать с декорациями через GUI и jass. А не только с разрушаемыми объектами (анимация, удаление и т.д.)
Декорации прописываются в ландшафте карте и являются неизменными. Вряд ли это будут менять.
Добавить возможность задавать более одного custom value для каждого юнита (чтобы пользователь сам мог добавлять нужное количество значений), при этом, добавить возможность задавать типы custom value: integer, string, real.
Для этого существуют хеш-таблицы, в Lua есть собственные таблицы со схожим принципом работы.
В любой хеш-таблице будут коллизии, их можно решать по-разному, одним способом является chaining: в ячейке массива hash(key) хранится не (key, value), а ссылка на список, который хранит все элементы (key, value), у которых hash(key) одинаков.
Не теряла она вождя, военного вождя заменили советом.
И контрольный выстрел в голову близзам: Кто-нибудь погиб из важных персонажей Альянса за время действия аддона? Конечно же нет, пока всем заправляет Кристи Голден, Орда будет страдать.
Отбитые ордынцы ноют, что "вот у нас много важных героев умерло, фракцию разделили, фронты отдали, близы любять больше альянс", а отбитые алики ноют, что весь драйв у Орды. А во всём конечно же виновата Голден, больше же на не кого свалить, не призвать же свою отбитость.
Инкапсуляция (англ. encapsulation, от лат. in capsula) — в информатике размещение в одном компоненте данных и методов, которые с ними работают. Также может означать скрытие внутренней реализации от других компонентов. Например, доступ к скрытой переменной может предоставляться не напрямую, а с помощью методов для чтения (геттер) и изменения (сеттер) её значения.
Инкапсуляция зачастую рассматривается как понятие, присущее исключительно объектно-ориентированному программированию (ООП), но в действительности обширно встречается и в других. В ООП инкапсуляция тесно связана с принципом абстракции данных (не путать с абстрактными типами данных, реализации которых предоставляют возможность инкапсуляции, но имеют иную природу). Это, в частности, приводит к другому распространённому заблуждению — рассмотрению инкапсуляции неотрывно от сокрытия. В частности, в сообществе С++ или Java принято рассматривать инкапсуляцию без сокрытия как неполноценную. Однако, некоторые языки (например, Smalltalk, Python) реализуют инкапсуляцию в полной мере, но не предусматривают возможности скрытия в принципе. Другие (Standard ML, OCaml) жёстко разделяют эти понятия как ортогональные и предоставляют их в семантически различном виде.
» WarCraft 3 / Срабатывание способности только на поверхности воды
» WarCraft 3 / новый редактор и некоторые способности типо канал
» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)
» WarCraft 3 / Как потопить боевую единицу?
Отредактирован PT153
» WarCraft 3 / Таблица случайных чисел без повторений [LUA]
» WarCraft 3 / Срабатывание способности только на поверхности воды
Отредактирован PT153
» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)
» WarCraft 3 / Таблица случайных чисел без повторений [LUA]
а. i = rand(1, top)
b. result[a] = Vals[i]
c. Vals[i] = Vals[top]
d. top = top - 1
» WarCraft 3 / Таблица случайных чисел без повторений [LUA]
» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)
» WarCraft 3 / Таблица случайных чисел без повторений [LUA]
» WarCraft 3 / Бета версия Warcraft III Reforged 1.32
» Администрация XGM / Заклинания на заказ исчезли из ссылок на ресурсы
» WarCraft 3 / Проиграть анимацию наоборот
Отредактирован PT153
» WarCraft 3 / Работа "Помощи предков", класс "Минотавр", переименование класса
Отредактирован PT153
» IrInA Host Bot / Десинхронизация игры
Отредактирован PT153
» WarCraft 3 / Выделение памяти в хеш-таблице
» WarCraft 3 / Вселенная WarCraft
» WarCraft 3 / Переменная и целочисленная
Отредактирован PT153
» WarCraft 3 / ООП lua
» WarCraft 3 / ООП lua
» WarCraft 3 / Архимаг-некромант
» WarCraft 3 / Нашествие нежити(Недоделано)
Отредактирован PT153
» Администрация XGM / Отображение не опубликованных материалов в ленте
Неопубликованные не видны.
Отредактирован PT153
» WarCraft 3 / Переменная и целочисленная