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

Всем привет! Мы продолжаем изучать c#. А точнее не сам с#, а скриптинг GTA 4 с помощью этого ЯП. Сегодня мы рассмотрим блочную конструкцию, являющейся условием. Как уже звучало ранее, блочные конструкции содержат код внутри фигурных скобок { }. К таким блочным конструкциям относятся условия. Синтаксис написания прост:
if ( <УСЛОВИЕ> ) {
      // действия
}
 Само условие в основном содержит условные операции над выражением. Также сюда можно отнести функции и процедуры, возвращающие тип bool.

Вот самый простой пример:
c#
Аналог в Sanny Builder
using System;
using GTA;

namespace TestScript {
    public class Thread : Script {

        public Thread() {
            int a = 0;
            if ( a == 0 ) {
               // действия
            }


        }
    }
}



{$Cleo}
0000:

thread 'Thread'
0@ = 0
if
0@ == 0
then
// действия
end


0A93: end_custom_thread
Это одиночное условие конструкции if...then...end. Что бы организовать код jf @Label1 с SannyBuilder, нужно использовать следующий код:

c#
Аналог в Sanny Builder
using System;
using GTA;

namespace TestScript {
    public class Thread : Script {

        public Thread() {
            int a = 0;

            Label1:
            Wait(0);

            if ( a != 0 ) {
                goto Label1;
            }

} } }



{$Cleo}
0000:

thread 'Thread'
0@ = 0

:Label1
wait 0

if
0@ == 0
jf @Label1

0A93: end_custom_thread
Как и SB, существуют ещё несколько типов условий. Одной из них есть конструкция if...then...else...end. В c# она имеет следующий вид:
c#Аналог в Sanny Builder
int a = 5;

if ( a == 0 ) {
     a += 1;
} else {
     a += 10;
}
0@ = 5

if
0@ == 0
then
0@ += 1
else
0@ += 10
end

Хочу ещё рассказать об "типах" условий. Как вы помните, в СанниБилдер существуют проверки на истину нескольких выражений( or и and). c# предоставляет также такую возможность. Синтаксис написания такой:
Тип условия
c#
Аналог в SannyBuilder
or
if ( a == 0 || a == 1 || a == 3) {
a += 1;
}
if OR
0@ == 0
0@ == 1
0@ == 3
then
0@ += 1
end
and
if ( a == 0 && a == 1 && a == 3) {
a += 1;
}
if AND
0@ == 0
0@ == 1
0@ == 3
then
0@ += 1
end
Главные отличия вы заметили. Плюсы СанниБилдер в том, что мы перечисляем все условия, написав тип or(and) один раз, в тоже время как в c# нам постоянно нужно вводить неудобные символы &&( || ) между условиями. Плюс шарпа в том, что он не ограничен в количестве самих условий. Можем написать хоть сто условий smile К тому-же код c# не такой громоздкий, как со сравниваемым с ним SannyBuilder. Мы, конечно, могли написать и так:
if ( a == 0 &&
      a == 1 &&
      a == 3 ) {
      a += 1;
}
и никакой разницы не будет. Компилятор поймёт это без проблем! Это удобно, когда есть куча условий, но видимость их в одной строке ограничивается. Какой вариант лучше, такой и используйте :)

На этом об условиях всё. Галопом прошлись по ним. Принцип работы остался прежним. Если уж совсем напряг, то почитайте более подробные статьи в интеренете. Я уже хочу побыстрее перейти к обычному режиму уроков: примеры и команды. А учить весь c# нам нет необходимости :)

Теги: Блочные конструкции. Условия

KiLLeR96   (17.05.13 21:35)
А такие скрипты можно использовать в СА вместо Саннибилдеровских?

wmysterio   (17.05.13 23:02)
Увы подобной возможности я не находил. Если кто-то сделает библиотеку с функциями GTA:SA, то тогда можно будет скриптить на c# Саню.
Вход на сайт

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

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

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