Общие принципы создания миссий в Vice Mission Builder.
Общие принципы создания миссий в Vice Mission Builder.
Тby EDWARD145
Thursday 01 April 2004 - 17:14:06
---------------------------------------------------------------------------------------------------
Общие принципы создания миссий в Vice Mission Builder.
---------------------------------------------------------------------------------------------------
В этой статье будут описаны общие принципы создания любой миссии, а уже в последующих статьях будут описаны примеры создания гоночных и других миссий. Итак, приступим!
-----------------------------------------------------------------------------------------------------
Любая миссия состоит из двух частей: кода для старта и самой миссии.
Найдите в VMB слудующую строку
DEFINE MISSIONS 97, где 97 – кол-во миссий и измените ее на
DEFINE MISSIONS 98- это наша новая миссия
Ищем :
DEFINE MISSION 97 AT JJLabel......
После добавляем :
DEFINE MISSION 98 AT JJMission
Далее не забудьте найти строку со статистикой миссий:
042C: total_missions = 88
030D: total_mission_points = 154
И измените на:
042C: total_missions = 89
030D: total_mission_points = 155
-------------------------------------------------------------------------------------------------
Примечание: у вас могут быть и другие цифры, так как я использовал оригинальный main.scm для примера!!
-------------------------------------------------------------------------------------------------
Далее создаем поток, отвечающий за старт миссии:
004F: create_thread JJStartMission98
Код потока:
----------------------------
:StartMission98
0001: wait 250 ms
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false JJStartMission98
00D6: if 0
0038: $ONMISSION == 0 integer values
004D: jump_if_false JJStartMission98
00D6: if 0
00F9: player $PLAYER_CHAR stopped 0 ()near_point_on_foot [X] [Y] [Z] radius
2.0 2.0 2.0 Игрок остановился у точки по координатам [X] [Y] [Z] радиусом 2.0 2.0 2.0
004D: jump_if_false JJLabelMission98 Если нет, то переходим в начало блока
0417: start_mission 98 Если все в порядке, то запускаем миссию 98
004E: end_thread
Этот код работает по принципу: если игрок остановился по определенным координатам, то стартуем нашу миссию, ежели нет, то идем в начало и все проверяем.
Теперь идем в самый конец main.scm и там пишем
;-------------Mission ---------------
:Mission
0050: gosub Ј
00D6: if 0
0112: wasted_or_busted
004D: jump_if_false Ј
0050: gosub Ј< блок для кода провала миссии> Выполняется, если игрок умер или был арестован во время текущей миссии>
:
0050: gosub Ј
004E: end_thread Конец потока
:
0317: increment_mission_attempts
03A4: name_thread ""
0004: $onmission = 1 Включить флаг $На миссии
0110: player $PLAYER_CHAR wanted_level = 0 Уровень розыска игрока установить на 0
:
:
0001: wait 0 ms
01E3: text_1number_styled "M_PASS" 10000 5000 ms 1 ;; MISSION PASSED! $~1~ выводим надпись "Миссия выполнена 10000$
030C: set_mission_points += 1 увеличиваем количество пройденных миссий на 1, для статистики
0109: player $PLAYER_CHAR money += 10000 даем деньги
0318: set_latest_mission_passed "ASM_1" какая надпись будет светиться при сейвах
0110: clear_player $PLAYER_CHAR wanted_level убираем звезды
0050: gosub ЈЈ идем к очищению памяти
0051: return
:
00BA: text_styled "M_FAIL" 4000 ms 1 \На экран выводится текст: «Миссия провалена!»
004F: create_thread JJStartMission98 повторно создаем поток для начала миссии, так же в этот блок можно поместить все очищения памяти, переменных и тд...
0051: return возврат
:
0004: $ONMISSION = 0 Снять флаг $На миссии
00D8: mission_cleanup удалить из памяти код миссии
0051: return возврат
----------------------------------------------------------------------------------------------------------------
Мы рассмотрели основные принципы создания миссий в VMB, в следующей статье мы научимся создавать гоночные миссии. Ну, а пока все!
(прим. ScrewBoy'я - часть статьи я отредактировал, вопросы на форум)
637 Прочтений • [Общие принципы создания миссий в Vice Mission Builder.] [13.05.2012] [Комментариев: 0]