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

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

Реклама

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

РАБОТА С БИТАМИ ПЕРЕМЕННОЙ

Процессор в РС и по сей день используют 32-битную архитектуру (intel и AMD выпускают процессоры с 64-битной архитектурой, но на данный момент операционные системы толком ее не поддерживают). Биты пронумерованы от 0 до 31 справа на лево:
31 30 29 28 27 ………..5 4 3 2 1 0.

К примеру десятичное число 65 будет представлено так:
0000 0000 0000 0000 0000 0000 0100 0001.

Ну что ж вернемся к нашим опкодам.

Наверное многие задавались вопросом, что же это за такие мудреные команды?

0004: $391 = 0 // integer values

. . . .

08BA: set $391 bit 0 - ?

. . . .

08C0: clear $391 bit 0 - ?

. . . .

08B4: test $391 bit 0 - ?

Прировняв переменную $391 к нулю мы, тем самым, установили все 32 бита в ноль.
Следующим опкодом 08BA: set $391 bit 0 мы устанавливаем нулевой бит равным единице, то есть 0000 0000...0000 0001.

Для примера напишем такой поток:


:TEST1
0004: $391 = 0 // integer values

:TEST1_1
08BA: set $391 bit 0

:TEST1_2
045A: text_draw_1number 20.0 430.0 ' NUMBER ' $391 // ~1~
wait 3000
end_thread


В результате в нижнем левом углу экрана появится цифра 1.

Для чего это нужно? Предположим что переменная $391 у нас будет отвечать за одежду игрока. К примеру нулевой бит имеет отношение к головному убору или прическе, второй – рубашка, третий – штаны и так далее. Либо каждый бит будет отвечать за различные варианты одежды.
Тогда:

08BA: set $391 bit 0
08BA: set $391 bit 1
08BA: set $391 bit 2

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


00D6: if
08B4: test $391 bit 0
004D: jump_if_false @

тем самым мы проверяем равен ли нулевой бит единице.
Опкод 08C0: clear $391 bit 0 – очишаем нулевой бит переменной, то есть приравниваем его к нулю.

Для примера рассмотрим такой поток:


create_thread @TEST1

:TEST1
thread 'TEST1'
$391 = 0 // integer values

:TEST1_18
wait 0
if
00E1: key_pressed 0 8 //Group CTRL Forward
jf @TEST1_46
08BA: set $391 bit 0
jump @TEST1_102

:TEST1_46
wait 0
if
00E1: key_pressed 0 9 //Group CTRL back
jf @TEST1_74
08BA: set $391 bit 1
jump @TEST1_102

:TEST1_74
wait 0
if
00E1: key_pressed 0 10 //conversation - no
jf @TEST1_102
08BA: set $391 bit 2

:TEST1_102
wait 0
if
08B4: test $391 bit 0 // проверяем равен ли нулевой bit единице
jf @TEST1_235 //если нет то переходим на следующую метку
Player.SetClothes($PLAYER_CHAR, "PLAYER_TORSO", "TORSO", Torso)
Player.SetClothes($PLAYER_CHAR, "AFRO", "AFRO", Head)
Player.SetClothes($PLAYER_CHAR, "BBSHORTRED", "BOXINGSHORT", Legs)
Player.SetClothes($PLAYER_CHAR, "COWBOYBOOT2", "BIKER", Shoes)
Player.Build($PLAYER_CHAR)
jump @TEST1_510

:TEST1_235
wait 0
if
08B4: test $391 bit 1
jf @TEST1_372
Player.SetClothes($PLAYER_CHAR, "BBJERSEY", "SLEEVT", Torso)
Player.SetClothes($PLAYER_CHAR, "GROOVECUT", "GROOVECUT", Head)
Player.SetClothes($PLAYER_CHAR, "SUIT1TRGANG", "SUIT1TR", Legs)
Player.SetClothes($PLAYER_CHAR, "SHOEDRESSBRN", "SHOE", Shoes)
Player.Build($PLAYER_CHAR)
jump @TEST1_510

:TEST1_372
wait 0
if
08B4: test $391 bit 2
jf @TEST1_510
Player.SetClothes($PLAYER_CHAR, "TSHIRTERISYELL", "TSHIRT", Torso)
Player.SetClothes($PLAYER_CHAR, "WEDGE", "WEDGE", Head)
Player.SetClothes($PLAYER_CHAR, "BBSHORTWHT", "BOXINGSHORT", Legs)
Player.SetClothes($PLAYER_CHAR, "FLIPFLOP", "FLIPFLOP", Shoes)
Player.Build($PLAYER_CHAR)

:TEST1_510
08C0: clear $391 bit 0
08C0: clear $391 bit 1
08C0: clear $391 bit 2
jump @TEST1_18

(by yelmi)

Категория: Уроки | Добавил: gtascript (11.08.2007)
Просмотров: 392 | Комментарии: 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