Bw - s vice mission builder - різне - статті

BW's Vice Mission Builder Опис інтерфейсу програми BW's Vice Mission Builder. (Я ретроман.) Пишу
керівництво за версією 1.5. Якщо у вас є більш нова,
нічого страшного. Можливості старого є і в новому.

Інтерфейс заснований на спеціальній
платформі чи що, я точно не знаю, називається PowerBasic
IDE. Багато з опцій пов'язані з ним, але не вжиті.

Рядок меню (описую не всі команди, а тільки потрібні
на мій погляд!):

Macros - можливість ввести декілька строкових значень і вставляти їх в текст за допомогою гарячих клавіш Ctrl + номер макросу.

Help - висновок файлу ReadMe.txt білдера.

Пройдіться мишею по ній. Кнопки повторюються в меню.
Їх зручніше використовувати.

Правий клацання мишею по заголовку - дані про файлі.

Сам код - це декомпілювати текстові дані.
Код - з декількох частин:

DEFINE VERSION VICE 1.5 ;; версія компілятора

0002: jump ЈЈSecondSegment
DEFINE MEMORY 34329 ;; пам'ять. Не знаєте - не міняйте.

SecondSegment
0002: jump ЈЈThirdSegment
DEFINE OBJECTS 3 ;; кількість 3D-об'єктів, пов'язавши на Мейні - N (див. "Клас Object") плюс один.
DEFINE OBJECT (no name) ;; This is an unused object. You can put anything here.
DEFINE OBJECT FAKETARGET ;; їх таблиця з N рядків, кожен з яких DEFINE OBJECT
DEFINE OBJECT BARREL2

ThirdSegment
0002: jump ЈЈLabelMAIN
DEFINE MISSIONS 1 ;; це опис кількості потоків типу Missions (до яких належать не тільки самі місії, а й інші. Надалі під терміном "метапоток" мається на увазі саме такий потік). Властивості метапотоков ми обговоримо пізніше.
DEFINE MISSION 0 at ЈЈStartM1; номер метапотока, мітка початку.

;; Тут починається керуючий потік (thread).

; Ви можете бачити нижче структуру команд. Спочатку йде опкод - 4 16-ковий
; Цифри (в це безліч відносяться цифри від 0 до 9 і латинські літери
; A, B, C, D, E, F). Потім двокрапка і набір параметрів (розділених символами
; І прогалинами. Символи без лапок і покажчиків служать тільки для програміста.
; Програма їх ігнорує, дивиться тільки на опкоди, що визначають суть команди)
; Параметри також називаються аргументами. Засновані на числах,
; Рядках і змінних

; Будь-які локальні змінні виглядають як @.
; В кожному потоці або метапотоке у них може бути своє значення.

; Будь-які глобальні змінні виглядають як $
; (Напр. $ Mashina, $ chislo, $ PLAYER_ACTOR).
; В будь-якому потоці або метапотоке у них одне і те ж значення.
; Змінюються тільки в часі.

LabelMAIN2
016A: fade 1 (back) 1000 ms; освітлення екрану протягом 1000 мілісекунд.
00D6: if 0
0256: player $ PLAYER_CHAR defined
004D: jump_if_false ЈЈLabelMAIN3
04BB: select_interiour 0 ;; select render area - інтер'єр за замовчуванням
01B4: set_player $ PLAYER_CHAR frozen_state 1 (unfrozen)
01B7: release_weather

;; Попередніми командами ми виконали ініціалізацію гравця.
;; Наступними ми почнемо потоки:

004F: create thread ЈЈToSP

; (Їх тут може бути багато)
;; І замкнемо керуючий в нескінченний цикл:

LabelMAIN3
0001: wait 2500 ms
0002: jump ЈЈLabelMAIN3; ця команда вказує, що потрібно перейти в цьому ж потоці на мітку LabelMAIN3.

ToSP
0001: wait 0 ms
0417: start_mission 0
004E: end_thread


Так влаштований найпростіший MAIN. Давайте розберемося,
як він працює.

