SNART, тебе надо добавить описанную мной функцию в так называемую "шапку карты". Это в редакторе триггеров, самый верхний (корневой) раздел, он имеет иконку карты. В него можно записывать скрипт напрямую. Туда вносишь всё от "function..." до "...endfunction". Дальше в своём триггере тебе надо вызвать эту функцию... сейчас дальше надо будет написать очень много текста...
...но я так понимаю ты не справишься сам
А это никого не смущает? то что локалки поставлены не первыми
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
. . .
В общем - рано тебе ещё прям так полностью переходить на Jass. Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
Ну про локалки - хз, может ты не в том месте их объявляешь или не в том месте пытаешься на них ссылаться, т.е. для этого момента они не считаются объявленными.
Параметры для функции - тут имеется ввиду число аргументов для функции, т.е. те параметры которые она принимает, если такие вообще для неё имеются. Возможно ты просто где-то ставишь лишнюю запятую, тем самым разграничивая аргументы... такое бывает когда ставишь много скобок и сам в них путаешься.
Просто перепроверяй то что пишешь, и внимательно всматривайся в те моменты, на которые указывает компилятор ссылаясь на ошибку.
Сделан отдельный триг на подброс юнита и создание под ним эффекта шипа. Каждый продамаженный юнит посылается в этот триг (как аргумент в функцию), что и заставляет его подпрыгнуть.
После покупки героя можно заблокировать его найм для всех остальных игроков (т.е. поставить его в лимит на 0). При этом иконка героя из таверны пропадёт (не будет такого что он есть, но его там 0 штук). Или надо что бы не пропадал? но купить нельзя было (ну тогда только очень большой откат, но это не 100% гарантия того что героя не купят 2й раз, хотя если игрокам блокируется найм ВСЕХ героев после выбора хотя бы ОДНОГО - тогда да).
Ставишь в одном месте НЕСКОЛЬКО таверн, условно "Таверна А", "Таверна Б", Таверна В". В каждой из них делаешь абилки-кнопки для переключения (можно обойтись юнитом-пустышкой). В момент активации абилок (продажи юнитов) - переключаешь выбор с одного здания на другое. Визуально всё будет выглядеть так как будто просто сменился список (если сами здания будут одинаковыми).
Ну тут 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
Возможно что в следствие действий твоего триггера обрывается поток (или происходит похожая ситуация) и действие на лечение здания попросту не отрабатывает. Для проверки поставь "до" и "после" отхила вывод текстового сообщения (имя юнита + текущее хп юнита).
Событие юнит получает урон регистрируется на конкретного юнита.
Для того что бы отлавливать урон по цели твоего "щита", нужно создать для цели (т.е. для того юнита, на которого накладывают щит) отдельное событие на получением им урона. И делать это надо именно в тот момент, когда ты накладываешь щит.
Для этого есть функция добавить событие в триггер, в ней можно указать конкретного юнита и само событие получения урона. Дальше тебе придётся только лишь определить был ли юнит в момент получения урона под действием "щита" и дальше блокировать урона (восстанавливать хп юнита).
Так же надо отметить момент, что если ты для юнита создаёшь больше ОДНОГО события на получение урона - они будут работать каждый сам по себе (т.е. при получении урона 1 раз, будут срабатывать 2 события, и триггер будет срабатывать ДВА раза = больше события и больше срабатываний в один момент времени).
Для этого надо маркеровать юнитов, для которых создаётся событие на получение урона (например заносить их в группу юнитов, а перед этим проверять есть ли юнит в этой группе).
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).
А как вообщем-то как создать способность -60% защиты от магии, мой вариант был такой - если приминяют способность "Астрал", приминяющий юнит равен - маг, то добавить способность -60% защиты от магии на того кого использовали Астрал.
Самое просто что можешь сделать - занулись повышение маг.урона по конкретному юниту (т.е. переменожить его на столько, что бы в итоге получилось x1 от нормы).
Для этого можешь взять Благо.Элуны
Если у тебя Астрал по стандарту даёт -60% маг.зашиты (т.е. это 1.6х маг.урона), то ты можешь выдавать своему герою на время действия эффекта абилку на +60% маг.защиты (т.е. это 0.62-.63х маг.урона).
100 * 1.6 = 160 160 * 0.625 = 100
Если ты хочешь сделать разный % усиления маг.урона на разных уровнях абилки - тогда убираешь полностью бонус маг.урона в астрале (из констант) и выдаёшь его за счёт абилки описанной выше (+ или - к множителю маг.урона на юните).
Порча это особый тип земли, который распространяется поверх обычной (заменяя её).
И поэтому в игре тайлы порчи часто могут занимать ещё и соседние участки.
Оптимальный вариант уйти от этой механики - заменить стандартный тайл порчей (текстуру подменить)... т.е. вместо "травы" будет текстура "порчи" (так можно сразу 2-3 порчи в одну карту добавить).
Evon, ну вообще должно быть в сравнении игроков, но это если у тебя JNGP.
Если нет - можешь CS вставку сделать, в скрипте это всё потом одним куском всё равно будет.
Custom Script: if GetLocalPlayer() == PLAYER then тут все необходимые действия
Custom Script: endif
А "PLAYER" - это тот игрок которого ты сравниваешь (игрок-инициатор триггера, или переменная которая у тебя его будет возвращать в этом месте).
Да, я тоже вижу панель выбора "лучше ответа", но при этом выбрать в ней ничего не могу. Суть не в том что мне надо иметь возможность выбора, а в том что я не должен видеть этот инструмент в "чужом" топике (ведь так и было раньше).
Видимо там что-то крутят в оболочке, что вылезают такие "общие" последствия.
» WarCraft 3 / Цветовой фильтр союзников
...но я так понимаю ты не справишься сам
» WarCraft 3 / Цветовой фильтр союзников
» WarCraft 3 / Помогите с Jass (novic)
Ред. Extremator
» WarCraft 3 / Помогите с Jass (novic)
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
» WarCraft 3 / вопросы Jass
» WarCraft 3 / Ульт тайдхантера из доты
» WarCraft 3 / Ульт тайдхантера из доты
Каждый продамаженный юнит посылается в этот триг (как аргумент в функцию), что и заставляет его подпрыгнуть.
» WarCraft 3 / Таверна и Герои в ней
» WarCraft 3 / Цветовой фильтр союзников
Ред. Extremator
» WarCraft 3 / Цветовой фильтр союзников
Либо ты обрамляешь всё через CS.
Либо пишешь свою функцию и юзаешь её (через CS, разумеется).
» WarCraft 3 / Создание юнитов
» WarCraft 3 / Юнит умирает при срабатывании триггера
Ред. Extremator
» WarCraft 3 / Запрет на использование способности при условии
Ред. Extremator
» WarCraft 3 / Останови пандемию!
» WarCraft 3 / команда на входящий урон
Ред. Extremator
» WarCraft 3 / Сортировка значений переменной
Ты берёшь 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
Ты используешь значение 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
Ред. Extremator
» WarCraft 3 / Сортировка значений переменной
https://sun9-7.userapi.com/c858232/v858232133/1d60db/DLy5KaGNalM...
» WarCraft 3 / Определение расы
Ред. Extremator
» WarCraft 3 / Я хочу чтоб при использовании способности на него вешался дебаф
160 * 0.625 = 100
» WarCraft 3 / Как изменить уровень способности в предмете
» WarCraft 3 / Почему земля "проклинается" в игре, когда в редакторе не так?
И поэтому в игре тайлы порчи часто могут занимать ещё и соседние участки.
» WarCraft 3 / Удаление эффекта
» WarCraft 3 / Отображение дальности
Если нет - можешь CS вставку сделать, в скрипте это всё потом одним куском всё равно будет.
Ред. Extremator
» WarCraft 3 / Как сделать так, чтоб когда герой умерал он взрывался
» Администрация XGM / Чужой вопрос с неработающей возможностью выбора ответа