»стори€ “ерран
»стори€ ѕротоссов
»стори€ «ергов
StarCraft - FOREVER!
7x Team Logo
 
 
 јвторизаци€
–егистраци€
Ќовости
 оманда
‘айлы
StarCraft 2
—татьи
—тратегии
Ѕиблиотека
ёмор
–едактор карт
ѕартнеры
–еклама


 “риггеры. —оздание квестов (заданий)

ќбучалка непроста€, рассчитана на тех кто хот€ бы выполнил все предыдущие туторы по триггерам и немного шарит в них. ћы создадим систему заданий (квестов дл€ любителей RPG), у нас будет персонаж принимающий и выдающий это задание. Ѕудет также и журнал заданий. —истему, по мне так похожую на Diablo II
¬от как все примерно будет выгл€деть (Ќе забывайте, оформление=ваша фантази€):



ƒл€ начала сделайте карту. ѕоставьте себе какую-либо единицу (игрок 1), единицу дл€ персонажа с заданием (игрок 2) и кучку зерглингов дл€ бить€ (игрок 15).


ќбласть 001 не об€зательна. ” мен€ она ограничивает игровую площадь, мне удобнее было :). ј вот область Quest gain поставьте об€зательно Ч вход€ в нее, ваша боева€ единица сможет разговаривать с персонажем с заданием (в дальнейшем Ч задачником:)). —делали? ћолодцы.

ƒл€ начала давайте насоздаем кучу переменных (€ объ€сню что зачем):
Kill count = 0 <÷елое число>
    LOG
= Ќет элемента диалогового окна <Ёлемент диалога>
   
Quest button dialog = Ќет диалогового окна <ƒиалог>
    NPC
Text = "«десь вставьте текст своего задани€" <“екст>
    QUEST LOG
= Ќет диалогового окна <ƒиалог>
   
Buttons = Ќет элемента диалогового окна <Ёлемент диалога[1][1]>
    quest dialog
= Ќет диалогового окна <ƒиалог>
   
Posibilty of Quest gain = false <Ѕулево[2]>

Buttons Ч ћассив с двум€ индексами, Posibilty of Quest gain Ч с одним.
Ќам нужна кнопка журнала с задани€ми, да? —оздаем триггер.
Initialization
   
—обыти€
       
»гра - »нициализаци€ карты
   
Ћокальные переменные
   
”слови€
   
ƒействи€
       
 амера - «адать рамки камеры дл€ игроков (¬се игроки): ќбласть 001 (ƒа миникарту)
       
»нтерфейс - —крыть игровой ѕ» дл€ игроков (¬се игроки)
       
»грок - »грок 1 и игрок 2 относ€тс€ друг к другу как —оюзник с общим обзором
       
ќкно диалога - —оздать ћодальный диалоговое окно размером (180, 180) в (0, 0), св€занное с ѕравый верхний экрана
       
ѕеременна€ - ”становить Quest button dialog = (ѕоследний созданный диалог)
       
ќкно диалога - —оздать кнопку дл€ диалога (ѕоследний созданный диалог) с размерами 120 и 120, прив€занную к ѕравый верхний со смещением (30, 30), подсказкой "", текстом "Assets\Textures\ui_ingame_help_tech..." и изображением наложени€ Assets\Textures\black.dds
       
ѕеременна€ - ”становить LOG = (ѕоследний созданный объект диалога)
       
ќкно диалога - ѕоказать (ѕоследний созданный диалог) дл€ (¬се игроки)

¬аша единица и задачник Ч союзники, стандартного интерфейса больше нет, а рамки камеры заданы в области 001. “акже создано диалоговое окно и кнопка в нем. » показано, собственно.

“еперь нам необходимо сделать проверки на то, находитс€ ли наш герой в нужном месте (зоне Quest Gain). —оздаем два триггера.
enter
   
—обыти€
       
≈диница - Ѕессмертный [125.32, 121.42] ¬ходит в Quest gain
   
