Внимание! |
На многих форумах часто приходится читать, что IFP-ANPK-TOOL не хочет открывать ped.ifp. Для особо одаренных, то есть тех, кому лень читать описание поясняю, что IFP-ANPK-TOOL разработан исключительно для создания, редактирования IFP файлов cutscene. Файлы эти находятся в cuts.img и их формат (ANPK) отличается от файлов анимаций таких как в ped.ifp (ANP3). По этой причине IFP-ANPK-TOOL не открывает ped.ifp файл, а созданный с его помощью новый файл не работает отдельно от файлов DAT и CUT. |
|
|
| 27.9.07 20:46 | Переходы |
| Раздел: Скриптинг в GTA | Автор:
yelmi | Рейтинг: 5.50 (2) | Хитов 926 |
Существует три варианта переходов:
Существует три варианта переходов:
1. условные - 004d: jump_if_false @label 2. безусловный - jump @label 3. переход с возвратом (вызов процедуры) - gosub @Label
Условные переходы применяются в проверках, например:
Код:if < -- условие --> 004d: jump_if_false @label <-- код -->
:label
Принцип работы таков: если условие данной проверки не выполнено, то переходим на метку :label. Код (<-- код -->), который находится ниже 004d: jump_if_false @label, не выполняется.
Безусловный переход - jump @label, в отличии от условного перехода он выполняется в любом случае.
Код:<-- код --> jump @label <-- код1 --> // эта строка игнорируется
такая запись бессмысленна, поскольку <-- код1 --> никогда не будет выполнен.
К примеру, есть необходимость при выполнении условия игнорировать <--код провала-->:
Код:if < -- условие --> 004d: jump_if_false @label <-- код --> jump @label_1
:label <-- код провала--> jump @label_3 //выход
:label_1
В случае выполнения условия переходим на метку :label_1, то есть <-- код провала--> (метка :label) не выполняется.
Переход с возвратом (вызов процедуры) - gosub @Label.
gosub – это переход с возвратом на следующую после gosub @Метка строку. gosub всегда работает в паре с return.
Код::Lable gosub @Label_1 // переход на метку Label_1 < -- код --> // этот код будет выполнен только после того, // как отработает пара gosub @Label_1 - return jump @Label_2 // Безусловный переход на метку :Label_2
:Label_1 < -- код 1--> return //– возврат на следующую после gosub @Label_1 строку
:Label_2 В San Andreas поддерживается до 8 вложенных gosub.
Принцип работы:
Код::Lable gosub @Label_1 // (1) – переход на метку Label_1 < -- код --> // последним будет выполнен этот код jump @Label_4
:Label_1 gosub @Label_2 // (2) – переход на метку Label_2 < -- код --> return // (1) – возврат на следующую после gosub (1) строку
:Label_2 gosub @Label_3 // (3) – переход на метку Label_3 < -- код --> return // (2) - возврат на следующую после gosub (2) строку
:Label_3 < -- код --> return // (3) - возврат на следующую после gosub (3) строку
В примере показана работа трех вложенных gosub. Команда return будет отрабатывать в обратном порятке, то есть сначала отработает пара gosub @Label_3 - return // (3), затем пара gosub @Label_2 - return // (2) и только после этого отработает пара gosub @Label_1 - return // (1)
Говоря проще каждому gosub соответствует свой return. |
| |
|
|