000102. Метки и прыжки

Метки и прыжки|Всем хай! Этот короткий урок будет о метках и о том, как совершать прыжки на них.|wmysterio|wmysterio||||Как и в СанниБилдер, в C# так же есть подобная возможность. Начнём с меток. Синтаксис написания похож на 99% с SB, разница только в том, что символ : нужно ставить после названия метки:

cs
Label1:

Пример:

cs
using System;
using GTA;

namespace TestScript {

 public class Thread : Script {

 public Thread() {

 Label1:

 Label2:

 Label3: 
 
 Label4:

 }

 }
}

С метками скрипт уже во многом напоминает наш любимый SannyBuilder. Здесь также присутствуют правила написания меток ( и переменных в том числе ):

  • Нужно использовать латинские символы в качестве имён;

  • Первый символ не должен начинаться с цифры;

  • Нельзя разделать название пробелами и использовать спец-символы;

  • Название должно быть уникальным (не должно совпадать);

Прыжки! Наш любимый jump теперь есть в c#. Как и SannyBuilder, в c# есть инструкция goto, что равносильна команде jump в SB. Синтаксис в C# следующий:

Минусы в том, что метки не сохраняются в каком-то буфере обмена, поэтому нужно запоминать все метки. К тому-же метку нельзя писать, если на неё не переходит хоть один оператор goto, что не совсем удобно.

× **Примечание:** такие зависимости действуют не во всех версиях C#.

Рассмотрим простой пример:

C#
Аналог в Sanny Builder

```

cs using System; using GTA;

namespace TestScript {

public class Thread : Script {

public Thread() {

Label1: goto Label2;

Label2: goto Label1;

}

}

}

{$CLEO} 0000: thread 'Thread'

:Label1 jump @Label2

:Label2 jump @Label1

0A93: end_custom_thread

cs Wait(0);

cs using System; using GTA;

namespace TestScript {

public class Thread : Script {

public Thread() {

Label1: Wait(0); goto Label2;

Label2: goto Label1;

}

}

}

{$CLEO} 0000: thread 'Thread'

:Label1 wait 0 jump @Label2

:Label2 jump @Label1

0A93: end_custom_thread

Last updated