PlayGround.ru
Ropnet
, скачать Дурная репутация бесплатно, игра Star Wars: Knights of the Old Republic 2 - The Sith Lords, купить игру Terraria


Тема по вопросам о WorldEditor №9

Tapo4eGG   12 ноября 2010 в 22:26

Ура новая группа

Kot_Matroskin   13 ноября 2010 в 00:56

еееее
с моей подачки новая тема !!

Х.о.м.я.к   13 ноября 2010 в 13:31

так эти строки на джазе мне? можете конкретно ответить что писать пожалуста я такой нуп что плакать хочется!

Tapo4eGG   13 ноября 2010 в 14:11

Хомяк что тебе нужно именно мб помогу чем

Аргайл   14 ноября 2010 в 13:12

народ помогите я только начинаю создавать карты создал с нуля две расы попытался поиграть с другом
создаю игру пишет "слишком большой размер файла. выберите другую карту"
карта весит 11метров
чо делать народ

JassMan   14 ноября 2010 в 13:20

Разрешено максимум 8 мегабайт.

Аргайл   14 ноября 2010 в 13:25

у меня есть карта которая весит 10мегабйт и все работает

JassMan   14 ноября 2010 в 13:49

Пользуйся оптимизатором.

Аргайл   14 ноября 2010 в 15:16

спс понемногу помогает

Tapo4eGG   14 ноября 2010 в 22:08

Ильяс плз подскажи как сделать таймер с обратным отсчётом??
на Jass

JassMan   14 ноября 2010 в 22:53

Аа он и так с обратным отсчётом.
Допустим, если ты запустил на 5 сек., то он так (внутри движка) и тикает: 4. . .3. . .2. . .1. . . и действия.

Опиши конкретно: зачем тебе это.

Tapo4eGG   15 ноября 2010 в 15:29

кароче мне надо так чтобы :
когда герой умирает появляется окно и там идёт обратный отсчёт как он закончится герой воскресает!

JassMan   15 ноября 2010 в 16:44

Так создай окно для таймера. Ищи нужные действия в категории "обратный отсчёт".

Tapo4eGG   15 ноября 2010 в 19:38

вот как раз это я не могу как открыть окно таймера?

Tapo4eGG   15 ноября 2010 в 20:19

Ильяс такая функция будет идти??


function Trig_GeneralDerevo_Jass_Actions takes nothing returns nothing
call SetPlayerState(Player(1),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(2),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(3),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(4),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(5),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(7),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(8),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(9),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(10),PLAYER_STATE_RESOURCE_LUMBER,1)
call SetPlayerState(Player(11),PLAYER_STATE_RESOURCE_LUMBER,1)
endfunction

Tapo4eGG   15 ноября 2010 в 20:20

у меня там 1 игрок и 7 игрок это крипы будут такочто сдесь их ненадо!

_MARTY   15 ноября 2010 в 20:49

Ладно, с тем багом так и не разобрался.
Прошу всех повторить все свои старые вопросы, на которые не был получен ответ.

JassMan   15 ноября 2010 в 20:55

Ну ты все им устанавливаешь (а не добавляешь) единицу дерева

_MARTY   15 ноября 2010 в 21:13

Вот мои вопросы:
1.Как сделать переход с одной карты на другую? То есть как в кампании за Рексара.
2.Как развернуть декорацию по оси Z?Т.е. например есть стол на ножках, а нужно чтоб он лежал набок.
3.Как сделать проверку выполнено\не выполнено задание?
4.Как поменять названия рас в окне выбора карты?
5.Каким действием (в тригере само собой) сделать исследование?

Tapo4eGG   15 ноября 2010 в 22:16

Марти глупые вопросы ...
почитай 8,7 темку там ты найдёшь ответы на свои вопрос и посоветую учить триггеры!!!

GriPet   15 ноября 2010 в 23:19

Tapo4eGG
События - Generic Unit Event - A unit умирает
Условия - triggering или dying unit равно Герой или конкретный герой если тебе нужно тогда переменная понадобится
Действия - Обратный отсчет - Start HeroTimer as однократный сколько тебе нужно секунд
Действия - Обратный отсчет - Create timer window for HeroTimer
Действия - Set Wariable - Last Created Timer Window = HeroTimerWindow (переменная окно таймера)

События - Обратный отсчет - HeroTimer expires
Действия - Обратный отсчет - Destroy HeroTimerWindow
Действия - Боевая единица или Герой не помню - Revive Hero (тут понадобиться переменная)

Ильяс не знаешь как поменять названия рас, чтобы в меню сражений вместо стандартных были свои названия написаны

Tapo4eGG   15 ноября 2010 в 23:35

Гриша ахахахха =)
не не в этом смысле я хочу чтобы на Jass написали а не на GUI
понимаеш??

JassMan   15 ноября 2010 в 23:58

Вот на Jass'e наработка.
Сделал два вида окна таймера:
• как в Доте (через Leaderboard)
• и простое окошко с форматом часы:минуты:секунды, однако тикает не совсем точно (то торопиться, то нормально. . .)

Tapo4eGG   16 ноября 2010 в 09:19

Гриша напииши в скайпе я тебе скажу как менять название расс

Tapo4eGG   16 ноября 2010 в 12:43

Ильяс а как сделать чтобы он возраждался не на своём трупе а на своей стартовой локации?

_MARTY   16 ноября 2010 в 14:50

Tapo4eGG
Лучше бы ответил. К тому же, что тебе Mr_ILYAS говорил? В процессе обучения ГЛУПЫХ вопросов не бывает.

_MARTY   16 ноября 2010 в 14:51

А вообще жду ответов.

JassMan   16 ноября 2010 в 15:36

Tapo4eGG
Так ты смотри, что я поставил в той строчке, где мы его возрождаем — там стоят координаты юнита (то есть, где он умер).
Так возьми и вместо них поставь нужные тебе координаты.

MARTY
1) Для этого тебе придётся освоить Jass, и научиться работать с кэшем.
2) В редакторе объектов ставь угол крена на отрицательное значение. (Чтобы поставить отрицательное значение в нужной строке, надо перед её открытием зажать клавишу shift)
4) В главном окне вкладка дополнительно/игровой интерфейс. Ставишь галочку наверху слева, прежде чем вносить изменения.
5) Ищи в категории Боевая единица - , в действиях с приказом (issue Order что-то там . . .)

Tapo4eGG   16 ноября 2010 в 16:00

Marty
я сним по скайпу бозарю и мы ВСЁ делаем на Jass !!!
это не глупый вопрос + я уже всё перепробывал туда поставить вот щас попробую сделать по кординатам!

_MARTY   16 ноября 2010 в 19:10

Mr_ILYAS
1.Да я на картах Blizardов смотрел, как с ним работать. Вроде кой-чего понял. Пытался сам такой переход сделать, но из игры вылетает после загрузки.
За остальные ответы спасибо.

Tapo4eGG   16 ноября 2010 в 22:58

Блим вот смори Ильяс
ты сказал указать координаты, а можно сделать так чтобы:
1 клан(1Team) Респаун на 1 локации(Loc1)
2 клан(2Team) Респаун на 2 локации(Loc2)

JassMan   17 ноября 2010 в 00:43

Можно, а что тебе мешает?
Создаешь 2 группы игроков игроков:

local force clan_1=CreateForce()
local force clan_2=CreateForce()
call ForceAddPlayer(clan_1,нужный игрок)
call ForceAddPlayer(clan_1,еще один игрок)
и т.д.
call ForceAddPlayer(clan_2,из противоположной команды игрок)
call ForceAddPlayer(clan_2,еще один игрок из противников)
и т.д.
if(IsPlayerInForce(нужный игрок,clan_1))then //вместо нужного игрока можно поставить, к примеру, GetOwningPlayer(какой-то юнит)
    сюда точку возрождения указать
elseif(IsPlayerInForce(нужный игрок,clan_2))then
    то в другую точку
endif

И локации лучше не использовать, когда можно использовать координаты. Ведь они типа real, а с ними War3 работает куда быстрее, чем с локациями.

GriPet   17 ноября 2010 в 11:33

Марти
3.) сделай триггер изначально выключеным, а когда выполняется задание поставь действие
Действие - Триггер - Turn on Триггер который должен действовать только если задание выполнено
4.) Дополнительно - игровой интерфейс - Текст - Общий - найди и измени пункты "альянс", "орда" и.т.д. на нужные тебе (там надо поставить галочку "Использовать нестандартный игровой интерфейс")
5.) Действие - Боевая единица - Issue Research order или Issue Train/Upgrade order

Tapo4eGG   17 ноября 2010 в 15:45

Ильяс как можно убрать снаряд при силле??
тоесть:
когда пускаю юнита там ещё перед ним летит снаряд героя(дальнего)например у виверны стрела!типо такого у келя огонёк!
вот как убрать при скилле это?

Tapo4eGG   17 ноября 2010 в 17:54

Ильяс что такое??
Неверный тип аргумента(real)

JassMan   17 ноября 2010 в 19:45

Там, где должно стоять real, ты поставил другой тип.

А предыдущий вопрос всё равно не понял. . .

Tapo4eGG   17 ноября 2010 в 20:20

call ReviveGero(GetUnitX(сдесь я написал кординату как ты и сказал вот тут и он мне пришет Неверный аргумент(real))

RwC Private League   17 ноября 2010 в 20:27

Был бы WE на C double plus ;( Я бы зарешал :F

JassMan   17 ноября 2010 в 21:04

Ты в функции не так героя написал: не Gero a Hero.

А во-вторых, там надо указывать юнита, а не реал.

Это в последствии функция вернёт real, а использует она-то юнита, вот и вноси юнита, а не то, что ты туда впихнул.

Tapo4eGG   17 ноября 2010 в 21:23

Я нечего не понял но очень сильно разозлился!!!!

JassMan   18 ноября 2010 в 00:57

Покажи код.

Tapo4eGG   18 ноября 2010 в 13:53

function Respawn takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local force Team_1=CreateForce()
local force Team_2=CreateForce()
call ForceAddPlayer(Team_1,Player(1))
call ForceAddPlayer(Team_1,Player(2))
call ForceAddPlayer(Team_1,Player(3))
call ForceAddPlayer(Team_1,Player(4))
call ForceAddPlayer(Team_1,Player(5))
call ForceAddPlayer(Team_2,Player(7))
call ForceAddPlayer(Team_2,Player(8))
call ForceAddPlayer(Team_2,Player(9))
call ForceAddPlayer(Team_2,Player(10))
call ForceAddPlayer(Team_2,Player(11))
if(IsPlayerInForce(GetOwninglayer(u),Team_1))then
call ReviveHero(u,GetUnitX(-30.4),GetUnitY(1544.3),true)
elseif(IsPlayerInForce(GetOwningPlayer(u),Team_2))then
call ReviveHero(u,GetUnitX(3.2),GetUnitY(-2122.9),true)
endif
call DestroyTimerDialog(LoadTimerDialogHandle(udg_Hash,GetHandleId(t),2))
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t = null
set u = null
endfunction

JassMan   18 ноября 2010 в 15:17

Я же сказал: функция GetUnitX использует юнита, а не координату, поэтому в скобках надо указывать юнита.

Это в последствии она вернёт координату, а использует-то она юнита!

Если тебе нужны координаты, которые ты указал, тогда пиши просто их туда — без всяких: GetUnitX/Y

Пользуйся JassCraft'ом ! Набрал туда функцию GetUnitX или Y, и смотришь, что она тебе выдаёт:
GetUnitX takes unit whichUnit returns real

Она использует юнита whichunit (дословно переводя: "какой юнит"), а возвращает координату этого юнита.

Еще раз прочти статьи про устройство функций.

GetOwninglayer(u) — неправильно написал

Х.о.м.я.к   18 ноября 2010 в 15:49

Tapo4eGG я хочу чтобы у здания или юнита щит был как в варлоках, чтобы снаряды отражались

JassMan   18 ноября 2010 в 17:07

Я не играл в Варлоков, так что понятия не имею. . .

Tapo4eGG   18 ноября 2010 в 19:41

я ПОПРОБУЮ СДЕЛАТЬ ... НО ТОКО НА jASS

Tapo4eGG   19 ноября 2010 в 13:45

function Respawn takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local force Team_1=CreateForce()
local force Team_2=CreateForce()
call ForceAddPlayer(Team_1,Player(1))
call ForceAddPlayer(Team_1,Player(2))
call ForceAddPlayer(Team_1,Player(3))
call ForceAddPlayer(Team_1,Player(4))
call ForceAddPlayer(Team_1,Player(5))
call ForceAddPlayer(Team_2,Player(7))
call ForceAddPlayer(Team_2,Player(8))
call ForceAddPlayer(Team_2,Player(9))
call ForceAddPlayer(Team_2,Player(10))
call ForceAddPlayer(Team_2,Player(11))
if(IsPlayerInForce(GetOwningPlayer(u),Team_1))then
call ReviveHero(u,-30.4,1544.3,true)
elseif(IsPlayerInForce(GetOwningPlayer(u),Team_2))then
call ReviveHero(u,3.2,-2122.9,true)
endif
call DestroyTimerDialog(LoadTimerDialogHandle(udg_Hash,GetHandleId(t),2))
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t = null
set u = null
endfunction





всё я сделал теперь на точках респ

Tapo4eGG   19 ноября 2010 в 14:30

блим Ильяс помоги плз
вот смори:
я хочу сделать так
чтобы когда игра началась через 30 секунд вместо таверны появился фонтан как это на Jass сделать?
я токо на обычном триггере могу =(((

SaRoF   19 ноября 2010 в 16:45

)) если ты это можешь зделать на GUI в чем проблема ? Конвентировать умеем ? -умеем, ну так вперед и с песней.

"Марти глупые вопросы ..." О_о да ты что ? мне они глупыми не показались я вот например не знаю как модельки крутить (как по мне это вобще невозможно), да и задавая такие ^ вопросы нельзя говорить что у кого-то вопросы глупее. Для меня например этот вопрос довольно таки глуп.

p.s Ильяс где Hon ? +)

Tapo4eGG   19 ноября 2010 в 17:22

Сароф на Гуи это легко я пытаюсь учить на Jass это легче будет чем всё другое!!!

JassMan   19 ноября 2010 в 19:48

Tapo4eGG
Блин, ну ты даёшь . . . Создал таймер; запустил (как однократный — false);Дальше CreateUnit(нужный игрок,нужный тип юнита,X,Y,угол поворота)

Вообще, я же сказал, что если не знаешь, переводи из обычных гуи в Jass. И функции, которые он тебе там выдал, рассматривай в JassCraft'е и пиши более простые функции.

GriPet   19 ноября 2010 в 23:17

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

Andreya   20 ноября 2010 в 13:27

Хотел написать свою проблему) но у меня почему прописывается только половина сообщения
буду краток: что значит "ошибка: отсутствует зарезервированный тип или тип идентификатора?

Andreya   20 ноября 2010 в 13:29

GriPet, лол моделька юнита уже идет с оружием и оторвать час модели никак нельзя.

JassMan   20 ноября 2010 в 16:53

Возможно неправильно написал слово unit или local, или другие типы слов (короче, ищи ошибку в первых двух словах в начале строки)

Andreya   20 ноября 2010 в 21:24

БЛ*)) вместо timer TIMET Ахахахахха))
Пасибо)

_MARTY   23 ноября 2010 в 10:22

Новый вопрос.
Мне нужно сделать такой триггер, чтоб противники при соприкосновении с моим персонажем получали урон.
Как такое сделать?

JassMan   23 ноября 2010 в 10:23

Что еще за гг?

_MARTY   23 ноября 2010 в 11:43

ГГ - Главный Герой.

_MARTY   23 ноября 2010 в 11:44

У меня короче чё-то типа гонок, и нужно чтоб при наезде на пешехода он (пешеход) умирал, ну или урон получал))))

JassMan   23 ноября 2010 в 11:53

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

_MARTY   23 ноября 2010 в 13:06

А через jass это можно сделать?

_MARTY   23 ноября 2010 в 21:59

Ну хорошо. И как?

Tapo4eGG   24 ноября 2010 в 18:58

Ахах =)
мне говорили так ...
сначало начни и мы тебя направим на верный путь ...
такочто давай сам учи Jass и пробуй как я =))
я потчи уже сам могу создавать триггеры ...на Jass спс Ильясу ОГРОМНОЕ!!!!!!
так ну всё =)
давай делай на Jass если чо я тебя подправлю!!! там легко 2-3 функции навен!!

Tapo4eGG   24 ноября 2010 в 19:10

Марти тебе нужно чтобы какой урон был???
что сразу юнит умирал или там например 100 дамаги или как?

_MARTY   24 ноября 2010 в 19:19

Ну не чтоб сразу умрал, но урон просто огроменный... 5000 например. В секунду.

Tapo4eGG   24 ноября 2010 в 20:44

Марти как скинуть тебе карту??

Tapo4eGG   24 ноября 2010 в 21:16

Кароче Марти нужно сделать так штобы например :
Пешеходы были союзниками а другие гонщики были врагами
или наоборот гонщики союзники а пешеходы враги выбирай ...

had-95   24 ноября 2010 в 22:39

Можно открыть карту из ориг компании?

_MARTY   25 ноября 2010 в 19:20

had-95
Да, можно. Только специальная программа нужна.
Советую тебе вот эту...
www.playground.ru/files/38222/

_MARTY   25 ноября 2010 в 19:22

Tapo4eGG
Можешь больше не трудиться - у меня Warcraft полетел, поэтому я World Editor`ом больше не пользуюсь.

had-95   25 ноября 2010 в 23:21

_MARTY_[старый ник Мортира]
Спасибо огромное, щас гляну, просто хотел компанию перепройти, и подумал, что 1 скучно будет)
Спасибо ещё раз всё нашёл)

GriPet   26 ноября 2010 в 11:38

когда герой триггерно получает предмет, как сделать чтобы он (предмет, а не герой) попадал в конкретный слот

Shadowdown   27 ноября 2010 в 12:47

А как сделать кампанию?
я открываю редактор, добавляю карту, сохраняюсь, а он мне говорит: "В кампании есть неиспользуемые карты"
помогите пжалуйста)

Tapo4eGG   27 ноября 2010 в 14:19

Блим Ильяс ппц канеш =((
немогу его заствавить чтобы он сразу сам двигался =(((
там нужен BoolExpr???

JassMan   27 ноября 2010 в 14:25

Когда будешь в группу заносить, то да.

Врубай логику и рассуждай: что и для чего. . .

Shadowdown   27 ноября 2010 в 16:26

госпооодааа, помогите пожалуйста!!

Shadowdown   27 ноября 2010 в 23:44

все с этим разобрался.
Теперь другая проблема - хочу перенести героя из первой миссии во вторую, но он не переносится :(
можно объяснить поподробнее как это делать?

_MARTY   28 ноября 2010 в 08:51

Shadowdown
Тебе нужно это сделать с помощью кэша.

sinseer   28 ноября 2010 в 12:07

хелп ми плиз, нада зделать чтобы волну силы не нада было активировать, а чтобы она выпускалась с шансом, например 50%

Shadowdown   28 ноября 2010 в 21:22

Даа я понимаю...прочитал пару гайдов, сделал свой триггер в двух картах. но в итоге во второй у меня мало того что не появляется герой, дак еще и виспы-рабочие пропадают :((

_MARTY   29 ноября 2010 в 08:58

sinseer
Пиши грамотно!!! А-то вечно вас, безграмотных, х**н поймёшь!
И остальным говорю тоже самое!!!

JassMan   29 ноября 2010 в 11:32

Слава богу, ко мне это не относится.))

sinseer   29 ноября 2010 в 14:10

мне нада чтобы заклинание как "Волна силы" или "Тёмная стая" было шансовым, и чтобы самому её запускать, направлять и тд. ненадо было, надо чтобы она летела туда, куда смотрит герой при атаке с 50% шансом.

_MARTY   30 ноября 2010 в 09:53

sinseer
Ну это не ко мне... Мне и в голову не приходило, что такое можно сделать.
Mr_ILYAS
Ну да)))

GriPet   30 ноября 2010 в 11:10

когда герой триггерно получает предмет, как сделать чтобы он (предмет, а не герой) попадал в конкретный слот

_MARTY   1 декабря 2010 в 09:11

GriPet
Ну есть у меня один вариант, хотя я такого конечно не пробовал.
Когда Герой берёт Предмет, забери у него все предметы (включая взятый!). После этого действуй так. Если тебе нужно положить предмет в слот 4, то положи в инвентарь !3! предмета, после этого клади Предмет, затем отними !3! предмета-пустышки и после этого возвращай все предметы, отнятые в самом начале. Вот, примерно как я себе это представляю.

JassMan   1 декабря 2010 в 18:32

вообщето есть команда которая перемещает предмет по слотам

_MARTY   2 декабря 2010 в 20:02

Mr_ILYAS
Буду знать. А какая?

JassMan   2 декабря 2010 в 20:10

Самому трудно зайти в редактор и посмотреть?

Я понимаю, если бы вопросы были связаны с каким-нибудь сложным механизмом (или системой). Но не найти нужное действие. . .

_MARTY   3 декабря 2010 в 19:08

Mr_ILYAS
Ой, да лаааааааааааааадно тебе... К тому же, я уже писал, что у меня Warcraft накрылся.

GriPet   3 декабря 2010 в 21:47

Mr_ILYAS то, что такое действие должно существовать вполне очевидно, но вот найти его не смог поэтому и спросил

k0lenval   4 декабря 2010 в 10:27

Такого действия нет.

_MARTY   4 декабря 2010 в 16:14

GriPet k0lenval
Mr_ILYAS наверно имеет ввиду такое действие на JASS.

JassMan   4 декабря 2010 в 16:30

call UnitAddItemToSlotById(твой юнит,тип предмета,номер слота)

На гуях можно только дропнуть из yказанного слота.

GriPet   4 декабря 2010 в 20:12

вот поэтому я его и не нашел потому что его нет) странно что "дропнуть" предмет из слота можно, а положить нельзя, я был уверен, что такое действие на гуях есть
придется использовать печальный метод Марти

_MARTY   5 декабря 2010 в 11:11

GriPet
Чего в нём печального? 0_0 Может быть сложный, ну и ладно.

Tapo4eGG   5 декабря 2010 в 15:12

Mr ILYAS
как моно сделать??
я сделал скилл который замораживает противника + замедляет его я нашёл функцию SetUnitMoveSpeed(c,150.)
я сделал таймер который через 3 секунды возвращает ему его прежнию скорость я всё сделал токо вот незнаю как ему вернуть рпежнию скорость ..

Agent_._SaS   5 декабря 2010 в 16:37

Чел у меня русские тригеры но сказать по русски смогу.
Кароче перед замедление делаешь переменную типа "Целочислительнае" потом ставишь значение скорость юнита а потом после того момента как время замедления закончится ставишь скорости юнита значение переменной

Agent_._SaS   5 декабря 2010 в 16:41

ААА мего баг!!! У меня в редакторе. Кароче я ставлю скилу значение урона 50 единиц (скил ракеты у тинкера) при кастовании он станит но урона не наносит не фига!!! А ещё я перезарядку ставлю на 60 секунд но он перезаряжается сразу!!!

Внимание вопрос!
ЧЁ ДЕЛАТЬ!!!

Tapo4eGG   5 декабря 2010 в 18:00

Санёк ты в Гуях или нет или Jass???
ты непонимаешь если задать это число к примеру 300 то если он купит сапог должно быть 340 а будет также 300...

_MARTY   5 декабря 2010 в 18:36

Tapo4eGG
По-моему некто Александр Шендрик правильно говорит. Только ты действием прямо В ТРИГГЕРЕ узнавай текущую скорость юнита, записивай её значение в переменную и после замедления возвращай юниту эту скорость.


Александр Шендрик
Пиши грамотно! Нихрена не понятно, о чём ты!!!

Tapo4eGG   5 декабря 2010 в 18:38

ДА МЛЯТЬ Я ЭТО И ИЩУ КАК СДЕЛАТЬ ЧТОБЫ ЕГО СКОРОСТЬ ПРЕЖНЯЯ БЫЛА КАК ЭТО СДЕЛАТЬ???ВЫ НЕПОНЯТНЫЕ ЛЮДИ!!!!!!
И Я ДЕЛАЮ НА JASS'E

JassMan   5 декабря 2010 в 18:53

не надо триггерно устанавливать скорость, давай её юниту через абилу (на основе способностей предметов)

GriPet   5 декабря 2010 в 19:13

у меня вот тоже насчет скорости передвижения вопрос. В гуях можно юниту поставить конкретную скорость перемещния, а можно как-то прибавлять и отнимать, т.е. у юнита скорость например 250, добавить 30, потом отнять 100 (например)

Tapo4eGG   5 декабря 2010 в 21:14

function MoveUnit_c takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local integer i=LoadInteger(udg_Hash,GetHandleId(t),2)+1
local real a=LoadReal(udg_Hash,GetHandleId(t),3)
if(i==1)then
call PauseTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
call SetUnitMoveSpeed(c,250.)
endif
set t = null
set c = null
endfunction

function UnitMove_d takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),3)
local real x1=GetUnitX(d)
local real x2=GetUnitX(c)
local real y1=GetUnitY(d)
local real y2=GetUnitY(c)
local real a=Atan2(y2-y1,x2-x1)
call SetUnitX(d,x1+25*Cos(a))
call SetUnitY(d,y1+25*Sin(a))
if(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))

Tapo4eGG   5 декабря 2010 в 21:14

if(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) < =900.)then
call PauseTimer(t)
call RemoveUnit(d)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
call UnitDamageTarget(u,c,GetUnitAbilityLevel(u,'A009')*75.,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl",c,"chest"))
call SetUnitMoveSpeed(c,150.)
set t=CreateTimer()
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,c)
call TimerStart(t,3.0,false,function MoveUnit_c)
else
call SaveInteger(udg_Hash,GetHandleId(t),2,0)
endif
set u = null
set c = null
set d = null
set t = null
endfunction

Tapo4eGG   5 декабря 2010 в 21:16

есть конечно ещё функции но нужно токо это там где самая высокая функция там как раз и возвращается скорость юниту егоже а как??
в нижний функции я её умньшил и запустил тимер через 3 сек у него должна быть норм скорость...

GriPet   7 декабря 2010 в 09:55

Tapo4eGG
лол, ты же знаешь, что я тока на гуях
мне уже не нужно я через скилл сделал

_MARTY   7 декабря 2010 в 17:41

А как сделать, чтоб юнит всё время атаковал всех противников вокруг него, в т.ч. и находясь в движении?
Т.е. чтоб не надо было ему отдавать приказ, и чтоб ему не надо было останавливаться при атаке.

Tapo4eGG   7 декабря 2010 в 22:10

Марти хз но он проде и так мочит всех подряд каго видит =)))

JassMan   8 декабря 2010 в 03:14

_MARTY_
Тут можно двумя способами:
Либо сделать триггерное движение, пока тот атакует.
Либо триггерную атаку, пока тот бежит.

_MARTY   8 декабря 2010 в 17:05

Mr_ILYAS
Нет, ты не понял. Кто играл в карту Russian Star Wars(www.playground.ru/files/26088/), вот тот должен знать. Там имперский звёздный разрушитель стреляет как раз как мне нужно. Он пока летит, то всё время стреляет в противников, находящихся рядом с ним. Притом сразу во всех.

JassMan   8 декабря 2010 в 18:08

Значит это второй вариант, который я назвал.

_MARTY   8 декабря 2010 в 19:28

Mr_ILYAS
Ок. А как её реализовать?

JassMan   8 декабря 2010 в 19:51

Ну сделай хотя бы наброски, а то не этично делать всю работу.

_MARTY   9 декабря 2010 в 10:38

Mr_ILYAS
Ладно, я когда к этой карте вернусь, то в первую очередь этим тригером займусь.

_MARTY   9 декабря 2010 в 10:40

Кстати, никак не могу понять триГер или триГГер? А-то везде по-разному.

_MARTY   9 декабря 2010 в 12:50

Слушайте, а кто-нибудь может за меня один тригер сделать? На jass`e или на ГУИ - всё равно.
Короче говоря, у одного героя из моей кампании есть навык - "артобстрел". При его использовании в указанную область сбрасывается несколько бомб. Но вот проблема - у модели только один снаряд. Т.е. при использовании туда попадает всего одна бомба!!!
Так вот, надо сделать чтобы ещё несколько снарядов тригерно падали в эту область. Ещё лучше, если они будут падать случайным образом в случайные места.
Кто-нибудь поможет?

