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

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

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


Рассмотрим пример передачи параметров
Для этого напишем простейший внешний скрипт

Код:
:MILITIA
03A4: name_thread 'MILITIA'

:MILITIA_1
009A: 4@ = create_actor_pedtype 4 model 0@ at 1@ 2@ 3@

:MILITIA_2
wait 0
if
8118: not actor 4@ dead
jf @MILITIA_717
062E: unknown_get_actor 4@ task 1506 status_store_to 5@ // ret 7 if not found
00D6: if
04A4: 5@ == 7 // @ == any
004D: jump_if_false @MILITIA_2
05E2: AS_actor 4@ kill_actor $PLAYER_ACTOR
jump @MILITIA_2

:MILITIA_717
01C2: remove_references_to_actor 4@
004E: end_thread


и стартер внешнего скрипта

Код:
:STARTEX
03A4: name_thread 'STARTEX'
00D6: if and
0038: $ONMISSION == 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false @STARTEX_159
0226: 10@ = actor $PLAYER_ACTOR health
00D6: if
8039: not 10@ == 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
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 3.0 -0.9
0913: run_external_script 0 (MILITIA) #MALE01 2482.72 -1658.6648 13.3372

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

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


Очередность передачи зависит от очередности локальных переменных во внешнем скрипте.
Мы запускаем внешний скрипт с параметрами
Код:
0913: run_external_script 0 (MILITIA) #MALE01 2482.72 -1658.6648 13.3372 

где
#MALE01 передается переменной 0@ во внешнем скрипте,
2482.72 - 1@
-1658.6648 - 2@
13.3372 - 3@

Код:
:MILITIA_1 
009A: 4@ = create_actor_pedtype 4 model 0@ at 1@ 2@ 3@

Смотрите пример

Таким образом передавать можно до 34 параметров. 32 локальных переменных (0@ …31@) + 2 таймера (32@,33@).


  «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.06 секунд -