Работа со стартерами ( Cleo - Часть 2 )|Очередная статья о том, как делать стартеры для Cleo-миссий. В ней мы научимся делать несколько стартеров, что бы в игрока был выбор миссий. Отличий от предыдущего урока немного, но всё же рассмотрим подробнее.|wmysterio|wmysterio||||Чтобы создать другой стартер, нам понадобится ini-файл из предыдущего урока. Допустим мы хотим добавить миссии OG-лока, которые можно выполнять параллельно с миссиями CJ. Открываем наш файл "MISSION.ini" и делаем новые сведения ( стартовые данные ):
Пустыми комментариями выделено прибавление единицы к общему количеству пройденных миссий. Думаю вы заметили отличия: в место слова "CJ" написано "OG". Значит запись будет происходить в блок с информацией о "OG" в ini-файле. По-аналогии:
Как видите, команды точно те же, что и для миссий CJ. И для этого стоило только поменять две буквы. Со стартерами точно также! Нам осталось поменять названия миссий:
{$CLEO}
0000:
:NAME_OG
thread 'NAME_OG'
wait 0
if
0AAB: file_exists "CLEO\MISSION.ini"
jf @NAME_OG_END
if
$ONMISSION == 0
jf @NAME_OG
if
075C: marker 0@ enabled
then
marker.Disable(0@)
end
0AF0: 5@ = get_int_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "MISSION_OG_TOTAL"
if
5@ > 4
then
jump @NAME_OG_END
end
:NAME_OG_1
wait 0
0AF0: 1@ = get_int_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "markerID"
0AF2: 2@ = get_float_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "MARKER_X_OG"
0AF2: 3@ = get_float_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "MARKER_Y_OG"
0AF2: 4@ = get_float_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "MARKER_Z_OG"
0@ = marker.CreateIconAndSphere(1@, 2@, 3@, 4@)
:NAME_OG_2
wait 0
0AF0: 5@ = get_int_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "MISSION_OG_TOTAL"
if AND
not actor.Dead($PLAYER_ACTOR)
not actor.Driving($PLAYER_ACTOR)
8A0C: not player $PLAYER_CHAR on_jetpack
8741: not actor $PLAYER_ACTOR busted
then
if AND
$ONMISSION == 0
0102: actor $PLAYER_ACTOR in_sphere 2@ 3@ 4@ radius 2.0 2.0 2.0 sphere 0 stopped_on_foot
then
00BE: text_clear_all
03E6: remove_text_box
fade 0 1000
if
5@ == 0
then
00BA: show_text_styled GXT 'MISS_06' time 1000 style 2
wait 1000
0A94: start_custom_mission "MIS_006"
jump @NAME_OG
end
if
5@ == 1
then
00BA: show_text_styled GXT 'MISS_07' time 1000 style 2
wait 1000
0A94: start_custom_mission "MIS_007"
jump @NAME_OG
end
if
5@ == 2
then
00BA: show_text_styled GXT 'MISS_08' time 1000 style 2
wait 1000
0A94: start_custom_mission "MIS_008"
jump @NAME_OG
end
if
5@ == 3
then
00BA: show_text_styled GXT 'MISS_09' time 1000 style 2
wait 1000
0A94: start_custom_mission "MIS_009"
jump @NAME_OG
end
if
5@ == 4
then
00BA: show_text_styled GXT 'MISS_10' time 1000 style 2
wait 1000
0A94: start_custom_mission "MIS_010"
jump @NAME_OG
end
end
end
jump @NAME_OG_2
:NAME_OG_END
wait 0
0A93: end_custom_thread
Естественно стартер рассчитан на 5 миссий ( "MIS_006", "MIS_007", "MIS_008", "MIS_009" и "MIS_010" ). Компилируем код под названием, например, "ST_OG.CS". Скрипт со стартером для СЖ пусть будет "ST_CJ.CS". Что бы появились оба маркера, нужно что бы эти скрипты были в папке "CLEO" вместе. Если всё правильно сделано, то старетры готовы. Можно выбирать миссию! :)
Но что, если нужно сделать так, что бы при прохождении 2-х миссий СЖ открывались миссии ОГ-лока?. Ответ очень просто. Нам нужно в стартере ОГ считать количество пройденных миссий СЖ и проверить больше ли это количество за нужное. Давайте сделаем написанное:
//...
:NAME_OG
thread 'NAME_OG'
wait 0
if
0AAB: file_exists "CLEO\MISSION.ini"
jf @NAME_OG_END
if
$ONMISSION == 0
jf @NAME_OG
if
075C: marker 0@ enabled
then
marker.Disable(0@)
end
0AF0: 6@ = get_int_from_ini_file "CLEO\MISSION.ini" section "MISSION_CJ" key "MISSION_CJ_TOTAL"
if
6@ > 2 // проверяем "количество пройденных миссий CJ больше чем две?". Если нет, то прыгаем на начало потока
jf @NAME_OG
0AF0: 5@ = get_int_from_ini_file "CLEO\MISSION.ini" section "MISSION_OG" key "MISSION_OG_TOTAL"
if
5@ > 4
then
jump @NAME_OG_END
end
//...
Готово! Теперь пока не будут пройдены две миссии СЖ, маркер OG не будет появляться. Если пройденны, то мы свободно можем проходить миссии Джефри. Вот такой не хитроумный способ. :) Как добавить в стартер новые миссии читайте в предыдущем уроке. Я напишу ещё один урок по стартерам, он будет не очень большой, но думаю будет полезен каждому новичку.|976|1|0||rabota_so_starterami_cleo_chast_2|1499621277