Ћокальные переменные
   
”слови€
   
ƒействи€
       
»нтерфейс - ѕоказать "¬ќЎ≈Ћ " дл€ (¬се игроки) в зоне —убтитры
       
ѕеременна€ - ”становить Posibilty of Quest gain[0] = true

Ѕессмертным должен быть ваш герой. —ообщение Ч надоедливое конечно, но жизнь облегчит вам ох как.
Exit
   
—обыти€
       
≈диница - Ѕессмертный [125.32, 121.42] ќставл€ет Quest gain
   
Ћокальные переменные
   
”слови€
   
ƒействи€
       
»нтерфейс - ѕоказать "¬џЎ≈Ћ " дл€ (¬се игроки) в зоне —убтитры
       
ѕеременна€ - ”становить Posibilty of Quest gain[0] = false

 ак видите, за это все отвечает первый индекс нашей переменной Ч булева.
Ќам нужно чтобы при выделении задачника показывалс€ текст задани€. —оздаем триггер:
Quest dialog
   
—обыти€
       
¬ыбор единицы - ƒл€ “емный тамплиер [144.29, 120.17] задано ¬ыделение игроком Ћюбой игрок
   
Ћокальные переменные
   
”слови€
       
Posibilty of Quest gain[0] == true
   
ƒействи€
       
ќкно диалога - —оздать ћодальный диалоговое окно размером (500, 400) в (0, 0), св€занное с —верху экрана
       
ѕеременна€ - ”становить quest dialog = (ѕоследний созданный диалог)
       
ќкно диалога - —оздать метку дл€ диалога (ѕоследний созданный диалог) с размерами 400 и 300, прив€занную к —верху со смещением (0, 50), текстом NPC Text цвета Ѕелый и по€влением текста true в течение 4.0.
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
Posibilty of Quest gain[1] == true
           
то
           
иначе
               
ќкно диалога - —оздать кнопку дл€ диалога (ѕоследний созданный диалог) с размерами 200 и 50, прив€занную к —верху со смещением (-120, 310), подсказкой "", текстом "ѕрин€ть" и изображением наложени€ Assets\Textures\black.dds
               
ѕеременна€ - ”становить Buttons[0][0] = (ѕоследний созданный объект диалога)
       
ќкно диалога - —оздать кнопку дл€ диалога (ѕоследний созданный диалог) с размерами 200 и 50, прив€занную к —верху со смещением (120, 310), подсказкой "", текстом "«акрыть" и изображением наложени€ Assets\Textures\black.dds
       
ѕеременна€ - ”становить Buttons[1][0] = (ѕоследний созданный объект диалога)
       
ќкно диалога - ѕоказать (ѕоследний созданный диалог) дл€ (¬се игроки)

ѕри выделении задачника (у мен€ темного тамплиера) и переменной Posibilty of Quest gain[0] == true, по€витс€ диалоговое окно, в котором, в зависимости от переменных будет текст и различные кнопки. ѕри первом клике будет текст задани€ + кнопки Ђѕрин€тьї и Ђ«акрытьї.

ƒавайте теперь создадим наш журнал с задани€ми и заодно в этот же триггер впихнем прием задани€ и действие кнопки Ђзакрытьї Ч создаем триггер:
Quest log
   
—обыти€
       
ќкно диалога - ѕредмет Ћюбой элемент диалога используетс€ игроком Ћюбой игрок с типом событи€ ¬ыбрано.
   
Ћокальные переменные
   
”слови€
   
ƒействи€
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
(»спользуемое окно диалога) == LOG
           
то
               
ќкно диалога - —крыть QUEST LOG дл€ (¬се игроки)
               
ќкно диалога - —оздать ћодальный диалоговое окно размером (600, 700) в (0, 0), св€занное с Ћевый экрана
               
ѕеременна€ - ”становить QUEST LOG = (ѕоследний созданный диалог)
               
