Делаем новые миссии. CLEO - скрипты, cutscene, статьи, программы. Игровые новости.
 
8.11.07 20:47 |

Панель, или список товаров.

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 8.20 (5) | Хитов 5330
При покупке одежды, оружия, экспорте транспорта нам предлагается список товаров и услуг, а также их стоимость. Выбрав один из пунктов, мы имеем возможность приобрести этот товар. Как же реализована эта возможность?

В GTA San Andreas для этих целей применяется пара опкодов:

Код:
08D4: $Panel = create_panel_with_title 'IE09' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 
08DB: set_panel $Panel column 0 header 'DUMMY' data 'IE16' 'IE10' 'IE11' 'IE12' 'IE13' 'IE14' 'IE15' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'


Опкодом 08D4: создаем панель с названием 'IE09'
в координатах 29.0 170.0, это координаты левого верхнего угла панели
ширина панели - 180.0,
количество столбцов – 1
interactive – 1 можно выбирать из списка, 0 – нет выбора
background – 1 будет черный фон, 0 - прозрачно
alignment 0 выравнивание текста, 0 - по центру , 1 - по левому краю, 2 - по правому

Опкодом 08DB: устанавливаем в панели $Panel для первого столбца название этого столбца 'DUMMY' и названия строк 'IE16' - 'IE15' 'DUMMY' - 'DUMMY'.
Максимальное количество строк в столбце – 12, если необходимо использовать только 7, как в нашем случае, то остальные неиспользуемые записываются с названием 'DUMMY'.
'DUMMY' – без названия.
'IE09'-'IE15' – GXT текст из GXT таблицы 'MAIN'
Для примера, создадим панель

Код:
:PANEL
thread 'PANEL'

:PANEL_1
wait 0
01B4: toggle_player $PLAYER_CHAR can_move 0 // обездвиживаем игрока
0512: show_permanent_text_box 'IE20' //выводим text_box
0581: toggle_radar 0 // убираем радар
08D4: $PANEL = create_panel_with_title 'IE09' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0
08DB: set_panel $PANEL column 0 header 'DUMMY' data 'IE16' 'IE10' 'IE11' 'IE12' 'IE13' 'IE14' 'IE15' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

:PANEL_3
wait 0
if
00E1: player 0 pressed_key 15
jf @PANEL_3
0581: toggle_radar 1 //возвращаем радар
03E6: remove_text_box // убираем text_box
08DA: remove_panel $PANEL //удаляем панель
01B4: toggle_player $PLAYER_CHAR can_move 1// возвращаем управление игроком
end_thread

Сейчас он демонстрирует только вывод панели и при нажатии на кнопку F или ENTER убираем панель. Теперь необходимо сделать возможность выбора. Нумерация строк и столбцов начинается с 0.
Для того, чтобы определить, какая строка выбрана применяется опкод
08D7: 0@ = panel $Panel active_row
т.е. записываем в переменную 0@ номер строки.



  12»

  1 2 3 4 5 6 7 8 9 10  

Родственные ссылки
» Другие статьи раздела Основы скриптинга
» Эта статья от пользователя yelmi

5 cамых читаемых статей из раздела Основы скриптинга:
» Работа со звуками в GTA San Andreas
» Директивы
» Контроль клавиатуры
» External Script – что это такое и как с ним работать?
» Панель, или список товаров. Часть II.

5 последних статей раздела Основы скриптинга:
» Директивы
» Дополнительные команды
» Ключевые слова
» Классы
» Циклы

¤ Перевести статью в страницу для печати
¤ Послать эту cтатью другу

MyArticles 0.6 beta for RUNCMS: by RunCms.ru


Реклама

Вверх     Вернуться на главную. Вход в Систему. Статьи. Скачать. Миссии. ФОРУМ Обратная связь.   
   
   
   
   
- Генерация страницы: 0.22 секунд -