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

Всем привет! Мы продолжаем изучать C#. А точнее не сам 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# нам постоянно нужно вводить неудобные символы && или || между условиями. Плюс шарпа в том, что он не ограничен в количестве самих условий. Можем написать хоть сто условий :) Кроме этого, мы можем комбинировать их, в зависимости от ситуации. К тому-же код c# не такой громоздкий, как со сравниваемым с ним SannyBuilder. Мы, конечно, могли написать и так:

if ( a == 0 &&
 a == 1 &&
 a == 3 ) {
 a += 1;
}

Никакой разницы не будет. Компилятор поймёт это без проблем! Это удобно, когда есть куча условий, но их видимость в одной строке ограничивается. Какой вариант лучше, такой и используйте :)

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


Теги: условия в C#, блочные конструкции

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

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

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

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

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