26

» WarCraft 3 / Цветовой фильтр союзников

Ну тут 2 варианта:
Либо ты обрамляешь всё через CS.
Либо пишешь свою функцию и юзаешь её (через CS, разумеется).
function SetAllyColorFilterState_EX takes player p, integer i returns boolean
    if p == GetLocalPlayer() then // можно добавить i >= 0 и i < 3
        call SetAllyColorFilterState(i)
    endif
endfunction
Custom Script: call SetAllyColorFilterState_EX( GetTriggerPlayer(), 2 )
26

» WarCraft 3 / Создание юнитов

Yury13:
мне кажется такой способ с массивом (второй) не сработает.
Два массива. Один для пула областей. Второй для пула юнитов.
26

» WarCraft 3 / Юнит умирает при срабатывании триггера

Возможно что в следствие действий твоего триггера обрывается поток (или происходит похожая ситуация) и действие на лечение здания попросту не отрабатывает. Для проверки поставь "до" и "после" отхила вывод текстового сообщения (имя юнита + текущее хп юнита).
26

» WarCraft 3 / Запрет на использование способности при условии

А что б работало у НЕ-героев, и с сохранением КД - можно свапать абилку через хайд галки на саблевле
26

» WarCraft 3 / Останови пандемию!

Hush:
Сразу появилась ассоциация с режимом "выживание" в Alien Shooter...
Так это он и есть - ты с пушкой в одной локацаии, и на тебя валят враги, а вокруг падают всякие плюшки... всё...
26

» WarCraft 3 / команда на входящий урон

Принятый ответ
Событие юнит получает урон регистрируется на конкретного юнита.
Для того что бы отлавливать урон по цели твоего "щита", нужно создать для цели (т.е. для того юнита, на которого накладывают щит) отдельное событие на получением им урона. И делать это надо именно в тот момент, когда ты накладываешь щит.
Для этого есть функция добавить событие в триггер, в ней можно указать конкретного юнита и само событие получения урона. Дальше тебе придётся только лишь определить был ли юнит в момент получения урона под действием "щита" и дальше блокировать урона (восстанавливать хп юнита).
Так же надо отметить момент, что если ты для юнита создаёшь больше ОДНОГО события на получение урона - они будут работать каждый сам по себе (т.е. при получении урона 1 раз, будут срабатывать 2 события, и триггер будет срабатывать ДВА раза = больше события и больше срабатываний в один момент времени).
Для этого надо маркеровать юнитов, для которых создаётся событие на получение урона (например заносить их в группу юнитов, а перед этим проверять есть ли юнит в этой группе).
26

» WarCraft 3 / Сортировка значений переменной

easypeasy, тебе выпадает например число 7 в Random от 1 до 10 (т.е. до Max).
Ты берёшь Value[7], оно равно числу 7.
После использования ты пишешь set Value[Random] = Value[Max]
т.е. Value[7] = Value[10] ... т.е. ты даёшь Value[7] значение 10
Теперь у тебя записаны числа 1 2 3 4 5 6 10 8 9 10
Дальше ты делаешь Max = Max - 1 и оно становится равно 9
т.е. в следующий раз рандомить будет от 1 до 9
10й номер со значением 10 участвовать не будет
но само число 10 будет использоваться в 7м номере
Остаётся 1 2 3 4 5 6 10 8 9 - т.е. все 9 цифр, кроме цифры 7
В следующий раз ты получаешь Random и тебе выпадает число 3
Ты используешь значение Value[3] (там число 3)
После этого ты заменяешь значение в слоте 3 на то что у тебя в последнем (в 9)
set Value[Random] = Value[Max]
т.е. Value[3] = Value[9]
Тут ты уже имеешь слоты с числами 1 2 9 4 5 6 10 8 9
Дальше опять делаешь ( Max - 1 ) и устраняешь крайнюю девятку
Остаётся 1 2 9 4 5 6 10 8 - т.е. уже 8 чисел
при этом среди низ нет 3 и нет 7
и так далее... в итоге ты дойдёшь до рандома между 1 и 1 ... и получишь 1, тогда твой Value[1] будет иметь значение последнего числа, которое до сих пор не выпало и/или перезаписывалось.
Дальше ты можешь опять вызвать первый триггер, для того что бы он записал тебе Max=10 и все остальные варианты переменных (Value[x]=x).
26

» WarCraft 3 / Определение расы

Принятый ответ
новое условие - сравнение рас - раса игрока == орда
Как-то так, не? Или в чём конкретно проблема?
26

» WarCraft 3 / Я хочу чтоб при использовании способности на него вешался дебаф

Принятый ответ
Qulore:
А как вообщем-то как создать способность -60% защиты от магии, мой вариант был такой - если приминяют способность "Астрал", приминяющий юнит равен - маг, то добавить способность -60% защиты от магии на того кого использовали Астрал.
Самое просто что можешь сделать - занулись повышение маг.урона по конкретному юниту (т.е. переменожить его на столько, что бы в итоге получилось x1 от нормы).
Для этого можешь взять Благо.Элуны
Если у тебя Астрал по стандарту даёт -60% маг.зашиты (т.е. это 1.6х маг.урона), то ты можешь выдавать своему герою на время действия эффекта абилку на +60% маг.защиты (т.е. это 0.62-.63х маг.урона).
100 * 1.6 = 160
160 * 0.625 = 100
Если ты хочешь сделать разный % усиления маг.урона на разных уровнях абилки - тогда убираешь полностью бонус маг.урона в астрале (из констант) и выдаёшь его за счёт абилки описанной выше (+ или - к множителю маг.урона на юните).
26

