Во-первых скажу что это вообще такое. External script - это тот же самый поток(thread), таким способом можно поставить почти любой скрипт, например спидометр, только добавляется он и запускается почти так же как и миссия. Для него так же как и для миссий нужен тригер или по-русски стартер.
Во-вторых External script загружается по необходимости. В игре External script это: парашют, магазины, бильярд, баскетбол, управление кранами и т.д.
После сохранения External script завершает свою работу, и его надо запускать снова. Количество допустимых External script’ов 82-е штуки.
Теперь на примере покажу добавления External script.
1) Ищем в майне такую строчку: DEFINE EXTERNAL_SCRIPTS ХХ (ХХ любое число от 0 до 82-ух) добавляем к ХХ одну еденицу, напремер было 78, стало 79. Это мы обьявили кол-во External script.
2) Ищем в майне такую строчку: 0914: init_external_script 0 (PLAYER_PARACHUTE) Пролистываем в низ до последнего такого опкода. Теперь вставляем 0914: init_external_script ХХ (My_script) // где ХХ число от последнего опкода(0914), но с прибавленой еденицей, например было 77, стало 78. Имейте в виду что, отчёт начинается с 0, а не с еденици. Этим действием мы дали порядковый номер нашему скрипту.
3) Теперь переходим в самый конец майна. И добавляем наш скрипт, например возьмем скрипт штрафа.
//-------------External script ХХ (My_script)---------------
:AREST_2
thread 'AREST_2'
wait 1000
0004: $cost_of_property_damaged_2_all = 0 // integer values
:AREST_2_1
wait 100
if
Player.Defined($PLAYER_CHAR)
else_jump @AREST_2_1
if
0038: $ONMISSION == 0
else_jump @AREST_2_1
if
010F: player $PLAYER_CHAR wanted_level > 0
else_jump @AREST_2_1
wait 1000
0004: $cost_of_property_damaged_1 = 0 // integer values
0004: $cost_of_property_damaged = 0 // integer values
04F7: status_text $cost_of_property_damaged 0 line 1 'BB_18' // Score
:AREST_2_2
wait 1000
00D6: if
8741: NOT (unknown) $PLAYER_ACTOR
jf @AREST_2_minus_1
if and
010F: player $PLAYER_CHAR wanted_level > 0
8118: NOT actor $PLAYER_ACTOR dead
jf @AREST_3_1
0653: $cost_of_property_damaged = stat 125 // float
008C: $cost_of_property_damaged = float_to_integer $cost_of_property_damaged
0060: $cost_of_property_damaged -= $cost_of_property_damaged_2_all // integer values
jump @AREST_2_2
:AREST_2_minus_1
wait 500
0058: $cost_of_property_damaged_1 += $cost_of_property_damaged // integer values
0010: $cost_of_property_damaged_1 *= 2 // integer values
0060: $cost_of_property_damaged -= $cost_of_property_damaged_1 // integer values
0109: player $PLAYER_CHAR money += $cost_of_property_damaged
0151: remove_status_text $cost_of_property_damaged
wait 500
0653: $cost_of_property_damaged_2_all = stat 125 // float
008C: $cost_of_property_damaged_2_all = float_to_integer $cost_of_property_damaged_2_all
jump @AREST_2_1
:AREST_3_1
wait 1000
0151: remove_status_text $cost_of_property_damaged
0653: $cost_of_property_damaged_2_all = stat 125 // float
008C: $cost_of_property_damaged_2_all = float_to_integer $cost_of_property_damaged_2_all
jump @AREST_2_1
4) А вот это стартер скрипта: Добавляется как обычный thread (ХХ - это порядковый номер нашего скрипта, не забудьте поменать на нужную цифру) Учтите, что для запуска скрипта желательно "главное" условие, т.е. для скрипта штрафа это условие является:
010F: player $PLAYER_CHAR wanted_level > 0 (имеет ли Cj хотябы одну звезду розыска)
И когда звёзд у игрока нет, то именно стартёр прекращяет действие скрипта, и запустит его когда игрок наберёт хотябы одну звезду.
:MAIN_4340
thread "zapusk_ExSCRIPTS"
wait 250
00D6: if
010F: player $PLAYER_CHAR wanted_level > 0 // проверяем наличие звёзд
004D: jump_if_false @MAIN_4414
0926: $EXTERNAL_SCRIPT_STATUS = external_script_status 0 (My_script) //получаем статус нашего скрипта.
00D6: if
0038: $EXTERNAL_SCRIPT_STATUS == 0 // проверяем на включенность, если он не включен то включаем.
004D: jump_if_false @MAIN_4340
08A9: load_external_script XX (My_script) //загружаем скрипт
00D6: if
08AB: external_script XX (My_script) loaded //проверяем, загрузился ли скрипт
004D: jump_if_false @MAIN_4340
0913: run_external_script XX // включаем скрипт
0002: jump @MAIN_4340 // возвращаемся в начало, для повторного запуска скрипта после сохранения.
:MAIN_4414
090F: end_external_script XX (My_script) //завершаем работу скрипта в случаи необходимости.
0002: jump @MAIN_4340 // возвращаемся в начало, для повторного запуска скрипта после сохранения.
Экспериментируйте.
External scripts [Уроки по созданию модов GTA SA]
Автор
Сообщение
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 0 Ответы
- 2938 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2829 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2427 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2790 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2665 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2480 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 5768 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2515 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2535 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2455 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 4252 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 3129 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2511 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 3442 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2715 Просмотры
- Последнее сообщение Vovka
-
- 0 Ответы
- 2508 Просмотры
- Последнее сообщение Vovka
-
- 1 Ответы
- 6493 Просмотры
- Последнее сообщение Николай Дудник
-
- 33 Ответы
- 4933 Просмотры
- Последнее сообщение Pitronic
-
- 9 Ответы
- 11168 Просмотры
- Последнее сообщение Scorpion
-
- 18 Ответы
- 24562 Просмотры
- Последнее сообщение SKR
-
- 0 Ответы
- 383 Просмотры
- Последнее сообщение Rick
-
- 2 Ответы
- 32183 Просмотры
- Последнее сообщение Scorpion
-
- 2 Ответы
- 2321 Просмотры
- Последнее сообщение Ванёк
-
- 0 Ответы
- 2623 Просмотры
- Последнее сообщение Vovka
-
-
Mod Loader - автоматическая установка модов для GTA San Anreas
Begmyrat Momusew » в форуме Программы для San Andreas - 0 Ответы
- 4777 Просмотры
- Последнее сообщение Begmyrat Momusew
-