Tapo4eGG   9 декабря 2010 в 21:02

Мог бы я делать так чтобы юниты создавались в воздухе тогда бы мб чемто помог =(((

GriPet   10 декабря 2010 в 09:59

_MARTY_
используй способность "ракетный удар" у героя механика, там как раз несколько снарядов летит

_MARTY   10 декабря 2010 в 11:18

GriPet
Ок, попробую.

_MARTY   10 декабря 2010 в 12:09

У меня у героя есть нестандартное заклинание. В одном месте он должен тригерно использовать его. Но в списке возможных для кастования заклинаний(issue order targeting a unit) нестандартные не отображаются. Как быть?

_MARTY   10 декабря 2010 в 20:26

GriPet
Кстати, помогло. Так что спасибо.

_MARTY   10 декабря 2010 в 20:27

_MARTY_
Кто знает, как сменить экран из главного меню?

GriPet   11 декабря 2010 в 21:52

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

_MARTY   14 декабря 2010 в 17:23

Все пользователи форума неожиданно вымерли.

GriPet   15 декабря 2010 в 09:35

мой вопрос всех убил

_MARTY   15 декабря 2010 в 13:52

GriPet
Мой убил, твой добил.

GriPet   15 декабря 2010 в 19:17

еще один вопрос, хотя отвечать уже некому:
в "Редакторе объектов - бой - типы защиты" эти типы защиты расположены по порядку? какая защита прочнее "обычная" или "легкая", а также "тяжелая" или "укрепленная"? там легкая стоит выше обычной, а укрепленная выше тяжелой, но мне кажется что обычная (судя по названию) прочнее легкой

JassMan   16 декабря 2010 в 09:48

Не имеет значение какая выше или нет, разные типы защиты защищают от разных типов аттак, например укреблёная от героев хорошо защищает, а тяжёлая нет.
или например защита "герой" защищает хорошо от магических атак, но не от обычных аттак.

А вот аттака "сила тьмы" наносит всем типам защит одинаковый урон, без дополнительного снижения. То есть снижаются только те проценты, которые указаны в защите у юнита.

GriPet   16 декабря 2010 в 10:23

спасибо, кстати скоро выложу свою карту

_MARTY   16 декабря 2010 в 20:56

GriPet
Хех, ок.

_MARTY   16 декабря 2010 в 20:57

Мои вопросы:
Кто знает, как сменить экран из главного меню?

У меня у героя есть нестандартное заклинание. В одном месте он должен триггерно использовать его. Но в списке возможных для кастования заклинаний(issue order targeting a unit) нестандартные не отображаются. Как быть?

JassMan   16 декабря 2010 в 21:51

В каком смысле не отображаются?

_MARTY   17 декабря 2010 в 14:51

Mr_ILYAS
Ну нет их в списке!!!

JassMan   18 декабря 2010 в 02:08

Надо указывать ту из списка, на основе которой была сделана нестандартная.

_MARTY   18 декабря 2010 в 20:18

Mr_ILYAS
Проверю.

_MARTY   19 декабря 2010 в 09:11

Как сменить экран из главного меню?

GriPet   20 декабря 2010 в 17:02

вопрос: как защитить карту. В FAQ есть про это но я понятия не имею что такое MPQ архив карты. Мне нужно (желательно), чтобы карту можно было открыть, но нельзя было ничего менять или сохранить ее после того как поменял что-то

JassMan   20 декабря 2010 в 21:42

правой кнопкой мыши по карте\свойства\ставишь галочку "только для чтения"
и сохранится карта с новыми данными не сможет.

А зачем тебе это? можно создавать копию и блокировать её, а в другой работать (обновлять). А потом при выпуске новой версии снова копировать её и блокировать для распространения по интернету . . .

GriPet   20 декабря 2010 в 23:52

"только для чтения" может любой пользователь снять
что значит заблокировать?? можешь пожалуйста подробно объяснить способ с MPQ архивом карты

JassMan   21 декабря 2010 в 12:08

Вот держи блокиратор карт. Перед блокированием создавай копию.

sinseer   21 декабря 2010 в 15:44

HELLO
помогите плз. надо чтобы заклинание "Огненное лассо" хватало не 1 цель, а все цели в радиусе 500

sinseer   21 декабря 2010 в 17:09

блин .. хоть бы заходили почаще !!

GriPet   21 декабря 2010 в 23:29

Mr_ILYAS спасибо конечно, но по этой ссылке нельзя перейти

JassMan   22 декабря 2010 в 02:28

попробуй еще раз

sinseer   22 декабря 2010 в 21:29

a мне помоч ?(

GriPet   28 декабря 2010 в 20:18

www.playground.ru/files/43089/ вот моя карта, наконец-то доделал, всем смотреть. Такой вот подарок на Новый год.

Kind Ram   28 декабря 2010 в 21:01

sinseer
Итак вот чё я предумал. В области получится так что нить сетки будет одна, народ какбы скучивается и тут вопрос. Хочеш чтобы они двигались за тобой (как-бы тащиш) или стояли как от стандартной сетки?

Kind Ram   28 декабря 2010 в 21:24

Вот план сетки без тяжкого переноса за тобой.

-Событие
A unit приводит способность в действие
-Условие
Ability being cast равно Массовая сетка
-Действие
Set CastTochka равно target point of ability being cast
Боевая единица - create кастующий стан (нев.) at (target point of ability being cast) fasing Стандартная ориентация зданий
Боевая единица - ussle ability Громовая поступь
Боевая единица - add 3.00 seconds life of type Общий
Триггер - turn on Every damage
-Отряд - pick all units in ranse 300 at position of CastTochka
=Боевая единица - пауза (picket unit)
=Боевая единица - move (piket unit) to (Tochka)
=Боевая единица - add (piket unit) to Gruppa group
Подождать(wait) - Wait (2 + (2 x Level of Массовая сетка)) game time seconds
-Отряд - pick all units in Gruppa unit group
=Боевая единица - продолжить (picket unit)
=Боевая единица - remove (picket unit) of Gruppa unit group
Триггер - turn off Every damage

Ну а с триггером Every damage думаю ты и сам справишся.


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

___________________________________________________________________________
MARTY
Вот пояснение. Скопировал я его с блакнота:

1. Сделай картинку 1024*1024
2. Раздели картинку на 4-е части
Нижняя левая и нижняя правая части должны иметь размер 512x256 пикселей, верхняя левая и верхняя правая части должны иметь размер 512x512 пикселей.
3. Переименуй их так:
Нижнюю левую часть LoadingScreenBL.
Нижнюю правую LoadingScreenBR.
Верхнюю левую LoadingScreenTL.
Верхнюю правую LoadingScreenTR.
4. Теперь конвертируй эти изображения в формат .tga или .blp
5. Потом импортируй их в карту
6. После импортирования они примут вид например: War3MapImported\LoadingScreenBL.blp, нужно убрать из названия папку и оставить: LoadingScreenBL.blp, и так все 4-е
7. Импортируем файл LoadingScreen.mdx его можно взять в стандартной карте Monolith и также обрезаем путь, как в п.6
8. Зайдите в пункт меню Scenario, там Map Loading Screen, потом установит галочку Use Imported File (Использовать импортированный файл) и выберите LoadingScreen.mdx.
Теперь нажмите OK

Для конвектации в .tga я рекомендую использовать прогу FormatFactory
Поделить картинку можно через фотошоп или microsoft office диспетчер ресунков

JassMan   28 декабря 2010 в 21:31

Вот хороший хостинг.

_MARTY   30 декабря 2010 в 10:29

Hectore
Спасибо большое!

JassMan   30 декабря 2010 в 12:43

Ребят нельзя такое на гуи делать. Вообще Jass учить будете или как?

Kind Ram   1 января 2011 в 01:59

Можно т.к. warcraft 3 весь скриптовая ига то её оптимизатор поддержит до 100 таких тяжких скилов единовременно доже на гуи.

JassMan   1 января 2011 в 04:13

да? ну я посмотрю как в онлайне твоя карта будет пользоваться успехом, с такими лагами. . .

sinseer   1 января 2011 в 22:44

спс!!!!! а теперь другой вопрос=)))
надо чтобы предмет снижал урон от война до определённого чила, например: Плащ, у которого 1 удар от вражеского юнита равнялся 10 хп война у которого этот плащ. ну ..... у война атака 9999999 а у меня жизней 150, надо чтобы воин бил не по 9999999 а по 10 хп по мне

4est3p   2 января 2011 в 02:15

доброго времени суток. народ интересует такая вещь. помогаю в разроботке новой карты и нужно вот такой выбор героя как тут s011.radikal.ru/i315/1101/89/0eb772527357.jpg . я знаю что это делается через jass при помощи DGUI или FSGUI но для моего мозга это слишком сложно. если можна объясните мне как для чайника как это сделать, или сделайте пожалуйста я вам буду очень благодарен.
зарания спасибо.

JassMan   2 января 2011 в 02:31

Это лучше на xgm.ru задавать.

4est3p   2 января 2011 в 03:05

на хгм сказали что это можно но трудно и если кто и сделает то дальше я без помощи и шага не ступлю, а мне надо имено чтоб это кто то сделал ибо мне мозгов не хватает ...

JassMan   2 января 2011 в 05:12

Тогда учись, совершенствуйся. Чтобы ни от кого не зависеть и не ждать когда всё сделают, а лишь получать маленькую помощь или подсказки.

Tapo4eGG   2 января 2011 в 13:21

function Wall_Destroy takes nothing returns nothing
local timer t=GetExpiredTimer()
call RemoveDestructable(gg_dest_ITx1_0058)
call RemoveDestructable(gg_dest_ITx1_0059)
call RemoveDestructable(gg_dest_ITx3_0060)
call RemoveDestructable(gg_dest_ITx3_0061)
call DestroyTimerDialog(LoadTimerDialogHandle(udg_Hash,GetHandleId(t),1))
call DisplayTextToForce(GetPlayersAll(),"TRIGSTR_048")
set t = null
endfunction

function InitTrig_Wall takes nothing returns nothing
local timer t=CreateTimer()
local timerdialog td=CreateTimerDialog(t)
call TimerDialogSetTitle(td,"Destroy Wall")
call TimerDialogDisplay(td,true)
call DisplayTextToForce(GetPlayersAll(),"TRIGSTR_046")
call SaveTimerDialogHandle(udg_Hash,GetHandleId(t),1,td)
call TimerStart(t,30.,false,function Wall_Destroy)
set t = null
set td = null
endfunction

Tapo4eGG   2 января 2011 в 13:22

почему окно таймера не появляетсся аа?????

JassMan   2 января 2011 в 15:15

При инициализации не делается:
• Не создаются диалоги и кнопки диалогов.
• Не создаются мульти-боарды и лоадер-боарды.
• Не создаются окна таймеров.
• Не создаются задания (квесты)

Поэтому создаём триггер Timer Window и пишем туда это:

function Wall_Destroy takes nothing returns nothing
local timer t=GetExpiredTimer()
call RemoveDestructable(gg_dest_ITx1_0058)
call RemoveDestructable(gg_dest_ITx1_0059)
call RemoveDestructable(gg_dest_ITx3_0060)
call RemoveDestructable(gg_dest_ITx3_0061)
call DestroyTimerDialog(LoadTimerDialogHandle(udg_Hash,GetHandleId(t),1))
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t=null
endfunction

function Create_Timer_Window takes nothing returns nothing
local timer t=CreateTimer()
local timerdialog td=CreateTimerDialog(t)
call TimerDialogSetTitle(td,"Destroy Wall")
call TimerDialogDisplay(td,true)
call SaveTimerDialogHandle(udg_Hash,GetHandleId(t),1,td)
call TimerStart(t,30.,false,function Wall_Destroy)
set t=null
set td=null
endfunction

function InitTrig_Timer_Window takes nothing returns nothing
local trigger trg=CreateTrigger()
call TriggerRegisterPlayerEventEndCinematic(trg,Player(0))
call TriggerAddAction(trg,function Create_Timer_Window)
set trg=null
endfunction



Чтобы запустить таймер, нужно нажать Esc.

k0lenval   2 января 2011 в 19:07

С Новым годом, ВарМаперы!!!

Tapo4eGG   2 января 2011 в 20:48

Ильяс а обязательно нажимать Esc????
нужно чтобы с начало игры таймер пошёл

Tapo4eGG   2 января 2011 в 21:31

а не при нажатии клавииши Esc

JassMan   2 января 2011 в 21:47

Я привёл пример, что нужно не через инициализацию а хотябы через 0.001 секунды после инициализации
сделай через 2 таймера, сначала один таймер на 0.001 сек а потом внутри него создаёшь уже новый таймер на 30 сек

Tapo4eGG   2 января 2011 в 21:57

ок ща попробую

Tapo4eGG   2 января 2011 в 22:30

Ильяс наконецто я научился думать =)) когда создавал 2 таймера как ты говорил у меня в окошке тупо торчало 00:00:00 а я первый тайймер уничтожел и его же заного запустил 2 таймера ненадо было создовать =))

function Wall_Destroy takes nothing returns nothing
local timer t=GetExpiredTimer()
call RemoveDestructable(gg_dest_ITx1_0058)
call RemoveDestructable(gg_dest_ITx1_0059)
call RemoveDestructable(gg_dest_ITx3_0060)
call RemoveDestructable(gg_dest_ITx3_0061)
call DestroyTimerDialog(LoadTimerDialogHandle(udg_Hash,GetHandleId(t),1))
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t = null
endfunction

function Timer_Create_Timer_Dialog takes nothing returns nothing
local timer t=GetExpiredTimer()
local timerdialog td
call DestroyTimer(t)
set t=CreateTimer()
set td=CreateTimerDialog(t)
call TimerDialogSetTitle(td,"Destroy Wall")
call TimerDialogDisplay(td,true)
call DisplayTextToForce(GetPlayersAll(),"TRIGSTR_051")
call SaveTimerDialogHandle(udg_Hash,GetHandleId(t),1,td)
call TimerStart(t,30.,false,function Wall_Destroy)
set td = null
set t = null
endfunction

function InitTrig_Wall takes nothing returns nothing
call TimerStart(CreateTimer(),0.001,false,function Timer_Create_Timer_Dialog)
endfunction

JassMan   3 января 2011 в 03:33

не если уж на то пошло, то можно запускать тот же таймер который истёк, не удаляя его.

Tapo4eGG   3 января 2011 в 11:43

Люди помогите не могу создать такой триггер раньше вроде мог а щас не помню =((
когда купил юнита он мнгновенно появляется в локации которую я создал..
как это?

Tapo4eGG   3 января 2011 в 12:34

и ещё один вопрос как сделать чтобы над зданием было типо доход голдов и дерева например +10 и +20
зависимостиот здании например если это ферма то +10 дерева и +20 голдов а если эту ферму улучшели до какогото здания было +20 дерева и +40 голдо!!
как это сделать все триггеры перебрал почти.

Tapo4eGG   3 января 2011 в 15:07

о5 все чтоле ПГ кинули?

Kind Ram   4 января 2011 в 00:14

Mr_ILYAS

Да некепятись ты так vJASS система может и более уникальна и многофункциональна, но мне просто приятней со старым добрым гуем. Да и кстати уже пробовал картус такими триггерами на гуе всё идёт идеально даже при 12 игроках. А всё потаму,что я делаю триггеры по системе дотеров. Тобиш время проходит и все ненужные мусорные эффекты и действия пропадают из игры, что значительно понижает нагрузку на карту. Если это непомогает, то есть у меня ещё переодический триггер который каждые например 60 сек. чистит карту от неименованных аффектов.

Просто уметь надо и некуда неторопитьца и все получится.
Вон у дотееров получилось, хотя они и слили коридоры и выращевыемые войны но теперь они имеют самую популярную карту в мире, по которой даже сделали этот задрипаный HoN.

JassMan   4 января 2011 в 01:02

Я про vJass ни слова не сказал. Речь шла только об обычном Jass.

Ты щас ерунду говоришь, потому что не знаешь основу (базовые знания) Jass'a, а точнее его преимущества.

Grand_Pirat   4 января 2011 в 16:14

У меня следующие вопросы:
1) Как сделать чтобы камень воскрешения активировался при приближении к нему героя и после смерти героя воскрешал его?
2) Как сажать людей в клетки, чтобы они сначала были нейтральными, а когда клетку сломаешь переходили на твою сторону (освобождение пленников) ?
3) Тоже самое, что и во втором вопросе, но только без клетки, например за дверями, которые можно сломать.

Tapo4eGG   5 января 2011 в 13:20

Гранд пират вроде есть такой юнит посмори их Способности там увидишь
а на счёт 1 вопроса хз непомню.

Tapo4eGG   5 января 2011 в 13:34

блим ктонить на мои вопросики ответит?

Melanholiy   5 января 2011 в 19:32

У меня вопрос возник,можно ли как-то создать мини-квесты на карте,которые выдают пассивные герои?Типа зачисть тот-то лагерь или принеси то-то...Можно?Подскажите.

Tapo4eGG   5 января 2011 в 19:53

Гуру канешно можно...
специальные триггеры есть ...
+ не какойто лагерь а нужно создовать локации и делать проверку есть ли там враж юниты или нет.
или выбрать ан карте спец юнитов такочто ищи триггер

Melanholiy   6 января 2011 в 10:41

Ок спасибо,я в редакторе только новичё,разве что карты пробовал создавать.

Wa[T_T]son   8 января 2011 в 21:07

Народ помогайте дело срочное, если тема еще жива, у меня несколько вопросов:
1) как сделать так чтобы юнит заходит на определенный тип ландшафта и на нем умирает?
2) как сделать так чтобы у юнита, не принадлежащего к игроку 11, есть в инвентаре ключ, и вот он входит в область Х а дверь Y открывается?
3) как же все таки сделать скольжение в триггерах?
прошу, не кидайте ссылки на xgm или предыдущие страницы этой темы мне нет времени листать 9 (или сколько там) постов по 1000 ответов

Wa[T_T]son   9 января 2011 в 13:32

GuRu13
Делаем квест, стоит нейтральный моб ХХХ и существует вокруг него область УУУ:

События:
Юнит вошёл в регион УУУ
Условия:
(Triggering unit) не равно (Игрок (нейтральный, предположим 11))
Действия:
Добавить задание...там разберешься
Ping on mini map

Или можно еще так:
События:
Юнит приблизился к ХХХ на 100 юнитов
Условия:
(Triggering unit) не равно (Игрок (нейтральный, предположим 11))
Действия:
Добавить задание...там разберешься
Ping on mini map

надеюсь помог)

Wa[T_T]son   9 января 2011 в 13:38

Tapo4eGG

когда купил юнита он мнгновенно появляется в локации которую я создал..
как это?

События:
Игрок 1(красный) приобретает юнита
Условия:
(Triggering unit) равно (тип юнита, например герой)
Действия:
Move instantly (triggering unit) к области ХХХ

Или так:
Есть таверна а вокруг неё твой юнит-герой ZZZ, которым ты покупаешь юнита, область УУУ вокруг таверны и область ХХХ в которую следует тп героя

События:
Юнит enters region (Область УУУ)
Условия:
(triggering unit) не равно (ZZZ)
Действия:
Move instantly (triggering unit) в (центр области ХХХ)

и ещё один вопрос как сделать чтобы над зданием было типо доход голдов и дерева например +10 и +20
зависимостиот здании например если это ферма то +10 дерева и +20 голдов а если эту ферму улучшели до какогото здания было +20 дерева и +40 голдо!!
как это сделать все триггеры перебрал почти.

Не знаю) можно попробовать сделать здание как юнит и попробовать так:
События:
Unit добывает ресурсы (это триггер specify unit действие) или как то так
Условия:
>And (All (conditions) are true):
Условия:
(Triggering unit) добыл 10 ресурсов
(Triggering unit) равно (Ферма 001 (ген))
Действия:
Игра(плавающий текст): добавить (текст) в (позиция of ферма 001 (ген))
пробуй) отпишешься

А кто нить ответит на мои вопросы?

Народ помогайте дело срочное, если тема еще жива, у меня несколько вопросов:
1) как сделать так чтобы юнит заходит на определенный тип ландшафта и на нем умирает?
2) как сделать так чтобы у юнита, не принадлежащего к игроку 11, есть в инвентаре ключ, и вот он входит в область Х а дверь Y открывается?
3) как же все таки сделать скольжение в триггерах?

Agamakus   9 января 2011 в 16:07

Подскажите, какое действие нужно выбрать, чтобы после определенного события в определенной области (событие и область заданы) были уничтожены все юниты определенного игрока?

Wa[T_T]son   9 января 2011 в 19:10

Filippov_iVan_93
у нас есть область ХХХ

Событие:
(сам поставишь)
Условие:
_____And (all (conditions) are true):
__________Условия:
__________Owner of (triggering unit) равно (Игрок №)
__________(triggerind unit) находится в (область ХХХ)
Действие:
Kill (triggering unit)
надеюсь помог)) вот кто бы на мои вопросы сверху ответил((

Agamakus   9 января 2011 в 19:49

Это не совсем то, но спасибо за отклик, еще самое простое, мне бы вспомнить... Нужно, чтобы некий послушник выполнил следующую последовательность действий: построить алтарь в заданной области (область задана), потом аналогично построить склеп и идти на рудник. Первый идет триггер через инициализацию карты с действием "боевая единица - order послушникXXX to build алтарь тьмы at областьХХХ" как заставить его дальше строить склеп?

Agamakus   9 января 2011 в 20:07

А все, это уже сделал, вспомнил, так вот насчет уничтожения юнитов. Триггеринг юнит не подходит, т.к. в ходе игры он может быть уничтожен и созданы новые юниты, нужно, чтобы любой юнит, принадлежащий этому игроку был уничтожен в областях...

Wa[T_T]son   9 января 2011 в 20:28

озадачил)))
пожно сделать так:
сделать СВОИМ войскам защиту от магии
а войскам врага её удалить
затем сделать области и сделать Pick Every Unit In Area And Do...
и сделать магический дамаг 99999)

или как то на 0.1 секунду ТПшнуть всех своих войск, убить войска противника, снова ТПшнуть свои войска на их места...)

Wa[T_T]son   9 января 2011 в 20:31

кстати выше написанное, проще некуда:

События:
Time is ellapsed 0.01
Действия:
ордер.....первое строение

События:
(послушник) строит здание
Условия:
(данное здание) равно ХХХ
Действия:
ордер.....второе строение

Wa[T_T]son   9 января 2011 в 20:34

здесь сидят помощники кроме меня????
1) как сделать так чтобы юнит заходит на определенный тип ландшафта и на нем умирает?
2) как сделать так чтобы у юнита, не принадлежащего к игроку 11, есть в инвентаре ключ, и вот он входит в область Х а дверь Y открывается?
3) как же все таки сделать скольжение в триггерах?

GriPet   9 января 2011 в 20:53

1.) пришла в голову такая мысль: сделай область покрывающую всю карту, и сделай действие, убивающее юнита в этой области (т.е. на всей территории карты) а в условие поставь тип ландшафта (Terrain Type Comparision)
2.) есть действие Декорация - Open Gate
3.) не знаю что такое "скольжение в триггерах"

Filippov_iVan_93
после "определенного события" должен включатся триггер например Test событие - юнит входит в область; условие - триггеринг юнит принадлежит игроку Х; действие - убить триггеринг юнита, т.о. все юнита данного цвета в данной области будут убиты. Когда надо включай/выключай Test через Turn on/off trigger.

Agamakus   9 января 2011 в 21:00

В общем свой триггер я сделал, вот как он выглядит, (прописал к области) "Отряд - Pick every unit in (Units in область111 owned by Игрок1) and do (Боевая единица - Kill (Picked unit))"
Wa[T_T]son, 1) как сделать так чтобы юнит заходит на определенный тип ландшафта и на нем умирает?
думаю для тебя это подойдет

3) как же все таки сделать скольжение в триггерах?
В Run Kitty Run посмотри, если ты про то.

Tapo4eGG   9 января 2011 в 22:01

Wa[T_T]son
Вот полностью ответ на твой 2-ой вопрос.я замучился сним.
2)
События:
Unit Enters Region(регион вставляеш область в которую будет входить юнит)
Условия:
не каких
События:
if(All Conditions on True)then do(The Action) else do (Else Action)
Условия:
((Last Created Unit)is Owned)равно((Triggering Unit)Has an Item Type Ключ)() где ключ выбираешь свой предмет.
Действия:
Декорация - Закрыть Железные ворота(Железные ворота эта та или твая дверь выберешь на карте)
Иначе:
Декорация - Открыть Железные Ворота(про ворота также)
Герой - drop the item from slot 1 of (Triggering Unit)(Тоесть нужно сделать обязательно чтобы ключ был в 1 слоте.)
Предмет - Remove(Last Droped Item)
ну вот и всё Весь триггер

