Рейтинг - 5.0 (1)

Всем хай! Этот короткий урок будет о метках и о том, как совершать прыжки на них.

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

Label1:

Пример:

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 Label1;

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

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

C#Аналог в Sanny Builder
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

Согласитесь, похож ведь SannyBuilder на C#! С метками и прыжками кодить в C# намного привычнее.

Мы помним, что в SannyBuilder, наш вариант кода приведёт к ошибке, так как отсутствует "wait 0" после меток. В c# таже ситуация. Я тестировал этот код и игра у меня постоянно загружалась, но загрузится так и не смогла. На помощь мне пришел именно этот wait! В C# так же есть требования относительно задержки. И, вот наша первая команда с библиотеки ScriptHookDotNet:

Wait(0);

Теперь наш код должен иметь такой вид:

C#Аналог в Sanny Builder
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

Следует помнить, что нельзя делать прыжки на метки другого потока, так как они находятся не в области видимости оператора "goto". Да и в c# метками не особо часто пользуются, но вы должны о них знать. На этом урок окончен. Всем спасибо за уделённое время на урок :)


Теги: прыжки, Wait, Метка, goto, Label
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Кто из главных героев GTA 5 круче?
Всего ответов: 14
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
Рекомендую