Рейтинг - 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. Синтаксис в c# следующий:
goto Label1;
Минусы в том, что метки не сохраняются в каком-то буфере обмена, по-этому нужно запоминать все метки. К тому-же метку нельзя писать, если на неё не переходит хоть один оператор goto, что не совсем удобно.

Рассмотрим простой пример:
C#
Аналог в SannyBuilder
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#
Аналог в SannyBuilder
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# метками не особо часто пользуются, но вы должны о них знать. На этом урок окончен. Всем спасибо за уделённое время на урок smile

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

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

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

Сегодня нас посетили:
wmysterio, Dyabda
Реклама