00061. Cleo-миссии

Cleo-миссии|В этом уроке мы рассмотрим как создавать миссии, используя CLEO.|wmysterio|wmysterio||||Как и в main.scm в Cleo можно создавать миссии. Преимущество в Cleo в том, что количество миссий неограниченное! То есть если в мейне максимум 200, то в Cleo может быть 500, 600 и так дальше. Сегодня мы напишем первую Cleo-миссию ;)

Что бы компилятор сделал Cleo-миссию, нужно указать ему в директиве расширение "*.cm" ( custom mission ):

{$cleo .cm}

Дальше указать код миссии. Вот очень стабильный код миссий:

{$CLEO .cm}
//------------- Mission ---------------

:MISSION
thread 'MISSION'
gosub @MISSION_29_57
if
wasted_or_busted
jf @MISSION_29_46
gosub @MISSION_29_144

:MISSION_29_46
$ONMISSION = 0
mission_cleanup
end_thread

:MISSION_29_57
increment_mission_attempts
$ONMISSION = 1

//
{ Код миссии }
//


gosub @MISSION_END
00BA: show_text_styled GXT 'M_PASS' time 5000 style 1 // MISSION PASSED
0318: set_latest_mission_passed 'MISS_01' // GXT mission name
return

:MISSION_29_144
wait 0
gosub @MISSION_END
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // MISSION FAILED
return

:MISSION_END
wait 0
return

Обратите внимание, что завершается поток командой "end_thread"! После компиляции, SB создаст файл "*.cm" в папке Cleo. Вы можете поместить его и в другую директорию, например в папку "CLEO\MISSIONS", что бы отделить написанные миссии от Cleo-скриптов.

Давайте напишем миссию, что бы на CJ-я нападали три тела и нужно их убить. После убийства мы получим 1000$.

Компилируем файл. В нас получился файл "MISSION.cm". Отлично! Мы создали миссию!

Как и в мейне, нам необходимо написать стартер для миссии - набор условий для запуска. Кстати, что бы запустить Cleo-миссию, необходимо использовать опкод:

Здесь: "MISSION" - имя миссии ( название файла! ). Обратите внимание, что расширение "*.cm" писать не надо!

Давайте напишем простой стартер. Для этого создадим Cleo-скрипт с таким содержимым:

Таким образом мы сделали полноценный стартер и миссия запустилась без проблем:

Обратите внимание на последний "jump". Мы перейдём на начало потока, что даёт возможность пройти миссию ещё раз. Если поставить в место неё опкод "0A93: end_custom_thread", то пройти миссию мы сможем только 1 раз за загрузку игры ( в том числе когда миссия провалена ), так что оставляем "jump".

Так по-немножку, мы подошли к стартерам. В следующем уроке мы подробнее рассмотрим стартеры, а именно будем учится запускать миссии по-очереди, делать что бы при завершении одной миссии открывались две новых и в таком духе. Материал достаточно сложный в освоении, так как нужно всегда всё держать в своей памяти.

Думаю основу создания cleo-миссий мы рассмотрели. Создайте несколько своих миссий. Тестируйте на здоровье :)|4071|1|0|01068717png600375400`250``||cleo_missii|1499616943

Last updated

Was this helpful?