26

» WarCraft 3 / Проверка победил ли кто-нибудь из игроков

WilliamBz, странные формулы у тебя.
А что если остались игрок 1 2 3 в командах 1 2 3 и ты случайно выбрал игрока 2, тогда ты проверяешь, что 2 тима == (1 + 2 + 3) / 3 = 2 что подходит под условие победы, но никак не определяет реального победителя, ибо победителя еще нет. А по твоей формуле есть.
26

» WarCraft 3 / Проверка победил ли кто-нибудь из игроков

Делал недавно наработку на победившего и проигравших, можешь глянуть ту систему (да и триггеров там будет меньше). Я же правильно понял, что у тебя тоже каждый сам за себя без союзов?
26

» Styria / Артотека Styria. Что стало с проектом спустя год тишины

Норм заглушка в виде Геральта XD

Так-то рад увидеть, что работа идет, хоть и хотелось бы новостей почаще)

Я тут подумал, что игра напоминает такие игры как:
  • The Incredible Adventures of Van Helsing (1-3 части)
  • V Rising
  • Diablo 2 или 4?
  • Ну и стилистически есть что-то от варика.
На какие еще игры ориентируетесь по референсам?)
26

» WarCraft 3 / Юниты стакаются

Yurcoolaserus, чтобы не поворачивали назад - убрать стража через действие у юнита:
Или у всех юнитов игрока:
А если надо распределять игроков - то тут да... лучше приказами.
Загруженные файлы
26

» WarCraft 3 / Юниты стакаются

Если ты создаешь очень много юнитов под контролем одного игрока - варик просто не справляется перерассчитывать им всем пути, пока движется твой герой.
Как вариант распределить этих крипов между несколькими игроками, типа 9-12 игроки будут чисто крипами, уже распределит нагрузку.

Если карта небольшая и тебе все равно, на кого будут нападать крипы - можно показать крипам всю карту триггерно и дать в редакторе объектов радиус агра 10000, тогда они сами будут нападать без триггеров.
26

» WarCraft 3 / Помогите доделать триггер

Есть действие на показать текст всем игрокам:
Если хочешь, чтобы в нем был указан персонаж с золотым перекрасом, попробуй написать текст вот так:
|cFFFFD700Майор Наливайко:|r Солдаты! Наших товарищей на блокпосту атакуют неизвестные! Вперед, уничтожим их!
Загруженные файлы
26

» WarCraft 3 / помощь с англ триггерами

Вот пример такой системы.
Сначала выбираешь всех играющих игроков в группу Players.
Потом после смерти юнита проверяешь, если находится в группе игроков Players (то есть не является нейтралом), и если у игрока не осталось юнитов - выдаем ему поражение и выкидываем из группы Players. Потом проверяем, если в группе Players остался 1 игрок - выдаем ему победу. Все.
Загруженные файлы
26

» WarCraft 3 / Как сделать FFA карту?

Я исправил смену цвета в твоей системе, а то ты оперировал не цветом там а числом...
Сделал как было у меня в моей системе, что уже скидывал тебе.
По поводу героев - еще раз подробнее, что ты хочешь? Чтобы оно как выглядело? По шагам опиши, как игрок должен увидеть рандом?
К примеру:
  1. В алтаре игрок может нанять героя который подписан как "Рандомный герой".
  2. После найма "рандомного героя" на его месте спавнится случайный герой из списка всех стандартных рас + таверны.
Так? Правильно я понял?
Загруженные файлы
26

» WarCraft 3 / как заставить юнит(танк) вращать свою башню при атаке через триггеры?

EugeAl, не знаю, не копал эту тему для движущихся объектов. Тип те-же орудийные башни или сторожевые древа стоят на месте а тут движущийся объект, надо тестить и разбираться.
26

» WarCraft 3 / как заставить юнит(танк) вращать свою башню при атаке через триггеры?

Есть триггер на поворот "головы". Вращай через это действие.
Но думаю, у тебя все сложнее и ты хочешь, чтобы юнит катался и прежде чем атаковать - он должен повернуться именно башней а не телом в нужную сторону и стрелять, да?)
26

» WarCraft 3 / Reforgerator 1.1.5 - Создание иконок Classic и Reforged

makkad, так посмотришь со стороны - и разницы нету)
Но кому что надо под свою версию, огонь, лаек!
26

» WarCraft 3 / Порченый/обычный рудник, как это работает?

