Ну тогда это же будут координаты разрушаемого объекта или проекции на землю? Это с любым разрушаемым объектом работает? А что если смотреть по линии горизонта и упираться в стену? Там же координаты высоты нету у мышки. Чет много вопросов. Но тема меня заинтересовала 🤓
Блин сама идея крутая. Токо вот работать это будет только с видом сверху , от третьего лица или от первого так не реализуешь. Текущее решение 6-ти летней давности, Самореклама.
В варике кстати вероятности имеют биноминальное распределение видимо, а не нормальное насколько я понимаю, там кости и количество граней. Мы все знаем, конечно, центральую предельную теорему, но тем не менее немного духоты)))
Жаль что большинство этих типо крутых ландшафтов просто не играбельны, а сделанны просто для красивой картинки художниками расстановки дудадов. Советую искать не карту а пустой ландшафт без ничего другого в специальных разделах сайтов, тут или на хайве.
ScorpioT1000, насколько мне известно, ситуации, когда пишут слитно слова в нижнем регистре имеют место когда группа слов образуют единое понятие. Не знаю прописанно ли это в пепе, но сюда относятся слова такие как deepcopy, getattr, isininstance.
ScorpioT1000, я принципами pep8 просто стараюсь пользоваться в луа. Не знаю насколько он тут пригоден, но кажется что это лучше чем без какого-то единообразия своего кода.
Немного улучшил читаемость кода и привел имена переменных в snake_case. Может заинтересует.
do
---@class EventDispatcher
EventDispatcher = EventDispatcher or {}
EventDispatcher.__meta = {
__index = EventDispatcher
}
-- Конструктор класса
function EventDispatcher:create()
local obj = {
event_dict = {}
}
return setmetatable(obj, EventDispatcher.__meta)
end
-- Подписаться на событие
---@param eventName string
---@param callback function
function EventDispatcher:subscribe(event_name, callback)
if not self.event_dict[event_name] then
self.event_dict[event_name] = {}
end
table.insert(self.event_dict[event_name], callback)
end
table.find = table.find or function(tbl, item)
local idxs = {}
for i = 1, #tbl do
if tbl[i] == item then
table.insert(idxs, i)
end
end
return idxs
end
-- Отписаться от события
---@param eventName string
---@param specialCallback function (опционально)
function EventDispatcher:unsubscribe(event_name, subscriber)
if subscriber == nil then return nil end
local subscribers = self.event_dict[event_name]
if subscribers == nil then return end
if subscriber == nil then
self.subscribers[event_name] = nil
end
-- поиск подписчиков в массиве подписчиков события
idxs = table.find(subscribers, subscriber)
for _, idx in ipairs(idxs) do
table.remove(subscribers, i)
end
-- Если после удаления нет обработчиков, удаляем событие
if #callbacks == 0 then
self.handlers[event_name] = nil
end
end
-- Отправить событие
---@param eventName string
---@param data any (опционально)
function EventDispatcher:dispatch(event_name,...)
local subscribers = self.event_dict[event_name]
if callbacks == nil then return end
-- Создаём копию списка обработчиков, чтобы избежать возможных изменений во время итерации
local subscribers_copy = { table.unpack(callbacks) }
for _, subscribers in ipairs(subscribers) do
subscriber(...)
-- subscriber(table.unpack(table.deepcopy({...}))) -- другой вариант
end
end
-- Удалить все обработчики
function EventDispatcher:clear()
self.handlers = {}
end
setmetatable(EventDispatcher, {__call = EventDispatcher.create})
end
Добавлены новые юниты, улучшения, исследования, способности и погодные условия.
Добавлена система страниц дяди и быстрый доступ к главной лесопилке через иконки рамок героев. Теперь игроки могут получить доступ к страницам исследований и найма двумя разными способами: с помощью страниц или фреймов. Эти методы синхронизированы друг с другом. Даже если вы выберетесь со склада и вернетесь на главную лесопилку, система сохранит и восстановит последнюю страницу, на которой вы были.
Добавлены рамки для рынка и машин.
Большое количество обновлений графики, баланса, исправлений ошибок и оптимизаций.
Юниты
Наемник: Новый юнит для усовершенствованной лесопилки. Стоит только золото и имеет способность «Pillage».
Эльфийский механизм: Новый юнит для эльфийской трудовой гильдии. Сильный юнит, требующий отдельного исследования «Механизмы». Имеет способность «Механизм» - (Леший вместо превращения в дерево наносит случайный урон цели). Лесоруб и Шредер также получают способность «Механизм».
Исследования
Разлагающая вонь: Бродяги получают способность уменьшать броню ближайших вражеских юнитов на 2.
Разграбление: Дает способность мародерства Дровосекам, Наемникам и Лесорубам.
Мародерство: Дает способность к мародерству уркам, раскаленным уркам, бронированным уркам и бронированным краснолюдам.
Перегрузка: Дает способность Шредеру и Логгеру увеличивать урон на 40% от базовой атаки на 10 секунд. Можно переключить на автокаст.
Алхимия: Предметы, которые приносят владельцу золото, когда их подбирают, становятся эффективнее на 130/160/200%.
nazarpunk, точно, закинул в нейронку, попросил проанализировать. Правда в дешовую. Нейронка подороже мне ответила что:
GPT o1-Mini: Данный код реализует линейный конгруэнтный генератор (Linear Congruential Generator, LCG) с параметрами из ANSI C, а не алгоритм Mersenne Twister.
» Администрация XGM / Способность "Портал из прошлого" не отрабатывает
» WarCraft 3 / Руби лес!
Прокрутить к ресурсу
» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой
» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой
» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой
Ред. Koladik
» WarCraft 3 / [2.0.3 vJass] UI - Move Able Frame - Перетаскиваем фрейм мышкой
» Администрация XGM / Способность "Портал из прошлого" не отрабатывает
» Администрация XGM / Способность "Портал из прошлого" не отрабатывает
» WarCraft 3 / Gnome Tinker - Gunstrider (Hero + Unit + Ammo)
» Администрация XGM / Проекты и структура сайта
» WarCraft 3 / Баланс. Почему в Warcraft 3 рост брони НЕ идёт по убывающей полезности. Развенчиваем мифы.
Ред. Koladik
» WarCraft 3 / Баланс. Зачем в Warcraft 3 разброс урона и как этим пользоваться?
» WarCraft 3 / Ищу карту по Warcraft 3 "Рука Бога"
» WarCraft 3 / eventDispatcher - Диспетчер Событий
» WarCraft 3 / War3-lua-table
Прокрутить к ресурсу
» WarCraft 3 / eventDispatcher - Диспетчер Событий
Ред. Koladik
» WarCraft 3 / eventDispatcher - Диспетчер Событий
Ред. Koladik
» WarCraft 3 / Руби лес!
Прокрутить к ресурсу
Главное
Ред. Koladik
» WarCraft 3 / Bandit Wars
» WarCraft 3 / War3-lua-math
» WarCraft 3 / War3-lua-NDArray
Ред. Koladik
» WarCraft 3 / War3-lua-math
Ред. Koladik
» WarCraft 3 / War3-lua-math
» WarCraft 3 / War3-lua-math