Спочатку встановлюються основні параметри - час запуску,
змінна $ ONMISSION (вона має два цілих значення - 0 (по
замовчуванням) і 1),
"Окуляри (НЕ лінзи, а бали) місій".
Потім за деякими координатами
(04E4: unknown_refresh_game_renderer_at -1532.524 -625.5527)
йде швидка промальовування місцевості.
В принципі, промальовування місцевості починається автоматично
при розміщенні камери, але ця команда прискорює промальовування.
Потім за заданими координатами з'являється гравець і йому
присвоюються дві хендл-змінних ($ PLAYER_CHAR класу PLAYER
і $ PLAYER_ACTOR класу actor).
Розберемо, для чого це треба. Класи - якісь набори
хендл-об'єктів, які мають певні властивості. Player
(Гравець) - це тільки гравець.
Actor (актор) - це унікальні люди, які використовуються
в місіях, і багато інших.

Команди, в описах яких (1) варто actor перед хендлов
(Наприклад, 0239: actor $ +1036 run_to 65.8001 -1443.9999
- акторові бігти в задану точку),
застосовуються до акторів, а через змінну $ player_actor
(2) - і до гравця.
Наприклад, набір команд

0239: actor $ anton run_to 65.8001 -1443.9999
0239: actor $ strykov run_to 65.8001 -1443.9999

змусить бігти в точку з вказаними координатами
акторів $ anton і $ strykov, а якщо до них дописати таку:

0239: actor $ PLAYER_ACTOR run_to 65.8001 -1443.9999

то і гравець складе їм компанію.

[Примітка 2: регістр букв значення не має. Що $ player_actor, що $ PLAYER_ACTOR,
що $ PlaYer_AcTOR - різниці немає. Як і між опкодамі 004F і 004f.]

Тепер припустимо такі рядки з перевірками, це вам не треба,
і перейдемо до рядка 004F: create thread ЈЈToSP. Буде знайдена мітка
: ToSP і паралельно потоку "main" буде створено ще один.
Потоки працюють одночасно, тому якщо після рядка
створення потоку будуть інші, то і вони запустяться.
І, пройшовши мітку: LabelMAIN3, гра почне зацикливать цей потік,
так як завершити його не можна. Інші - можна, цей - ні.

У потоці, який ми створили, такі команди:

0001: wait 0 ms; чекати 0 мс
0417: start_mission 0; запустити метапоток 0
004E: end_thread; щоб завершити потік, використовується ця команда

Де починаються метапотокі, звичайні закінчуються. Це дві частини скрипта.
У такій мові, як, наприклад, Pascal прийнято починати
кожен оператор з нового рядка і виділяти блоки відступами.
Є подібні правила і в скриптинга, необов'язкові, але
дуже бажані.

Початок метапотоков показують так:

Початок кожного з них:

Якщо вам треба швидко знайти мітку метапотока, то у вікні пошуку
найкраще ввести:

Наприклад, 5, 0--, 1.

Після нуля - ставиться тому, що по 0- може знайтися
команда 03C8: rotate_player-180-degrees.

Метапотокі мають свої властивості, їх ми розглянемо пізніше.
Тут же робота єдиного метапотока описана.

Рецензія на Lost Chron. Ігри, зроблені без любові і старання, схожі на повітряну кулю - оболонка є, а всередині порожньо. Lo.

Рецензія на The Bridge «Верх» і «низ» в The Bridge - поняття відносні. Прогулюючись під аркою, можна запросто перей.

Рецензія на SimCity Коли місяць тому відбувся реліз SimCity, по Мережі прокотилося цунамі народного гніву - дурні ош.

Рецензія на Strategy . Назва Strategy Tactics: World War II навряд чи комусь знайоме. Зате одного погляду на її скри.

Рецензія на гру Scrib. За традицією, що склалася в інформаційній картці гри ми наводимо в приклад декілька схожих ігор.

Рецензія на гру Walki. Зомбі і продукція-по-ліцензії - які і самі по собі не найкращі представники ігрової біосфери -.

Схожі статті