Tapo4eGG   9 января 2011 в 22:03

При Этом триггере ключ дропается.
если хочешь чтобы не дропался просто убери 2 последних действия

Tapo4eGG   9 января 2011 в 22:07

Ватсон
ответ на 1-ый вопрос.
События:
Unit Enters Region(ставишь опять область)
Условия:
Сдесь ставишь условия
((Triggering Unit) is Сдесь ставиш тебе нужного типо либо герой либо там сам найдёшь) равно да
Действия:
Боевая еденица - kill (Triggering Unit)

Wa[T_T]son   10 января 2011 в 04:58

Большое спасибо вам троим за ответ щас всем троим накалякаю =)
Tapo4eGG
Твоя идея не очень подходит потому что мне придется создавать области везде где мне нужно убить юнита, а это коридорчики, заворотики, бесчисленные мудреные лабиринты...

Тебе же, спасибо за триггер открывания двери и вообще за понятную помосчь =)

GriPet
1) не получится, ведь юнит для активации триггера должен ВОЙТИ в эту область а он войдет один раз и всё
2) точняк =)
3) блин =)

Filippov_iVan_93

1)Мололдэээээц =)))
3) а разве ран кити ран не защищена?!?! иду смотреть...

Wa[T_T]son   10 января 2011 в 05:02

блин клас) пасиба Иван за совет =) оказалось так мудрёно...вот бы еще открыть карту типа escape builder дабы посмотреть триггер ландшафта...эх...

Вообще про мою задумку
все я думаю играли в карту Pyramid Escape в версии 1.23? вот я делаю её с нуля заново =) тока под версию 1.24...делать еще очень и очень много только первое испытание готово, но если что я знаю куда я могу обратиться за помощью =)

Agamakus   10 января 2011 в 10:34

Вообще полно всяких производных от китти, типа ниндзей, спанч бобов, архимондов и т.п. Что-то из них открыто по-любому. Я помню ниндзю открывал.

Tapo4eGG   10 января 2011 в 14:29

Ватсон скольжение бесполезно делать на GUI

Agamakus   10 января 2011 в 15:22

Новый вопрос, как сделать определенного юнита на время неконтролируемым, убрать все кнопки приказов и чтобы все предыдущие действия (движение или атка) были отменены?

GriPet   10 января 2011 в 16:42

1.) сделай его нейтрально-пассивным, 2.) прикажи охранять позицию и 3.) разреши нужному игркоку видеть его. Вот действия: Действие - Боевая единица - 1.) Change Owner, 2.) Order With No Target, 3.) Shared Vision; вроде такие действия.

Tapo4eGG   10 января 2011 в 17:16

можно просто внести на время ему Возможность Москиты.

Agamakus   10 января 2011 в 19:01

GriPet спс попробую, но вроде уже альтернативный метод нашел.

Melanholiy   12 января 2011 в 11:10

Wa[T_T]son
Спасибо за детальное объяснение)

Tapo4eGG   14 января 2011 в 10:12

Неужели нет не укаго больше вопросов?

JassMan   14 января 2011 в 10:41

А толку? Всё равно никто не отвечает на нубские))

Tapo4eGG   14 января 2011 в 11:17

Возможно такое действие ?? или можно както укарочить ???
Есть условия что Дуинг юнит это Герой.

if GetOwningPlayer(GetDyingUnit())==Player(0) and GetOwningPlayer(GetDyingUnit())==Player(1) then
call ReviveHero(GetDyingUnit(),GetRectCenterX(gg_rct_Respawn_1),GetRectCenterY(gg_rct_Respawn_1),false)
elseif GetOwningPlayer(GetDyingUnit())==Player(2) and GetOwningPlayer(GetDyingUnit())==Player(3) then
call ReviveHero(GetDyingUnit(),GetRectCenterX(gg_rct_Respawn_2),GetRectCenterY(gg_rct_Respawn_2),false)
elseif GetOwningPlayer(GetDyingUnit())==Player(4) and GetOwningPlayer(GetDyingUnit())==Player(5) then
call ReviveHero(GetDyingUnit(),GetRectCenterX(gg_rct_Respawn_3),GetRectCenterY(gg_rct_Respawn_3),false)
elseif GetOwningPlayer(GetDyingUnit())==Player(6) and GetOwningPlayer(GetDyingUnit())==Player(7) then
call ReviveHero(GetDyingUnit(),GetRectCenterX(gg_rct_Respawn_4),GetRectCenterY(gg_rct_Respawn_4),false)
endif

Tapo4eGG   14 января 2011 в 11:18

Если не поймёте что делает то он :
Возраждает героя в области.
в Иф указываем Владельца игрока Дуинга юнита.

DELTA691   14 января 2011 в 15:53

Всем привет !
1) как зделать 2 клана союзниками ? так что б не делать из 2ух кланов 1!
2) где настроить стоимость воскрешения героя и как настроить место где будет появляться воскрешонный герой ?
3) как зделать что б за моба давали 50 золота ?
4) как зделать что б када игрок что то пишет в чате оно высвечивалось над головой у юнита (как в 300 спартанцев ультимат) (warcraft3ft.info/board/kak_napisat_tekst_napisan..
вот тут есть это, но у меня не получилось... чкиньте плиз карту с этим триггером. тока что б не каждого героя надо было выберать отдельно а в триггере написать что б сразу всех юнитов этого игрока ( так мона ? )
5) как зделать что б камера во время игры всё время была на высоте 1500 ?
6) как зделать что б в таверне герой воскрешался за 250 золота ?
7) как зделать что б после 60 сек все герои в таверне исчезали и можна было тока воскрешать ? (у меня вот этот триггер на таверну warcraft3ft.info/board/14-3-0-1155)

помогите плиззз


восновном ответы на свои вопросы я находл в нэте но эти не нашол.

DELTA691   14 января 2011 в 19:26

как вот тут вместо Герой 0001 поставить всех юнитов или красного игкрока или (< gen >)
Set (переменная) = Герой 0001

Tapo4eGG   15 января 2011 в 08:51

6)
Парень извини я просто быстро читаю вопросы поэтому отвечу что знаю.
В редакторе объектов наведи нужного юнита и там в самом вконце будет написано воостоновить за стоьлко то голдов

DELTA691   15 января 2011 в 12:54

Tapo4eGG
это я знаю не помогает((

GriPet   15 января 2011 в 21:20

как отрегулировать опыт, который дается герою за уничтожение врага?? я всегда думал, что за это отвечает строка "Хар-ки - опыт" или "Хар-ки - награда за уничтожение", т.е. например если ставишь у юнита Х в какой-то из этих граф 100, то за его убийство герой получит 100 опыта. Решил проверить какая из этих двух характеристик действительно определяет получаемый опыт и выяснил, что ни одна((( пробывал писать в каждой из граф сначала 100, а потом 5000 и не заметил разницы.

DELTA691   16 января 2011 в 11:27

1. Регулирование значений в Редакторе объектов.
В первую очередь, вам необходимо знать, что награда за убийство боевой единицы - случайное значение между (базовым значением + кол-вом костей) и (базовым значением + кол-вом костей * кол-во граней у кости).
В Редакторе объектов у любого воина есть такие поля:



Характеристики - Награда за уничтожение - базовая.
Характеристики - Награда за уничтожение - кол-во граней у кости.
Характеристики - Награда за уничтожение - кол-во костей.

Эти значения определяют призовое золото, которое является случайным числом между (базовым значением + кол-вом костей) и (базовым значением + кол-вом костей * кол-во граней у кости)

Характеристики - Призовая древесина - базовое значение.
Характеристики - Призовая древесина - количество граней.
Характеристики - Призовая древесина - количество кубиков.

Эти значения определяют призовое дерево, которое является случайным числом между (базовым значением + кол-вом кубиков) и (базовым значением + кол-вом кубиков * кол-во граней)

Помня эти правила, вы сможете на свой вкус отредактировать призовое золото и древесину. А теперь приступим к триггерам...
2. Регулирование значений при помощи триггеров.
Для регулирования значений награды триггерно, нам сначала необходимо научиться регулировать встроенную систему - включать и выключать её. Для этого применяется действие:


Оно отключает или включает те значения, что мы регулировали в Редакторе объектов. Допустим, мы не хотим использовать значение Редактора объектов, т.к. его нельзя отловить и хотим всё сделать при помощи триггеров. Тогда придётся сделать такой цикл:

Это отключит движок получения награды.
Теперь мы можем сымитировать этот движок триггерно. Здесь нам поможет такая Jass-функция:
Code
function Bounty takes player whichplayer, integer bounty, real x, real y returns nothing
local texttag t=CreateTextTag()
local string s="+"
call AdjustPlayerStateBJ( bounty, whichplayer, PLAYER_STATE_RESOURCE_GOLD )
if bounty

GriPet   16 января 2011 в 14:12

спс но мне надо отрегулировать призовой опыт, а не золото и древесину)

DELTA691   16 января 2011 в 14:20

ой сори не то скинул перепутал)))
вот:

Принцип набора опыта героями
В меню "Дополнительно - Игровые константы" можно найти группу констант, начинающихся на "Набранный героем опыт". Они используются, чтобы узнать. сколько опыта должно даваться герою за убийство и сколько нужно опыта для достижения следующего уровня. Эта статья поможет вам разобраться в них.

1. Получение опыта за убийство героев.

Набранный героем опыт: герой, таблица - 100, 120, 160, 220, 300
Набранный героем опыт: герой, фактор константы - 100
Набранный героем опыт: герой, фактор предыдущего значения - 1
Набранный героем опыт: герой, фактор уровня - 0

Если вы убьёте героя первого уровня, то получите 100 опыта, это первое значение в таблице.
Если вы убьёте героя второго уровня, то получите 200 опыта, это второе значение в таблице.
...
Если вы убьёте героя пятого уровня, то получите 300 опыта, это последнее значение в таблице.

Если убит герой выше, чем пятого уровня, то игра, не находя значения в таблице, использует такую формулу:

Полученный опыт = предыдущее значение * фактор предыдущего значения + уровень * фактор уровня + фактор константы.

Исходя из этой формулы, при убийстве героя шестого уровня, убивший герой получает 300 (предыдущее значение) * 1 (фактор предыдущего значения) + 6 (уровень) * 0 (фактор уровня) + 100 (фактор константы). А это 400 опыта.

Если убитый герой был седьмого уровня, то убивающий получит 400 * 1 + 7 * 0 + 100 = 400 + 0 + 100 = 500 опыта.

2. Получение опыта за убийство вражеских войск.

Набранный героем опыт: Норма, фактор константы - 5
Набранный героем опыт: Норма, фактор уровня - 5
Набранный героем опыт: Норма, фактор предыдущего значения - 1
Набранный героем опыт: Норма, таблица - 25

Выглядит похоже, да и работает по тому же принципу.

Если вы убьёте воина первого уровня, то получите 25 опыта, это первое значение в таблице.

Больше значений в таблице нет, и игра ватоматически заполняет таблицу по той же формуле:

Полученный опыт = предыдущее значение * фактор предыдущего значения + уровень * фактор уровня + фактор константы.

Соответственно, воин второго уровня даст 25 * 1 + 2 * 5 + 5 = 25 + 10 + 5 = 40 опыта.
Воин третьего уровня даст 40 * 1 + 3 * 5 + 5 = 40 + 15 + 5 = 60 опыта
Воин третьего уровня даст 60 * 1 + 4 * 5 + 5 = 85 опыта

3. Получение опыта за убийство крипов.

Набранный героем опыт: таблица сокращения монстров - 80, 70, 60, 50, 0

Если убитый героем воин является монстром, в полном объёме опыт вы не получите. Это нормально - ведь герой, допустим, 42 уровня, может убить гнолла за взмах оружия.
Опыт за крипа рассчитывается, как в пункте 2 для войск, но с небольшим отличием - помимо всего этого применяется таблица сокращения монстров. Так как от убийства воина 1-го уровня герой получает 25 опыта, то:

От убийства крипа герой 1 уровня получит 80% от 25.
От убийства крипа герой 2 уровня получит 70% от 25.
От убийства крипа герой 3 уровня получит 60% от 25.

Последнее значение таблицы применяется к остальным уровням. Вот, почему после достижения 5 уровня герой опыта не получает. В таблице написано "0".
Чтобы позволить герою прокачку выше 5 уровня, требуется просто изменить его на какое-либо значение выше нуля. Оно определит процент получаемого опыта на других уровнях.

4. Определение опыта для перехода на новый уровень.

Герою требуется опыта: фактор константы - 0
Герою требуется опыта: фактор уровня - 100
Герою требуется опыта: предыдущее значение фактора - 1
Герою требуется опыта: таблица - 200

Этот набор значений определяет, когда герои получают новый уровень.

Как обычно, всё начинается с таблицы. Герой получает уровень, когда наберёт 200 опыта. И мы применяем всё ту же формулу для заполнения таблицы:

Полученный опыт = предыдущее значение * фактор предыдущего значения + уровень * фактор уровня + фактор константы.

Тогда для достижения третьего уровня герой должен набрать 200 * 1 + 3 * 100 + 0 = 200 + 300 + 0 = 500 опыта.
Для достижения четвёртого уровня герой должен набрать 500 * 1 + 4 * 100 + 0 = 500 + 400 + 0 = 900 опыта.
Для достижения пятого уровня герой должен набрать 900 * 1 + 5 * 100 + 0 = 1400 опыта.

Agamakus   16 января 2011 в 14:31

МОЗГИ, расскажите пожалуйста, какими способами можно прописать ИИ? Можно ли просто тупо на триггерах или нужно на map.ai? И как прописывать в map.ai? Я видел такие функции в кампаниях, но не знаю откуда достать файлы с расширением "ai"...

DELTA691   16 января 2011 в 16:42

Filippov_iVan_93 вот
warcraft3ft.info/board/osnovy_ii/16-1-0-1239
тут немного етсь об этом...)

а на мои вопросы кто нить ответит плиззз хоть на один.... я не могу без этого карту доделать(((

Agamakus   16 января 2011 в 16:55

Я эту тупую статью уже читал. В ней ничего нового не говорится. Ты наверное даже сам не читал ее, раз мне ее приводишь.

GriPet   16 января 2011 в 23:00

Дельта спасибо, постараюсь ответить на твои вопросы... попозже)

DELTA691   17 января 2011 в 13:23

1) как зделать 2 клана союзниками ? так что б не делать из 2ух кланов 1!
2) где настроить стоимость воскрешения героя и как настроить место где будет появляться воскрешонный герой ?
3) как зделать что б за моба давали 50 золота ?
4) как зделать что б када игрок что то пишет в чате оно высвечивалось над головой у юнита (как в 300 спартанцев ультимат) (warcraft3ft.info/board/kak_napisat_tekst_napisannyj_igrokom_nad_golovoj_ego_geroja/17-1-0-1241)
вот тут есть это, но у меня не получилось... скиньте плиз карту с этим триггером. тока что б не каждого героя надо было выберать отдельно а в триггере написать что б сразу всех юнитов этого игрока ( так мона ? )
5) как зделать что б камера во время игры всё время была на высоте 1500 ?
6) как зделать что б в таверне герой воскрешался за 250 золота ?
7) как зделать что б после 60 сек все герои в таверне исчезали и можна было тока воскрешать ? (у меня вот этот триггер на таверну warcraft3ft.info/board/14-3-0-1155)
8)как вот тут вместо Герой 0001 поставить всех юнитов или красного игкрока или (< gen >)
Set (переменная) = Герой 0001

nikirnikir   28 февраля 2011 в 19:49

Привет всем, у меня вот есть вопрос да только ненашел я его ибо искать по всем темам очень трудно.
Неподскажите как сделать вид от третьего лица (вместе с прикреплением к юниту). Заранее прошу прощение если такие темы есть)

Никита Макеенко   5 марта 2011 в 19:17

Триггер
Событие: А юнит атакован
Действия: 1) Этому юниту присвоить группу Attacked
2) Ожидание 10 сек
3) Уберает с этого юнита эту группу (Remove)
Этот триггер служит дополнением к триггеру телепорта. Триггер телепорта проверяет приндлежность юнита к группе Attacked. Смысл в том что юнит не телепортнется если был атакован в течении последних 10 сек. А так он может быть атакован, через 8 сек снова атакован и через 2 сек уже воспользоваться телепортом. Нужно чтобы ожидание обновлялось. Как сделать чтобы ожидание 10 сек начиналось заного, если юнит опять будет атакован??

minus1024   6 марта 2011 в 16:27

Ответьте пожалуйста на мои вопросики:

1) В триггере изначально камера была прикреплена к герою, как сделать чтобы когда герой садился в корабль камере автоматом прикреплялась к кораблю, а после выгрузки на берег снова прикреплялась к герою?

2) Я умею соединять предметы как в доте, но, я хочу соединять предметы которых более 2 одного вида - например взял бутылку маны в инвентарь где есть такая же, оба предмета исчезают и появляется банка с 2-мя зарядами?

3) И еще один, у меня есть навык по поводу триггерных заклинаний, так как у меня есть один сценарий РПГ где нет ни одной стандартной способности или юнита, и причем еще сложней без единого импорта, ну кроме музыки и иконок, так вот мне нужно оч подробно объяснить как сделать так чтобы героя при ударе молоточком как у альянскго гнома воин отлетал на расстояние..?

minus1024   7 марта 2011 в 14:15

Вот несколько триггеров для тех кто любит делать что нибудь иное. Под цифрами подразумевается: 1 - событие, 2 - условие, 3 - действие.
ДЕЙСТВИЕ О ТОМ КАК ДЕЛАТЬ ПОРЧУ ПРИ ДВИЖЕНИИ ГЕРОЯ ПО МЕСТНОСТИ

1`Time - periodic event
1.00 sec

3`Region - move
Center (region imenno gde glavnii geroi) ... (Unit)

3`Environment - create/remove blight circle
Create...Player 2Blue..
Unit - position of unit (Unit) 384.00

КАМЕРА КРУЖИТ НАД ТОЧКОЙ ЭФФЕКТ ПОЛЕТА

3`Camera - apply camera object timed
apply (region) (player) 15.00sec

МАСКА

3`Cinematic - fade filter
Fade out...1.00..Black mask.. 0 0 0..0

3`Wait 4 00 sec

3`Cinematic - fade filter
Fade in 2.00 (wid maski) 0 0 0... 0

МАНА НА НУЛЕ ПОСТОЯННО

1`Time - every 1.00 sec of game time

3`Unit - set Mana [to value] (Unit) 0.00
Unit - set mana [to percentage] (Unit) 0.00%

ПОРАЖЕНИЕ
1`Unit - player-owned unit event
Player 1[red] dies
2`Unit compasion
[dying unit] equal to (Unit)
3`Quest - quest message
all players quest failed |cffffcc00ЗАДАНИЕ ПРОВАЛЕНО|r
Ваш герой мертв.
3`Wait 3.00 sec
3`Trigger - run defeat [gen][cheking conditions]
Game- defeat
player 1[red]

КОГДА ГЕРОЙ ПОЛУЧАЕТ УРОВЕНЬ
СОЗДАТЬ ТРИГГЕР
(Level Dialog)
1`Unit - a unit owned by player 1[red] gains a level
2`Unit compasion
[leveling hero] equal to (Unit)
2`integer compasion
[hero level of (Unit)] equal to 10
3`Sound - setup all volume channels for cinematic
Cinematic - transmission from unit
(Unit) Наконецто десятый уровень, теперь я могу использовать Божественную Ауру!
3`Sound - reset all volume channels to 100%

ExpDisabledForHero
boolean
false

ГЕРОЙ ПОВЕРНУТ ЛИЦОМ К ПЕРСОНАЖУ
Animation - lock body-part facing
(Unit) Head (Unit) 0 0 90

Animation - reset body-part facing
(Unit)
Fade out 000sec Black mask
Fade in 2sec Withe mask

Загрузка параметров из предыдущей карты
Триггер -BlockMap

Game cache - create game cache
Prolog.w3x

Set variable
Close01 = Game cache - load integer value
Close01 Category (Last created game cache)
if\then\else
integer comparison
Close01 less than 1
Trigger - run(ignoring condions)
Text Block Map
Trigger - run(ignoring conditions)
Cinema in или обычный триггер начало старта
(Триггер Text Block Map)
Cinematic - turn cinematic mode on for all players
Cinematic - disable user control for all players
Cinematic - fade out 0sec using texture with mask and 0000
Cinematic - send transmission all players no unit Карта недоступна 10sec ждать
Переменная
player_Bandits_11
player
Player 11(dark green)

Player - hide player_bandits in the post-game score screen
game - defeat player_bantits the message Карта закрыта
--------------------------------------
Добавить одну переменную в обои карты
Set Close02 = 2
Game cache - create a game cache from Glava01.w3x
Game cache - store close02 as close02 of Category in (Last....)
Game cache - Store (Брэнд 0013) as brand of Category in (last...)
Game cache - save (last...)
trigger - run next level run (checking conditions)
---------------------
Триггер Heroes HronospherE Start
3`Game chache - create game chache
...Glava2
3`Game chache - Restore unit facing point
HronospherE .. Category...(Last..) Player1(Red)...region...
Переменная
D_HronospherE
Unit
Set variable
D_HronospherE = (Random unit from(Units of tipe HronospherE))
3`Item - make undroppable
Item carried by hero of type
Random unit from unit group
Unitst of type HronospherE
of type (предмет)
Undroppable

ОСТАНОВКА ВРЕМЕНИ Прежде, чем делать этот триггер, создайте любую нестандартную способность - например божественный щит, далее удаляйте все из строки buffs, если это геройская способность то и там тоже, да и впрочем Останоку времени лучше использовать как например метаморфоза где требуется 6 уровень.
- Название триггера timestop
- Название способности Quyen Luc Troi Gian
Data - Damage 0.00
Stats - Area of effect 250
Stats - Buffs (нет)
25
10
10
Действия триггера
1`Unit - generic unit event
starts the effect of an ability
2`Ability campasion
Event response - ability Being cast
Equal to
Quyen Luc Troi Gian
Переменная
Caster
Unit
3`Set Variable
Caster = Event Response - casing unit

Unit Group - Pick Every unit in unit group and do multiple actions
Units in region matching condition
Playable Map Area
Unit Compasion
Matcing Unit not equal to Caster

Loop - Actions
Unit - Pause (Picked unit)
Animation - Change unit animation Speed
Picked unit 0.00%
Wait 10.00 seconds

Unit Group - Pick Every unit in unit group and do multiple actions
Units in region matching condition
Playable map area
Unit compasion
Matcing unit not equal to Caster
Loop - Actions
Unit - UnPause (Picked unit)
Animation - Change unit animation Speed
Picked unit 100.00%

minus1024   9 марта 2011 в 16:56

Здесь я вас научу как правильно делать Квесты:
Квест первый:
КВЕСТ

Создать папку Quest
Создать триггер Quest MAP Created
1`map inicialization
3`quest - create quest
create a Required quest titled (Например: Выживание Героя) with the description (empty string) using icon path (Картинка)
Переменная
HeroSurvival
Quest
none
Переменная
HeroSurvivalReq
quest requirement
none
3`set variable
Set HeroSurvival
=
(last created quest)
3`Quest - mark quest as discovered (discovered - это действие обозначает что квест стал видим на панели меню во вкладке квесты, а Undiscovered - помечается знаком вопроса, чтобы было все реалистично о всех квеста помечать их Undiscovered для того когда герой входил в регион, например пришел к персонажу который дает задание после он отмечается discovered то есть в этом случае он открывается и его можно увидеть. ПОДСКАЗКА: Это нужно для того чтобы так сказать квесты не брались из ниоткуда, а были аккуратно сложены в общую папку и закрыты(Undiscovered), а тут подошел к персонажу и не надо корявиться - просто отмечаешь его открытым и все, наслаждаешься прохождением.)
mark HeroSurvival as Undiscovered
3`Quest - create quest requirement
create q quest requirement for HeroSurvival with the dscription (Например: Ваши герои не должны погибнуть)
3`set variable
Set HeroSurvivalReq
=
(last created quest requirement)

Создать триггер HeroQuestVD
1`unit - unit enters region
a unit enters (region)
2`boolean compasion
unit - unit classification check
event response - entering unit
is
hero
equal to true
3`cinematic mode
turn cinematic mode on for (all players)
3`Trigger - turn off (this trigger)
3`Comment
(Например: Убить вражеского героя)
3`cinematic - transmission from unit
send transmission to (all players) from
(unit)
named (Имя юнита) play no sound and display
(Например: Приветствую тебя незнакомец! У меня для тебя есть работа. Доставишь потерянные кораблем ящики, за каждый ящик даю 100 золотых. Сам корабль находится недалеко отсюда.)
modify duration add 3.50 seconds and wait
3`cinematic mode
turn cinematic mode off for (all players)
3`quest - quest message
display to (all players) the quest completed message
(Например: ДОПОЛНИТЛЬНОЕ ЗАДАНИЕ
Доставить потерянные кораблем ящики, за каждый ящик дается 100 золотых.)
3`quest - mark quest as discovered
mark HeroSurvival as Discovered
3`wait 4.00seconds
3`trigger - turn on
turn on QuestBox Completed

Создать триггер QuestBox Completed
1`unit - specific unit event
(unit) dies
2`boolean compasion
player - player in player group
owner of unit
owner of
event response - killing unit
is in player 1(red)
equal to true
3`trigger - turn off (this trigger)
3`quest - quest message
display to (all players) the quest completed message
ДОПОЛНИТЕЛЬНОЕ ЗАДАНИЕ ВЫПОЛНЕНО
Ящики
3`quest - mark quest requirement as completed
mark HeroSurvivalReq as completed
3`quest - mark quest as completed
mark HeroSurvival as Completed

ГЕРОЙ ПРОКАЧИВАЕТСЯ НА НЕЙТРАЛЬНЫХ ВОЙСКАХ ВЫШЕ 5 УРОВНЯ

Герой прокачивается на creep больше пятого уровня - Игровые Константы: Hero XP Gained – Creep Reduction Table 80, 60, 25, 0 и т.д

minus1024   9 марта 2011 в 23:50

У ЮНИТОВ В ОБЛАСТИ НАНОСИТСЯ ПОСЕКУНДНЫЕ ПОВРЕЖДЕНИЯ

Переменная
FlameDamage3
unit group
empty unit group (default)
Side Fire Trap 3 Setup
1`map initialization
3`animation - play animation for doodads in region
play the death animation for all doodads of type (speceffect) within (region)

