Этот плагин позволит быстро сделать простой стартер миссий. Его можно создавать много раз. Код стартер имеет такой вид:
publicpartialclassMAIN:Thread { // здесь будем хранить ссылку на стартерpublicstaticStarter STARTER_EXAMPLE;publicoverridevoidSTART( LabelJump label ) {create_thread<STARTER>(); } //----------------------------------------------------------------------------------------------------publicclassSTARTER:Thread {publicoverridevoidSTART( LabelJump label ) { // setup - объект специального класса, который позволит настроить стартер STARTER_EXAMPLE =newStarter( setup => { // ... } ); } }}
Объект STARTER_EXAMPLE мы может использовать в миссиях, чтобы увеличить счётчик или создать поток STARTER ещё раз. Это нужно делать уже в миссиях:
publicpartialclassMAIN:Thread { //----------------------------------------------------------------------------------------------------publicclassMISS1:Mission {publicoverridevoidSTART( LabelJump label ) {wait( DefaultWaitTime );fade( FadeType.IN, DefaultWaitTime );PlayerChar.can_move( true );PlayerActor.set_immunities( 0,0,0,0,0 );wait( 10000 );jump_passed(); OnPassed =delegate { // запустить скрипт стартера и увеличить счётчик на 1STARTER_EXAMPLE.recreate( true ); }; OnFailed =delegate { // запустить скрипт стартера без изменения счётчикаSTARTER_EXAMPLE.recreate(); }; } }publicclassMISS2:Mission {publicoverridevoidSTART( LabelJump label ) {wait( DefaultWaitTime );fade( FadeType.IN, DefaultWaitTime );PlayerChar.can_move( true );PlayerActor.set_immunities( 0,0,0,0,0 );wait( 10000 );jump_passed(); OnPassed =delegate { // запустить скрипт стартера и увеличить счётчик на 1STARTER_EXAMPLE.recreate( true ); }; OnFailed =delegate { // запустить скрипт стартера без изменения счётчикаSTARTER_EXAMPLE.recreate(); }; } }publicclassMISS3:Mission {publicoverridevoidSTART( LabelJump label ) {wait( DefaultWaitTime );fade( FadeType.IN, DefaultWaitTime );PlayerChar.can_move( true );PlayerActor.set_immunities( 0,0,0,0,0 );wait( 10000 );jump_passed(); OnPassed =delegate { // запустить скрипт стартера и увеличить счётчик на 1STARTER_EXAMPLE.recreate( true ); }; OnFailed =delegate { // запустить скрипт стартера без изменения счётчикаSTARTER_EXAMPLE.recreate(); }; } }}
Мы должны указать стартеру какие миссии вызывать, какое название выводить на экране и какие условия для этого нужны. Объект setup как раз поможет это сделать: