26

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

SNART, тебе надо добавить описанную мной функцию в так называемую "шапку карты". Это в редакторе триггеров, самый верхний (корневой) раздел, он имеет иконку карты. В него можно записывать скрипт напрямую. Туда вносишь всё от "function..." до "...endfunction". Дальше в своём триггере тебе надо вызвать эту функцию... сейчас дальше надо будет написать очень много текста...
...но я так понимаю ты не справишься сам
26

» WarCraft 3 / Помогите с Jass (novic)

wetalq:
можно локалки объявить где угодно
Это только если компилятор будет перераспределять расположения строк с объявлением локалок.
26

» WarCraft 3 / Помогите с Jass (novic)

Принятый ответ
1
А это никого не смущает? то что локалки поставлены не первыми
function Trig_treeegs_Actions takes nothing returns nothing
	set udg_Unitper = GetSpellAbilityUnit()
	local unit Usp = udg_Unitper
	local unit orud1
	local unit orud2
	local unit orud3
	. . .
2
Утекают точки...
PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(Usp), 200., 300.)), 256, 100.)
// GetUnitLoc(Usp)
3
Обращения как в функциям
orud1()
Usp()
В общем - рано тебе ещё прям так полностью переходить на Jass.
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
26

» WarCraft 3 / вопросы Jass

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

» WarCraft 3 / Ульт тайдхантера из доты

quq_CCCP:
смотрел реализацию в дотке фрога? Там и 1 в 1 анимация подобрана
Да, об этом и речь.
26

» WarCraft 3 / Ульт тайдхантера из доты

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

» WarCraft 3 / Таверна и Герои в ней

  1. После покупки героя можно заблокировать его найм для всех остальных игроков (т.е. поставить его в лимит на 0). При этом иконка героя из таверны пропадёт (не будет такого что он есть, но его там 0 штук). Или надо что бы не пропадал? но купить нельзя было (ну тогда только очень большой откат, но это не 100% гарантия того что героя не купят 2й раз, хотя если игрокам блокируется найм ВСЕХ героев после выбора хотя бы ОДНОГО - тогда да).
  1. Ставишь в одном месте НЕСКОЛЬКО таверн, условно "Таверна А", "Таверна Б", Таверна В". В каждой из них делаешь абилки-кнопки для переключения (можно обойтись юнитом-пустышкой). В момент активации абилок (продажи юнитов) - переключаешь выбор с одного здания на другое. Визуально всё будет выглядеть так как будто просто сменился список (если сами здания будут одинаковыми).
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 / Чужой вопрос с неработающей возможностью выбора ответа

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