15

» WarCraft 3 / [Lua] В таблицу не заносятся герои.

Спасибо, что без издевательских nil,nil,nil =)
Да, нужно учить Lua и прекращать пытаться его использовать как Jass...
15

» WarCraft 3 / math.ease

Странные претензии к автору наработки, который, хочу заметить так активно вкладывается в столь перспективное направление как Lua. Ведь это так же хороший учебный материал. Мне вот кажется, что человек способный оперировать логическими конструкциями на GUI, может (в теории), загуглить слово «нелинейный» и сделать небольшой вклад в саморазвитие. И кстати о саморазвитии, наверняка мало кто будет отрицать преимущество метода разработки программированием, над GUI. Вы можете сделать хорошую карту на GUI, ведь это всего лишь инструмент реализации хорошей идеи, однако на том же Jass вы сможете сделать это качественней, быстрее и с большими возможностями, без (массивных)утечек в ОЗУ. Не говоря уже о преимуществе Lua... По этому, ориентированность на людей пишущих код - это стимул развивать сообщество, а значит и повышать качество проектов. Следовательно ГУИшники так же часть сообщества, однако преимущество за кодерами. Что-то вроде Junior Jass кодеров) ИМХО
15

» WarCraft 3 / Хэш на Lua ?

Матрица в которой можно даже функции хранить. Да это ж охринительно, спасибо! )
15

» WarCraft 3 / Векс не видит war3map.j

Создай любую карту, сохрани, очисти содержимое и добавь все нужные файлы в эту карту. Обычным MPQ.
15

» WarCraft 3 / Официально стал доступен PTR 1.31

Тоже реализовал WASD управление, сейчас пытаюсь сделать корректную стрельбу на кнопку мыши... )
Загруженные файлы
15

» WarCraft 3 / Официально стал доступен PTR 1.31

NazarPunk, Скорее всего поддерживатюся, а вот Ultrawide зашили, так как это даёт преимущество в виде расширенной игровой камеры видимо. (как в SC2)
Тем не менее, я нашел решение. Для тех кто обладает Ultrawide монитором и хочет избавиться от чёрных полос понадобится выставить в Wc3 оконный режим и расширить окно с помощью проги 'Fullscreenizer'.
15

» WarCraft 3 / Официально стал доступен PTR 1.31