Side Fire Trap 3 Animation
1`time - periodic event
every 2.00 seconds of game time
3`animation - play animation for doodads in region
play the stand animation for all doodads of type (speceffect) within (region)
3`wait 0.20
3`Trigger - run Side Fire Trap 3 Damage (cheking conditions)
3`wait 1.20
3`animation - play animation for in region
play the death animation for all doodads of type (speceffect) within (region)

Side Fire Trap 3 Damage
3`unit group - clear
remove all unit from FlameDamage3
3`unit group - add unit group
add all units of
units in region
units in (region) to FlameDamage3
3`if/then/else
if
boolean compasion
unit group - unit group is empty
FlameDamage3 equal to true
then do skip remaining actions
else do (do noting)
3`unit group - pick every unit in unit groupand do action
pick every unit in FlameDamage3 and do
Unit - set life (to value)
set life of (picked unit) to
arithmetic
unit - property
Life of (picked unit) - 30
3`special effect - create special effect on unit
create a special effect attached to the origin of
random unit from unit group
random unit from FlameDamage3
using (Effect)
3`special effect - destroy special effect
destroy (last created special efect)

КОГДА ЮНИТ ЗАХОДИТ В ОБЛАСТЬ ГДЕ ЕСТЬ ВЫБОР ГЕРОЕВ, ТО СОЗДАЕТСЯ БОЕВАЯ ЕДИНИЦА ПОД КОНТРОЛЕМ ИГРОКА

Hero Selection
1`unit - unit enters region
a unit enters Hero Selection
3`unit - create units facing angle
create 1 (Hero) for(owner 0f(entering unit)) at (region где должен появиться герой) facing default building facing degress
3`hero - create item for hero
create (item) and give it to (last created unit)
3`if/then/else
player compasion
owner of unit
owner of (entering unit) equal to player 1(red)
then do
set variable
set Пременная Player1 (Unit,none) = (last created unit)
else do
(do nothing)
3`unit - remove
remove (entering unit) from the game

УКАЗАТЕЛИ ПУТИ, ДАЮЩИЕ СООБЩЕНИЯ

Tables
Tab1
1`unit - unit enters region
a unit enters tab1
2`boolean compasion
trigger - trigger queue is empty
equal to true
2`unit compasion
(entering unit) equal to (hero)
3`trigger - turn off(this trigger)
3`game - display to (all players) the text ПУТЬ

Создание «звукового набора»

Вы не сможете создать новый звуковой набор для WarCraft III, но вы можете заменить стандартный. Убедитесь, что, выбирая звуки для замены, никакие другие юниты его не будут использовать, а только те, которые вам нужно заменить, ведь это очень важно в ва-шей карте.
Затем откройте Редактор звуков, найдите папку со звуками для замены, например возьмем юнита типа «Пехотинец», находим папку Units/Human/Footman/. Далее просто щелкаем на звук, который мы хотим заменить, правой кнопкой мышки и выберем «Заменить стан-дартный звук». Тогда вы можете заменить стандартный звук на наш новый. Помните, что вы можете сделать так для любого звука в WarCraft III, так вы можете изменить звуки за-клинаний, декораций и звуки окружения.

Timer Board - Всеми любимые часы

1`Time - time elapsed
elapsed game time is 0.05 seconds
3`Countdown timer - create timer window
create a timer window for (last started timer) with title TIME
3`Countdown timer - start timer
start (last started timer) as a Repeatind timer that will expire in 0.00 seconds

ВОЗВОДИТ УБИЙСТВО 3 ЮНИТОВ ИЗ 5 И т.Д

Create Footmen
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to (==) Создать Пехотинцев
Actions
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Unit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing (270.0) degrees
Set George[(Integer A)] = (Last created unit)
For each (Integer A) from 3 to 5, do (Unit - Kill George[(Integer A)])

minus1024   10 марта 2011 в 01:07

УБИЛ НЕСКОЛЬКО КОНСТРУКЦИЙ (например 6)И КВЕСТ БУДЕТ ВЫПОЛНЕН

SetupQuests
1`map initilization
3`quest - create quest
create a Optional, undiscovered quest titled ЛУДЛАС
with the dscription Для захвата Лудласа нужно так-же уничтожить все сельские дома и их жителей, чтобы они все сгорели дотла и немишали Мицакулту осуществить Апокллипсис., using icon path (icon).
Переменная
DestroidLydlasQwest
quest none
Set DestroidLydlasQwest = (last created quest)

Kill House
1`unt - specific unit event
(unit) dies
3`set variable
set lydlas = arthmetic
lydlas + 1
3`run Compliet quest (checking condotions)

Переменная
Lydlas
integer
0(default)
Compliet Qwest
2`integer compasion
lydlas greater than or equal to 1
3`quest - quest message
display to (all players) the quest completed message ДОПОЛНИТЛЬНОЕ ЗАДАНИЕ ВЫПОЛНЕНО
СИЯЮЩАЯ ЦИТАДЕЛЬ
3`leaderboard - show/hide
hide (last created leaderboard)
3`leaderboard - show/hide
hide LeaderboardHouses

переменная
DestroidSCQwestReq
quest requirement none
3`quest - create quest requirement
create a quest requirement for DestroidSCQwest with the description (Уничтожте Лудлас.)
Set DestroidSCQwestReq = (last created quest requirement)

Переменная
Houses
integer
42

триггер LeaderHouses
3`leaderboard - create
create a leaderboard for (all players) titled (Домов)
3`Leaderboard - add player
add player 1(red) to (last created leaderboard) with label (Осталось:) and value (Houses)
3`leaderboard - change player value
change the value for player 1(red) in (last created leaderboard) to Houses
3`leaderboard - show/hide
show leaderboardHouses

Триггер L D House01
1`unit - specific unit event
(House) dies
2`unit compsion
event response - killing unit
killing unit
equal to
(Unit)
3`Переменная
Houses
Integer
1
Set Houses = Arthmetic
Houses - 1
3`Leaderboard - change player value
change the value for player 1(Red) in (last created leaderboard) to Houses
3`Leaderboard - show/hide
show leaderboardHouses
Переменная
leaderboardHouses
leaderboard none

СОБИРАЕТ НЕСКОЛЬКО АРТЕФАКТОВ В ОДИН У ЮНИТА/ГЕРОЯ:

События:
Боевая единица - A unit Получает предмет
Условия:
Действия:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если - Условия:
((Triggering unit) has an item of type ) равно Да
((Triggering unit) has an item of type ) равно Да
То - Действие:
Предмет - Remove (Item carried by (Triggering unit) of type )
Предмет - Remove (Item carried by (Triggering unit) of type )
Герой - Create and give it to (Triggering unit)
Иначе - Действие:
Do nothing

СОБИРАЕТ НЕСКОЛЬКО АРТЕФАКТОВ В ОДИН У ЮНИТА/ГЕРОЯ, НО ЕСЛИ У ЮНИТА/ГЕРОЯ ДВА ОДИНАКОВЫХ ПРЕДМЕТА ТО ДЕЛАТЬ ЭТОТ КОД:
Целочисленная (Integer), назовём её ItemCount
События:
Боевая единица - A unit Получает предмет
Условия:
Действия:
Set ItemCount = 0
For each (Integer A) from 1 to 6, do (Actions)
Цикл - Действия:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если - Условия:
(Item-type of (Item carried by (Triggering unit) in slot (Integer A))) равно
То - Действие:
Set ItemCount = (ItemCount + 1)
Иначе - Действие:
Do nothing
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если - Условия:
ItemCount больше или равно 2
То - Действие:
Предмет - Remove (Item carried by (Triggering unit) of type )
Предмет - Remove (Item carried by (Triggering unit) of type )
Герой - Create and give it to (Triggering unit)
Иначе - Действие:
Do nothing

Герой достигает уровня и больше не накапливает опыт

Experience Cap
1`Unit - player-owned unit event
player 1(Red) Gains a level
2`unit compasion
leveling hero equal to (unit)
2`integer compasion
hero - hero level
leveling hero
greater than or equal to 4
3`hero - enable/disable experience gain
disable (unit)

minus1024   10 марта 2011 в 13:07

ДОРОГИЕ ДРУЗЬЯ СТАВЬТЕ ОЦЕНКИ И КОММЕНТИРУЙТЕ МОИ МАЛЕНЬКИЕ ПОДСКАЗКИ КАСАЮЩИЕСЯ ТРИГГЕРОВ ЭТО ТОЛЬКО МОИ ОСНОВЫ, БОЛЕЕ СЛОЖНЫЕ ТРИГГЕРЫ ВАМ ЕЩЕ НЕ ПОТЯНУТЬ:)

КОГДА ГЕРОЙ УМИРАЕТ И У НЕГО БОЛЬШЕ НЕТ КРЕСТА ПЕРЕРОЖДЕНИЯ ЭТА ОБЛАСТЬ ЕЩЕ ВИДНА

Создаите новый триггер OVERGAMEVISible/Death
Создайте новую переменную
DeathVis
visibility none
И еще чтобы это конечно происходило дайте вы наконец герою крест перерождения!

1`Unit - Player-owned unit event
a unit owned by player 1(red) uses an item
2`Or
item-tipe compasion
item-type of item
item-type of (item being manipulation)
Equal to Ankh of Reincarnation
or
item-type compasion
item-type of item
item-type of (item being manipulated)
equal to
3`Game - text message (explicitly timed)
display to player 1(red) for 6.00 seconds the text ( |cffcd32cdThe Ankh of Reincarnation glows brightly...|r )
3`Visibility - create visibility modifer circle
create an initially enabled visibility modifer for Player 1(red) emitting Visibility from
Position of Unit
Position of Hero manipulating item to a radius of 512.00
3`Set DeathVis = (last created visibility modifer)
3`wait 8.00 seconds
3`Visibility - destroy DeathVis

k0lenval   18 марта 2011 в 22:42

так держать minus1024, еще не много и мона создавать новую тему :)

DLALV_X   19 марта 2011 в 15:19

Можно ли увеличить максимальное количество разрушаемых декораций (деревьев, в данном случае) на карте, если можно, то как?

monc4ter   20 марта 2011 в 19:04

Помогите пожалуста как сделать так, чтобы вводя -name (Имя) в ник игрока добавлялось только (Имя)

monc4ter   22 марта 2011 в 16:12

Тут ваще ктонить бывает?? может кто помоч ?? аУУУУУУУУУ

monc4ter   22 марта 2011 в 16:13

Помогите как сделать так, чтобы вводя -name (Имя) в ник игрока менялся на (Имя)

monc4ter   22 марта 2011 в 16:13

ой) как сделать так, чтобы вводя -name (Имя) ник игрока менялся на (Имя)!

monc4ter   23 марта 2011 в 19:18

еще вопрос , мб кто знает почему у меня в мапе такой лаг кароче после минут 15-20 игра зависает ,почему ЭТо? и как это исправить буду блогадарен.

Гривуc   27 марта 2011 в 19:07

monc4ter
Посмотри какие триггеры у тебя врубаются в это время и убери их - если игра перестанет вылетать то в них была ошибка.

Ещё у меня вопрос - Как сделать выбор героев двойным кликом на них? Умею делать только 1 клика. Заранее спс

Madara199519   3 апреля 2011 в 10:00

люди скажите как сделать скил и чтоб внутри него можно было открывать другие скилы?

minus1024   5 апреля 2011 в 01:35

Гривус, слушай напишешь как делать выбор перса при старте 1 кликом, мне просто лень самому допетривать. Короч распишешь в порядке 1-событие, 2-условие, 3-действие ок?

minus1024   5 апреля 2011 в 01:57

ЕЩЕ ОДНА МОЯ ЗАДУМКА В ПОМОЩЬ КАРТОСТРОИТЕЛЕЙ
Как сделать чтобы герой не получал опыт, вдали от битвы?
Убрать галочку в игровых константах из параметра Опыт героя – Общее распределение(Global Experience)

А можно ли как-то выделить несколько переменных сразу и скопировать?
Если речь идет о иморте триггеров в свою карту, то создавать переменные не нужно - они создаются автоматически если поставить галочку в пункте меню "Файл" -> "Параметры" -> закладка "Общие" -> Ставь галочку на "Автом. Создавать неизв. переменные во время вставки триггеров". После этого просто копируем триггеры - переменые создадутся автоматически.

Как сделать так, чтобы вода стекала со склона вниз ?
В меню "Дополнительно" снимите галочку напротив пункта "Ограничение уровня воды". Теперь можно воду пускать вниз или даже вверх.

Как сделать, чтобы срубленные деревья вырастали вновь ?
Событие - Декорация умирает
Действие - пик евери декорация и ressurect

ФЛАГ - ИГРОК ПОЛУЧАЕТ ОТ ВСЕХ УБИТЫХ КАК И Creep ТАК И ЗА ВОИНОВ ИГРОКОВ ЗОЛОТО
Игрок - Set Player Flag on/off - Получает в награду за убийство любого воина

НЕВИДИМАЯ ВОЛНА - СПОСОБНОСТЬ
Создать способность Shockwave как у Героя-минотавра Орков, очистить в полях: art-missle art, art-missle speed изменить c 1050 на 800 и все - далее дать способность герою.

СКОРОСТЬ ИГРОВОГО ДНЯ
3`game - set time of day speed
set time of day speed to 30% of the default speed

ПОСТ ИГРЫ СКРИН
3`player - show/hide in score screen
hide player 1(red) in the post-game score creen

КАЖДЫЕ 120 или любое другое число СЕКУНД ОТРЯД ВРАГА НАПАДАЕТ НА ВАШ ЛАГЕРЬ

Attacks
1`time - periodic event
every 120.00seconds of game time
3`unit group - pick every unit in unit group and do action
pick every unit in
units owned by player of type
units owned by Player12(brown) of type (unit - выбор по своему усмотрению)
and do
unit - issue order targeting a unit
order (picked unit) to attack
random unit from unit group
random unit from
units in region owned by player
units in (Region - он должен находиться на вашей базе) owned by Player 1(red)
Например можно вместо Player12(brown) поставить другого игрока который будет выбран в качасте нападающего в карте.

Герой сохраняется в пакет и действие начинается другим персонажем

Название триггера
Player 1 enters Tank

Прежде чем это делать создайте 2 региона - один где герой потеряет контроль и другой где получит новый контроль, триггер старого образца, так что не судите строго, в этом случае если сделаете эти два триггера на вход и выход из региона - можете изменить некоторые параметры триггера. Это надежный триггер, + его в том что герой остается еще на карте и например отдан нейтральному игроку и сделан неуязвимым ну чтоб наверняка.

1`Unit - unit enters region
(region)
2`Player compasion
owner of unit
entering unit equal to player 1(Red)
3`trigger - turn off(this trigger)
3`set variable
Переменная
TempPlayer1
Unit
None TempPlayer1 = Player1
Переменная
Player1
Unit
None
3`Unit - create units facing point
1 (Unit)..Player 1(Red).. (Region) facing (region)
3`Set variable
Player1 = (last created unit)
3`Comment
NLawson - Here I keep the player in a temporary variable and change 'player1' to the tank
3`Unit - hide
TempPlayer1


Название триггера
Player 1 Leaves Tank
1`Unit - unit enters region
(Region)
2`Unit Compasion
Entering unit equal to Player1
3`Trigger - turn off(This trigger)
3`Unit - unhide
TempPlayer1
3`Unit - Move Unit(instantly)
TempPlayer1... (Region)
3`Special effect - create special effect at point
(Region)...Mass teleport\Random
3`Переменная
TankSFX
Special effect
array 1 none
Set variable
TankSFX(1) = Last created special effect)
3`Wait 0.10sec
3`Unit - hide Player1
3`Set variable
Player1 = TempPlayer1
3`wait 2.00sec
3`special effect - destroy TankSFX(1)
В обоих триггерах Плюс камера к месту событий этих героев, т.е обязательно прикрепите камеру к действующему герою\юниту

Если у вас есть в карте мультиборд\мультидоска\multiboard то делайте приведенное ниже:

ВСЕ ПРО МУЛЬТИБОРД - ПОКАЗ МУЛЬТИБОРДА КОГДА ИГРОК ВСТУПАЕТ В ИГРУ ИНАЧЕ НИЧЕГО НЕ ПРОИСХОДИТ
Переменная
целочисленная переменная (integer), назовем ее "player"
Переменная
игрок (player), назовем ее "MBplayer"

1`Событие
Map initialization
2`Условие
3`Дейсвие
Set player = 0
For each (Integer A) from 1 to 12, do (Actions)
Цыкл - Действия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если - Условие
((Player((Integer A))) slot status) равно "Играет"‚
То - Действия
Set player = (player + 1)
Set MBplayer[player] = (Player((Integer A)))
Иначе - Действия

Этот триггер установил наш мультиборд, и мы установили отображение переменных “kills” в нужных нам местах

События
Unit - A unit Dies
Условия
Действия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Owner of (Triggering unit)) Equal to Player 1 (Red)
Then - Actions
Set OrcKills = (OrcKills + 1.00)
Multiboard - Set the text for TutorialBoard item in column 2, row 2 to (String(OrcKills))
Else - Actions
Do nothing
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Owner of (Triggering unit)) Equal to Player 2 (Blue)
Then - Actions
Set HumanKills = (HumanKills + 1.00)
Multiboard - Set the text for TutorialBoard item in column 2, row 1 to (String(HumanKills))
Else - Actions
Do nothing

Этот триггер показывает практически тоже самое, только он соханяет не количество убитых юнитов, а количество убитых героев

События
Unit - A unit Dies
Условия
Действия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Killing unit) Equal to Human_Hero
Then - Actions
Set Human_Hero_Kills = (Human_Hero_Kills + 1.00)
Multiboard - Set the text for TutorialBoard item in column 4, row 1 to (String(Human_Hero_Kills))
Else - Actions
Do nothing
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Killing unit) Equal to Orc_Hero
Then - Actions
Set Orc_Hero_Kills = (Orc_Hero_Kills + 1.00)
Multiboard - Set the text for TutorialBoard item in column 4, row 2 to (String(Orc_Hero_Kills))
Else - Actions
Do nothing

СОСТОЯНИЕ ЮНИТА В МУЛЬТИБОРДЕ
1`Initialization
3`Действия:
Wait 0.1
MultiBoard c 2-я столбцами и 3-я строчками, назовем этот MultiBoard “Состояние юнита”
-на позицию 1-1 припишем текст “Имя:”
-на позицию 2-1 припишем текст “Состояние:”
//Мультиборд у нас будет ввиде таблици, и выше перечисленные тексты, это будут заголовки столбцов.
-на позицию 1-2 припишем текст “Артес-”
-на позицию 1-3 припишем текст “Илидан-”
//Эти имена будет стоять в колонке "Имя", и они будут неизменны.
-на позицию 2-2 и 2-3 припишем текст “Жив”.
//Эта будет стоять в колонке "Состояние", и они будут Менятся по ходу игры.
//Следующее что надо сделать, это оформит, определим расстояние для каждого текста:
-на позицию 1-1, 1-2, 1-3, делаем расстояние 5%.
-на позицию 2-1, 2-2, 2-3, делаем расстояние 7%, думаю, хватит.
//Сейчас у нас готов MultiBoard, но он крайне некрасив - все слова написаны белыми буквами.
//Так что следующий шаг, это дизайн:
-Цвет названия делаем красным (100%, 0%, 0%)
-Цвет текста (1-1 и 2-1) делаем, синим (0%, 0%, 100%)
-Цвет текста (1-2 и 1-3) делаем зеленым (0%, 100%, 0%)
-Цвет текста (2-2 и 3-3) делаем желтым (0%, 100%, 100%)