ќкно диалога - —оздать кнопку дл€ диалога (ѕоследний созданный диалог) с размерами 200 и 50, прив€занную к Ћевый со смещением (-40, 310), подсказкой "", текстом "ќтказатьс€" и изображением наложени€ Assets\Textures\black.dds
               
ѕеременна€ - ”становить Buttons[0][1] = (ѕоследний созданный объект диалога)
               
ќкно диалога - —оздать кнопку дл€ диалога (ѕоследний созданный диалог) с размерами 200 и 50, прив€занную к Ћевый со смещением (350, 310), подсказкой "", текстом "«акрыть" и изображением наложени€ Assets\Textures\black.dds
               
ѕеременна€ - ”становить Buttons[1][1] = (ѕоследний созданный объект диалога)
               
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
                   
≈сли
                       
Posibilty of Quest gain[1] == true
                   
то
                       
ќкно диалога - —оздать метку дл€ диалога QUEST LOG с размерами 400 и 50, прив€занную к Ћевый со смещением (50, -200), текстом "”бейте 5 «ерглингов..." цвета Ѕелый и по€влением текста false в течение 2.0.
                   
иначе
               
ќкно диалога - ѕоказать (ѕоследний созданный диалог) дл€ (¬се игроки)
           
иначе
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
(»спользуемое окно диалога) == Buttons[1][0]
           
то
               
ќкно диалога - —крыть QUEST LOG дл€ (¬се игроки)
               
ќкно диалога - —крыть quest dialog дл€ (¬се игроки)
           
иначе
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
Posibilty of Quest gain[2] == false
               
(»спользуемое окно диалога) == Buttons[0][0]
           
то
               
ќкно диалога - —крыть Buttons[0][0] дл€ (¬се игроки)
               
ѕеременна€ - ”становить NPC Text = "“џ ≈ў≈ Ќ≈ ”Ѕ»Ћ «≈–√.."
               
ѕеременна€ - ”становить Posibilty of Quest gain[1] = true
               
ќкно диалога - —крыть QUEST LOG дл€ (¬се игроки)
               
ќкно диалога - —крыть quest dialog дл€ (¬се игроки)
           
иначе

ѕри нажатии на нашу кнопку Log, по€витс€ новое диалоговое окно с задани€ми, если они вз€ты конечно. ¬ этом окне будут кнопки Ђзакрытьї и Ђотказатьс€ї. Ќажатие кнопки Ђотказатьс€ї сбросит вз€тый квест, вследствие чего мы можем вз€ть его заново.

≈сли же мы нажимаем на кнопку Ђприн€тьї в окне с нашим квестом Ч информаци€ о нем заноситс€ в журнал и стартует квест («а это отвечает булево Posibilty of Quest gain[1] = true) и измен€етс€ текст у задачника. “акже кнопка прин€ть до выполнени€ или сброса квеста будет недоступна.

≈сли же мы нажимаем на кнопку Ђзакрытьї в окне с нашим квестом Ч просто закрываетс€ окно журнала и разговора с задачником.

ƒавайте зададим теперь действи€ дл€ кнопок в журнале заданий. Ќовый триггер:
Action
   
—обыти€
       
ќкно диалога - ѕредмет Ћюбой элемент диалога используетс€ игроком Ћюбой игрок с типом событи€ ¬ыбрано.
   
Ћокальные переменные
   
”слови€
   
ƒействи€
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
(»спользуемое окно диалога) == Buttons[0][1]
           
то
               
ѕеременна€ - ”становить NPC Text = "ќп€ть ты! Ќу что, со.."
               
ѕеременна€ - ”становить Posibilty of Quest gain[1] = false
               
ќкно диалога - —крыть QUEST LOG дл€ (¬се игроки)
           
иначе
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
(»спользуемое окно диалога) == Buttons[1][1]
           
то
               
ќкно диалога - —крыть QUEST LOG дл€ (¬се игроки)
           