Теперь жесткая привязка к соотношению сторон 16:9, попытка заHEXить экзешник под 2560x1080 приводит к сбою. : (
15

» WarCraft 3 / Подскажите функцию

Да я понял... Ну ладно, вот функция которая тебе скорее всего нужна.
call SetPlayerAlliance(sourcePlayer, otherPlayer, ALLIANCE_SHARED_ADVANCED_CONTROL, flag)
15

» WarCraft 3 / Отлов строящего юнита

orc01:
Легко, считаем по формуле расстояние от строителя до точки назначения строительства.;
function GetDistanceBetween takes real x1, real y1, real x2, real y2 returns real
return SquareRoot((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
endfunction
После чего делим путь на скорость движения работника, получаем время. Вот это время мы устонавливаем на таймер+1 секунду чтобы успел построить. По истечению таймера - удаляем работника.
Да, но у нас ведь могут быть модификаторы скорости бега. Впрочем, сейчас попробую
Так отлавливай текущую скорость, а не дефолтную.
Так же таймер не обязателен, можно дать работнику время жизни как у призывных юнитов. Если это в рамках твоего проекта эстетический приемлемо.
15

» WarCraft 3 / Отлов строящего юнита

Юнит получил приказ "цель-точка"
Отданный приказ равно "строить ферму"
Дальше уже можем делать с ordered unit что захотим. Беда в том, что юнит должен исчезать конкретно после начала постройки (Здание строится само, как у нежити). И вот тут мы опять возвращаемся к изначальному вопросу - как отловить что вот этот вот гадский юнит начал стройку?

Легко, считаем по формуле расстояние от строителя до точки назначения строительства.;
function GetDistanceBetween takes real x1, real y1, real x2, real y2 returns real
return SquareRoot((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
endfunction
После чего делим путь на скорость движения работника, получаем время. Вот это время мы устонавливаем на таймер+1 секунду чтобы успел построить. По истечению таймера - удаляем работника.
15

» Блог им. DarkLigthing / Математический троллинг

Raised:
Алсо при чем тут троллинг? Ты алгоритм левый закинул и решил посмотреть что напишут или троллинг в том что троллинга нет или это ответочка на последние записи в блогах. В код не вникал. Не понравились названия функций и работа с триггерами. В общем интересно почему такой заголовок у записи.
Троллинг в том, что чёткое понимание того как работает алгоритм не объясняет того, как образуется эта фигура (фрактал). Это не объяснит даже математик с научной степенью. Всё что можно сказать - это то, что такова природа фракталов. Ставка была на то, что не найдётся того кто бы знал о рекреационной математике. Ну или не так быстро... =)
15

» Блог им. DarkLigthing / Математический троллинг

ScopteRectuS:
DarkLigthing, всё верно, но только построение фракталов методом хаоса warcraft не в силах воспроизводить.
Тут да, это самое слабое место в такой системе. Неоправданно много лишних объектов, + не ясно чему равно Х времени на заполнение Х фигуры, потому что не дорисуешь - контуры будут кривые, переполнишь - рискуешь сильной посадкой производительности. Разве что реализовать сетку для точек, таким образом чтобы расстояние новоизбранной точки не могло быть ближе к существующей на некое значение.
15

» Блог им. DarkLigthing / Математический троллинг

Raised:
Куда интересней было бы услышать твои соображения о том где это можно применить в игре.
Можно сделать наработку для спец. эффектов заклинаний, т.к фракталы могут быть очень разными с чёткими и красивыми узорами. К примеру, во время каста заклинания во круг кастера или другой цели взаимодействия спелла создаётся фрактал из думми-обьектов, не имеющих модельки. Это шаблон узора, но нам нужно к примеру выбрать только контуры фигуры, как внешние, так и внутренние. Т.е обрисовать фрактал либо эффектом молний, либо каким-либо спец. эффектом. Для этого можно помещать в группу точки фрактала которые соответствуют условию - рядом с ними есть хотябы одна сторона, где нет точек фрактала. Так можно поместить все контурные точки в группу и на их месте создать спец. эффект, либо последовательно соединить все точки в группе эффектом молний. И удалить думми фрактал.
15

» Блог им. DarkLigthing / Математический троллинг

Maniac_91:
ScopteRectuS, а если вместо юнитов использовать декорации, а вместо точек - координаты?
Координаты использовать лучше конечно, т.к объекты типа real гораздо менее объемные. Но в моем примере используется только одна глобальная точка которая двигается через MoveLocation(), что по сути тоже самое т.к в каждой итерации утекают только real во время присвоения точке новой координаты. Так что это не имеет особого значения. В остальном это вопрос детализации фигуры, больше точек - выше детализация, декорации тоже подходят лучше, чем юниты, но это все равно высокая нагрузка. хотя и нужно исходить из области применения фрактала, что в принципе придумать не просто в рамках wc3. Если это просто вариант побаловаться с фракталами то оптимизация сильно значения не имеет, если не делать совсем уж грубых ошибок в коде, а вот использование в реальной игровой карте уже другой вопрос. А так можно попробовать связывать точки эффектом молний удаляя сами точки-обьекты, но это только задумка)
15

» Блог им. DarkLigthing / Математический троллинг

Да, похоже что моя идея не нова, в реализации фракталов на Wc3. Хотя и не обязательно останавливаться на треугольниках, можно получать более сложные узоры используя несколько геом. фигур, но с разным шансом движения к точкам этих фигур)
15

» Блог им. DarkLigthing / Математический троллинг

Diaboliko:
Не вижу смысла даже вникать, поскольку отсутствие оптимизации кода отбивает настроение, однако, хочу заметить, что скриншот Ваш даже не отображается (хотя, почему-то, я успел увидеть его часть пока прогружалась страница, фронтенд скрипт показывает что он действительно есть). Причиной тому - правила размещения изображений.
Исправленно)
15

» WarCraft 3 / Extreme Candy War AI

uranus:
А почему бы не сделать своего рода спин-офф и добавить в карту нового контента?
Если уже и делать такой проект - то качественно.
Я бы занялся таким проектом, но не один. На пару с опытным Jass-коддером. Потому что если переделывать героев и все заклинания, на триггерные это достаточно трудоёмкий процесс, в ходе которого можно и потерять интерес к проекту. (: Потом ещё выверять баланс... И герои должны быть изначально продуманы, таким образом чтобы бы игра правильным билдом героев была преимуществом. А в идеале ещё бы понадобился лвл-дизайнер, который внесёт что-то новое в уже заезженный дизайн всем хорошо известной карты. И сама идея нужна, которая бы развивала идеи оригинальной карты и не шла в разрез с идеями остальных участников проекта.
15

» WarCraft 3 / Extreme Candy War AI

biridius:
Здорово. Давно хотел поиграть в эту карту, а самому ИИ писать лень.
Только боты юзают абилки когда не надо, например маг юзает кольцо холода хотя в радиусе действия только башня. При этом моего героя боты не бьют. Играл 3на3 орком рогой. Напротив маг, жрец и друид, только пару раз гнев деревьев в меня кинули.
Да, у них действительно пока что нету приоритета на героя, но я реализую это в следующей версии. Так же как и с паттерном использования абилок, по сути он стандартный, просто ему дали изученные заклинания героя.
uranus:
Это модификация стандартной карты, правильно понимаю?
Так и есть, это версия от 2005г.
quq_CCCP:
Хотелось бы посмотреть на сам AI
Открытая версия. Сам AI работает по принципу того, что в такт времени он проверяет If'ы и манипулирует хэш-таблицей.
Diaboliko:
Судя по описанию ИИ базовый. Есть бонусные опыт/голд для врага?
ИИ в карте играет по тем же законам карты, что и обычный игрок. Функционал AI будет расширен.
15

» WarCraft 3 / Brave Souls

pro100master:
И каким боком оно ваша если оно входит стандартная карта близарда
В чём суть вопроса? Слово ремейк, как бы изначально подразумевает что авторство оригинальной карты не может быть моим. Более того, даже люди, которые всё ещё не удосужились обучиться знакам припинания и русскому языку в целом, способны понять на основе какой карты создавался ремейк)
Бордер, Бордер:
Очень любил играть в эту карту в 2004 году. Поэтому поставил минус за то что называешьс ебя её автором.
А, так ты просто чужую карту переделал и переименовал, добавив в неё какого то говна.
По крайней мере это "говно" имеет под собой часы, потраченные на качественный Jass-код и MH функции. А не помёт очередного петуха, в комментариях, сформированный за пару секунд в куриной голове. Проект не завершён, я отдал его людям для обучения, а не для того что бы причислить себя к разработчикам Blizzard)
15