Эта система рассчитана на то, что у тебя на карте не существует и не будет существовать 2 рудника в одной точке. Если как-то триггерно создаешь новые рудники - просто добавляй их в группу.
Так-же при постройке проклятого рудника рабочим альянса почему-то золото не передается с оригинального рудника, там просто 0 золота. Я не стал заморачиваться и искать в чем проблема, просто взял золото оригинального рудника и его ставил новому руднику.
26

» WarCraft 3 / Порченый/обычный рудник, как это работает?

Вот тебе полностью рабочая наработка такой системы.
Идея в том, что сначала записываем в группу все рудники при инициализации карты.
Далее рабочий может строить "улучшенный рудник" на руднике, который сам по себе работает как рудник нежити. Но, после постройки, заменяется на новый рудник, который уже добывается обычным способом. При этом оригинальный рудник прячется (ищем его в группе, что заранее создали, по равенству местоположения).
После уничтожения рудника, в зависимости от того, сломали его или добыли все золото - показываем оригинальный рудник или удаляем оригинальный рудник.
Вопрос остается лишь в другом - рудник со стрельбой коряво отображает урон и кол-во золота, они накладываются друг на друга. Но это уже другая проблема, которую мне сейчас лень решать. Механически все работает, как ты описал.
Загруженные файлы
26

» WarCraft 3 / Возможно ли отследить возврат древесины работником?

Вроде нет возможности напрямую отследить доставку древесины в тот миг получения ресурса рабочим.
у тебя есть возможность отследить приказы на доставку ресурсов на базу и приказ идти добывать:
За счет этого можно сделать костыль. А именно, когда рабочий приносит древесину на базу - ему сразу же выдается приказ harvest на добычу - а значит в этот момент можно и добавить +5 древесины. Однако такой-же приказ отдается и при сдаче золота - а значит надо будет еще проверить, а кто цель приказа? Если рудник - то рабочий принес золото, иначе дерево и можно дать +5 древесины.
Вот тебе наработка такой системы.

Но в системе выше есть еще одна проблема - а сколько рабочий принес дерева? Можно же заставлять рабочего таскать по 1 древесину и получать халявный кэш +5 дерева :D
Если надо убрать эту абузку- надо тотально отслеживать ресурс дерева игрока и проверять, если рабочий принес ровно 10 дерева - то тогда добавлять +5, иначе не давать. Это еще при условии, что у тебя нет прокачки по увеличению кол-ва дерева, иначе надо добавить еще проверки на исследования.

Вот люди со схожей проблемой решали через группы в этом вопросе.
Загруженные файлы
26

» WarCraft 3 / Отследить исследование у убийцы

mistwood, вот тебе пример для "выбранного юнита". Можешь тоже самое сделать над убийцей.
Вот эта карта для другой наработки когда-то делал. Можешь в ней посмотреть этот триггер.
Загруженные файлы
26

» WarCraft 3 / Я не смог.

human1, вот часть твоего кода, который слегка переработал и не выдает ошибок
trigger gg_trg_Ab_Mimicr = null

function Trig_Ab_Mimicr_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function Trig_Ab_Mimicr_Actions takes nothing returns nothing
    local unit mim = GetSpellAbilityUnit()
    local unit copy
    local location p = GetUnitLoc( mim )
    local player vlad = GetOwningPlayer( mim )
    call ShowUnitHide( mim )
    call CreateNUnitsAtLoc( 1, GetUnitTypeId(GetSpellTargetUnit()), vlad, p, 1.35 )
    call SetUnitOwner( mim, Player(12), true )
    set copy = GetLastCreatedUnit()
endfunction

//===========================================================================
function InitTrig_Ab_Mimicr takes nothing returns nothing
    set gg_trg_Ab_Mimicr = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Ab_Mimicr, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Ab_Mimicr, Condition( function Trig_Ab_Mimicr_Conditions ) )
    call TriggerAddAction( gg_trg_Ab_Mimicr, function Trig_Ab_Mimicr_Actions )
endfunction
Но я не вдумывался, что он делает, я лишь сделал так, чтобы он компилировался и немного оптимизировал.
26

» WarCraft 3 / Я не смог.

human1, либо ты не скинул функцию на подобии InitTrig_Ab_MimicrDie
Как я понял такая должна быть, ибо есть условия и действия, но нету триггера
26

» WarCraft 3 / Я не смог.

human1, да и вообще, кто вызывает функцию Trig_MimicrDie_Actions? Она существует но никто ее не вызывает по твоему коду)