Заработай на своем сайте Купите рекламу от 5 центов за клиента!
GTA Скриптинг
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Научись скриптить

Реклама

Главная » Статьи » Учения скриптингу » Уроки

МАТЕМАТИКА

 

 

Материал частично взят из ReadMe Sanny Builder'a

Начну с типов данных:

@ - пишется в начале,как метка на label.

Пример: 0002: jump @MyLabel

$ - обозначение глобальных переменных. Могут использоваться в любом месте кода(всего Main'a).

Пример: 0004: $Var1 = 100

@ - пишется в конце,как обозначение переменной,используемой только в том потоке,в котором

её объявили.

Пример: 0006: 100@ = 10

'...' - текст (макс. 7 символов).

Пример: 03A4: name_thread 'MAIN'

"..." - текст (точный максимум неизвестен, но не больше 255 символов).

Пример: 0662: write_debug_message "Hello_world"

s$ - глобальная стринговая переменная (можно использовать во всём Main'e)

Пример: 05A9: s$MyString = 'FOREVER'

@s - локальная стринговая переменная (можно использовать только в том потоке,в котором вы её

создали).

Пример: 05AA: 1@s = 'LOCAL'

v$ - глобальная длинная стринговая переменная (можно использовать во всём Main'e).

Пример: 06D1: v$MyString = "LONG_GLOBAL"

@v - локальная длинная стринговая переменная (можно использовать только в том потоке,в кото-

ром вы её создали).

Пример: 06D2: 1@v = "LONG_LOCAL"

# - имя модели из одного из IDE - файлов игры

Пример: 0247: request_model #CELLPHONE

& - прямой байтовый адрес.Читает и пишет значения по указанному адресу.

Пример: 0004: &100 = 0

Переменным можно задавать тип,кто хоть чуть-чуть знает программирование,тот сразу поймёт:

var

$Man: Actor

end

Мы присвоили переменной $Man тип актёрa.Теперь переменная $Man обладает всеми свойствами,ко-

торыми обладает тип Actor.

Теперь нам не обязательно писать вот так:

actor.create($Man,4,1600.0,1200.0,16.0)

Теперь можно написать:

$Man.create(4,1600.0,1200.0,16.0)

Необязательно писать model.load(#M4),можно написать сразу #M4.load ,потому-что знак # уже

указывает на то,что эта переменная - модель.

 

Также можено объявлять массивы.Используется следующая запись:

var

<array name>: array <size> of <type>

end

Например:

var

$MyArray: array 10 of Integer

end

После этого вы можете работать с этим массивом без указания его типа

и размера.Например:

$FloatArray[$RndIndex] += 100.0

 

Теперь насчёт математических действий,т.е. сложение,вычитание...

$Var_1 += 1 // прибавление к целой переменной целого числа

$Var_1 += 1.0 // прибавление к дробной переменной дробного числа

$Var_1 -= 1 // отнимание целого числа от целой переменной

$Var_1 -= 1.0 // отнимание от дробной переменной дробного числа

$Var_1 /= 1000 // деление целой переменной на целое число

$Var_1 /= 1000.0 // деление дробной переменной на дробное число

$Var_1 *= 1000 // умножение целой переменной на целое число

$Var_1 *= 1000.0 // умножение дробной переменной на дробное число

008B: $Var_1 = $Var_2 // приравнивание переменной 1 к переменной 2 (дробные и целые)

0089: $Var_1 = $Var_2 // приравнивание переменной 1 к переменной 2 (только дробные)

0084: $Var_1 = $Var_2 // приравнивание переменной один к переменной два (целые и handles)

0087: $Var_1 = $Var_2 // приравнивание переменной с точкой к др. переменной с точкой

0086: $Var_1 = $Var_2 // приравнивание перемееной один к переменной два (только целые)

005F: $Var_1 += $Var_2 // прибавление к целой переменной дробной переменной

005A: $Var_1 += $Var_2 // прибавление к переменной один переменной два (только целые)

005B: $Var_1 += $Var_2 // прибавление к одной переменной с точкой др. переменной с точкой

0060: $Var_1 -= $Var_2 // отнимание от одной переменной др. переменной (только целые)

0063: $Var_1 -= $Var_2 // отнимание от одной переменной с точкой др. переменной с точкой

0072: $Var_1 /= $Var_2 // деление целой переменной на другую целую переменную

0073: $Var_1 /= $Var_2 // деление переменной с точкой на другую переменную с точкой

006B: $Var_1 *= $Var_2 // умножение дробной переменной на др. дробную переменную

 

 

Сравнения,т.е. проверки для чисел:

$Var_1 == 1 // равняется ли переменная 1 (только целые)

$Var_1 >= 9 // переменная больше либо равняется 9 (только целые)

0 >= $Var_1 // число 17 больше либо равняется переменной (только целые)

$Var_1 > 9 // переменная больше 9 (только целые)

17 > $Var_1 // число 17 больше переменной (только целые)

001C: $Var_1 > $Var_1 // целая переменная 1 больше целой переменной 2,в команде с опкодом нет

// знака < , вместо него используйте >= и меняйте первую цифру опкода на 8 и ставьте

// после опкода слово not ,вот так :

801C: not $Var_1 >= $Var_1 // размыслите логически,если не больше и не равно,то

// естественно меньше

Одним словом все эти знаки называются псевдознаками:

< это not >=

not < это >=

<= это not >

not <= это >

<> это not ==

not <> это ==

0025: $Var_1 > $Var_2 // дробная переменная 1 больше дробной переменной 2 (применяются псевдознаки)

Это заучивать не надо,если сейчас не поняли,то со временем сами догоните...

 

Ещё можно преобразовывать число одного типа в другой:

0093: $Var_1 = integer_to_float $Var_2 //преобразовывает целую переменную $Var_2 в перемен-

ную с точкой $Var_1,вот допустим $Var_2 = 1000,после выполнения данной опереации $Var_1 бу-

дет равно 1000.0 , можно даже написать вот так:

0093: $Var_1 = integer_to_float $Var_1 // не используя вторую переменную,сразу переводим

целую переменную в переменную с точкой,внизу есть пример по этому поводу.

0092: $Var_2 = float_to_integer $Var_1 // преобразовывает дробную переменную $Var_1 в целую,

т.е. отбрасывает все знаки после запятой.

0094: make $Var_1 absolute_integer // берёт целую переменную и обнуляет её

0097: make $Var_1 absolute_float // берёт дробную переменную и обнуляет её

0099: $Var_1 = random_integer 23 to 65535 // выбирает произвольное целое число на промежутке

// от 23 до 65535

0208: $1 = random_float 0.0 10.0 // выбирает произв. дробное число из диапозона от 0.0 до 10.0

Примеры:

1) Вот давайте я приведу пример скрипта с использованием одного математического дейтвия:

По нажатию "ПРЫЖОК" + "СПРИНТ" к игровому времени будет прибавлятся один час:

create_thread @TimeM // создаём поток с именем TimeM

:TimeM // Начинаем наш поток

wait 0 // ждём 0 мс,если не напишем,то игра вылетит

if and // условие с выполнением всех проверок(подусловий)

00E1: key_pressed 0 14 // проверка (если нажата клавиша "ПРЫЖОК")

00E1: key_pressed 0 16 // проверка (если нажата клавиша "СПРИНТ")

jf @TimeM // если все проверки не выполнились,то переходим на начало

wait 100 // ждём 100 мс,если не напишем небольшую задержку,то игровое время

// будет изменятся с бешеной скоростью(из-за скорости процессора вашего компа)

$time += 1 // тут к переменной $time прибавляем 1

00C0: set_current_time $time 0 // и устанавливаем игровое время на $time

jump @TimeM // и прыгаем в начало

 

2) Сейчас я привёл пример преобразования дробной переменной в целую:

Скрипт будет измерять расстояние между игроком и домом CJ'я и затем преобразовывать его в

целое и выводить на экран под звёздачками:

create_thread @Dist // создаём поток с именем Dist

:Dist // начинаем поток

wait 10 // ставим задержку,если не поставим,то игра просто вылетит

if // ставим обыкновенное одиночное условие

player.Defined($PLAYER_CHAR) // проверка(игрок существует)

jf @Dist // если игрок ещё не успел создаться,то прыгаем на начало

actor.StorePos($PLAYER_ACTOR,$x,$y,$z) // записываем координаты игрока в переменные

050A: $120 = distance_between 2495.3 -1689.7 14.6 and $x $y $z // эта команда измеряет

// расстояние между координатами игрока и домом CJ'я,но она возвращает дробное значение

0092: $120 = float_to_integer $120 // поэтому его надо преобразовать в целое

04F7: status_text $120 0 line 1 '_GOT00' // выводим текст с одной переменной под звёздач-

// ками,мы используем отфанарное имя GXT записи,для того,чтобы там не было текста

jump @Dist

 

Категория: Уроки | Добавил: gtascript (11.08.2007)
Просмотров: 446 | Комментарии: 1 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Часы

Скорость интернета

Друзья сайта

eServer.ru :: Хостинг-оператор #1 Сайт полностью посвящен мультфильму
САЙТ КАМРАНА!!!! Бесплатные игры, программы, МР3, новости и многое другое Только на сайте КАМРАНА!!!!! Все о Mafia 2 GTAIV Портал Только русские файлы для gta san andreas Софт для gta sanandreas Лада-тюнинг-эксклюзивные тюнингованые авто для GTA:SA


Статистика

Dating.ru Топ100 - Игры RusTusovka.COM - ТОП 100 Русско-Язычных Сайтов Русский Топ Рейтинг Топ GamerPro SERP: gta скрипты программы миссии


Copyright MyCorp © 2025 Конструктор сайтов - uCoz