» WarCraft 3 / Как сделать чтобы у способности без снаряда летел снаряд?

В РО, такое невозможно сделать. Подробно на триггерах? Ну вот пример, а если нужно ещё подробнее, то учебник по Jass в руки.
На проклятие в РО,или любой другой спелл,ставится минимальная дистанция
function Trig_Spell_Actions takes nothing returns nothing
local location loc = Location(GetWidgetX(GetSpellAbilityUnit()),GetWidgetY(GetSpellAbilityUnit()))
local unit u = null
if GetSpellAbilityId() == 'АЙ ДИ СКИЛЛА' then
set u = CreateUnitAtLoc(GetOwningPlayer(GetSpellAbilityUnit()),'АЙ ДИ ДАММИ ЮНИТА-ЭФФЕКТА',loc,0.00)
call IssueTargetOrder(u,"curse",GetSpellTargetUnit())
endif
call RemoveLocation(loc)
set loc = null
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
    local integer i = 0
    set gg_trg_Spell = CreateTrigger()
    loop 
    exitwhen i > 12
        call TriggerRegisterPlayerUnitEvent(gg_trg_Spell, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
    set i = i + 1
    endloop
    call TriggerAddAction( gg_trg_Spell , function Trig_Spell_Actions )
endfunction
Потом тоже самое, только отследить каст проклятия, проверить тип юнита и удалить его из игры.