Зона - это святое место. Здесь ты сам себе хозяин, ты свободен как птица. Можно не воспринимать Зону всерьез, многие так и поступают: просто прогулка, охота, работа в конце концов. Такое иногда здесь увидишь, что если начнешь копаться в сути всей этой ерунды - загнешься... или голову сломаешь. Жизнь вообще смешная штука, а жизнь в Зоне - штука раза в два смешнее и веселее обычной. Ну ладно, задержал я тебя, сталкер, иди своей дорогой. Прощай.

Профиль
Понедельник 20.11.2017

Меню сайта

Категории раздела
Статьи [30]

Поиск

Календарь
Новые обои и картинки на рабочий стол бесплатно для windows 7. скрипты юкоз на сайт

Наш опрос
Вы ждёте Сталкер 2?

Всего ответов: 6

Мини-чат

Вряме зоны
Новые картинки и обои для рабочего стола бесплатно для windows 7. ucoz скрипты часы для сайта

...
AP production - видео обзоры модов для игры S.T.A.L.K.E.R.

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

Статьи
Главная » Статьи » Статьи

Кодовый тайник.
Как многим известно в ТЧ есть возможность открывать двери при помощи нужного кода, вводя его на клавиатурной панели. Собственно эта самая панель и является ключевым элементом, самый интересный из которых набор кода.
Отвечает за это действо схема ph_code (ph_code.script). При вводе пароля выдаётся инфопоршень, а в логике двери есть условие на наличие данного инфопоршня, при котором дверь откроется.
Для тайников используется схема ph_idle, а для схемы ph_code как такового, перехода на другую схему нет.
Т.е. вся загвоздка состоит в возможности перехода со схемы ph_code на другую.
Ну что же давайте добавим эту возможность...
Переход будем осуществлять непосредственно в параметре on_code, т.е. при вводе правильного пароля будет происходить переход на другую схему, при которой появится возможность использовать тайник по назначению.

За работу параметра on_code отвечает метод OnNumberReceive, а именно вот эта проверка:

                                                           Original

if self.st.on_code then
printf("ph_code <OnNumberReceive>: on_code [%s]", text)
xr_logic.pick_section_from_condlist(db.actor, self.object, self.st.on_code.condlist)
end

Чтобы для данного параметра была возможность перехода на другую схему, эту проверку нужно заменить вот этой:

                                                              Modified

if self.st.on_code ~= nil then
printf("ph_code <OnNumberReceive>: on_code [%s]", text)
--<# Возможность перехода на другую схему при правильном вводе пароля (on_code).
local section = xr_logic.pick_section_from_condlist(db.actor, self.object, self.st.on_code.condlist)
xr_logic.switch_to_section(self.object, self.st,section)
return true
--#>
end

Вот таким не хитрым способом добавляется возможность использовать схему ph_code для более широкого спектра действий.

Теперь приступим непосредственно к тайнику. Для примера я взял синий ящик, который стоит у забора в Деревне новичков.
Слегка изменил его секцию спавна:

                                                   Spawn section

[2297]
; cse_abstract properties
section_name = inventory_box
name = level_prefix_inventory_box
position = -212.106658935547,-20.0091133117676,-141.916839599609
direction = -0.0120084341615438,1.90779304504395,-0.0344137884676456

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 594270
object_flags = 0xffffff3b
custom_data = <<END
[spawn]
wpn_pm
ammo_9x18_fmj
[logic]
cfg = scripts\coded_treasure.ltx
END
story_id = 2000

; cse_visual properties
visual_name = physics\equipment_cache\equipment_box_01_case

Изменения коснулись лишь добавлением для него custom_data. (Секция spawn была добавлена для демонстрации).
Логика выглядит следующим образом:

                                            Coded_treasure.ltx

[logic]
active = ph_code@close

[ph_code@close]
code = 123
on_code = ph_idle@enable

[ph_idle@enable]
nonscript_usable = true
tips = st_search_treasure

Собственно всё. При вводе пароля "123" мы получим открытый тайник.
Вот небольшое видео для демонстрации:

                                                       Видео димонстрация

                                       [video] http://youtube.com/watch?v=DbzFNj8HVmc [/video]



Источник: http://www.amk-team.ru/forum/index.php?showtopic=6458&st=40
Категория: Статьи | Добавил: babak (24.10.2012)
Просмотров: 236 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Вверх
Сделать бесплатный сайт с uCoz
Дизайн от SS-Studio.ru