Среда, 27.11.2024, 10:45
Приветствую Вас Гость | RSS
Главная | НАШИ СТАТЬИ | Регистрация | Вход
Меню сайта
Категории каталога
Скриптинг [3]
Мини-чат
200
Наш опрос
Что нужно поменять в структуре сайта?
Всего ответов: 31
Главная » Статьи » НАШИ УЧЕБНИКИ » Скриптинг

Создаём свою первую миссию
ВНИМАНИЕ!
 У всех учебников есть законный правообладатель!

Данный учебник создан нашим скриптером MATIRIST

Чтобы создать миссию нам надо:

1) Находим строку " DEFINE MISSIONS " и к числу миссий прибавляем 1,т.е. всего у вас должно

получиться число равное количеству миссий минус 1 .

2) Снизу идут строчки с командами объявления label'ов миссий,идём в их конец,и после последней

строчки " DEFINE MISSION " добавляем " DEFINE MISSION № @1LabelMissii " .

3) Создаём поток(thread) с любым именем,для удобстав давайте возьмём " Mission1Start "

4) Ищем строчку " //-------------Mission 0--------------- " и перед ней пишем наш поток,в потоке должны находиться те или иные проверки,которые приведут к началу миссии , естествененно это обыкновенный поток и в него можно всунуть что угодно,ну лично я создаю в нём только маркер,

и если игрок на нём останавливается,то маркер убираем и начинаем миссию.

Вот например:

:Mission1Start

wait 0

if

player.defined($PLAYER_CHAR)

Jf @Mission1Start

wait 3000

Marker.CreateIconAndSphere($Name , $Icon_Number , $X, $Y, $Z ) // номера иконок в гл "Маркеры..."

:Mission1Start_2

wait 0

if and

0101: actor $PLAYER_ACTOR stopped_near_point $X $Y $Z radius 3.0 3.0 3.0 sphere 1

not wasted_or_busted

Jf @Mission1Start _2

00BA: text_styled 'TextString' 1000 ms 2 // ну надо же текст вывести.

start_mission №

end_thread

5) Так,поток создали,теперь остаётся написать миссию...

Вот основа любой миссии:

:MISSION1

gosub @KOD_MISSII

if

wasted_or_busted

Jf @PROPUSK_KODA

gosub @KOD_PROVALA

:PROPUSK_KODA

gosub @UDALENIE_KODA

end_thread

:KOD_MISSII

increment_mission_attempts

$ONMISSION = 1

0110: clear_player $PLAYER_CHAR wanted_level

//------------------------------- Тут пишется сама миссия -----------------------------------

:UDACHNO // ------- Сюда надо делать переход(Jump) , если миссия удалась --------

wait 0

01E3: text_1number_styled 'M_PASS' 25000 5000 ms 4

Player.Money($PLAYER_CHAR) += 25000

0110: clear_player $PLAYER_CHAR wanted_level

0394: play_music 1

gosub @PROPUSK_KODA

return

:KOD_PROVALA // ------- Сюда надо делать переход(Jump) , если миссия провалена --------

00BA: text_styled 'M_FAIL' 5000 ms 1

$ONMISSION = 0

mission_cleanup

create_thread @Start

return

:UDALENIE_KODA

$ONMISSION = 0

mission_cleanup

return

Вот вам для примера моя небольшая миссия:

Вот это пока только поток запуска миссии:

:StartMissii1

wait 0

Marker.CreateIconAndSphere(1@,36, 2490.7676, -1669.8162, 13.3359)

:StartMissii1_2

wait 250

if and

Player.Defined($PLAYER_CHAR)

0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 2490.7 -1669.8 13.4 radius 2.0 2.0 1.0 sphere 1

Jf @StartMissii1_2

Marker.Disable(1@)

start_mission 1

end_thread

А вот это уже сама миссия,смысл в том что появляються 3 балласа с М4 и пытаются вас снять:

:MIS1

gosub @KOD_MISSII

if

wasted_or_busted

Jf @PROPUSK_KODA

gosub @KOD_PROVALA

:PROPUSK_KODA

gosub @UDALENIE_KODA

end_thread

:KOD_MISSII

increment_mission_attempts

$ONMISSION = 1

0110: clear_player $PLAYER_CHAR wanted_level

:LabelMis1_1

wait 0

fade 0 500

