. Как назначить выполнение скрипта на кнопку в игре - Все о модостроении. - Каталог статей - S.T.A.L.K.E.R-modi
Модификации для серий игр S.T.A.L.K.E.R
Меню сайта
Категории раздела
Survarium [32]
Мир игры
Мир зоны [31]
Прохождение игры Сталкер [9]
Зона отчуждения [65]
Основные [35]
Демонстрация модификаций (видео) [81]
Путь на прилавки игры S.T.A.L.K.E.R ( Видео ) [3]
Интервью [21]
Лаборатория [9]
Все о новинках в мире техники).
Репортаж из зоны [19]
Все о чернобыле,саркофаге и др объектах находящихся в 30 км зоне!
Все о модостроении. [42]
Здесь вы найдете все что необходимо для создания любой сложности мода! (источник сайт Теорий модостроения stalk-mod-er.net.ru)
Рассказы , литература из мира S.T.A.L.K.E.R [0]
Сюда вы сможете добавить свой рассказ , или же добавить любимый отрывок из уже вышедшей литературы !
Обзоры других игр [51]
Обзоры фильмов [5]
Hi-Tech Новинки [6]
Заброшенные людьми места мира. [19]
Мини-чат
Наш опрос
Для чего создают игры GSC ?
Всего ответов: 3119
Реклама
Статистика

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



Главная » Статьи » Все о модостроении.

Как назначить выполнение скрипта на кнопку в игре
Известен способ как прибиндить кнопкам функции скрипта, но только когда открыто главное меню, или меню спальника, или любое другое скриптовое меню. В скриптовых файлах этих меню есть виртуальный колбек на отлов нажатия кнопок клавиатуры, поэтому когда открыто меню, например, спальника того же - нельзя использовать аптечку или бинт с помощью нажатия горячей кнопки [ или ]. А вот в файле скрипта на них можно прибиндить какую-то функцию, но повторюсь - это только в момент когда на экране есть скриптовое меню.

Второй способ, как сделать работу скрипта по нажатию кнопки в игре - не существует. Однако, имитацию ТАКОГО СПОСОБА УДАЛОСЬ СОЗДАТЬ, но только для клавиши ТАВ.

Объяснение довольно простое - при нажатии кнопки ТАВ в игре на экран выводится текущее задание, которое отмечено в ПДА. Я подозреваю, что когда текущих заданий в ПДА не останется (например, в АМК 1.4 когда доходишь до уровня ЧАЭС 2, после разговора с О-Сознанием, пропадало последнее задание "Убить Стрелка", и не оставалось ни одного) - способ перестанет работать, но это надо проверять.

Так вот, оказывается, текущее задание выводится на главный экран игры, то есть на ХУД, не просто так, а в виде кастом статика. Этот кастом статик записан в файле gamedata\config\ui\ui_custom_msgs.xml и называется он main_task. Вот его-то и можно поймать скриптом, и соответственно, назначить на момент его ловли какое-то действие. Пример ниже.

Все мы знаем функцию апдейта из файла бинд_сталкер. Вот на неё-то и повесим колбек на специальный скрипт tabula_rasa.script, вот так:

Код
if tabula_rasa then tabula_rasa.update(delta) end

Понятно, что вставить этот колбек надо в функцию апдейта в скрипте bind_stalker.script, а теперь займёмся самим новым скриптом. В нём будет две основных функции - самого апдейта, где будет проверяться, нет ли на главном экране кастом статика main_task, и вторая функция, где будет выполняться какое-то действие.

Код
local timer = 0

function update(delta)
timer = timer+delta
if timer>1000000 then timer = 1000000 end
local hud = get_hud()
if hud:GetCustomStatic("main_task") and timer>1000 then
do_something()
timer = 0
end
end

function do_something()
local item = db.actor:object("antirad")
if antirad then
db.actor:eat(item)
end
end

Вот такая вот функция. А теперь - что она делает? Правильно, при нажатии ТАВ происходит использование антирада, одной штуки, если он есть. Но такое использование произойдёт не чаще, чем раз в 1000 миллисекунд, для чего есть специальная проверка - в переменной timer хранится время, прощедшее с момента последнего нажатия ТАВ, при котором timer обнуляется. Время хранится в миллисекундах, поэтому 1000 равно одной секунде. Ну а строка где проверяется, не равен ли timer миллиону - это просто страховка от возможного огромного значения переменной

Europa Capital spol. s.r.o – лидирующая компания в  области инвестиционного консалтинга, работающая на рынке Чехии более 15  лет. Основная специализация у компании – покупка-продажа жилой и коммерческой  недвижимости в Чехии.

Иммиграция в Чехию , образование в  Чехии, недвижимость в Чехии – за всеми этими фразами стоит реальный опыт  наших специалистов компаний Europa Capital  и успех клиентов. Мы начинали с малого и шаг за  шагом создали команду, которая сегодня ведет большие проекты. Но это не  значит, что мы забросили то, с чего начинали.

Категория: Все о модостроении. | Добавил: ZARK (21.10.2010)
Просмотров: 4810 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я незнаю кто ты?
Регистрация
Вход!

---


English version


Список Сталкеров
Поиск
Последние файлы
Друзья
Все баннеры
Баннерообмен
Наш Банер
Мы будем очень благодарны
если вы разместите нашу
кнопку у себя на сайте!

S.T.A.L.K.E.R-modi




Авторское право на игру и использованные в ней материалы принадлежат GSC Game World. Любое использование материалов сайта возможно только с разрешения администрации. Powered by Ssnork © (2010-2020).