Далее поставим 2-х юнитов на карту рядом друг с другом (Артеса и Илидана).
Создаем переменную массив integer (целочисленная) OTC4ET
1`Событие Generic Unit Event, Юнит умирает.
3`В действиях: Создаем 2 действия – If / Then / Else, Multiple Functions.
В первом ставим, что:
Если: Умерший юнит = Артес
То:
Set OTC4ET (1) = 30
//Далее без циклов тут не обойтись потому создаем цикл
For each (integer B) from 1 to 30, do (Actions)
Цикл – Действия
//Далее делаем в позиции 2-2, текст использую пару функций
(Делаем действие создание текста с функцией (Мертв(+((String(OTC4ET(1)))+сек.)))
//Что это значит? Это означает что создастся текст “Мертв(" + "[текущее значение переменной OTC4ET(1)]" + "сек.)”
//Далее, конечно же, ставим действие:
Set OTC4ET (1) = OTC4ET (1) - 1
Wait 1.00 game-time second
//На этом цикл закончился.
(Создаем текст в позиции 2-2 “Жив”)
//И ставим действие возрождение героя:
Герой – Instantly revive (Triggering unit at (Position of (Triggering unit), Показать revival graphics))
//Все
//(В следующем действии (If / Then / Else) ставим ВСЕ ТО ЖЕ САМОЕ только заменяем в условии Илидана на Артеса
//а во всех действиях создания текста в MultiBoard-е заменяем 2-2 на 2-3. И везде используем переменную не OTC4ET(1), а OTC4ETT(2).

ОКРУЖЕНИЕ - ЛЬЕТ ДОЖДЬ КОГДА УТРО ИЛИ ТУМАН КОГДА НОЧЬ

1`game - time of day
the in-game time of day becomes greater than or equal to 6.00
3`environment - enable/disable weather effect
turn (last created weather effect) off
3`environment - remove weather effect
remove (last created weather effect)
3`wait 0.01 seconds
3`environment - create weather effect
create at (playable map area) the weather effect
ashenvale rain (heavy)
3`environment - enable/disable weather effect
turn (last created weather effect) on
3`Trigger - run GameThunder Periodic (cheking conditions)

Новый Триггер - GameThunder Periodic

1`Time - every 35.00 seconds of game time
3`Sound ( Звук Грома )

minus1024   5 апреля 2011 в 02:12

ВОТ ПРЕДСТАВЛЯЮ ВАМ СРЕДНЕЙ СЛОЖНОСТИ КВЕСТ

В РЕГИОНЕ СТОИТ ФОНТАН ЖИЗНИ РЯДОМ КВЕСТОДАТЕЛЬ, ОН ДАЕТ ЗАДАНИЕ ПРИНЕСТИ 2 АРТЕФАКТА ДЛЯ ТОГО ЧТОБЫ ФОНТАН СНОВА ВОЗРОДИЛСЯ(В НАЧАЛЕ У ФОНТАНА ДОЛЖНА БЫТЬ ОТКЛЮЧЕНА СПОСОБНОСТЬ АУРА РЕГЕНЕРАЦИИ)

Quest Fountain Create
2`boolean compasion
trigger - trigger is on
(this trigger) is on
equal to true
3`trigger - turn off(this trigger)
3`comment
Create the quest objects
3`quest - create quest
create a optional,undiscovered quest titled (Defiled Fountain) with the description (The Fountain of Health once healed anyone who drank from it, but lately the water has become foul. You must retrieve the Vine of Purification and the Seed of Expulsion and bring them back to the Fountain so Sen'Jin can concoct a purifying potion.)using icon path
(icon)
Переменная
QuestFountain
quest
none
Переменная
QuestFountainReqVine
quest requirement
none
Переменная
QuestFountainReqSeed
quest requirement
none
Переменная
QuestFountainReqReturn
quest requirement
none
3`set variable
set QuestFountain = (last created quest)
3`quest - create quest requirement
create a quest requirement for QuestFountain with the description (Obtain the Vine of Purification)
3`Set variable
set QuestFountainReqVine = (last created quest requirement)
3`quest - create quest requirement
create a quest requirement for QuestFountain with the description (Obtain the Seed of Expulsion)
3`Set variable
set QuestFountainReqSeed = (last created quest requirement)
3`quest - create quest requirement
create a quest requirement for QuestFountain with the description (Return both items to the Fountain)
3`Set variable
set QuestFountainReqReturn = (last created quest requirement)

Quest Fountain Discover
3`trigger - turn off(this trigger)
3`comment
Ensure that the quest exists
3`trigger- run(checking conditions)
run Quest Fountain Create (checking conditions)
3`quest - mark quest as discovered
mark QuestFountain as discovered
3`comment
Display a quest message.
3`quest - quest message
display to (all players) the quest discovered message(|cffffcc00OPTIONAL QUEST|r
Defiled Fountain
- Obtain the Vine of Purification
- Obtain the Seed of Expulsion
- Return both items to the Fountain)
3`visibility - create visibility modifier circle
create aninitiality enabled visibility modifer for player 1(red) emitting visibility from (region -Там где нужно создать видимость) to a radius of 512.00
3`visibility - destroy visibility modifier
destroy (last created cisibility modifier)
3`visibility - create visibility modifier circle
create aninitiality enabled visibility modifer for player 1(red) emitting visibility from (region -Там где нужно создать видимость) to a radius of 512.00
3`visibility - destroy visibility modifier
destroy (last created cisibility modifier)
3`comment
SUMMON EYES HERE
3`cinematic - ping minimap
ping minimap for player 1(red) at (region Vine) for 7.0 seconds
3`cinematic - ping minimap
ping minimap for player 1(red) at (region Seed) for 7.0 seconds
3`camera - set spacebar-point
set a spacebar-point for player 1(red) at (region Vine)
3`camera - set spacebar-point
set a spacebar-point for player 1(red) at (region Seed)

Quest Fountain Updated
3`comment
Ensure that the quest exists
3`trigger- run(checking conditions)
run Quest Fountain Create (checking conditions)
3`comment
Display a quest message.
3`quest - quest message
display to(all players) the quest discovered (|cffffcc00OPTIONAL QUEST UPDATE|r
Defiled Fountain)
3`if/then/else
if
boolean compasion
quest - quest requirement is completed
QuestFountainReqVine is completed
equal to true
then do
quest - quest message
display to (all players) the quest requirement message ( - |cff808080Obtain the Vine of Purification (Completed)|r)
else do
quest - quest message
display to (all players) the quest requirement message ( - Obtain the Vine of Purification)
3`if/then/else
if
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed
equal to true
then do
quest - quest message
display to (all players) the quest requirement message ( - |cff808080Obtain the Seed of Expulsion (Completed)|r)
else do
quest - quest message
display to (all players) the quest requirement message ( - Obtain the Seed of Expulsion)
3`quest - quest message
display to (all players) the quest requirement message ( - Return both items to the Fountain)
3`comment
Ping Minimap
3`comment
Seed Completed, Vine Not
3`if/then/else
if
and
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed
equal to true
and boolean compasion
quest - quest requirement is completed
QuestFountainReqVine
is completed equal to false
then do cinematic - ping minimap
ping minimap for player 1(red) at (Region Vine) for 7.00seconds
else do (do nothing)
3`if/then/else
if
and
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed equal to true and
boolean compasion
quest - quest requirement is completed
QuestFountainReqVine is completed equal to false
then do camera - set spacebar-point
set a spacebar-point for player1(red) at (region Vine)
else do (do nothing)
3`comment
Vine Completed, Seed Not
3`if/then/else
if
and
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed
equal to false
and boolean compasion
quest- quest requirement is completed
QuestFountainReqVine is completed
equal to true
then do cinematic - ping minimap
ping minimap for player 1(red) at (Region RevealSeed) for 7.00seconds
else do (do nothing)
3`if/then/else
if
and
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed equal to false and
boolean compasion
quest - quest requirement is completed
questFountainReqVine is completed equal to true
then do camera - set spacebar-point
set a spacebar-point for player 1(red) at (region Reveal Seed - то есть там где лежат предметы)
else do (do nothing)
3`comment
Both Completed
3`if/then/else
if
and
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed equal to true
and boolean compasion
quest - quest requirement is completed
QuestFountainReqVine is completed equal to true
then do
cinematic - ping minimap
ping minimap for player 1(red) at (Unit - position of unit (Выберите регион на котором стоит Фонтан жизни)) for 7.00seconds
else do (do nothing)
3`if/then/else
is
and
boolean compasion
quest - quest requirement is completed
QuestFountainReqSeed is completed equal to true
and boolean compasion
quest - quest requirement is completed
questFountainReqVine is Completed Equal to true
then do
camera - set spacebar-point
set a spacebar-point fo player 1(red) at (Region - где стоит фонтан жизни)
else do (do nothing)

Новый триггер
Quest Fountain Completed
3`comment
Ensure that the quest exists
3`trigger - run Quest Fountain create (cheking conditions)
3`comment
Update the quest
3`quest - mark quest as discovered
mark QuestFountain as Discovered
3`quest - mark quest requirement as completed
mark QuestFountainReqReturn as completed
3`quest - mark quest requirement as completed
mark QuestFountainReqSeed as completed
3`quest - mark quest requirement as completed
mark QuestFountainReqVine as completed
3`quest - mark quest as completed
mark QuestFountain as completed
3`comment
Display a quest message.
3`quest - quest message
display to (all players) the quest completed message (|cffffcc00OPTIONAL QUEST COMPLETED|r
Defiled Fountain)

ТЕПЕРЬ САМ КВЕСТ ЧТОБЫ БЫЛО ЧЕМУ СОВЕРШАТЬ ДЕЙСТВИЯ

Rescue Fountain Troll
2`boolean compasion
trigger - trigger is on
this trigger is on
equal to true
3`trigger - turn off (this trigger)
3`unit - rescue unit
rescue (unit - Он должен стоять рядом с фонтаном) for player 1(red) and change color
3`unit - issue order targeting a point
order (unit) to move to (region - где стоит фонтан жизни)
3`unit - make invilnerable/vulnerable
make (unit) vulnerable
3`Special effect - destroy (unitSpec effect - Восклицательный знак)

Player Approaches Fountain
1`unit - unit within range
a unit comes withnin 256.00 of (unit Region)
2`boolean compasion
GameOver Equal to false
Переменная GameOver
boolean
false
2`player compasion
owner of unit
owner of triggering unit equal to player 1(red)
2`boolean compasion
quest - quest is discovered
QuestFountain is discovered equal to false
3`trigger - turn off(this tigger)
3`trigger - add to trigger Queue
add (Player Approaches Fountain Q) to the trigger queue (checking conditions)

Player Approaches Fountain Q
2`boolean compasion
GameOver equal to false
2`boolean compasion
quest - quest is discovered
QuestFountain is discovered equal to false
3`comment
Reveal the Troll for his speech
3`Visibility - create visibility modifier circle
create an initially enabled visibility modifier for player1(red) emitting visibility from (region) to a radius of 600,00
3`comment
Set Spacebar and Ping
3`camera - set spacebar-point
set a spacebar-point for player 1(red) at
unit - position of unit
position of ( Unit - Фонтан)
3`cinematic - ping minimap
ping minimap for player1(red) at
unit - position of unit
position of ( Unit - Фонтан)
for 7.00seconds
3`sound - set all volume channels for speech
setup all volume channels for speech
3`cinematic - transmission from unit
send transmission for (all players) from (unit - дающий задани, и который стоит у фонтана) named (Name) play no sound and display (Transmission) modify duration
set to 20.00seconds and dont wait
3`wait 19.00seconds
3`sound - reset all volume channels
reset all volume channels to 100%
3`wait 1.00seconds
3`comment
Update Quest
3`trigger - run(checking conditions)
run Quest Fountain Discover (checking conditions)
3`wait campaing quest delay seconds
3`trigger - remove(this trigger) from the trigger queue
3`wait 4.00seconds
3`comment
Kill the revealer
3`Visibility - destroy visibility modifier
destroy (last created visibility modifier

Player Finds Component
Здесь нужно сделать области которые накрывают регион где лежат эти предметы
1`unit - unit enters region
a unit enters (Region - vine tripwire)
1`unit - unit enters region
a unit enters (Region - seed tripwire)
2`boolean compasion
GameOver equal to false
2`player compasion
owner of unit
owner of Event response - entering unit
equal to player1(red)
2`boolean compasion
quest - quest is discovered
QuestFountain is discovered equal to false
3`trigger - turn off(this trigger)
3`trigger - add to trigger queue
add Player Finds Component Q to the trigger queue (chekcking conditions)

Player Finds Component Q
2`boolean compasion
GameOver equal to false
2`boolean compasion
quest - quest is discovered
QuestFountain is discovered equal to false
3`comment
Update Quest
3`trigger - run(checking conditions)
run Quest Fountain Discover checking conditions
3`wait campaing quest delay seconds
3`trigger - remove from trigger queue
remove (this trigger) from the trigger queue

Player Obtains Vine
1`unit - player-owned unit event
a unit owned by player 1(red) acquires an item
2`boolean compasion
GameOver equal to false
Примечание: (item vine - для начало создайте 2 региона где будут лежать предметы и переменную на каждый предмет:
Переменная
item vine
item
no item закрепите set variable на созданный вами предметы на каждый. И еще одну переменную:
Переменная
item Seed
item
no item)
2`item compasion
event response - item being manipulated equal to Item Vine
3`trigger - turn off(this trigger)
3`wait 0.50 seconds
3`trigger - add to trigger queue
add Player Obtains Vine Q to the trigger queue (ignoring conditions)
Player Obtains Vine Q
2`boolean compasion
Game over equal to false
3`comment
Update Quest
3`camera - set spacebar-point
set a spacebar-point for player1(red) at
unit - position of unit
(unit)
3`quest - mark quest requirement as completed
mark QuestFountainReqVine as completed
3`trigger - run(checking conditions)
run Quest Fountain Updated (checking conditions)
3`wait campaing quest delay seconds
3`Trigger - remove from trigger queue
remove (this trigger) from the trigger queue

Player Obtains Seed
1`unit - player-owned unit event
a unit owned dy player1(red) acquires an item
2`boolean compasion
GameOver equal to false
2`item compasion
event response - item being manipulation
equal to ItemSeed
Переменная
ItemSeed
item
no item
Переменная
ItemVine
item
no item
3`trigger - turn off(this trigger)
3`wait 0.50seconds
3`trigger - add to trigger queue
add Player Obtains Seed Q to the trigger queue (ignoring conditions)

Player Obtains Seed Q
2`boolean compasion
GameOver equal to fasle
3`comment
Поиски Модернизации
3`camera - set spacebar-point
set a spacebar-point for player1(red) at
unit - position of unit
position of (hero)
3`quest - mark quest requirement as completed
mark QuestFountainReqSeed as Completed
3`trigger - run(checking conditions)
run Quest Fountain Updated (checking conditions)
3`wait campaing quest delay seconds
3`trigger - remove from trigger queue
remove (this trigger) from the trigger queue

Player returns both Reagents
1`unit - unit within range
a unit comes within 512.00 of (Фонтан Жизни)
2`boolean compasion
GameOver equal to false
2`unit compasion
triggering unit equal to (hero)
2`boolean compasion
hero - hero has item
(hero) has ItemVine equal to true
2`boolean compasion
hero - hero has item
(hero) has ItemSeed equal to true
3`trigger - turn off(this trigger)
3`trigger - add to trigger queue
add Player returns both Reagents Q to the trigger queue (checking conditions)
3`trigger - add to trigger queue
add Fountain Cinematic Q to the trigger queue (checking conditions)

Fountain Cinematic Q
2`boolean compasion
GameOver equal to false
3`comment
Fade Out
3`cinematic - fade filter
fade out over 1.00seconds using texture withe mask and color 0 0 0 0 transparency
3`wait 1.00seconds
3`comment
Set Up Scene
3`wait 0.25seconds
3`unit - issue order targeting a point
order (hero) to move to (region - fontan)
3`comment
Fade In
3`cinematic - fade filter
fade in over 0.50seconds using texture withe mask an color 0 0 0 0 transparency
3`wait 0.50
3`comment
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3`comment
CINEMATIC BEGINS - Cinematic Can Now Be Skipped
3`comment
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3`cinematic - transmission from unit
send transmission(all players) from (Unit - Квестодатель Фонтана) named (Sen`jin) play no sound and display (Hello again, outlanders! These ingredients be exactly what I need.)modifiy duration set to 7.50 seconds and don`t wait
3`wait 4.50seconds
3`comment
SPECIAL EFFECT IS NOT PLAYING
3`special effect - create special effect at point
create a special effect at (centr Fontan) using (Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl)
3`sound - set volume of charmTarget to 80%
3`sound - set 3D sound position
set position of CharmTarget1 to (region - fontan) with z offset 0.00
3`sound - play sound
play CgarmTarget1
3`sound - set volume of RestorationPotion to 80%
3`sound - set position of RestorationPotion to (region - fontan) with z offset 0.00
3`sound - play sound
play RestorationPotion
3`Переменная
SEFountain
Special Effect none
set Variable
set SEFountain = (last created special effect)
3`wait 2.00seconds
3`sound - set 3D Sound Positon
set position of FountainOfLifeWhat to (region - fontan) with z offset 0.00
3`sound - play FountainOfLifeWhat
3`wait 2.50
3`Переменная
Fountain
Unit
No unit
Cinematic - fade filter
fade out over 0.50seconds using texture Withe Mask and color 0 0 0 0
3`wait 0.50seconds
3`Trigger - Run Replace Fountain (checking conditions)
3`special effect - destroy SEFountain
3`fade filter
fade in over 0.50seconds using texture Withe Mask and color (0 0 0) 0% transparency
3`camera - apply FountainA for palyer1(red) over 0.00seconds
3`camera - apply FountainB for player1(red) over 7.00seconds
3`cinematic - transmission from unit
send transmission to (all players) from (unit возле фонтана) named Sen`jin play no sound and display (Now our warriors can heal themselves! Let me give you a little something for the trouble.)modify duration set to 8.00seconds and Don`t wait
3`wait 7.00seconds
3`3`cinematic - transmission from unit
send transmission to (all players) from (unit возле фонтана) named Sen`jin play no sound and display (These wards contain healing magic. No doubt you'll find them useful.) modify duration set to 8.00seconds and Don`t wait
3`wait 6.00seconds
3`comment
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3`comment
CINEMATIC ENDS - Cinematic Can No Longer Be Skipped
3`comment
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3`comment
Fade Out
3`cinematic - fade filter
fade out over 0.50seconds using texture Withe Mask and color 0 0 0 0
3`comment
Fade In
3`cinematic - fade filter
fade in over 0.50seconds using texture Withe Mask and color 0 0 0 0
3`wait 2.00seconds
3`trigger - remove from trigger queue
remove (this trigger) from the trigger queue

Replace Fountain
2`unit compasion
Fountain equal to no unit
3`comment
Replace the Defiled Fountain with a Fountain of Health
3`unit - replace
Replace ( Тут выбрать фонтан) with a ( А тут на который нужно поменять) using The old unit`s relative life and mana
3`set variable
set Fountain = (last replaced unit)

Player returns both Reagents Q
2`boolean compasion
GameOver equal to false
3`comment
Удаление Пунктов(изделий) Поисков
3`item - remove ItemSeed
3`item - remove ItemVine
3`comment
Полные Поиски
3`trigger - run(checking conditions)
run quest Fountain Completed (checking conditions)
3`wait campaing quest delay seconds
3`trigger - remove from trigger queue
remove (this trigger)from the trigger queue

Переменная
комментарий Пункты(изделия) Поисков
set variable
set ItemSeed = ( Здесь Первый Предмет Лежащий в области
set variable
set ItemVine = ( Здесь Второй Предмет Лежащий в области
item - make ItemSeed Invulnerable
item - make ItemVine Invulnerable

КОНТРОЛЬ ЮНИТА, УПРАВЛЕНИЕ ДВИЖЕНИЯ НА КНОПКАХ

Do not let the user zoom in
1`time - periodic event
every 0.50 seconds of game time
2`переменная
GameStarted
boolean false
пременная
playerdead
boolean fasle
boolean compasion
GameStarted equal to true
2`boolean compasion
playerdead equal to fasle
3`camera - set camera field (timed)
set player1(red)s camera distanse to target to
camera - camera field of camera object
distance to target of (camera - закрепленная на героем)
over 0.20seconds
3`camera - set camera field(timed)
set player1(red)s camera Angle of attack to
camera - camera field of camera object
angle of attack of (Camera)
over 0.20seconds
3`camera - set camera field(timed)
set player1(red)s camera rotation to
camera - camera field of camera odject
rotation of (camera)
over 0.20seconds
3`camera - lock camera target to unit
lock camera target for player1(red) to (Hero) offset by 0.00,440.00 using default rotation

Move Event
1`unit - specific unit event
(hero) is issued an order with no target
2`boolean compasion
GameStarted equal to true
3`if/then/else
if
order compasion
event response - issue order
equal to conversion - convert string to order
order (stop)
then do trigger - run(ignoring conditions)
run Move Left (ignoring conditions) else do (do nothing)
3`if/then/else
if
order compasion
event response - issued order
equal to conversion - convert string to order
order holdposition
then do trigger - run (ignoring conditions)
run Move Right (ignoring conditions)
else do (do nothing)

Move Right
Переменная
TargetDest
point
none
Переменная
TempX
real
0.00
3`set variable
set TargetDest = unit - position of unit
position of (hero)
3`set variable
set TempX = X of point
X of TargetDest
Переменная
MoveDistance
Real
192.00
3`set variable
set TempX = arthmetic
TempX + MoveDistance
3`if/then/else
if
real compasion
TempX Greater than
region - max X of Region
Max X of (Region - где находится главный герой)
then do set variable
set TempX = region - Max X of Region
Max X of (Region) else do
(do nothing)
3`set variable
set TargetDest = convert coordinates to point
point(TempX,1000.00)
3`unit - make unit face point
make (Hero) face TargetDest over 0.00seconds
3`unit - issue order targeting a point
order (hero) to Move to TargetDest
Move Left
3`set variable
set TargetDest = unit - position of unit
position of (hero)
3`set variable
set TempX = X of Point
X of TargetDest
3`set variable
set TempX = arithmetic
TempX - MoveDistance
3`if/then/else
if
real compasion
TempX Less than
region - Min X of Region
Min X of (region) then do
set variable
set TempX = Min X of Region
Min X of (region) else do (do nothing)
3`set variable
set TargetDest = conversion - convert coordinates to point
point(TempX,1000.00)
3`unit - make unit face point
make (hero) face TargetDest over 0.00seconds
3`unit - issue order targeting a point
order (hero) to move to TargetDest

ВСЕ ИНРОКИ ПОЛУЧАЮТ 1% или любое другое число ОТ ВСЕХ УБИЙСТ СЕБЕ В ОПЫТ

hero - set experience rate
make random player from player group
random player from (all players of control)
all players controlled by a user players
heroes gain 1.00% experience from future kills

ЗВУКИ БОЯ РЕАЛ С МЕЧАМИ
Combat - armor type metal
combat - attack 1 - weapon Metal Light Slice

И ЕЩЕ ДЛЯ САМЫХ РПГМАНОВ ДАЮ ИЗ МАНГИ ЦЕННУЮ ИНФОРМАЦИЮ - ВСЕ ПРЕДИСТОРИЯ ВАРКРАФТА, КОНЕЧНО ЖЕ ДЛЯ ОПИСАНИЯ ИЛИ ВСТУПИТЕЛЬНОГО РОЛЛИКА ВАШЕЙ КАРТЫ, ВСЯ ИСТОРИЯ СООТВЕТСТВУЕТ ДЕЙСТВИТЕЛЬНОСТИ!!!


Предистория

Мир под названием Азерот издревле был пронизан магией. Изначально секретами этого таинственного искусства владели лишь драконы и ночные эльфы, но со временем и среди людей стали появляться волшебники, способные обращаться с нестабильными энергиями. Ничего удивительного, что неумеренное использование магии привлекло внимание могущественной злой силы изза пределов мира - демонического Пылающего Легиона. Первую попытку вторжения Пылающего Легиона в Азерот ( впоследствии ее стали называть войной Древних ) удалось пресечь, но цена оказалась неимоверно высока: множество жизней оборвалось до срока, а Калимдор, центральный континент Азерота, раскололся на несколько мелких клочков суши. Во втором вторжении демоны Пылающего Легиона использовали в качестве пушечного мяса орков из мира Дренор. Орки, в чьи сердца демоны заронили проклятие жажды крови, ворвались в Азерот через Темный Портал. После многих битв Вторая война закончилась поражением и пленением орков. И все же Пылающий Легион не оставлял попыток завоевать Азерот. Чтобы ослабить защитников непокорного мира, демоны создали Короля Мертвых, наделив его невероятным могуществом. Король Мертвых посеял в землях Азерота смертоносную чуму, рассчитывая полностью уничтожить цивилизацию людей. Все, кто погибал от ужасной болезни, восставали из мертвых и пополняли армию нежити, а их души порабощались стальной волей Короля. После того как его Проклятое воинство прокатилось по земле, Квел`Талас, славное королевство высших эльфов, процветавшее тысячи лет, перестал существовать. Далее армия нежити двинулась на юг к Даларану, а после на Калимдор, родину ночных эльфов. На калимдоре наступление умертвий было остановлено, однако нежить превратила Лордерон и Квел`Талас в сочащиеся ядом Гиблые земли. Оплакивая свою погубленную родину, большинство высших эльфов приняли новое имя и обрели новую цель существования. Они стали называть себя эльфами крови и полностью посвятили жизнь поиску источников магии. Эльфы крови вычерпывали магию отовсюду, вытягивая волшебную силу в том числе и из плененных демонов. Тем временем часть Проклятого воинства взбунтовалась и предприняла попытку захватить власть в империи нежити. В конечном счете банши Сильвана Ветроногая и ее мертвые воины, известные под именем Отверженных, объявили руины столицы Лордерона своей территорией и поклялись изгнать армию нежити с королевских земель. К настоящему времени Король Мертвых воцарился в Нортренде и, по слухам, восстанавливает цитадель Ледяной Короны. Его доверенный помощник, маг Кел`Тузед, командует Проклятым воинством в Гиблых землях. Сильване и ее Отверженным удается удерживать лишь поля Тирисфала, жалкий осколок растерзанного войной королевства, в то время как люди, орки и ночные эльфы пытаются возродить свои некогда великие цивилизации.

minus1024   5 апреля 2011 в 16:48

ОДНА ОСОБЕННОСТЬ ДЛЯ 66 СПОСОБНОСТЕЙ ГЕРОЯ (НУ ЭТО ДЛЯ ТЕХ КТО ЛЮБИТ ИСПОЛЬЗОВАТЬ В СВОЕЙ КАРТЕ НЕМЫСЛИМУЮ СХВАТКУ С БОССОМ ИЛИ ПРОСТО ДЛЯ РАЗВЛЕЧЕНИЯ)

1) В редакторе объектов создайте 6 нестандартных способностей типа предмет - книга заклинаний/spell book, и очистите список в книге заклинаний в строках заклинаний книги - количество заклинаний в редакторе способности поставьте не 3 а 11 минимальное количество и 11 максимальное. Далее внеситете в каждую книгу нужные заклинания но только 11 иначе при входе в эту книгу обратно не вернуться!, и уберите галку в пункте способность предмета и дайте своему герою все эти спеллбуки ( примечание: можно поставить галку в способность герою - в этом случае в интерфейсе героя появляется красный плюсик - в этом случае можно улучшать каждую из ваших спеллбуков\книг заклинаний - это нужно для того чтобы например улучшить все ваши спеллы в каждой из книг, так сказать становятся еще мощней!:-) - и правда круто! )
Вот например У меня делается РПГ С красочным прохождением, выбором расы с помощью диалоговых окон ( кол-во рас у меня 12 - как и кол-игроков.хы), и у героя есть на выбор из 4 даммиюнитов у каждого из которых по 132 спелла, + к этому несколько десятков квестов и синематики. Но минус в том что все реплики карты не озвучены - народ не подскажете где достать программу звукозаписи и конвертировки звука в карту варкрафта?!

2) ЕЩЕ ГРОШЬ ДЛЯ РПГЭШНИКОВ - ПРОФЕСИИ В КАРТЕ РПГ
профессия: ремесленник, воин, маг, вор, священник - и т.д. например, если это воин, то он может быть благородным рыцарем; наемником, готовым на все ради денег; безжалостным убийцей и др. Маг может быть мудрецом, стремящимся к познанию мира; человеком не от мира сего, которого ничто не волнует, кроме каких-то собственных дел; тираном, стремящемся к власти и т.д.

СЕЙЧАС ПОГОВОРИМ О ТРИГГЕРНЫХ СПЕЛЛАХ ВАРКРАФТ3/ТРИГГЕРНЫЕ СПЕЛЛЫ.
ЕСТЬ НЕСКОЛЬКО ПРОСТЫХ СПЕЛЛОВ И ВОТ ИХ ПОРЯДОК СОЗДАНИЯ, НО ДЛЯ НАЧАЛА ПОВТОРЮСЬ ЧТОБЫ БЫЛО ВСЁ ПОНЯТНО: Под цифрами подразумевается: 1 - событие, 2 - условие, 3 - действие.
Если возникнут вопросы обращайтесь на почту: minus1024@yandex.ru в этом случае поделитесь со мной ценными идейками, ну или я с вами!
Итак начнем:
ТРИГГЕРНЫЙ СПЕЛЛ ( Техника дерева или спелл создающее дерево ): спелл типа юнит для вашего героя. Во-первых создадим способность Reveal, далее изменяем ее характеристики:
stats - area of effect 60.00
stats - buff пуст
stats - cast range 900.00
stats - casting time 0.20
stats - cooldown 12.00
stats - duration hero 0.00
stats - duration normal 0.00
stats - effect пусто
stats - mana cost 105
art - icon normal - UI\Feedback\Resources\ResourceLumber.blp
text - name - Techtree Woods
test - order string activ... root
test - order string deac... root
text - order string turn...unroot
text - use\... root
text - tooltip normal - Techtree Woods
text - tooltip normal E... - Creates the Tree in the specified place, blocking visibility and pass of a land forces. The best engineering in the sort, damages at growth, effect of growth low. Damages to all - independently who is under the purpose a caste.|n Cooldown 12 seconds.
ДАЛЕЕ СОЗДАЕМ ТРИГГЕР с названием Techtree Woods.
Создаем пременные:
1) Caster
Unit(unit)
none
2) FTWoods
Floating text
none
3) FWoodsDamage
unit Group
empty unit group(default)
ТЕПЕРЬ НАЧНЕМ НАШИ ДЕЙСТВИЯ
1`unit - generic unit event
a unit stats the effect of an ability
2`ability compasion
event response - ability being cast
equal to
Techtree Woods (-Это ваша созданная техника)
3`sound - set music volume
set music volume to 75.00%
3`set variable
set Caster = (event response - casting unit)
3`destructible - create
create a Village Tree Wall at
event response - target point of ability being cast facing (random angle) with scale 1.00 and variation 8
3`animation - play desctructible animation
play (last created destructible)`s
Value
Birth animation
3`animation - change desctuctible animation speed
change (last created descructible)`s animation speed to 65.00% of its original speed
3`visibility - createvisibility modifier circle
create an initialy enabled visibility modifier for (triggering player) emetting visibility from (target point of ability being cast) to a radius of 140.00
3`unit Group - clear
remove all units from FWoodsDamage
3`unit group - add unit group
add all units of
units in range
units within 120.00 of (target point of ability being cast) to FWoodsDamage
3`if\then\else
if
boolean compasion
unit group - unit group is empty
FWoodsDamage is empty
equal to true
then do (skip remaining actions) else do (do nothing) ( Примечание это мы сделали для того чтобы очистить группу и дать шанс нанести урон тем кто будет входить в эту группу )
3`unit group - pick every unit in unit group and do action
pick every units in FWoodsDamage and do
unit - set life(to value)
set life of (picked unit) to
arthmetic
unit - property
Life of (picked unit)
- 300 ( это число урона наносится тем кто находится на месте действия заклинания )
Loop - actions
Для начала создайте в инициализации карты следующее действие потом снова переходите к созданию триггерного спелла, итак: Создайте переменную:
PlayersGroup
player group
empty player group (default)
Далее делаем:
3`player group - pick every player in player group and do multiple action
pick every player in
all players of control
all players controlled by a user player
and do (actions)
Теперь переходим к нашему триггерному спеллу, продолжаем:
3`В том последнем триггере Unit Group в пункте Loop - Actions вставляем
player group - pick every player in player group and do multiple actions
pick every player in PlayersGroup and do (actions)
Loop - actions
camera - ahake camera
shake the camera for (picked player) with magnitude 11.00
3`wait 2.50 seconds
3`visibility - destroy visibility modifier
destroy (last created visibility modifier)
3`wait 0.50 seconds
3`unit group - pick every unit in unit group and do multiple actions
pick evry unit in
units in rect matching conditions
units in (playable map area) ((Unit compasion
(matching unit) not equal to Caster
and do (actions)
Loop - actions
player group - pick every player in player group and do multiple actions
pick every player in PlayersGroup and do (actions)
Loop - actions
camera - stop swaying\shaking camera
stop swaying\shaking the camera for (picked player)
sound - set music volume
set music volume to 100.00%
ПЕРВЫЙ ОБРАЗЦОВЫЙ ТРИГГЕР ГОТОВ! НАРОД ЕСЛИ ВЫ ТОЖЕ ЗНАЕТЕ КАКИЕ НИБУДЬ СПЕЛЛЫ ВЫКЛАДЫВАЙТЕ СЮДА, ЭТОТ ТРИГГЕР ЛУЧШЕ ТЕХ ПУСТЫШЕК О КОТОРЫХ ГОВОРИЛАСЬ НА ДРУГИХ САЙТАХ, ЭТОТ СПЕЛЛ ПО СУТИ СЕРЬЕЗНЕЙ, ЕСЛИ ТЩАТЕЛЬНО В НЕМ РАЗБЕРЕТЕСЬ ТО МОЖНО НАЙТИ ДЛЯ СЕБЯ МНОГО ПОЛЕЗНОГО, УДАЧИ!

minus1024   5 апреля 2011 в 20:40

ВОЗРОЖДЕНИЕ НЕЙТРАЛЬНЫХ КРИПОВ/Creep
Могу сказать проще для начала зайдите в: "Файл" -> "Параметры" -> закладка "Общие" -> Ставь галочку на "Автом. Создавать неизв. переменные во время вставки триггеров". После этого просто копируем триггеры - переменые создадутся автоматически.
Далее зайдите в карту Охотники после находим и копируем папку с названием Monster Spawning себе в карту и далее ставим в главную папку игры действие включения триггера Initialize Monster Spawners(игнорируя условия) Далее внимательно изучите каждый аспект этой папки Monster Spawners и измените только расу врага и какие юниты будут возраждаться и в каких зданиях( тоесть как в самой карте Охотники!) Далее посмотрите там есть одна фича очень важная - тирггер Enable Spawn Set 1,2,3 и т.д включает переменные воскрешения крипов, это нужно обязательно запомнить иначе ничего не получится. Знайте что в триггеры Initialize Monster Spawners действия переменные обозначены числами в квадратных скобках [ ] - запомните и создайте триггеры для приличия Enable Spawn Set более 10 штук и каждый из которых включает переменные этих воскрешении!Этот тригер я не смог сделать самостоятельно, да и времени нет, я просто скопировал его с карты и перенес в свою РПГ и теперь наслаждаюсь процессом - докачался на крипах до 10000 уровня - это пока предел!:)

Emillionaire   5 апреля 2011 в 20:52

Привет всем. Я сделал на карте триггер убить юнитов когда игрок вводит -kill. В игре перед тем как убить игра зависает... Чем больше юнитов на карте, тем дольше висит. Однако в чужой карте килл работает без подвисаний, даже когда юнитов очень много... Помогите пожалуйста, в чем проблема?

minus1024   5 апреля 2011 в 21:02

RageWarrior, опиши все твои действия связанные с этим может я найду ошибку...

Emillionaire   5 апреля 2011 в 21:42

События
Игрок - Игрок 10 Types a chat message containing -kill as точное совпадение
Условия
Действия
Отряд - Pick every unit in (Units owned by (Triggering player) of type Zombie) and do (Боевая еденица - kill (Picked unit))

На карте юниты, пишешь - их убивает. Все просто :) Притормаживает даже если убиваешь 10 юнитов... Не спроста это :(

minus1024   5 апреля 2011 в 22:46

RageWarrior ошибка в этой строке (Units owned by (Triggering player) Triggering player - в переводе означает действующий игрок и в этом сучае независимо что игрок 10 написал сообщение будет выполняться это действие включая всех 12 игроков тоесть все игроки и являются действующим игроком.
вот сделай так:
Так что сейчас сделал я твой вопрос в своей тестовой карте и все получилось, ты кстати подкинул мне идейку насчет написания этих кодов, хотелось с помощью них окончательно запретить вписание кодов, так вот cделай свой триггер с удовольствием и виснуть ничего не будет, ты просто ошибся немного пусть даже в малых действиях:
1-событие`player - chat message
player 1(red)(просто я играю красным а ты ставь свой) types a chat message containing kill as An exact match
3-действие`unit group - pick every unit in unit group and do multiple actions
pick evry unit in
units owned by player of ytpe
units owned by player 1(red) of type Footman( Ну и конечно же ставь обязательно юнита на карту ) and do (actions)

Emillionaire   6 апреля 2011 в 16:36

Как я понял должен выглядеть так:

События
Игрок 10 -kill as точное совпадение
Действия
Отряд - Pick every unit in (Unit owned by Игрок 10 of type Footman) and do (Actions)
Цикл - Действия
Боевая еденица - kill (Picked unit)

Если да, то не помогло :) Все ровно подвисает...

События
Игрок 10 -kill as точное совпадение
Действия
Отряд - Pick every unit in (Unit owned by Игрок 10 of type Footman) and do kill picked unit

Так тоже пробовал, тоже не спасло.
И еще: у меня идет ряд команд 10,11 и 12 игрокам, поэтому расписывать их все долго, как записать всем трем игрокам -kill - в один триггер?

minus1024   6 апреля 2011 в 21:52

RageWarrior, нет придется для каждого игрока прописывать. А насчет того оно работает только незабудь поставить этих Footman на карту и под цветом Игрок 10 так как ты указал условие в действии (Unit owned by Игрок 10 of type Footman) и никаким более цветом, если так пиши туда например красные и и ставь что эта пехота относится к красным иначе действия комманды kills не произойдет.

minus1024   7 апреля 2011 в 17:02

RageWarrior, слушай если можно скинуть напиши свой имэйл мне я те скину свою карту с примером твоего так сказать кода kill и выборе рас с помощью диалоговых окон там же в карте и мультиборд, просто я пока это тестить начинаю - перенес из своей рпг карты на время, ок?

loader1996   10 апреля 2011 в 12:39

Подскажите пожалуйста как сделать такой триггер:
Чтобы если герой взял предмет выпавший из ящика то он умирал
Я не могу сделать условия
Подобранный предмет=Сфера Огня(например)
но я не могу выбрать феру огня т.к. она выпадает из ящика
Заранее спасибо

Emillionaire   10 апреля 2011 в 17:25

События
---Боевая единица - A unit получает предмет

Условия
---(Item-type of (Item carried by (Triggering unit) in slot 1)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*

Действия
---Боевая единица - Kill (Triggering unit)

Попробуй так... Наверное будет работать :)

Хотя смотря на что у тебя акцент... Если смерть при итеме _именно_ из ящика (такой же предмет, не из ящика не вызывает смерти), то будет по другому.

Велиaл   11 апреля 2011 в 13:13

Не согласен с Рейдж Ворир
Проблема в том, что предмет может не взяться именно в слот 1

Отлавливать надо именно приказ правой кнопкой мыши на предмете, тип которого равен Сфере огня
Если надо готовая версия скрипта - мне в лс, за пару минут сделаю

Emillionaire   11 апреля 2011 в 22:21

Правый клик еще ничего не значит :) Надо именно подобрать ведь... Может юнит далеко, нажал - его убило... Напонятна причина даже :) Написать:
условие - одно из условий:
---(Item-type of (Item carried by (Triggering unit) in slot 1)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*
---(Item-type of (Item carried by (Triggering unit) in slot 2)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*
---(Item-type of (Item carried by (Triggering unit) in slot 3)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*
---(Item-type of (Item carried by (Triggering unit) in slot 4)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*
---(Item-type of (Item carried by (Triggering unit) in slot 5)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*
---(Item-type of (Item carried by (Triggering unit) in slot 6)) равно *название твоего итема, который выпадает из ящика и который убивает подобравшего*

Так то ушь точно работать будет :D

minus1024   11 апреля 2011 в 23:08

а ты пробовал через IntegerA?

Велиaл   12 апреля 2011 в 00:11

Просто добавить проверку нахождения юнита в радиусе 100 от предмета и всё. Это проще и правильнее чем делать 6 проверок на слоты

sinseer   24 апреля 2011 в 11:56

Помогите плз!!!!!!!!!!!! мне нужно :
зделать триггер чтобы !ВСЕ! юниты и !ВСЕ! здания игрока (инициатора) стали неуязвимыми после постройки 3 определённых "зданий"
p.s. у меня есть начало триггера, мне нада зделать условие чтобы триггер срабатывал при постройке 3 таких "зданий", и зделать действие в котором всё зделаеться неуязвимым у игрока инициатора

k0lenval   26 апреля 2011 в 12:12

sinseer вот тебе наработка, ток ее нуна усовершенствовать так, когда одно из зданий является
уничтоженным не достроив последнее из 3, соответствующая целочисленная переменная сбрасывалась на 0, если есть руки и голова думаю сообразишь и сделаешь:

Coбытия
Бoeвaя eдиницa - A unit owned by Игpoк 1 (кpacный) Зaвepшaeт cтpoитeльcтвo
Уcлoвия
Дeйcтвия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(Unit-type of (Triggering unit)) paвнo Kaзapмы
To - Дeйcтвия
Set kazarm = 1
Инaчe - Дeйcтвия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(Unit-type of (Triggering unit)) paвнo Фepмa
To - Дeйcтвия
Set ferma = 1
Инaчe - Дeйcтвия
f (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(Unit-type of (Triggering unit)) paвнo Aлтapь Kopoлeй
To - Дeйcтвия
Set altar = 1
Инaчe - Дeйcтвия
Set summa = ((altar + ferma) + kazarm)


Coбытия
Bpeмя - Every 1.00 seconds of game time
Уcлoвия
summa paвнo 3
Дeйcтвия
Oтpяд - Pick every unit in (Units owned by Игpoк 1 (кpacный)) and do (Бoeвaя eдиницa - Make (Picked unit) Heуязвимый)

sinseer   28 апреля 2011 в 19:36

спс! зделал =)
а теперь ещё=)))
нужно действие, немогу зделать=( :

1трг:
Событие: юнит начинает применять способность
Условие: способность = "моя способность"
Действие: запустить триггер №2

2трг:
Событие: -
Условие: -
Действие: (чтонить типа) востановить боевой единице 2% здоровья
ждать 1 сек
востановить 4% здоровья
ждать 2 сек
востановить 6% здоровья
ждать 3 сек
востановить 8% здоровья
ждать 4 сек
востановить 10% здоровья
Триггер: выключить этот триггер

k0lenval   28 апреля 2011 в 21:17

sinseer
Coбытия
Бoeвaя eдиницa - A unit Пpивoдит cпocoбнocть в дeйcтвиe
Уcлoвия
(Ability being cast) paвнo Oгнeннaя cтpeлa (кoлдун)
Дeйcтвия
Custom script: local unit u
Set unit = (Target unit of ability being cast)
Custom script: set u = udg_unit
Wait ((Distance between (Position of (Casting unit)) and (Position of (Target unit of ability being cast))) / 1000.00) game-time seconds
Custom script: set udg_unit = u
Бoeвaя eдиницa - Set life of unit to ((Здopoвьe of unit) + (((Здopoвьe of unit)x1.00)/100.00))
где 1.00 добавляемый процент здоровья

ЧаИнЕк   5 мая 2011 в 22:15

Плиз помогите нубу с созданием тупой мапы но всё же я сделал чтобы юниты появились в данной области и атаковали попавшегося есть 10 лвл т.е 10 волн юнитов всё норм но када проходят сутки всё повтаряется и дисбаланс как сделать чтоб после 10 волны они остановились заранее спс

ЧаИнЕк   5 мая 2011 в 22:30

тригер такой
Create 5 пустынников for игрок красный 1 at игрок синий 2 facing 2.00 degrees
и так с остальными и между уровнями ждать определённое время

k0lenval   6 мая 2011 в 08:59

пропиши условие, при котором данный триггер будет работать: если целочисленная х равна 10 откл этот триггер, далее создай в триггере целочисленную переменную х и добавляй к ней по единице, после каждой волны.

ЧаИнЕк   7 мая 2011 в 22:00

Можете по подробней написать а то редактор на английском плиз

k0lenval   8 мая 2011 в 23:00

ЧаИнЕк данный триггер рассчитан на 3 волны (0-это волна №1). В качестве ссылок на создаваемые группы юнитов я использовал массивы[ ], дабы не создавать кучу не нужных переменных, думаю разберешься:
Coбытия
Bpeмя - Elapsed game time is 5.00 seconds
Уcлoвия
x мeньшe или paвнo 2
Дeйcтвия
Set x = 0
Бoeвaя eдиницa - Create 3 Пexoтинeц for Игpoк 2 (cиний) at (Center of Oблacть 000 ) facing Cтaндapтнaя opиeнтaция здaний degrees
Set grup[0] = (Last created unit group)
Oтpяд - Pick every unit in grup[0] and do (Oтpяд - Order grup[0] to Пepeйти, нaпaдaя нa пpoтивникoв (Center of Oблacть 001 ))
Wait 2.00 seconds
Set x = 1
Бoeвaя eдиницa - Create 3 Пexoтинeц for Игpoк 2 (cиний) at (Center of Oблacть 000 ) facing Cтaндapтнaя opиeнтaция здaний degrees
Set grup[1] = (Last created unit group)
Oтpяд - Pick every unit in grup[1] and do (Oтpяд - Order grup[1] to Пepeйти, нaпaдaя нa пpoтивникoв (Center of Oблacть 001 ))
Wait 2.00 seconds
Set x = 2
Бoeвaя eдиницa - Create 3 Пexoтинeц for Игpoк 2 (cиний) at (Center of Oблacть 000 ) facing Cтaндapтнaя opиeнтaция здaний degrees
Set grup[2] = (Last created unit group)
Oтpяд - Pick every unit in grup[2] and do (Oтpяд - Order grup[2] to Пepeйти, нaпaдaя нa пpoтивникoв (Center of Oблacть 001 ))
Set x = 3

ЧаИнЕк   9 мая 2011 в 09:19

СпС ОгРоМнЕйШеЕ =)

ЧаИнЕк   9 мая 2011 в 09:34

ток с условием х или равно непонятно де это?

k0lenval   9 мая 2011 в 09:58

Чуть подредактировал код, а теперь объяснения: x - это переменная, которая отвечает за проверку условия, если х меньше или равно 2 значит триггер будет выполнятся, то есть волны от 0 до 2 будут происходить, а вот 3 волна, то есть set х=3,. уже условию не удовлетворяет и код перестает выполняться.
Учти, что этот триггер будет работать правильно, если событие является периодическим, иначе необходимость в условиях отпадает.
Мой код рассчитан на событие - времени прошло 5 сек, то есть мне условия не нужны, чтоб он закончился и больше не повторялся, но специально для тебя я показал как правильно должно быть в противном случае.

ЧаИнЕк   9 мая 2011 в 11:29

не я имею ввиду де это настроить

ЧаИнЕк   9 мая 2011 в 11:51

У кого нить есть русский редактор? =)

k0lenval   9 мая 2011 в 12:56

warcraft-info.clan.su/load/7-1-0-4 - русификатор
ПС А что у тебя буква "г" не работат?

ЧаИнЕк   9 мая 2011 в 17:38

У меня терь не одна мапа не открываецо закинул в папку с варом

ЧаИнЕк   9 мая 2011 в 17:42

сори работает токо сначало надо пролистать 100 ошибок

k0lenval   9 мая 2011 в 20:08

обнови вар, чем свежее, тем лучше

XAOCAD   10 мая 2011 в 12:19

у меня триггеры на инглише,скажите нормальный русификатор,а то уже многие пробывал,но во время входа писал ошибку...

k0lenval   10 мая 2011 в 12:28

XAOCAD, читай выше

ЧаИнЕк   12 мая 2011 в 12:51

А как сделать шоб мапа была всегда открытой?

k0lenval   12 мая 2011 в 15:00

Есть такой спец триггер:
Bидимocть - Coздaть пepвoнaчaльнo Paзблoкиpoвaн мoдификaтop видимocти для Игpoк 1 (кpacный) излучaющий Bидимocть нa (Bcя кapтa)

XAOCAD   13 мая 2011 в 22:52

на каких форумах в PG можно найти многие триггеры для создания TD?

k0lenval   14 мая 2011 в 09:01

Вскрывай карты кампаний и др. там их много

sinseer   15 мая 2011 в 19:12

помогите с тригом, я зделал абилу наносящюю урон в диапазоне 500-2500 , мне нужно чтобы показывало над боевой единицой на которую кастуеться магия сколько нанеслось урона из этого диапозона

k0lenval   15 мая 2011 в 19:52

sinseer воспользуйся функцией плавающего текста

sinseer   15 мая 2011 в 20:22

получилось:
создать плавающий текст, гласящий (строка((полученные повреждения))) над (юнит цель применяемой способности) с Z смещением 0 шрифт 12 (цвет 100 0 0) и 0 прозрачности.
Нужна помощ, пишет 0.000 , т.к. урон у способности создаёться триггером
и я создаю триггеры на подобе этого, везде пишет 0.000 или 0.0 , в общем урон непоказывает=( помогите

ЧаИнЕк   16 мая 2011 в 18:32

а можно по подробней с открытой мапой де специальный триггер

ЧаИнЕк   17 мая 2011 в 21:06

помогите плиз как сделать открытую мапу токо по подробней плиз

k0lenval   18 мая 2011 в 08:38

ЧаИнЕк, искать нуна там же где и все остальные, кокретнее - в самом низу списка триггеров найдешь видимость и выбирай подходящий-все написал выше

shadoww_91   19 мая 2011 в 15:35

Привет... Спросил в другой теме но там последнее сообщение в 10 году было и решил написать и сюда. Внимани вопрос: Как объедеить 2 еликсира в один слот Пример: покупаю 1 еликсир с зарядом в 15 штук, потом покупаю такойже и в инвентаре у меня появляется 30 зарядов в одном слоте.

ЧаИнЕк   21 мая 2011 в 19:24

А как сделать чтоб за нейтралов давался опыт и как сделать условие например если игрок вышел из игры то надпись - (имя игрока) покидает нас. Можно на русском

ЧаИнЕк   21 мая 2011 в 20:03

И ещё кое-что как сделать чтобы у игрока был алтарь но героя нанять нельзя было таверна требует или надо чтобы таверна не требовала тогда как?

ЧаИнЕк   21 мая 2011 в 20:10

и ещё как сделать чтобы герои: алхимик. королева змей. механик. пивовар. разрушитель и некоторые другие в таверне не требовала перезарядку

k0lenval   22 мая 2011 в 20:26

ЧаИнЕк, обо всем по порядку:
warcraft3ft.info/board/princip_nabora_opyta_gero..

События
Игрок-Игрок 1 (красный) покинул игру
Условия
Действия
Задание - Показать (Все игроки) Внимание сообщение: Игрок 1 покинул игру

Чеб таверна требовала или не требовала нуно в редакторе объектов найти героев, которых нанимаешь и находишь у них пунктик - технологии-требование: ставь нужное требование.

Найти героев в редакторе объектов, которых нанимаешь и находишь у них пунктик Характеристики - Задержка перед первым пополнением и ставь ноль

-_-Insane-_-   24 мая 2011 в 22:09

Всем привет, вопрос такой, я сделал нового героя. Дал ему новые спелы, вид, Нр и прочее...
Но почему то когда я юзаю любое его из заклинаний у него начинает расти атака до бесконечности и в конце концов падает до нуля, второй раз юзаю тоже самое с бронёй... В чём дело первый раз такое. Объясните пожалуйста.
Да и кстати заклинания выглядят так - 1 стрела смерти(на основе огненный стрелы); 2 прислужник (на основе медведя); 3 - демоническая броня (на основе духовного пламени): 4 сила тьмы (на основе порчи у кел-тузеда).

k0lenval   25 мая 2011 в 21:39

-_-Insane-_-, ты случайно на триггерах ничего не делал?, возмона дело в них

-_-Insane-_-   25 мая 2011 в 23:17

Нет, но возможно дело в заклинании... Была идея сделать 3 героев(маг, воин, охотник)... А вот потом уже у них есть 3 пути у мага: чернокнижник, жрец и боевой маг... Ну и так далее... Но почему то когда я юзаю они превращаются, но заклинания остаются прежними. Мб я кому нибудь кину карту, а он посмотрит и сделает как надо.

k0lenval   26 мая 2011 в 07:46

давай ссылку, гляну...

k0lenval   27 мая 2011 в 16:57

-_-Insane-_-
триггер Horse 2 - действие некорректное
иконки то знаешь как нормальными сделать в режиме паузы?

-_-Insane-_-   28 мая 2011 в 00:43

Спасибо за всё)))

-_-Insane-_-   28 мая 2011 в 10:19

А и ещё я какой то кнопкой скрыл подробности в редакторе объектов... Т.е. за место слов у меня первая буква. например "Графика - файл модели" это у меня просто "Г". Какая кнопка обратно?

k0lenval   28 мая 2011 в 10:42

поэксперементируй в окне редактора объектов -вид

-_-Insane-_-   28 мая 2011 в 13:38

Не вышло...
А можешь ещё подсказать, как сделать так что бы герой получил 25 LVL и у него изменяется моделька, меняется только скорость, а предметы остаются...

k0lenval   28 мая 2011 в 14:12

Не вышло...
скорее всего глюк редактора, возможно переустановка игры исправит проблему

герой получил 25 LVL и у него изменяется моделька

События
Боевая единица - Паладин 0000 Повышает уровень
Условия
(Уровень героя (Переключающий юнит)) равно 25
Действия
И Боевая единица - Заменить Паладин 0000 на Верховный маг используя Старая связь боевой единицы жизнь и ману

-_-Insane-_-   28 мая 2011 в 14:40

Забыл сказать... У меня для каждого юнита, свой следующий герой... Например: паладин -> Паладин На коне; Воин -> Воин на коне.
Т.е. надо что бы Воин не мог превратиться в Паладина на коне и наоборот.

k0lenval   28 мая 2011 в 14:58

Создавай для каждого героя свои триггеры и условия вот и всё

-_-Insane-_-   28 мая 2011 в 15:08

А у меня нету готовой боевой единицы, тогда как?
Мне сначала надо её сделать.

ЧаИнЕк   4 июня 2011 в 18:02

у меня есть вопросик каксделать чтобы напимер кровавая луна требовала ледяной и огненый меч

k0lenval   5 июня 2011 в 10:50

ЧаИнЕк
если идет речь о покупке предмета в лавке то можно сделать так:
насколько я понимаю через редактор объектов в список требований нельзя добавить предмет, но можно использовать юнитов и улучшение-это то, что нужно. Добавляешь в требования кровавой луны парочку нестандартных юнитов(не забудь переименовать их в ледяной и огненный мечи в редакторе объектов), затем, как герой добывает один из предметов, к примеру огненный меч, ты триггерным способом создаешь себе одного соответствующего юнита, со вторым точно также. Думаю справишься!

ЧаИнЕк   5 июня 2011 в 16:35

Спасибо получилось

ЧаИнЕк   5 июня 2011 в 21:06

Хм... я сделал всё кровавая луна требует ледяной и огненный меч сделал что предметы можно купить но кровавую луну купить нельзя требование ледяной и огненный меч хотя у меня они есть чё делать?

k0lenval   5 июня 2011 в 23:09

Хм а я то думал что ты справился, в общем вот gigapeta.com/dl/1607696ac4a924

ЧаИнЕк   7 июня 2011 в 18:54

Плиз я в твоём примере не разобрался можешь по подробней объяснить

k0lenval   7 июня 2011 в 20:57

Пиши, что именно...

Kind Ram   27 июня 2011 в 10:47

Народ я столкнулся с такой проблемой:
Сделал меню паузы индивидуально для каждого игрока, но увы таблицы меню паузы числятся все! И всем игрокам! В итоге видно лишь последнюю сделанную таблицу.

Подскажите как скрыть каждую таблицу от ненужных игроков так чтобы игрок 1 видел таблицу 1, игрок 2 таблицу 2, а 3й соответственно таблицу 3

Если в Гуйе такого сделать нельзя напишите плз скрипт чтобы: скрыть таблицы для определённого игрока.

Хелик   10 июля 2011 в 23:52

Всем привет, i'm back :) Но только ради этой темки. Кто нибудь еще помнит меня?

Kind Ram   11 июля 2011 в 16:30

Они все про эту тему уже забыли. Как видиш я жду ответа уже 3 недели.

Хелик   12 июля 2011 в 00:31

Ну да, есть замедление какое-то. Может я могу чем то тебе помочь? Просто перефразурий :D

ЧаИнЕк   6 августа 2011 в 19:27

Надеюсь тема ещё живет
1)Столкнулся с самой большой проблемой моей карты когда я переделывал рельеф у меня триггеры были простые создать (кого) (куда) и тп. но теперь нужно чтобы они шли через углы и ходили пробовал но на пол пути они возвращялись и появлялось их очень много жду помощи

ЧаИнЕк   6 августа 2011 в 22:01

я так и понял что плохо объяснил смотри раньше они просто появлялись как обычно к примеру (создать 7 пехотинцев для игрок 1 красный) сейчас нужно чтобы воин переходил из одной области в другую из области 001 в область 002 а из области 002 в область 003 и так далее я пробовал почти получалось но они возвращялись обратно

ЧаИнЕк   6 августа 2011 в 22:13

1)Я посылаю отряд
2)Нужно для карты можно и без этого но тогда у карты будет совсем другой смысл и будет он в худшую сторону

ЧаИнЕк   6 августа 2011 в 22:20

у меня руссифицированные триги поэтому "UnitGroup issue order" мне не понятно я делаю так:
событие: боевая единица отряд вошёл в зону область 010
условие: тип юнита (входящий юнит) равно пехотинец
действие: боевая единица приказать случайный юнит из (юниты в область 010) перейти нападая на противников (центр область 011)

ЧаИнЕк   6 августа 2011 в 22:36

я начинаю с области 000 по 015

ЧаИнЕк   6 августа 2011 в 22:42

попробовал тоже возвращяются и большая часть идёт вниз и всего два-три идут вверх и вправо

ЧаИнЕк   6 августа 2011 в 22:44

как сюда карту выложить?

ЧаИнЕк   6 августа 2011 в 23:03

я щяс так попробую только 9х9 это сколько?

ЧаИнЕк   7 августа 2011 в 20:31

Пфф... уже всё перепробовал они один раз возвращяются потом идут в указанные области и иногда опять возвращяются назад

Korsayr   13 августа 2011 в 16:54

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

Korsayr   13 августа 2011 в 20:00

ЧаИнЕк
действие: боевая единица приказать случайный юнит

narod.ru/disk/21662761001/By%20Grivus.w3x.html

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

k0lenval   13 августа 2011 в 23:15

Korsayr
а способность "Перерождение" не подойдет случайно?
Если нет, то вот:
События
Боевая единица - Работник 0000 Умирает
Условия
Действия
Установить yt = (Позиция Работник 0000 )
Ждать 2.00 секунд
Спецэффект - Создать специальный эффект Byt используя Abilities\Spdls\ltems\Allm\AllmTarget.mdl
Боевая единица - Создать 1 Работник для Игрок 2 (синий) Byt поворот на Стандартная ориентация зданий градусов

k0lenval   13 августа 2011 в 23:55

ЧаИнЕк
проблема в том, что ты наверняка отдаешь приказ нейтральным юнитам: попробуй командовать над любым игроком и такого глюка не будет.

Korsayr   14 августа 2011 в 13:03

k0lenval
Твоя система банальна, она будет возрождать юнитов там где они умерли. Способность Возрождение - тоже самое.
С этим я уже разобрался прибегнув к системе координат.
След вопрос - кроме как через джас, как можно создавать эфект наносимого урона, кастуемой способности и тд? К примеру юнит атакует юнита и урон нанесенный ему плавно "вытекает" вверх...

k0lenval   14 августа 2011 в 18:45

Korsayr
Без локальных переменных и соответственно Джаза никак, если конечно речь не идет о двоих, троих юнитах на карте.

rubricus   15 августа 2011 в 12:20

Как пропускать весь сделанный ролик во время игры а не только отдельные фразы?

k0lenval   15 августа 2011 в 12:53

rubricus
Пошвыряйся в картах кампании: в редакторе триггеров есть папка Intro Cinematic-там ты и найдешь примерь.

Korsayr   15 августа 2011 в 20:40

k0lenval
А как же floating text?
Я только незнаю как сделать чтобы он выплывал из юнита вверх!

k0lenval   15 августа 2011 в 22:06

xgm.ru/p/wc3/jass_local_vars почитай, таам очень даже все подробно написано как правильно сделать

rubricus   16 августа 2011 в 01:50

Как сделать чтобы небо в игре не было черным

k0lenval   16 августа 2011 в 07:52

rubricus
Через триггер: окружение-установить небо как...

rubricus   17 августа 2011 в 10:07

Нажимаю кнопку Esc и кинематика выключается но камера продолжает менять положения и деологи в левой стороне екрана высвечиваются как будто ролик идет дальше.как ето остановить???

k0lenval   17 августа 2011 в 14:44

не помню точно, но смысл должен быть примерно такой: создаешь триг, в котором и есть ролик, в нем через каждые 3 секунд должно проверяться действием, нажал игрок ESC или нет, если нажал то за дело берется другой триггер, который отвечает за отключение кинематики и переход в игровой режим, если игрок не нажал ESC то ролик продолджается, вобщем на картах кампаний все это есть в готовом виде, тебе только остается привязать это к своей карте и настроить кинематику.

rubricus   18 августа 2011 в 02:02

Как сделать чтобы например из синей ратуши строились бы синии крестьяни но принадлежало бы все ето красному игроку?

k0lenval   18 августа 2011 в 12:50

rubricus
Сценарий-кланы поставь галку-общие войска

rubricus   19 августа 2011 в 03:09

Как мне находить те юниты которые я создал через угол поворота,на карте их не видно

k0lenval   19 августа 2011 в 08:39

rubricus
Во время редактирования карты ты их никак не увидишь, создай через панель войск.

ЧаИнЕк   19 августа 2011 в 11:53

Всем спс за помощь может скоро выложу карту

ЧаИнЕк   19 августа 2011 в 11:56

Так у меня появился вопрос: Как сделать чтобы например когда идёт шестая волна воскресить героя нельзя было?

ЧаИнЕк   19 августа 2011 в 12:30

Так с этим разобрался уже не надо
Вопрос 2: Как сделать таблицу Для игроков там должно показыватся сколько они убили воинов

minus1024   19 августа 2011 в 21:18

всем привет, я снова в сети и жду ваши ответы и новые пожелания!

minus1024   19 августа 2011 в 21:40

переезжайте в новую тему дорогие господа, я создал тему "КУЗНИЦА СВЕТА"

ЧаИнЕк   21 августа 2011 в 00:07

BandRes, если можно то на русских триггерах пробовал на английском неполучалось жду

rubricus   21 августа 2011 в 01:00

как запрещать строение определеннаго здания или юнита?

ЧаИнЕк   21 августа 2011 в 14:13

1. set Frag_Integer[N(номер игрока)] = 0
[N(номер игрока)] это где я про {N}
и вот это (Frag_Integer[N]) где N?

ЧаИнЕк   22 августа 2011 в 16:14

BandRes, спс за статью но сильно она не помогла вот триггеры поправляй
событие:map initialisation
действие:create a leaderboard for (all players) titled Количество убийств
set (целочисленная переменная без массива)---> learderboard = (key (last created leaderboard))
(тут я не нашёл то что ты писал) set (целочисленная переменная с массивом) ---> Frag_Integer{(player number of Игрок 1 (красный))} = 0
add Игрок 1 (красный) to (Last created leaderboard) with label (Name of (triggering player)) and value переменная Frag_Integer((Integer B))
Показать last created leaderboard
подправляй ток по подробней объясняй я ж Чаинек)

ЧаИнЕк   22 августа 2011 в 17:14

номер три и четыре исправил а во втором не могу найти во втором у меня так: пункт set variable learderboard = (key (last created leaderboard)) я немогу найти отдельно без key и вот второй триггер но там вроде бы правильно Если все условия правильны или равны то действие иначе действия
Если - условие: (Owner of (killing unit)) равно игрок красный
То - действия:Set переменная Frag_Integer{2} = (Frag_Integer{2} + 1)
посмотри во втором может быть так: learderboard = (position of игрок 1 (красный) in (last created leaderboard))

ЧаИнЕк   22 августа 2011 в 18:32

блиин ппц...
вот триггеры мож что не так но сделал всё как писал
событие:Map initialization
действие:Create a leaderboard for (all players) titled Количество убийств
Set leaderboard = last created leaderboard
Set Frag_Integer{1} = 0
Add Игрок 1 (красный) to (Last created leaderboard) with label (Name of Игрок 1 (красный)) and value Frag_Integer{1}
Показать (Last created leaderboard)

Тригер 2
Событие: Map Initialisation
Действие: если все условия правильны или равны то действие иначе действие
Если - Условие: (Owner of (Killing unit)) равно Игрок 1 (Красный)
То - Действие: Set Frag_Integer{1} = (Frag_Integer{1} +1)

ЧаИнЕк   22 августа 2011 в 19:42

Спасибо огромное только один недочёт событие юнит умирает какой юнит я укажу?

ЧаИнЕк   22 августа 2011 в 20:09

Огромное спасибо работает мож через 27 дней первая верса и будет готова

k0lenval   1 сентября 2011 в 12:03

Как переходить с карты на карту, как в кампании за Рексара?

TimArs   12 сентября 2011 в 20:15

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

TimArs   12 сентября 2011 в 23:28

Вобщем так
смысл моей карты в том что это ТД в котором одна команда насылает юнитов на другую
ты покупаешь их в домике и они становятся в загон , у каждого игрока в свой в ровно определенную точку
всего можно выбрать 2 типа войск на волну то есть 10 типов на всех
Все касательно этого я сделал целиком и полностью
Но вот юниты делаются для каждого игрока - для 1го красные итд... и изменять это ни в коем случае нельзя
И их можно во время волны контролить! это как минимум плохо :)

TimArs   13 сентября 2011 в 18:38

а как тогда делать что бы каждый раз выделение снималось

TimArs   13 сентября 2011 в 18:40

я вон видел в Castle Fight 1.14 там войны тебе принадлежат а не слушаются
там можно даже давать им команды но они их не выполнят

TimArs   14 сентября 2011 в 09:39

спасибо попробую

TimArs   14 сентября 2011 в 15:31

И еще вопрос
У меня триггер на то что если юнит входит в область (юнит игрока 12) то деньги добавлялись игроку которого он цвета и еще здоровье юнита увеличивалось на 5%

События:
Unit Enters region

Действие:
Set Life of (entering unit) pertengence to (100+5)%
If/Then/Else Multiple functions
-Если
Цвет of (owner of entering unit ) is Красный
- То
Добавить игроку красному 2 золота

ЭТОТ ТРИГГЕР НЕ РАБОТАЕТ
ни денег ни здоровья

у меня юниты которые идут все игрока 12го но каждый своего цвета

TimArs   15 сентября 2011 в 14:22

я видел в Жизнь На Арене
там при исследовании повышается количество здоровья у героя

TimArs   15 сентября 2011 в 16:56

хммм
а в Легион ТД когда противники доодят до определенной области им добавляется 2 армора

ЧаИнЕк   15 сентября 2011 в 18:26

Свою карту я не скоро выпущу так как я школоло по немногу буду делать, точная дата неизвеста жанр типа геро дефенс, игроков 8, в каждом раунде есть босс и есть дуэлька покачто всё а и ещё требуется помощь по текстам много переписывать что не правильно и т.д.

TimArs   17 сентября 2011 в 12:50

и последний вопрос
как грамотно сделать так что при событии игроку нельзя было И(!) нанимать И(!) покупать юнитов вообще но потом опять разрешалось?
у меня это получилось криво - косо но я хочу по нормальному

TimArs   20 сентября 2011 в 12:41

ну или хотя бы просто как сделать лимит на покупку юнитов

sinseer   21 сентября 2011 в 15:09

ПОМОГИТЕ пожалуйста, нужен триггер!!

имееться юнит, его BAT = 2.10 сек., когда он атакует другова любова юнита к нему нужно прибавлять по 15% IAS, как наберёться 75%IAS, прибавление останавливаеться, когда юнит меняет цель, BAT снова устанавливаеться на 2.10, и снова с каждой атакой нового юнита начинает прибавляться по 15%IAS.( сделать это черес способность)

TimArs   2 октября 2011 в 14:24

Можете мне помочь навести баланс на карту? я в этом вообще не очень шарю
Или скажите как это сделать пожалуйста

TimArs   3 октября 2011 в 21:29

карта жанра ТД я не могу соблюсти баланс в юнитах и башнях

Dakassar   4 ноября 2011 в 23:39

Народ подскажите плиз
1)как задать начальное количество еды?
2)создал триггер по генерации юнитов, как указать количество появляющихся юнитов, а то их там штук 50 за раз.
3)как заставить их идти в определенную точку на карте?

Никита Макеенко   25 декабря 2011 в 19:25

Подскажите пожалуйста. Как сделать чтобы во время игры игроки сами могли в окне союзников снимать и ставить галочки союза, общего обзора по отношению к другим игрокам?

Kind Ram   17 января 2012 в 17:49

sinseer
Способ без переменной:
1. Создай невидимую способность увел. AS (её можно создать скопировав способноть перчаток скорости: "Предмет: Увеличение скорости атаки (малый)").
У неё должно быть 7 уровней с бонусом: 1:+0%, 2:+15%...7у.+75%.
2. Создай способность, накладывающую на противника дебафф при каждой атаке (варианты: оживший огонь, Отравленное оружие, Предмет: проклятие+ иконка пустой спослбности, Предмет: сфера замедления, при этом работать с маской смерти будет лишь аналог отравленного оружия).
3. Добавь обе способности своему юниту.
4. Триггер:
Событие
- A unit Атакован
Условия
-level of ability of (attacking unit) "твоя способности (дебафф)" больше или равно 1
Действие
-If then else (multi)
Условие
-(attacked unit) has specific buff "дебафф тваей способности"
То
Set level of ability "твоя способность (ск. к атаке)" of (Attacking unit) to: level of ability "твоя способность (ск. к атаке)" of (Attacking unit) + 1
Иначе
Set level of ability "твоя способность (ск. к атаке)" of (Attacking unit) to 1

Можно еще перед: "set level of..." которые в "То"
Задать еще if/then/else условие типа "если уровень способности равен 7 то: (пустой тригер)
иначе: Set level of ability "твоя способность (ск. к атаке)" of (Attacking unit) to: level of ability "твоя способность (ск. к атаке)" of (Attacking unit) + 1"

Kind Ram   17 января 2012 в 17:57

TimArs
Путём логики, которой тебя одарил бог.
1. Рассчитивай урон и ск. атаки своих башен.
Если типо легион, то учитывать надо еще и здоровья.
2. Учитываю здоровье и броню вражеских волн (порчу брони при уроне, если такая включена).
3. Особые способности башен, которые могут повлиять на исход битвы, тоже учитывай.
4. Сравнивай установленную тобой награду и статы башен и ставь стабильную стоимость, возможную для удержание и не читерную.
5. Учти дальность и тип атаки тваих башен и сравнивай их с типом брони противника.

По сути карты жанра тд может сделать любой игрок, но далеко не каждый сможет создать норм баланс в ней. Лучше всего получилось у автора легион тд.

Никита Макеенко
Это функция доступна всегда если ты не отключал её в Свойствах игроков.

Kind Ram   17 января 2012 в 18:03

k0lenval
1. Научица работать с jass
2. Научица работать с кешем
3. Создать кучу карт в которых внутриигровые изменения будут сохраняться с помощью этого самого кэша, при переходе из 1 карты в другую.

uTblneve4en   26 января 2012 в 13:49

Всем привет! У меня недавно появился один вопрос. Казалось это просто, но что-то некак не получается. Как сделать чтобы одинаковые ауры стакались у двух и более одинаковых юнитов и можно ли задать аурам не процентное а точной значение на повышение характеристик? Таких как атака к примеру... Спасибо.

qwerty1999   4 марта 2012 в 10:40



Здравствуйте, у меня есть несколько вопросов, первые очевидны из рисунка(icon learn тут ни причем):

1). Как исправить инвентарь героям, и собсно как он так внезапно пропал?
Чем это может быть вызвано?
Пропадает только у тех, у кого что-то меняю, что угодно :(
Пииипец, выяснилось что редактор сам удаляет способность inventory(hero), непонятно с какого перепугу.

2). Как отрубить требования на скилл(а лучше как их менять по желанию? например чтобы ульт как в доте брался на 6 11 16?)
Сам нашел в gameplay constants: Hero Abilities Level Skip (default)


3). Как заставить юнита тупо кастануть спелл? :(((( Это вообще печаль(хотел переделать транквилити в non-channeling, нашел туториал, там говорят - создай dummy спелл+ dummy юнита, ок создал, и пусть этот dummy юнит кастует спелл по триггеру от dummy спелла.... вот собсно и оказалось что кастовать он может только некоторые, неведомым образом выбранные заклинания через order unit)

4). Как узнать цену предмета через триггер?

qwerty1999   4 марта 2012 в 10:45

uTblneve4en
Надо сделать разные ауры, просто дать им одинаковые названия и иконки, а стакаться они наверно будут.

можно ли задать аурам не процентное а точной значение на повышение характеристик?
Возможно через триггеры, если юнит под аурой, выдать ему пряник.
Только я хз как проверить под аурой ли юнит.
Открой какие-нибудь карты с дамажащими аурами, там точно проверка делается.(по расстоянию мб)

Kind Ram   5 марта 2012 в 14:27

uTblneve4en
Надо сделать разные ауры, просто дать им одинаковые названия и иконки, а стакаться они наверно будут.
Незабывайте есть просто пассивные абилы (без эффекта в статусе) и конкретно ауры. Аурам для стыковки требуется делать индивидуальный эффект (да да накладываемый на статус моба), чтобы они стыкались.

2). Как отрубить требования на скилл
В константах ты настраиваеш общие предпочтения. В каждой способности есть индивидуальные настройки по требованиям: Уровня, улудшения, конкретного типа боевой единицы, а так же можно настраивать "пропуск уровня" - конкретный пропуск уровней между изучениями абилы (если ставить 0 то устанавливается значение константы)

3). Как заставить юнита тупо кастануть спелл?
Тупо через боевая единица - order to ...
Выбираеш БАЗОВУЮ способность т.е. ту способность, из которой ты создал свою абилу и которую ты хочеш заставить кастануть. Например если ты создал способность из Молота бурь и назвал её например "Супероглушающий черепок читака", настроил ей все по своему, то ты выбираеш: a такойто Unit has Горный король - молот бурь to attacket unit (или любой какой в твоём случае)

4). Как узнать цену предмета через триггер?
Вопрос непонятен - перефразируй

Sekira2011   6 марта 2012 в 17:32

как увеличить максимум манны на затрату скилов? не 1000 а например 2400 сделать.

Sekira2011   6 марта 2012 в 17:35

как можно сделать сделать правильно триггер что бы было виден получаемый опыт для нескольких игроков? как в ММО

ScorpioT1000   9 марта 2012 в 02:11

"Как заставить юнита тупо кастануть спелл? :(((( Это вообще печаль(хотел переделать транквилити в non-channeling, нашел туториал, там говорят - создай dummy спелл+ dummy юнита, ок создал, и пусть этот dummy юнит кастует спелл по триггеру от dummy спелла.... вот собсно и оказалось что кастовать он может только некоторые, неведомым образом выбранные заклинания через order unit)"
да, надо делать order unit
вот список id всех ордеров xgm.ru/forum/showthread.php?p=761580#post761580 т.е. приказываешь по id, цифрой, цифру узнать из списка, а в списке искать по нативному имени спелла в world editor - object editor


"Как узнать цену предмета через триггер?"

создай невидимый дамми магазин, в который герою будет отдан приказ продавать предмет
здесь есть куча ответов про предметы xgm.ru/forum/showthread.php?t=44889

Sekira2011   12 марта 2012 в 22:16

Всем привет у меня проблема с импортом моделей... я заливаю модель в эдитор все файлы что там есть... mdx,blp,bmp... в файл модели ставлю mdx нажимаю ок она меняется на mdl. ставлю модель на карту. нажимаю сохранить перезапускаю редактор вылезает ошибка файла mdx и когда я запускаю карту там просто тень без модели... что делать?

Kind Ram   15 марта 2012 в 21:48

как увеличить максимум манны на затрату скилов? не 1000 а например 2400 сделать.

Зажми Shift и дважды кликни на значение, тогда ты можеш ставить отрицательные значения и превысить допустимые.

Sekira2011
Есть много сайтов и форумов где написано как грамотно импортировать модели в warcraft 3. Я не стану ещё больше спамить наш форум на описание данного 5-секундного процесса.

Coyote18   30 марта 2012 в 16:46

ребят помогите. вопрос конечно глупый, но как сделать что бы юнит атаковал несколько целей одновременно? как например лучница стреляя 1 раз, а стрела разлетается скажем на 5 по 5 целям?

BioAleks   4 июля 2012 в 16:42

Sekira2011
xgm.ru/p/wc3/53626 - просю, это по поводу опыта. Качай, смотри, читай, делай.

Сто лет не играл в вакрафт и не делал карты, снова вернусь, а то скучно, м.
Новички обращайтесь, не кусаюсь.

k0lenval   6 июля 2012 в 10:33

Как заставить юнита проигрывать нуную тебе анимацию, а то предусмотренные на это триги бесполезны.

BioAleks   6 июля 2012 в 11:28

k0lenval
С каких пор предусмотренные на это триггеры бесполезны?
Я с ними легко воспроизводил анимацию нужную, не надо сочинять.
Категория "Анимация" в триггерах. Там всё есть. И удали лишний пост.

k0lenval   6 июля 2012 в 11:48

С чего ты взял, что я сочиняю, вообще странно, может ты и подзабыл что, но анимация с тригами не проигрывается как нужно-она проиграется как надо или же проиграется, но не та, либо совсем не проигрывается. Вобщем раз на раз не приходится.
На счет поста-знал бы как, давно удалил.

BioAleks   6 июля 2012 в 12:03

k0lenval
Наведи на своё сообщение и там будет тебе в рамке справа "редактировать, удалить" и т.д.
Уж чего-чего, но это я не забыл, анимацию я нормально воспроизводил данными триггерами.

Хэ, как тебе нужно/надо то?

k0lenval   6 июля 2012 в 12:21

Я с телефона, с компа сегодня вечерком зайду и удалю, только уж не переживай так сильно, а то мне от этого не по себе.
На самом деле есть способ проиграть любую нужную анимацию, но только на джазе. И проблема с тригами в данном случае имеет место быть и она обсуждалась на некоторых сайтах, но не здесь. Ты уж извини за проверку.

BioAleks   6 июля 2012 в 12:41

k0lenval
Я раньше здесь был по GUI, а не по джасу, мне ГУИ ближе по душе, по этому с jass-ом ещё "не дружу на ты", но забыть всё же успел разное...
Если ты имеешь ввиду не стандартные анимации, то я их воспроизводил тоже, просто я не сталкивался с проблемой анимаций.

k0lenval   6 июля 2012 в 12:53

я с ним вобщем-то тоже не в ладах, но такие косяки, как анимация или неточность со временем на тригах - вот здесь как раз джаз и является наилучшим вариантом для тригерщиков, вроде нас с тобой.

BioAleks   6 июля 2012 в 13:07

неточность со временем на тригах
Это есть, знаю. Сталкивался не раз, бесило.
Но не будем флудить в теме.

k0lenval   6 июля 2012 в 22:48

Дабы не флудить, отмечу кое-что полезное не уходя от темы, авось кому и пригодится:
playdota.ru/content/view/307/65/

Art12398   7 июля 2012 в 15:22

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

BioAleks   7 июля 2012 в 16:59

Art12398
Никак кроме как по другому. Сделать триггерный крит. удар.

Art12398   7 июля 2012 в 18:07

BioAleks
Спасибо

The Salt   14 июля 2012 в 17:39

Что надо сделать с моделью, чтобы на карте можно было применить для него оружие? (Чтоб он его в руке держал) Когда я ему применяю оружие, оно у него вместо появления в руке появляется в груди. Делал все правильно.

BioAleks   14 июля 2012 в 18:54

Посык
Как ты делал то? Нужно указывать в способности hand
или left hand или right hand (левая или правая рука)

The Salt   15 июля 2012 в 16:19

BioAleks
Так я так и делал, со старой моделью все работало. Поменял на новую, а на ней отказывается работать.

BioAleks   15 июля 2012 в 17:52

Посык
Скинь модельку

BioAleks   15 июля 2012 в 18:04

Посык
Какое хоть оружие применял то?
Не качает модельку, о_О. Ошибка сервера

The Salt   15 июля 2012 в 18:24

BioAleks
Ошибка сервера? У меня все нормально.
Оружие уже не помню, где лежит, но оно просто вырезанное из обычных юнитов. (Хотел поменять, но то ли забыл, то ли лень было) Пак уже давно скачивал, думаю, отсюда брал wc3life.com/load/9-1-0-647

BioAleks   16 июля 2012 в 17:32

Посык
Я скачал тот пак и модельку эту.
Ты не так что-то сделал.

Вот смотри скрин, у меня нормально ставится (на левую руку пример, правда кривовато чуток левая рука у него сделана, само положение походу делалось для щита):
pix.playground.ru/671622/50509/719130/

The Salt   17 июля 2012 в 19:09

BioAleks
Наверное, когда удалял меч (В правой руке) что-то наделал, попробую оригинальную использовать.
Спасибо и на этом.

WilderTier   6 августа 2012 в 20:30

Ребят,такой вопрос,что надо вбить в "События",чтобы произошёл какой то триггер,но при этом играя в сражения.Всмысле вот начаная игру у меня есть только Исходная позиция.Что надо вписать в событиях,чтобы при улучшении крепости до замка шло какое либо действие?Ведь первоначально крепости нет!

k0lenval   9 августа 2012 в 20:29

WilderTier
Достаточно в редакторе тригов создать новый и вбить туда типа этого:
pix.PlayGround.ru

Kind Ram   14 августа 2012 в 08:41

Таакс народ я встретился со стеной мож кто поможет.
В недавних (или уже далёких) версиях при изменении или создании нестандартных способностей: "Проглотить", "огненный дождь", "отравленный нож" или же "ракетный удар" они работали стабильно. В нынешней же (при изменении или создании нестандартной способности выше перечисленных):
Проглотить - тупо не кликается.
Огненный дождь - падает одна волна, недамажит и не пождигает.
Отравленный нож - убивает цель мгновенно, и пишет тучу каких то символов в 1-ом.
Эти способности не работают если изменить хоть что-то кроме картинки применения.
Ракетный удар - перестаёт работадь когда изменяем длительность эффекта, периодичность урона, и заклинание (дебафф).
Может кто знает как, или с помощью чего можно создать именно эти нестандартные способности так, чтобы они работали?

BioAleks   14 августа 2012 в 09:32

Hectore
В каком смысле не стандартные?
И где ты вообще придумал такое? - Огненный дождь - падает одна волна и т.д.
У меня всё нормально когда я создаю не стандартные из них.

Kind Ram   14 августа 2012 в 10:24

Создание нестандартных способностей или изменение настоящих блин

правый клик мыши, создать нестандарную способность
с новыми версиями эти скилы перестали работать при изменении говорю

именно по этим скилам нестандартные способности точней сказть уже нельзя

BioAleks   14 августа 2012 в 14:47

Hectore
Я спросил потому что ты имел ввиду может триггерные.
Не знаю, у меня работает на новой версии.

UBIWATOR   25 августа 2012 в 12:58

Наверно задавали эти вопросы уже раз 1000, но все равно мне оч надо.
Вобщем делаю карту на подобии Moo Moo и X Hero Siege.
1) Как сделать так, что бы крипы появлялись в определенной области, а потом шли от туда в другую область разрушая все на своем пути?
2) Как сделать так, что бы между такими волнами были промежутки времени 30 секунд?
3) Как сделать что бы отсчет 30 секунд начинался от времени смерти последнего крипа всех волн(4 стороны с каждой по волне)?

k0lenval   25 августа 2012 в 21:12

Всё в общем-то довольно просто.
Нуно создать 2 трига:

1

pix.PlayGround.ru

2

pix.PlayGround.ru

И главное, не создавай юнитов для игрока Нейтрально-враждебный, а то у него есть одна неприятная особенность - не достигнув цели юниты возвращаются или как ее достигнут, сразу идут обратно. Связано это скорее всего с тем, что Н-в игрок обладает своим интеллектом и в итоге отдает приказ о возвращении на исходную позицию своим войскам.

По-поводу вопроса №3:
создай 4 переменных типа Отряд и ко 2 тригу добавь 4 идентичных условия, имеющих отношение к каждому созданному отряду.

Если не понял как, даю пример narod.ru/disk/59961730001.bd527136c2d556033daf5b..

UBIWATOR   26 августа 2012 в 13:34

Спасибо! Вы мне очень помогли! Все понял.
У меня есть еще вопроы:
1)Герой умирает и не возрождается. Как сделать что бы он возродился в определенной области карты через 45 секунд или смог выкупится за золото в таверне?
2) Как сделать так, что бы определенный спел отображадся не в четырех нижних квадратиках, а в свободных верхних?

k0lenval   26 августа 2012 в 17:59

1) Тут главная сложность заключается в назначении переменной герою после того, как игрок его выбрал. Можно заранее создать героев и дать им свою переменную. Можно через алтарь и подготовку героев, к примеру:
pix.PlayGround.ru

pix.PlayGround.ru

2) Поэкспериментируй в редакторе объектов со строчками Графика-положение кнопки используется(X;У) в разделе способности.

UBIWATOR   26 августа 2012 в 19:05

Спасибо! Еще есть такой вопрос:)
Я скачал скин короля лича. Все работает. + Скачал иконки. Сделал перса Короля Лича на основе Артеса. Я добавил Артесу переделаную магию илидана превращиения. То есть у меня Артес нажимает магию и превращается в Короля Лича. Это все работает.
НО.... Вобщем если у тебя скажем 3 лвл, а эта магия (ульта) требует 6 лвл, то значек этой ульты отображается зеленым квадратом. Это связано с тем, что я незнаю куда вставлять иконку недостуности заклинания. Она в импорте у меня висит и че с ней делать? Подскажите пожалуйста. (ну вы знаете она такая типа более тусклая и без рамки.)
2) Как совместить в одной способности две? Например в одной способности 25% крита и 15% отжора?

k0lenval   26 августа 2012 в 21:11

1) warcraft3ft.info/board/15-1-0-1114

2) Практически все заклинания создаются или редактируются только через JASS (язык программирования, созданный близами для вара), из-за того, что там имеется возможность использовать локальные переменные, которые гораздо практичнее, чем обычные, так что в данном случае помочь не смогу.

UBIWATOR   27 августа 2012 в 11:48

Спасибо) Разобрался

grynnn1234   27 августа 2012 в 14:34

Как сделать чтоб юнит умирал от примененной им сособности?

WilderTier   16 сентября 2012 в 13:25

k0lenval,огромное спасибо

WilderTier   16 сентября 2012 в 13:26

Ещё такой вопрос,как задать максимальный левел герою больше 10го?

k0lenval   18 сентября 2012 в 07:33

необходимо зайти в Дополнительно=>Игровые константы=>Максимальный уровень героя и поставить нужный уровень. Теперь при прокачке герой будет качаться больше 10-го.

WilderTier   22 сентября 2012 в 23:40

k0lenvan,благодарствую

VITYA_KOLYADENKO   2 октября 2012 в 12:46

Возмождности создания тригеров в варике большие. А вот с редактированием спелов - по хуже. Только кажется сильный удар, смертельный удар и пьяный мастер основаны на одном шаблоне и их можно комбинировать.

VITYA_KOLYADENKO   2 октября 2012 в 13:38

k0lenval
А у тебя русские названия в редакторе тригеров? Слова вроде turn on/off - тоже на русском?

k0lenval   3 октября 2012 в 16:32

VITYA_KOLYADENKO
Да, как должно быть видно, русские.
В каком именно месте в редакторе встречается "turn on/off"?

Kind Ram   25 ноября 2012 в 01:38

Народ напишите мне плз скрипт на "окружение - set fog". Мне нужен такой скрипт чтобы только один конкретный игрок видел туман например таким:
call SetTerrainFogExBJ( 0, 1000, 8000, 0.30, 50.00, 0.00, 50.00 )

P.S. я вписываю скрипты через функ "Custom script" т.к. в основном работаю на стандартных триггерах.

Kind Ram   25 ноября 2012 в 05:27

k0lenval
Он имеет ввиду что у тебя вообще полностью триггеры переведены на русский типо комманды "Триггер - turn off (this trigger)" писались как "Триггер - выключить (текущий триггер)" и т.п.

sir_melifaro   28 ноября 2012 в 10:33

Важно, важно.
Как сделать нечто типо мультискилла?
то бишьт, при нажатии на скилл открывается еще несколько
?

Kind Ram   1 декабря 2012 в 15:02

sir_melifaro
Способность "Книга заклинаний".
Открываеш вкладку "Способности", а затем Особые-предметы-"Книга заклинаний".
Она сразу под способностью "книга забвения".

onimusha15rus   1 января 2013 в 14:32

Я Артаса из компании добавил к стандартным героям Альянса.В Алтарь Королей.Ну он там появился.Но его можно выбирать много раз!Помогите пожалуйста это исправить!

k0lenval   2 января 2013 в 22:58

Как сделать, чтобы созданный мной герой, при вызове его игроком строился только один раз?
Необходимо: открыть игровые константы, найти строки "Технологии зависимости (эквиваленты) - герои" (где вы должны прописать своих героев, если они не стандартные), "Технологии зависимости (эквиваленты) - алтарь" (здесь вы указываете ваш алтарь, если он не стандартный, далее в строках "центр поселения" указываете ваши ратуши, если они не стандартные.
Затем заходим в свойства героя в редакторе объектов и проставляем необходимые требования... В итоге - всё работает.
Источник xgm.ru/p/wc3/worldedit_faq

k0lenval   18 января 2013 в 01:03

Hectore
Народ напишите мне плз скрипт на "окружение - set fog". Мне нужен такой скрипт чтобы только один конкретный игрок видел туман...
Если еще кого интересует ответ - отвечаю: данный эффект не получится сделать на "Custom script", триггер необходимо полностью конвертировать в джаз и ввести в Actions.

if (GetLocalPlayer() == Player(0)) then - здесь нужно выбрать необходимого игрока, для которого туман будет виден. Player(0) - это 1 игрок, Player(1) - это 2 игрок и т.д.
call AddWeatherEffectSaveLast( gg_rct_OceanSound17, 'FDwh' ) - создаем туман 'FDwh' в области gg_rct_OceanSound17.
call EnableWeatherEffect( GetLastCreatedWeatherEffect(), true ) - включаем последний созданный эффект.
endif

simple_user   6 февраля 2013 в 00:33

Посерфил интернет и форум, но так и не нашел как реализовать:
Убрать "Нажмите любую клавишу" при загрузке карты.

k0lenval   6 февраля 2013 в 11:49

Подобное случается, когда в Описании карты на вкладке Экран загрузки задействован Экран кампании. Чтобы от этого избавиться, нужно выбрать либо Стандартный экран, либо Файл импорта.

simple_user   7 февраля 2013 в 15:03

k0lenval
Спасибо большое. Тут ещё одна трудность возникла.
Нужно: убрать проданный предмет из магазина.
Пробовал уже несколько раз, не получается. Даже при если ставить триггер на удаления определенного предмета, то всё равно не работает. Использую только GUI.

k0lenval   7 февраля 2013 в 21:53

Можно ли сделать так, чтобы, если в магазине вещь была куплена, то она исчезла совсем? Т.е. не перезаряжалась и со временем снова появлялась, а совсем исчезла: купил - и все она твоя и ни у кого другого ее не будет.
можно.
там есть целый набор триггеров для этих целей
Нейтральное здание - remove item-type (---) убирает предмет
Нейтральное здание - add item-type (---) добавляет предмет
в скобках там написано:
(from marketplace) из одного магазина
(from all marketplace) изо всех
тоже самое можно делать с нанимаемыми войсками.
Источник xgm.ru/p/wc3/worldedit_faq

simple_user   8 февраля 2013 в 11:23

k0lenval
Спасибо, но Я уже гуглил и видел этот faq, не помогло.

k0lenval   8 февраля 2013 в 14:36

Возможно у тебя магазин без способности Продажа предметов, как раз из-за этого и не получается добавить или удалить предмет при помощи тригов.

simple_user   8 февраля 2013 в 19:47

Спасибо, просто не думал, что дефолтной лавке придётся что-то добавлять.

Abidin   23 февраля 2013 в 15:45

Как дать способность игроку после написание в чате определённого слова.
Например:Хочу любому выбранному юниту дать способность рёв,после тако как я введу в чат слово rev

Abidin   26 февраля 2013 в 22:43

Хочу создать простенький таймер.С заголовком нельзя атаковать в течение 300 секунд.Как это можно сделать?

Abidin   28 февраля 2013 в 18:36

Как сделать так чтобы при атаке способность наносила 7*x от силы героя?

k0lenval   1 марта 2013 в 08:37

Повторяюсь: практически все заклинания создаются или редактируются только через JASS (язык программирования, созданный близами для вара), из-за того, что там имеется возможность использовать локальные переменные, которые гораздо практичнее, чем обычные, так что в данном случае помочь не смогу. Ступай вот сюда:xgm.ru/forum/forumdisplay.php?f=36 .

Abidin   3 марта 2013 в 00:17

Не даётся прибыль за убитых врагов.Что сделать чтобы давалась прибыль за убийство соперника

k0lenval   5 марта 2013 в 17:46

Награда дается только за убийство нейтрально-враждебных юнитов. Если речь идет о юнитах игрока, используй такой триг:
pix.PlayGround.ru

simple_user   6 марта 2013 в 18:23

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

k0lenval   6 марта 2013 в 22:35

simple_user
На гуи такого не сделать.

Abidin   9 марта 2013 в 19:50

Создал карту со своими нестандартными зданиями и воинами.Хочу чтобы боты смогли строить их.Как сделать?

k0lenval   9 марта 2013 в 23:12

Abidin
В редакторе есть спец вложение называется Редактор ИИ - поэкспериментируй с ним.

Abidin   10 марта 2013 в 14:09

k0lenval
я там чуть-чуть поковырялся,но ничего не могу сделать не отображаются нестандартные здания и войска

k0lenval   11 марта 2013 в 22:03

Abidin
Значит мало ковырялся - там есть все необходимое.
Но толковый ИИ мона сделать только на jass.

Abidin   3 июня 2013 в 16:03

Как после написания команды -obm (номер игрока) сменить героя игрока,который написал это сообщение на игрока,которого он указал в номере игрока

k0lenval   3 июня 2013 в 16:19

Abidin
Используй в триггере событие: Игрок - Напечатал сообщение в чате. Вводи сюда -obm (номер игрока) .
Действие: Боев. ед. - Заменить.

Murzilka39   3 июня 2013 в 18:55

Импортировал иконку, когда открываю способности у героя - зеленый квадрат, ставлю на паузу игру - зеленый квадрат. Как исправить?

GoblinSpore   3 июля 2013 в 18:58

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

k0lenval   5 июля 2013 в 00:35

GoblinSpore
Игровые константы - Технологии - Зависимости (эквиваленты) - Герой - Добавь сюда своего.
Затем открой Редактор объектов, найди своего героя и поставь ему такие же Технологии - Требования, как допустим у Алхимика.

GoblinSpore   5 июля 2013 в 19:56

Спасибо большое! Технологии - Требования то я поставил а про константы не знал.

GoblinSpore   6 июля 2013 в 23:15

Есть еще вопрос, если дать юниту две разные нестандартные способности, сделанные из какой-то одной,
то он при использовании какой-либо из них будет использовать одну определенную.
А если у способностей (как в моем случае) перезарядки нет то вторая вообще никогда не используется.

Vfl1402   6 июля 2013 в 23:22

Подскажите как сделать чтоб за нанесеный урон давалось столько же денег как в карте Troll vs. Elves
P.S лазил только в тригерах в редакторе обьктов покачто нет (если найду то удалю пост)

simple_user   7 июля 2013 в 02:13

ViP_LoL98, на GUI такого вроде не сделать.
GoblinSpore, у них один и тот же "идентификатор приказа", т.е. они должны срабатывать сразу обе (точно не проверял, но в кд обе уйдут).

Vfl1402   7 июля 2013 в 10:50

а через грабеж можно сделать? (у меня есть способ герез GUI но мне кажется он багнутый будет)

simple_user   7 июля 2013 в 11:55

ViP_LoL98, никогда не делал ничего со способностью "грабеж". Ну, если Я правильно понимаю, то нужно дать золото в кол-ве нанесенного урона. Тогда посмотри в событиях есть что-то вроде "юнит получает урон", а потом можно узнать сколько нанесено и дать золото. Но проблема в том, что это событие доступно лишь для какого-то конкретного юнита.

GoblinSpore   7 июля 2013 в 12:15

Сам справился))
Пересоздал из способностей на основе сторожевой змеи, теперь все работает.

k0lenval   7 июля 2013 в 21:30

ViP_LoL98
В триге, написанном ниже, необходимо использовать действие "Личный сценарий":
События:
Боевая единица - Событие Атакован

Действия:
Личный сценарий: local integer s = R2I(GetUnitStateSwap(UNIT_STATE_LIFE, GetAttackedUnitBJ()))
Ждать 1 сек.
Личный сценарий:call AdjustPlayerStateBJ( ( s - R2I(GetUnitStateSwap(UNIT_STATE_LIFE, GetAttackedUnitBJ())) ), GetOwningPlayer(GetAttacker()), PLAYER_STATE_RESOURCE_GOLD )

simple_user   8 июля 2013 в 11:30

k0lenval, а без Wait можно обойтись?
Т.к. это можно и на GUI реализовать: запомнить хп до удара, сравнить их с хп после удара (т.е. через 1 сек.), разница и будет уроном...
И если Я всё правильно понимаю, то в 1 сек. может быть нанесено несколько ударов и первый раз триг посчитает несколько порций урона, как одну, но затем он сработает ещё несколько раз... Я к тому, что это может неправильно работать.

k0lenval   8 июля 2013 в 15:31

simple_user
Если есть сомнения в правильности данного кода, можешь легко проверить.
Вэйт обязателен, так как иначе не получится разницы между жизнями жертвы до удара и после.
На ГУИ реализовать не получится, так как здесь необходима локальная переменная.

pro100noob-   14 июля 2013 в 00:30

нахрен нужны эти тупые нубокарты типа тд играйте в разву (V)("_")(\/)
п.с. я тоже (V)("_")(\/))

Abidin   18 июля 2013 в 14:53

/>ViP_LoL98


вот незнаю правильно ли я написал,и будут ли утечки,но вроде когда я проверял давались деньги

Abidin   18 июля 2013 в 15:02


Или вот так.

Vfl1402   22 июля 2013 в 09:27

Спасибо конечно но пока не проверил
у меня еще 1 вопрос
я хочу сделать спел типа(друид-ворон)
у меня мапа типа escape хочу дать книжу и пихнуть туда 4 спела чтоб менялись модельки героев и оставалось опыт предметы и т.д. ну если надоест 1 модель то можно будем поменять. Можно как нить сделать чтобы в 1 спел или придется делать на каждого гера свои спеллы?
и еще подскажите нормальный файло обменник

k0lenval   22 июля 2013 в 11:53

ViP_LoL98
Да, для каждого героя нужно создать отдельную способность.

Vfl1402   22 июля 2013 в 13:06

а насчет файлообменика?
Жалко что форум не кипит жизнью

GoblinSpore   13 августа 2013 в 15:01

Ребят подскажите действие для триггера. Я хочу чтобы, когда юнит применял способность,
ПОЗАДИ НЕГО на расстоянии 100 появлялся другой юнит.
Мне нужно только это действие, все остальное уже сделал сам.

P.S. Я знаю что можно основе стандартной способности и поставить область воздействия -100, но нужно именно триггером.

simple_user   13 августа 2013 в 20:35

Боевая единица - Create 1 UnitName for (Owner of (Triggering unit)) at ((Position of (Triggering unit)) offset by 100.00 towards ((Facing of (Triggering unit)) + 180.00) degrees) facing Стандартная ориентация зданий degrees

можешь Triggering unit заменить на Casting unit
100 - расстояние
180.00 - угол в градусах

GoblinSpore   15 августа 2013 в 14:12

simple_user
Спасибо, попозже попробую.


А сейчас у меня есть вопрос посложнее.
В данный момент делаю карту где надо захватить 5 кругов, простояв в каждом минуту.
После того как юнит заходит то он становится переменной, в триггере есть wait на 60 сек. и уже после того проверяется
стоит ли этот юнит все еще в круге или нет. Проблема в том что встав на круг тот самый юнит может идти куда хочет
а если через минуту вернуться и круг все равно захватится.
И еще одна проблема что когда юнит выходит из круга то переменная очищается и ей становится следующий юнит
который зайдет в круг, а в триггере после wait проверяется стоит ли переменная в круге или нет,
то есть может быть так что один юнит прибежал к кругу и сразу ушел а через минуту прибежал другой и круг все равно захватится.

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

GoblinSpore   15 августа 2013 в 17:06

Фух, сам смог =)

Как сделал (может кому поможет):
Разделил тот самый wait for 60 seconds на 60 wait'ов по 1 секунде (было долго и скучно)
и после каждого поставил проверку логической переменной, которая ставилась на ДА когда юнит выходил из круга или умирал,
если переменная была со значением ДА то очищалась переменная юнита в круге и пропускались оставшиеся действия

Кстати а можно ли было как-нибудь обойтись без 60 wait'ов?

simple_user   15 августа 2013 в 21:40

GoblinSpore
Да, и очень даже легко. Нужно курить в сторону таймеров.
Алгоритм простыми словами:
1)Юнит вошел в область.
- Запомнить его.
- Включить таймер на n времени.

2) Юнит вышел с области.
- Остановить/сбросить таймер.

3) Таймер завершился.
- Считать захват завершенным.

Но тут появляется проблема: что делать, если вошли в область 2+ юнитов?
Решения:
- Сбрасывать таймер и ждать пока не останется только 1 юнит(если это не один и тот же игрок).
- Выключать триггер (1) в его конце и включать триггер (1) в конце двух других триггеров.

Upd.
Ну, если для тебя это сложно, то есть вариант с твоими wait.
Вместо твоих 60 достаточно всё сделать циклом. Суть останется одной и той же, но оптимизация в 100500%.

GoblinSpore   16 августа 2013 в 22:17

simple_user
Так может и лучше, но вот только как триггер поймет что таймер завершился?
Ведь условий, связанных с таймерами нет. (или я плохо искал)


Сделал. Когда юнит встает на круг запускается другой триггер который каждую секунду увеличивает переменную на 1,
при условии что юнит все еще стоит в круге, если юнит ушел то выставляет переменную на 0,
в это время первый триггер ждет когда переменная станет равна 59 (если поставить 60 то когда таймер после 0:00 еще секунду висит),
после этого уже выполняется захват. Кстати спасибо за идею, а то я до сих пор бы использовал 60 wait'ов, а они сильно глючили.

Кстати, насчет 2+ юнитов вошедших в круг. После того как юнит вошел в круг триггер отключается,
то есть другой юнит не может выбраться пока первый не умрет или не уйдет.

Abidin   17 августа 2013 в 19:06

Можно и так.
Триггер 1
С:Юнит вошел в Область n
У:Кол-во юнитов в обасти n 1
Д:Установить player[x] = переключающий юнит(triggering unit)
Д:Запустить триггер 2
Д:Ждать пока юнит покинет область n.(прверять каждую секунду) и действие Выключить Триггер 2
Триггер 2
С:Каждую секунду
Д:Установить целоисчеслительную x на x+1.
Д:Если x=60 то сменить владельца КругN на владельца player[x] и Установить x=0

simple_user   17 августа 2013 в 19:25

GoblinSpore
Вижу, суть ты уловил. Но для работы с таймерами на GUI достаточно средств есть, а ты просто изобретаешь велосипед)
Во-первых, нужно создать переменную с типом Таймер. Назовем её timerNew.
Теперь мы можем с ней работать:

Обратный отсчет - Start timerNew as a Однократный timer that will expire in 30.00 seconds
//Запускает таймер на 30 сек. однократно

Также там есть такой инструмент Pause timer, который стопит.
Ещё там есть инструменты для создания окошек для таймеров, которые могут тебе пригодится, чтобы наглядно знать сколько тебе ещё стоять на захвате.
Надеюсь, что тут всё было понятно и теперь самое простое - необходимо узнать когда истечет наш таймер. Для это есть такое событие:

Время - timerNew expires
//Когда завершается таймер, то срабатывает и наше событие.

Эти инструменты очень хорошо можно применить в твоей задаче. Да, и в будующем пригодится =)

GoblinSpore   18 августа 2013 в 19:54

Ладно, всем спасибо. Карту уже доделал, даже боты есть))

Меня давно уже терзает проблема в другой карте. Почему-то не показываются подсказки у предметов, способностей и т.п.
Я не понимаю почему, вроде ничего такого сам не настраивал, никто не знает из-за чего могло случиться?

Abidin   24 августа 2013 в 20:12

Ну как бы тебе сказать.Это не зависит от карты.Запусти карту в варике.Жми настройки,потом жми игра,и потом поставь галочку на подробные подсказки

GoblinSpore   26 августа 2013 в 14:05

Abidin
Спасибо кэп!
Как же это не зависит от карты, если такое только в этой карте?
+ если отключены подробные подсказки, то вылезает хотя бы название,
а тут вообще ничего не происходит. Единственное у чего появляются подсказки это кнопки у мини-карты.

k0lenval   28 августа 2013 в 10:18

GoblinSpore
удаляй триги по одному и смотри, пока не появятся. Также игровые константы попробуй на дефолт вернуть.

Kind Ram   1 сентября 2013 в 00:49

GoblinSpore
А ты случаем не запустил спецэффект затемнения экрана?
Просто если залесть в "Спецэффекты - Fade filter", то запущенный тобой спецэффект (сон, дымка, чёрная маска, подзорная труба и все остальные) накладывают его на экран всех игроков.
А когда эффект запущен в интерфейсе автоматически блокируются текстовые подсказки. Не такой уж это и минус, ведь никто обычно не юзает этот эффект на всю игру.

Kind Ram   1 сентября 2013 в 00:52

Просто используй этот эту функцию ещё раз и выбери там "ввод изображения", если проблема именно в этом.

GoblinSpore   5 сентября 2013 в 16:03

Hectore
спасибо, проблема была именно в этом, исправил.

Новый вопрос, как сделать чтобы через деревья можно было видеть?

simple_user   5 сентября 2013 в 21:51

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

Asiris 120598   20 октября 2013 в 15:12

Я делаю карту в которой надо оборонять свою базу...подскажите какой триггер нужно создать что бы по истечению 40 минут выскакивала победа??????

k0lenval   20 октября 2013 в 16:18

Asiris 120598
"Игра - победа" называется .

VITYA_KOLYADENKO   2 ноября 2013 в 19:25

Asiris 120598
Ещё наверное в начале нужно создать таймер и потом либо регулярно проверять его значение (может ресурсы тратить сильно), либо ещё как-то с ними можно работать.

kirllus35   3 ноября 2013 в 20:10

Всем привет) возник такой трабл: нужно в триггере запустить триггер например под название "open A" где А -переменная которую мы определили уже.

simple_user   4 ноября 2013 в 02:32

Так там же есть функция, запускающая триггер. Она может запускать с проверкой условий или без, в чем проблема?

kirllus35   4 ноября 2013 в 15:23

проблема что эта функция на определенное название работает, а у меня не определенное, "open A" где А-числовая переменная, А = 1 или А= 2 итд...

simple_user   4 ноября 2013 в 18:58

Ты хочешь запустить триггер по переменной A, но она у тебя числовая... лол
Вот тебе гайд:
Создаем переменную %variable% - тип Триггер.
Присваиваем ей значение. // какой-либо триггер
Создаем действие Run, где указываем нашу переменную %variable% // у меня это Триггер - Run %variable% (checking conditions)
???????
PROFIT!!111

Опять же, про это Я тебе говорил в предыдущем своём посте.
P.S. если даже сейчас ты не получишь желаемого, то ты неверно описал свою проблему, либо вообще не понимаешь как там всё устроено и пытаешься сделать то, что в принципе нельзя делать.

GoblinSpore   26 февраля 2014 в 14:50

Есть вопрос: как после покупки наемника триггерно сбросить его кулдаун?

PS. Уже не надо - сам разобрался

GoblinSpore   27 февраля 2014 в 21:43

А теперь новые вопросы:

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

2. Как отследить что юнит перестал что-либо делать? Событие "получил приказ стоп" работает только если непосредственно нажать на кнопку.

simple_user   28 февраля 2014 в 00:24

1) Для каждой такой ситуации сделать свой триггер. Как пример:
Есть юнит с молотом силы.
По событию - юнит в ранге.
Условия - рядом вражеский юнит.
Можно ещё добавить, чтобы выбирал определенного юнита, например, героя.
Действие - запустить Молот силы в цель.

ИЛИ

Лечить когда у союзного юнита рядом хп меньше половины.

2) Давно этим не занимался. Ничего не подскажу.

GoblinSpore   28 февраля 2014 в 16:19

simple_user
Не, так не пойдет ибо тогда надо делать свой триггер для ВСЕХ заклинаний, а у меня карта где под контролем игрока могут быть все крипы в игре.
Надо как-то через ИИ либо один триггер на всех, но я понятия не имею как.

Можно попробовать менять владельца на компа а когда выбираешь юнита то менять владельца обратно чтобы можно было им управлять.

GoblinSpore   28 февраля 2014 в 17:01

Кстати сработало, поставил владельцем юнитов компа с общими войсками, теперь они и заклинания сами используют и управлять ими можно)
Остается только второй вопрос и сейчас он мне еще нужнее.

simple_user   28 февраля 2014 в 23:30

Но ведь тогда ты не контролируешь это, но если тебе подходит, то хорошо.
А по поводу второго. Не уверен, что это можно реализовать теми средствами. Можно попробовать сделать что-то подобное проверке на афк. Т.е. если давно не отдавал приказов. Позже открою редактор, попробую поиграться, если получится - дам знать.

simple_user   3 марта 2014 в 13:03

Поковырялся немного, но так и не смог реализовать чего-то стоящего. Попробуй спросить на xgm форуме, там должны быть более скиловые люди.

Xoniko   27 июня 2014 в 14:26

Привет! Я недавно начал работать с WE, но есть кое-какая проблема:
Как посадить героя в клетку?

GoblinSpore   27 июня 2014 в 19:00

Xoniko
Если имеешь в виду чтобы он появлялся при разрушении клетки то нужно после ее разрушения создать его на ее месте триггером.

FrostGamer   16 июля 2014 в 20:36

Всем привет, в Алтаре я заменил Чародея крови на Келя и его почему то можно было нанимать постоянно, как обыкновенного война, но как героя. Как исправить?

Ivanman777   22 ноября 2014 в 09:02

Помогите пожалуйста,мне надо что бы на мой лагерь нападали враги!!!

M. Madhouse   14 декабря 2014 в 13:02

У меня такая проблема: в начале моей карты выбираешь таверну, игра вылетает, но если убрать из неё всех героев, то вылета нет. Пробовал оставлять по одному герою но вылет всё равно происходит. Ещё при убийстве вражеского юнита (и с получением опыта и без) игра также вылетает. И если поставит в едиторе героя и дать ему уровень, карта вылетит при загрузке. Что это такое и как решить?
P.S.
Вылет происходит без всяких ошибок