Делаем новые миссии. CLEO - скрипты, cutscene, статьи, программы. Игровые новости.
 
27.9.07 18:43 |

External Script – что это такое и как с ним работать?

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 6.60 (10) | Хитов 6558


Код:
:STARTEX
03A4: name_thread 'STARTEX'
00D6: if and
0038: $ONMISSION == 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false @STARTEX_159
0226: 0@ = actor $PLAYER_ACTOR health
00D6: if
8039: not 0@ == 0
004D: jump_if_false @STARTEX_170
0926: $Script_Status = external_script_status 0 (MILITIA)
00D6: if
0038: $Script_Status == 0
004D: jump_if_false @STARTEX_159
08A9: load_external_script 0 (MILITIA)
00D6: if
08AB: external_script 0 (MILITIA) loaded
004D: jump_if_false @STARTEX_159
0615: define_AS_pack_begin 5@
05DE: AS_actor -1 walk_around_ped_path
0616: define_AS_pack_end 5@
04C4: store_coords_to 2@ 3@ 4@ from_actor $PLAYER_ACTOR with_offset 1.0 3.0 -0.9
04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 1.0 -3.0 -0.9
061D: create_AS_origin_at 7@ 8@ 9@ Z_angle 60.0 unknown_angle 300.0 AS_pack 5@ handle_as 6@
0621: create_actor_pedtype 6 model #NULL at_AS_origin 6@ task 1502 handle_as 10@
009A: 1@ = create_actor_pedtype 6 model #MALE01 at 2@ 3@ 4@
0913: run_external_script 0 (MILITIA) 1@
0913: run_external_script 0 (MILITIA) 10@

:STARTEX_159
0001: wait 0 ms
0002: jump @STARTEX

:STARTEX_170
090F: end_external_script 0 (MILITIA)
0001: wait 0 ms
0002: jump @STARTEX


Вот Вам второй вариант. Опкодом 061D: - записываем в переменную 6@ последовательность 5@ действий в точке 7@ 8@ 9@. Опкодом 0621: - в переменную 10@ записываем создание актера с типом 6 (полицейский), моделью #NULL с последовательностью действий 6@
Смотрите пример

Теперь рассмотрим запуск внешнего скрипта с различными параметрами.
Например для запуска GF_MEETING используется такая запись
Код:
0913: run_external_script 24 (GF_MEETING) $Girlfriend 10@ 11@ 12@ 13@

где соответственно:
$Girlfriend – актер
10@ - X
11@ - Y
12@ - Z
13@ - угол

а для запуска GF_SEX:
Код:
0913: run_external_script 26 (GF_SEX) $Girlfriend 1 3@ 10@ 11@ 12@ 13@

10@, 11@, 12@, 13@ - X, Y, Z, угол
3@ - интерьер
1 – пока не совсем понятно

или такой
Код:
0913: run_external_script 26 (GF_SEX) 40@ 41@ 0 2037.651 2723.871 9.8352 0.0702


Я долго не мог понять почему для разных скриптов порядок передачи параметров разный. В одних переменная актера стоит первой
Код:
0913: run_external_script 26 (GF_SEX) $Girlfriend 1 3@ 10@ 11@ 12@ 13@

а в других, переменная актера может быть в любом другом месте
Код:
0913: run_external_script 1 (PARACHUTE) -1 -10.0 10.0 -5.0 -2.0 10.0 12.0 1 70@

где
70@ - переменная актера.
Теперь могу сказать, что очередность параметров определяется во внешнем скрипте. (СПАСИБО Seemann’у за помощь :))


  «123456»

  1 2 3 4 5 6 7 8 9 10  

Родственные ссылки
» Другие статьи раздела Основы скриптинга
» Эта статья от пользователя yelmi

5 cамых читаемых статей из раздела Основы скриптинга:
» Работа со звуками в GTA San Andreas
» Директивы
» Контроль клавиатуры
» External Script – что это такое и как с ним работать?
» Панель, или список товаров. Часть II.

5 последних статей раздела Основы скриптинга:
» Директивы
» Дополнительные команды
» Ключевые слова
» Классы
» Циклы

¤ Перевести статью в страницу для печати
¤ Послать эту cтатью другу

MyArticles 0.6 beta for RUNCMS: by RunCms.ru


Реклама

Вверх     Вернуться на главную. Вход в Систему. Статьи. Скачать. Миссии. ФОРУМ Обратная связь.   
   
   
   
   
- Генерация страницы: 0.26 секунд -