model.Load(#BALLAS1)

model.Load(#BALLAS2)

model.Load(#BALLAS3)

model.Load(#M4)

038B: load_requested_models

:LabelMis1_2

wait 0

if and

model.Available(#BALLAS1)

model.Available(#BALLAS2)

model.Available(#BALLAS3)

model.Available(#M4)

Jf @LabelMis1_2

fade 1 500

actor.Create(1@,4,#BALLAS1,2517.8367, -1664.6057, 14.0369)

actor.Create(2@,4,#BALLAS2,2517.1902, -1667.9568, 14.028)

actor.Create(3@,4,#BALLAS3,2516.353, -1671.1974, 13.8478)

01B2: give_actor 1@ weapon 31 ammo 999999

01B2: give_actor 2@ weapon 31 ammo 999999

01B2: give_actor 3@ weapon 31 ammo 999999

wait 500

05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR

05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR

05E2: AS_actor 3@ kill_actor $PLAYER_ACTOR

:LabelMis1_3

wait 0

if

wasted_or_busted

jf @LabelMis1_4

jump @KOD_PROVALA

:LabelMis1_4

wait 0

if and

actor.Dead(1@)

actor.Dead(2@)

actor.Dead(3@)

jf @LabelMis1_3

:UDACHNO // ------- Сюда надо делать переход(Jump) , если миссия удалась --------

wait 0

01E3: text_1number_styled 'M_PASS' 25000 5000 ms 4

Player.Money($PLAYER_CHAR) += 25000

0110: clear_player $PLAYER_CHAR wanted_level

0394: play_music 1

gosub @PROPUSK_KODA

return

:KOD_PROVALA // ------- Сюда надо делать переход(Jump) , если миссия провалена --------

00BA: text_styled 'M_FAIL' 5000 ms 1

$ONMISSION = 0

mission_cleanup

model.destroy(#BALLAS1)

model.destroy(#BALLAS2)

model.destroy(#BALLAS3)

model.destroy(#M4)

create_thread @StartMissii1

return

:UDALENIE_KODA

$ONMISSION = 0

mission_cleanup

return

Сейчас я напишу пример простейшей гоночной миссии,будем использовать за стартовый поток тот же, что и в предыдущем примере , вот :

:StartMissii1

wait 0

Marker.CreateIconAndSphere(1@,36, 2490.7676, -1669.8162, 13.3359)

:StartMissii1_2

wait 250

if and

Player.Defined($PLAYER_CHAR)

0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 2490.7 -1669.8 13.4 radius 2.0 2.0 1.0 sphere 1

Jf @StartMissii1_2

Marker.Disable(1@)

start_mission 1

end_thread

Вот миссия,в ней те же названия label'ов , что и в предыдущей,поэтому удалите или измините ту...

Смотрим :

:MIS1

gosub @KOD_MISSII

if

wasted_or_busted

Jf @PROPUSK_KODA

gosub @KOD_PROVALA

:PROPUSK_KODA

gosub @UDALENIE_KODA

end_thread

:KOD_MISSII

increment_mission_attempts

$ONMISSION = 1

0110: clear_player $PLAYER_CHAR wanted_level

:LabelMis1_1

wait 0

model.Load(#CHEETAH)

model.Load(#BALLAS1)

038B: load_requested_models

:LabelMis1_2

wait 0

if and

model.Available(#CHEETAH)

model.Available(#BALLAS1)

Jf @LabelMis1_2

car.Create(1@,#CHEETAH,2461.0037, -1657.0515, 13.3047)

car.Angle(1@) = 90.0

wait 100

0129: 2@ = create_actor 4 #BALLAS1 in_car 1@ driverseat

wait 500

marker.CreateIconAndSphere(3@,11,2461.0, -1661.7, 13.3047)

:LabelMis1_3

wait 0

if

0103: actor $PLAYER_ACTOR stopped_near_point_in_car 2461.0 -1661.7 13.3 radius 2.0 2.0 6.0 sphere 1

Jf @LabelMis1_3

03C0: 4@ = actor $PLAYER_ACTOR car

car.LockInCurrentPosition(4@) = true

wait 2000

car.DriveTo(1@,2040.131, -1611.939, 13.3828)

car.SetMaxSpeed(1@,40.0)

car.LockInCurrentPosition(4@) = false

00AE: unknown_set_car 1@ to_ignore_traffic_lights 2

03BC: 5@ = create_sphere 2040.131 -1611.939 13.3828 5.0

marker.Disable(3@)

:LabelMis1_4

wait 0

if

0100: actor 2@ near_point_in_car 2040.131 -1611.939 13.3828 radius 6.0 6.0 6.0 sphere 1

jf @LabelMis1_5

jump @KOD_PROVALA

:LabelMis1_5

wait 0

if

0100: actor $PLAYER_ACTOR near_point_in_car 2040.131 -1611.939 13.3828 radius 6.0 6.0 6.0 sphere 1

jf @LabelMis1_4

:UDACHNO // ------- Сюда надо делать переход(Jump) , если миссия удалась --------

wait 0

01E3: text_1number_styled 'M_PASS' 25000 5000 ms 4

Player.Money($PLAYER_CHAR) += 25000

0110: clear_player $PLAYER_CHAR wanted_level

0394: play_music 1

marker.Disable(5@)

actor.RemoveReferences(2@)

car.RemoveReferences(1@)

car.RemoveReferences(4@)

model.Destroy(#BALLAS1)

model.Destroy(#CHEETAH)

gosub @PROPUSK_KODA

return

:KOD_PROVALA // ------- Сюда надо делать переход(Jump) , если миссия провалена --------

00BA: text_styled 'M_FAIL' 5000 ms 1

$ONMISSION = 0

mission_cleanup

marker.Disable(5@)

actor.RemoveReferences(2@)

car.RemoveReferences(1@)

car.RemoveReferences(4@)

model.Destroy(#BALLAS1)

model.Destroy(#CHEETAH)

create_thread @RADIO

return

:UDALENIE_KODA

$ONMISSION = 0

mission_cleanup

return

Чтобы научиться делать миссии нужно время,поэтому пробуйте и у Вас всегда получиться,если нет,то

Вы знаете где нас найти...


Категория: Скриптинг | Добавил: gtaruslife (02.02.2009)
Просмотров: 513 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
1 gtaruslife  
0
Пишем комменты пожалуйста smile

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта

тачки для мафии от zhe2128
сайт про мафию
Счётчики

Rambler's Top100
Русский Топ
.:Cr!minal Games Network TOPSite:.
Яндекс цитирования
Система обмена показами
Система обмена показами-2
Интернет магазин сотовых телефонов и аксесуаров
Статистика

Онлайн всего: 10
Гостей: 10
Пользователей: 0

Администрация GTARUSLIFE© 2024

Хостинг от uCoz