Как сделать миссию

Любая миссия состоит из двух частей: кода для старта и самой миссии.
Найди в 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

Далее создаем поток, отвечающий за старт миссии:

004F: create_thread JJStartMission98

Код потока:
его нужно писать над --------------Mission 0-------------
----------------------------
: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! \выводим надпись "Миссия выполнена 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 \ возврат

Вот тебе основные принципы создания миссий для GTA VC а там уж дальше сам разбирайся enjoy/ 023.gif

Сообщение отредактировал SNICKERSMAN - 20.06.2006, 11:35:13


Источник: http://gtamaps.net/forum/index.php?showtopic=5250



Рекомендуем посмотреть ещё:


Закрыть ... [X]

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

Как сделать миссию Как сделать миссию Как сделать миссию Как сделать миссию Как сделать миссию Как сделать миссию Как сделать миссию Как сделать миссию