» WarCraft 3 / Как изменить уровень способности в предмете

Принятый ответ
Что мешает просто взять и изменить уровень этой абилки у юнита? Это всегда работало.
26

» WarCraft 3 / Почему земля "проклинается" в игре, когда в редакторе не так?

Принятый ответ
Порча это особый тип земли, который распространяется поверх обычной (заменяя её).
И поэтому в игре тайлы порчи часто могут занимать ещё и соседние участки.
Оптимальный вариант уйти от этой механики - заменить стандартный тайл порчей (текстуру подменить)... т.е. вместо "травы" будет текстура "порчи" (так можно сразу 2-3 порчи в одну карту добавить).
26

» WarCraft 3 / Удаление эффекта

Принятый ответ
easypeasy, ну как вариант - можешь заменить спецэффект на юнита, а его уже удалять без проигрывания анимации смерти.
26

» WarCraft 3 / Отображение дальности

Evon, ну вообще должно быть в сравнении игроков, но это если у тебя JNGP.
Если нет - можешь CS вставку сделать, в скрипте это всё потом одним куском всё равно будет.
Custom Script: if GetLocalPlayer() == PLAYER then
тут все необходимые действия
Custom Script: endif
А "PLAYER" - это тот игрок которого ты сравниваешь (игрок-инициатор триггера, или переменная которая у тебя его будет возвращать в этом месте).
26

» WarCraft 3 / Как сделать так, чтоб когда герой умерал он взрывался

А ещё проще сделать тоже самое, что написано во 2м комменте, но при этом скрыть абилку БЕЗ использования спеллбука...
Хотя я однозначно не считаю что это лучше, но всё же - имеет место быть.
26

» Администрация XGM / Чужой вопрос с неработающей возможностью выбора ответа

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

» WarCraft 3 / Триггерный Спелл

quq_CCCP:
Тут стоит отметить важное НО, статы нужно отнимает если герой не помер, либо после возрождения, иначе будут баги с регеном, сила влияет на регенерацию здоровья, но ели в момент смерти у героя изменить кол-во силы, регенерация не изменится, в итоге будет герой с 100500 регеном. Так что нужен триггер отлавливающий смерть, время, и начало касте, чтобы вручить силу и забрать её в нужное время.
А с чего сделан такой вывод?
Мне показалось это логичным и я решил сделать проверку...
В итоге, оказалось что реген работает ровно в том числе, в котором должен (от количества Силы), если вызвать у героя работу регенерации (изменение текущего хп, в том числе его изменение за счёт изменения Силы). Т.е. да, на мёртвом героем иногда отображается не верное количество регена (ибо юнита можно заставить регенерироваться будучи мёртвым), но как только он становится снова живым - реген исправляется на правильный (в том числе и реген от предмета, который на мёртвом юните не работает совсем).
Отсюда и вопрос - как именно должен происходить этот баг?
Такой вариант "просто изменить мёртвому юнита силу" ничего в итоге не меняет, когда он снова вступит в игру его реген будет нормальным. Вариант "убить + дать силы" тоже не приводит в появлению лишнего регена. Вариант "отловить смерть + дать силы" так же ничего не даёт. В итоге что ни делай - реген всегда стабильный (от 22 Силы и 0.25 баз.регена это всегда 1.35 хп/сек).
26

» WarCraft 3 / Как сделать инком на основе пассивной способности?

Эксгумация, которая не будет иметь задержки каста и будет иметь перезарядку.
При этом юнит должен иметь абилку "пассажир"
Триггерно отлавливается каст этой абилки и делаешь всё что надо.
26

» WarCraft 3 / не стартует таймер

Ельнур:
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
А причём тут тот таймер?
Ты его создаёшь и удаляешь своевременно.
26

» WarCraft 3 / Увеличение карты

Принятый ответ
Ну обычно протекторы и оптимизаторы вырезают из карт всё лишнее из карты, что нужно лишь на этапе её создания в редакторе (файл-ординатор для РТ и подобные инструменты). Плюс к этому сам редактор не самым оптимальным образом записывает нестандартные данные (свою роль играют *.slk). Вот и получается что сразу после сохранения в редакторе карта весит обычно больше, чем после обработки спец.утилитами.
26

» WarCraft 3 / не стартует таймер

Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
26

» WarCraft 3 / Проблемы с переменной force 2

Размерность массива это инструкция для проставки базовыхтзнаяений для переменных. Если чисел это роли не играет, т.к. ты всегда задаёшь им новые значения. А вот для таких объектов как отряд, таймер, группа игроков - при старте создаются отдельные объекты и записываются в переменные. Надо просто знать этот момент, вот и всё.
Получается так что ты пытаешься ссылаться на объект записанный в переменную, при этом сам объект ты не создаёшь, но думаешь что он там есть по-умолчанию. А реальность такова, что в переменной нет значения, и ты тыкаешь в пустую позицию и ничего не получаешь оттуда.
26

» WarCraft 3 / Центрирование текста

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

» WarCraft 3 / Изменить путь модели юнита напрямую через MPQ

Думаю ДА, но что конкретно ты хочешь сделать?
Поменя модель футмана в игре? Или поменять модель конкретному юниту? (в РО)