Моддинг Редактор тригерів - Тригер (GUI) Редактор Підручники
| 18-04-2019Вступ |
Приступаючи до роботи
По-перше, створити папку з ім'ям "інтерфейс користувача" в головному каталозі Warcraft III. Він повинен називатися "інтерфейс користувача" для World Editor визнати файли всередині неї.
Тепер вам потрібні останні версії наступних файлів: UI \ TriggerData.txt UI \ TriggerStrings.txt UI \ WorldEditStrings.txt
Вони можуть бути вилучені з War3Patch.mpq. Покладіть ці файли в каталог інтерфейсу ви створили.
Ці файли читаються, коли ви завантажите World Editor, але тільки тоді. Так що якщо ви внесли зміни в будь-який з цих файлів, і ми відкриті, ви повинні закрити і перезапустити МИ для того, щоб зміни набули чинності.
Перший та найважливіший файл TriggerData.txt. Тут всі функції вбудованого отримує файл містить такі розділи:
[] TriggerTypeDefaults - Деякі типи змінних ініціалізуються за замовчуванням. Так, наприклад, цілих встановлюються 0 за замовчуванням. Деякі види повинні бути ініціалізовані функцією (як правило, "Створення "____) для того, щоб працювати належним чином, так що це гарна практика, щоб зробити це тут. Наприклад, таймери ініціалізуються CreateTimer() і групами ініціалізуються CreateGroup().
[TriggerParams] - Вони відомі як "Заготівлі" в Редакторі тригерів. Вони визначають значення змінної типу, які можна вибрати зі списку. Деякі типи змінних, є тільки ці пресети і жодної іншої мети. Для тих із вас із зовнішніми досвід програмування, в основному це "перерахованих типів". Прикладом може бути список замовлень, Ви можете оформити орієнтації пункті ("Move", "Людина Archmage - Blizzard", "Orc Tauren Chieftain - Shockwave")і т.д.).
[Де] - Усі заходи визначені тут.
[TriggerConditions] – всі умови визначені тут.
[TriggerActions] - Усі дії, визначені тут.
[TriggerCalls] - Це так звані "Функції" в Редактор тригерів, коли вам потрібно заповнити значення як параметр. Приклади: "Math - випадкових чисел" та "Регіон - Центр Регіон".
Розділи TriggerStrings.txt полягають у наступному:
[TriggerEventStrings] – Strings для всіх подій.
[TriggerConditionStrings] - Strings для всіх умов.
[TriggerActionStrings] – Strings для всіх дій.
[TriggerCallStrings] – Strings для всіх функцій.
Зверніть увагу, що WorldEditStrings.txt має лише один розділ. Це означає, що можна додати рядки у будь-якому місці файлу. Я вважаю, що найпростіше просто додати рядки в кінець цього файлу, але це залежить від вас.
Добре, давайте приступимо до справи. Я почну тут з простий приклад додавання дії і повернутися до дій, набагато пізніше в посібнику з трохи докладнішим прикладом.
Відкрийте TriggerData.txt. Порядок, в якому лінії з'являються в TriggerData.txt, безпосередньо впливає на порядок, в якому елементи з'являються в списках Редактор тригерів. Так що якщо ви хочете додати нову дію, вам, ймовірно, хочете, щоб мати рацію перед або відразу після існуючих дій Вплив Destroy. Ми знаємо, що DestroyEffectBJ з'явиться у файл, так що давайте шукати з цього питання. Потім ми бачимо рядки:
Код: DestroyEffectBJ=0,ефект _DestroyEffectBJ_Defaults=GetLastCreatedEffectBJ _DestroyEffectBJ_Category=TC_SPECIALEFFECT Що означає кожен рядок сказати? Перший рядок говорить, що ми маємо функцію називається DestroyEffectBJ. Значення "0"означає, що функція визначена WC3: Reign Хаосу. Якщо функцію визначено лише у WC3: The Frozen Throne, ви повинні покласти значення "1" тут. Інші значення змінної типу параметрів. У цьому випадку, у нас є "результат", спеціальний ефект.
Наступний рядок дає за промовчанням будь-які параметри. У цьому випадку, GetLastCreatedEffectBJ ("Останній створений Спеціальний Effect"), функція, значення за промовчанням.
Отже, тепер ми хочемо додати запис для функції DestroyEffect. Він має ті ж цілі та параметри, як DestroyEffectBJ, так що в цьому випадку ми можемо просто скопіювати та вставити ліній, змінюючи тільки назву функції. Таким чином, ми додати наступні рядки:
Код: DestroyEffect=0,effect _DestroyEffect_Defaults=GetLastCreatedEffectBJ _DestroyEffect_Category=TC_SPECIALEFFECT І ми покінчили з TriggerData.txt для цього прикладу.
Далі нам необхідно додати відповідні рядки в TriggerStrings.txt. Відкрийте TriggerStrings.txt і, як і раніше, робити пошук по "DestroyEffectBJ". Цей файл має свої записи в тому ж порядку, TriggerData.txt, і це, ймовірно, гарна ідея, щоб зберегти з цією Конвенцією. Ви побачите наступні рядки:
Код: DestroyEffectBJ = "Destroy Спеціальний Effect" DestroyEffectBJ = "Destroy",
Спеціальний Вплив DestroyEffectBJHint = Перша лінія, яку ви бачите при виборі дій зі списку. Друга лінія, що ви бачите, коли ви маєте дії в даний момент. Це також показує, що лінії, якщо дії є частиною вашої спусковий гачок. Третя лінія, "Підказка", виводить у невеликий сірий друку, якщо у вас є акції вибрані. DestroyEffectBJ не натяк, так що ця лінія залишається порожнім.
Зверніть увагу надругий лінії. Ми повинні сказати Редактор тригерів, де в рядку, ми залишаємо за пробілів параметрів. Те, як ви повинні робити це за рахунок припинення рядок подвійні лапки ("), а потім через кому, то тильду (
) та "ім'я" параметра. Ви можете помістити щось на це ім'я. Якщо ні за замовчуванням встановлено для параметра, це означає, що ви побачите це ім'я в червоний редактор тригерів, що означає, що вам потрібно параметра. Якщо у вас є значення за промовчанням, ви ніколи не побачите цю назву, так що ви можете назвати її як завгодно.
Отже, тепер давайте рядки для вступу до DestroyEffect. Ми здебільшого можемо просто скопіювати і вставити сюди знову, як раніше. Проте ми не хочемо, щоб і дії мають однакові рядки. Якщо це станеться, ми не могли б відрізнити один одного! Тому ми хочемо додати до відома, що це "ефективна" версія. Ми можемо також заповнити поле Підказка. Ми дійсно не потрібно, щоб змінити другий лінії, тому що ми маємо достатньо інформації, щоб зберегти дві дії один від одного лише зміни в першому рядку.
Отже, ми додаємо наступні рядки: Код: DestroyEffectBJ="Destroy Special Effect" DestroyEffectBJ="Destroy ",
Special Effect DestroyEffectBJHint= Зберегти та закрити TriggerStrings.txt. Початок World Editor, відкрийте карту і перевірте, щоб переконатися, що дія проявляється в Редакторі тригерів. Тепер киньте його в спусковий гачок і зберегти карту, щоб переконатися, що ви не отримаєте помилки компіляції. Подивіться, як просто, що було?
Переконайтеся, що ви виконали все до цього моменту перед переходом.
Використовуючи ту саму модель, ми зробимо за 1 trackables:
Код: TC_TRACKABLE=WESTRING_TRIGCAT_TRACKABLE,ReplaceableTextures\WorldEditUI\Actions-Nothing Ми не маємо значок відстежуються дії, тому ми просто використовувати за промовчанням Дії-Нічого.
Тепер ми маємо визначити рядок WESTRING_TRIGCAT_TRACKABLE. Це йде в WorldEditStrings.txt, щоб відкрити цей файл, перейдіть на день і додайте рядок:
Додавання змінної типу
Далі необхідно визначити тип змінної, щоб Редактор тригерів розуміє, що це контролюватись.
Отже, давайте зрозуміти, що прапори нам потрібні. Я дійсно не пам'ятаю, trackables визначені у RoC. Я думаю, що вони є, але про всяк випадок, ви завжди можете просто поставити "1" для версії. Якщо ви робите карти для TFT, тільки це не має значення, що ви поклали тут.
Ми напевно хочемо, щоб мати можливість робити змінні типу контролюватись, так що давайте поставимо 1 для глобального прапора змінної.
Так, trackables може бути використаний в операторах порівняння, ми, можливо, буде потрібно цієї функції, щоб визначити, чи натиснуто-на відстежуються певний 1, так що ми поставимо 1 в цій галузі.
Зрештою, ми повинні додати посилання на рядок назву "контролюватися". Таким чином, наші додав лінія буде виглядати так:
Код: trackable=1,1,1,WESTRING_TRIGTYPE_trackable Не забудьте додати відповідні рядки до WorldEditStrings.txt.
Додавання Значення за замовчуванням для типу
Я пропускатиму додавши типу за замовчуванням. Це не є необхідним для trackables, тому що ми хочемо, щоб вони починаються як нульовий. Це дуже проста процедура, хоча, і я впевнений, що ви можете зрозуміти це для себе. Але врятує вас, я дам вам знати, що якщо ви вирішитездійснити такі типи даних: регіон, unitpool, itempool; Вам потрібно буде заповнити щось для цього розділу.
Заготівля для trackables насправді не має сенсу. Однак, є один з встановлених значень, що має сенс для trackables, і всі ручки похідних типів: нуль. Ви бачите це Редактор тригерів "Немає дня", "Немає блок" і т.д. Значення "нуль" має бути визначено окремо для кожного типу. Ми хочемо "Немає контролювати" варіант для порівняння, щоб перевірити, якщо значення є порожнім чи ні.
Тут (як і скрізь) найлегше знайти приклад схожий на те, що ви хочете, скопіюйте її, і змінити його для ваших цілей. Візьмемо, наприклад: "Ні, блок":
Код: UnitNull=0,unit,null,WESTRING_TRIGUNIT_NULL Спочатку давайте подивимося на те, що кожна частина коштів. Ключові ім'я тут тільки для довідки, "UnitNull" не має сенсу в JASS або будь-де. "0" означає, що ця величина є дійсним у RoC. "Одиниця" є тип заданого, що ми визначаємо. "Нульовий" це значення пресета. І ось нарешті це рядок, який відображатиметься в інтерфейсі, коли ми використовуємо цей заданий (у WorldEditStrings.txt, це "немає пристрою").
Ми хочемо, щоб скопіювати, що для trackables. Найбільш очевидним способом просто змінити всі випадки підрозділу контролювати. Ми можемо встановити прапор версія 1, щоб відзначити це як TFT-єдиний (тримаючи його як 0 буде працювати так само добре теж). Знову ж таки, не забудьте додати рядок до WorldEditStrings.txt.
Є дві події, які відносяться до trackables, визначених в common.j:
Код: нативний TriggerRegisterTrackableHitEvent дає trigger, якийTrigger, trackable t returns event нативний TriggerRegisterTrackableTrackEvent такtrigger whichTrigger, trackable t returns event Першим з них є "клацанням миші", то другий є "Mouse Over" подія. Давайте додамо їх обох.
Додавання подій практично ідентична додавши дій. Єдина різниця в тому, що ви визначаєте їх у розділі [Де], і що ви пропустите перший параметр, який вважається типу спусковий гачок. Використовуючи ту саму модель із діями (мінус перший параметр), додати їх у нижній частині розділу подій. Пам'ятайте, що ви не повинні встановити параметри за промовчанням. І не забудьте додати записи до TriggerStrings.txt!
Єдина умова, крім А та Або порівнянь. Тому ми хочемо, щоб додати "відслідковуються Порівняння". Різниця між цією секцією і події або дії, є те, що умови не є виклики функцій, але обробляються внутрішньо Редактор тригерів. Насправді оператори перетворюються на JASS безпосередньо, використовуючи ==,! = І т.д. Давайте подивимося на "Trigger Порівняння":