Скрипты для GTA от dim1988 aka d88

Главная | Регистрация | Вход

Приветствую Вас Гость | RSS
Меню сайта
Форма входа
Логин:
Пароль:
Категории раздела
Статьи dim1988 [5]
Здесь статьи по скриптингу, написанные dim1988 aka d88
Другие статьи [3]
Статьи по скриптингу других авторов
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Другие статьи

Уничтожение маркеров над убитыми актёрами

Допустим, у нас 8 актёров. Над каждым создадим маркер.

 
0187: 101@ = create_marker_above_actor 201@
0187: 102@ = create_marker_above_actor 202@
0187: 103@ = create_marker_above_actor 203@
0187: 104@ = create_marker_above_actor 204@
0187: 105@ = create_marker_above_actor 205@
0187: 106@ = create_marker_above_actor 206@
0187: 107@ = create_marker_above_actor 207@
0187: 108@ = create_marker_above_actor 208@

Маркеры обозначены как 101,102 и т.д.
Актёры как 201,202 и т.д.
Теперь сам код

:marker_1
0050: gosub @marker_2
00D6: if
0118: actor 201@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 202@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 203@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 204@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 205@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 206@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 207@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
00D6: if
0118: actor 208@ dead
004D: jump_if_false @marker_1
0001: wait 0 ms
0002: jump @missia - это прыжок на продолжение мисии. Он произойдёт тогда, когда все актёры будут убиты.
 
:marker_2
0006: 15@ = 9
00D6: if
003C: 16@ == 15@ // (int)
004D: jump_if_false @marker_3
0001: wait 0 ms
0006: 16@ = 0
0051: return
 
:marker_3
000A: 16@ += 1
00D6: if
8118: not actor 200@(16@,9i) dead
004D: jump_if_false @marker_4
0001: wait 0 ms
0051: return

:marker_4
0164: disable_marker 100@(16@,9i)
0051: return

Теперь объяснение, что это означает.
 
0006: 15@ = 9 - почему 9? потому что врагов у нас восемь и мы прибавляем + еще одно чилсло.
 
9i - это как раз число 9 (для другого кол-ва должна быть другая цифра)

8118: not actor 200@(16@,9i) dead - почему 200? (ведь актеры начинаються с 201). Это для того что бы "еще одно число" сработало
 
0164: disable_marker 100@(16@,9i) - аналогично и с маркерами. Нужно всегда на еденицу меньше настоящих переменых

После того как произойдёт прыжок на :missia, останется один маркер у последнего убитого актёра. Чтоб этого не произошло, нужно ещё раз написать коды удаления всех маркеров
 
:missia
Marker.Disable(101@)
Marker.Disable(102@)
Marker.Disable(103@)
Marker.Disable(104@)
Marker.Disable(105@)
Marker.Disable(106@)
Marker.Disable(107@)
Marker.Disable(108@)
Категория: Другие статьи | Добавил: dim1988 (23.02.2010)
Просмотров: 1153 | Комментарии: 2
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Наш опрос
Сколько раз вы прошли GTA SА?
Всего ответов: 427
Copyright dim1988 aka d88 © 2017
Сайт управляется системой uCoz