иначе

≈сли мы нажимаем на кнопку Ђќтказатьс€ї, то текст задачника мен€етс€ и переменна€ Posibilty of Quest gain[1] сбрасываетс€. “акже закрываетс€ окно журнала.

≈сли же мы нажимаем на Ђ«акрытьї Ч окно журнала закрываетс€.

—ейчас мы сделаем чтобы нам засчитывали в квест убийства зерглингов. Ќовый триггер:
Quest count
   
—обыти€
       
≈диница - Ћюба€ боева€ единица умирает
   
Ћокальные переменные
   
”слови€
       
Posibilty of Quest gain[1] == true
   
ƒействи€
       
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
           
≈сли
               
Kill count < 5
               
(¬ладелец (»змен€ема€ единица)) == 15
           
то
               
ѕеременна€ - ”становить Kill count = (Kill count + 1)
               
ќбщее - ≈сли (услови€), то выполнить (действи€), иначе выполнить (действи€)
                   
≈сли
                       
Kill count == 5
                   
то
                       
»нтерфейс - ѕоказать " вест завершен " дл€ (¬се игроки) в зоне —убтитры
                       
ѕеременна€ - ”становить Posibilty of Quest gain[1] = false
                       
ѕеременна€ - ”становить Posibilty of Quest gain[2] = true
                       
ѕеременна€ - ”становить NPC Text = "„то, убил зерглинго..."
                   
иначе
                       
»нтерфейс - ѕоказать "”бийство засчитано" дл€ (¬се игроки) в зоне —убтитры
           
иначе

≈сли мы убиваем любую единицу игрока 15 с включенным квестом, нам засчитывают убийство. ≈сли же мы убиваем 5-го зерглинга дл€ квеста Ч нам сообщают что квест завершен, текст задачника мен€етс€ и переменна€, необходима€ дл€ сдачи квеста (Posibilty of Quest gain[2]) становитс€ активной.

ѕростейша€ система квестов с 1-м единственным работающим квестом создана. ≈сть пара глюков с оформлением журнала заданий, но с этим уж разберитесь сами.

≈сли возникли какие-либо вопросы по ходу выполнени€ данных туторов, приходите на форум Redsys.ru и задавайте. Ѕудем рады ответить. Ћибо в комментари€х ниже, но шанс получить ответ у вас тогда будет также ниже.

 арта јвтора Ч “ут
јвтор Ч Knight
© RedSys.Ru by Knight
—тать€ написана: 2010-08-31 14:28:52
ѕрочитано раз: 21106
ѕоследний: 2019-10-15 21:58:49
ќбсудить на форуме

   ѕока тут нет ни одного комментари€, можете добавить первый.

  ƒобавить комментарий

ƒобавить комментарий
«аголовок:
»м€*:
Email:
Icq:
ћестонахождение:
—колько будет 6х6?:
 омментарий*:

7x Top
—обыти€

Waiting info... SC2Alpha League

RSL League



»нформаци€


јдминистраци€:
-
-

Ќовинки

ѕоследние Ќовости

Ќовое на форуме

ѕоследние статьи

Ќовые файлы


ƒрузь€
–еклама


 

© 2002-2019 7x.ru StarCraft information site.
7x Engine version 1.7.1 Alpha build 5 .

 опирование информации только с пр€мой индексируемой ссылкой на наш сайт!
»де€ проекта: . –азработка - 7x Team.

–екомендуемое разрешение - 1280x1024 при 32bit. ћинимум - 1024x600 при 16bit.
ѕоддерживаемые браузеры: IE 7.0+ и аналогичные
ƒата генерации - 16.10.2019 @ 07:17:42 MSK. —траница загружена за 1.01424 попуга€.

» помните - StarCraft Forever!

 

яндекс.ћетрика Rambler's Top100 яндекс цитировани€

карта сайта
7x на ётубе
7x во ¬контакте
7x в “виттере
7x в ƒискорде