Стартуем миссию [Уроки по созданию модов GTA SA]

Скриптинг GTA. Инструкции по скриптингу в GTA.
Автор
Сообщение
Аватара пользователя
Не в сети Vovka
Автор темы
Продвинутый

Миссию создали. Теперь её нужно запустить. Мы сделаем 2 специальных скрипта, которые запускают миссию в различных случаях:
1) Когда игрок стоит на территории сферы
2) Когда игрок стоит на территории сферы в определенное время (в данном случае миссия будетдоступна с 9:00 до 17:00)

Вот код варианта 1 :

:LOAD
thread 'STR' // Называем поток
02A7: $SPH = create_icon_marker_and_sphere 15 at 1828.8928 -1875.2781 13.5598 //Создаем сферу и иконку

:LOAD_1
if AND
Player.Defined($PLAYER_CHAR) //Игрок жив
$ONMISSION = 0 //Миссия не включена
wait 100
jf @LOAD_1
if AND
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 1828.8928 -1875.2781 13.5598 radius 1.2 1.2 3.0 sphere 1
//Игрок стоит в сфере
wait 100
jf @LOAD_1
0164: disable_marker $SPH //Выключаем маркер
00BA: text_styled 'BEEFY' 1000 ms 2 // Выводим текст миссии
start_mission 0 //Стартуем саму миссию
end_thread //Завершаем поток

А вот и код варианта 2 :

:LOAD
thread 'STR' // Называем поток
02A7: $SPH = create_icon_marker_and_sphere 15 at 1828.8928 -1875.2781 13.5598 //Создаем сферу и иконку

:LOAD_1
if AND
Player.Defined($PLAYER_CHAR) //Игрок жив
$ONMISSION = 0 //Миссия не включена
wait 100
jf @LOAD_1
if AND
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 1828.8928 -1875.2781 13.5598 radius 1.2 1.2 3.0 sphere 1
//Игрок стоит в сфере
wait 100
jf @LOAD_1
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes
// Записываем в переменную текущие часы и минуты
if AND
$TIME_HOURS >= 9 //Проверяем, время больше 20 часов
NOT $TIME_HOURS >= 17 //И меньше 22
wait 100
jf @LOAD_2 //Если нет, то переходим на другой поток
//Если время совпало, то..
0164: disable_marker $SPH //..Выключаем маркер
00BA: text_styled 'BEEFY' 1000 ms 2 // Выводим текст миссии
start_mission 0 //Стартуем саму миссию
end_thread //Завершаем поток

:LOAD_2
00BC: text_highpriority 'MTIME3' 1000 ms 1 //Выводим текст “Возращайся между 9 и 17 часов

:LOAD_3
if AND
Player.Defined($PLAYER_CHAR) //Если жив игрок
wait 100
jf @LOAD_3
8102: NOT actor $PLAYER_ACTOR stopped_near_point_on_foot 1828.8928 -1875.2781 13.5598 radius 1.0 1.0 3.0 sphere 0
//И он вне сферы
wait 100
jf @LOAD_3
00BE: text_clear_all //То убираем текст с экрана
jump @LOAD_1 //И проверем заново
end_thread

Изображение
Проверки работают на ура ;)

Думаю, с координатами и временем вы разберетесь.
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Скриптинг в GTA San Andreas»