|
Авторазбор
Авторазбор
Всем привет.
Задался я как-то целью сделать в "СТАЛКЕРЕ"(версия 1.004) машины, юзабельность которых зависит от наличия в инвентаре ГГ конкретного предмета, а именно: ключей от данного транспорта. Спавн автотехники - пройденный этап,не буду заострять внимание,скажу лишь,что здесь привязал спавн машины к диалогу с коррумпированным майором на Кордоне.Файл dialogs_escape.xml,строки: <phrase id="11"> esc_bridge_soldiers_start_11 <action>esc_modify.spawn_niva</action> - моя добавка <next>12</next> </phrase>
Прописал Ниву, прописал в файлик config\misc\item.ltx ключи от неё таким образом: ;;;;;;;;;;;;--ключи от нивы--;;;;;;;;;;;; [niva_keys]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "devices\quest_items\niva_keys" class = II_ATTCH cform = skeleton visual = equipments\item_minipda.ogf radius = 1 description = item_niva_key inv_name = item_car_key inv_name_short = item_car_key_s inv_weight = 0 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 11 inv_grid_y = 23 cost = 0
Прописал в файл config\creatures\vehicles.ltx ,в блоке"Нивы" строчку вида : custom_data = scripts\niva_data.ltx.
Ясно, после этого - создал сам файл config\scripts\niva_data.ltx, с содержимым : [logic] active = ph_car [ph_car] usable = {+actor_has_niva_key}
Добавил в info_l01escape.xml требующуюся инфопорцию:
<info_portion id="actor_has_niva_key"></info_portion>
А дальше интересно: активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт escape_tasks.script с опросом инфопорций свои строки: function proceed() local actor = db.actor if not has_alife_info("tutorial_artefact_start") and not has_alife_info("tutorial_artefact_gain") and actor:object("af_blood_tutorial") ~= nil then actor:give_info_portion("tutorial_artefact_gain") end -----------------------moi_mod-------------------- if not has_alife_info("actor_has_niva_key") and actor:object("niva_keys") ~= nil then actor:give_info_portion("actor_has_niva_key") --news_manager.send_tip(db.actor, "find_keys_info") end if actor:object("niva_keys")== nil then actor:disable_info_portion("actor_has_niva_key") end ---------------------------------------------------- .......и далее по оригиналу.
(закомментил сообщение о находке ключей ,так как оно является нам каждый раз после любой ближайшей загрузки уровня - не доработал:)
Получилось в итоге вот что: актёр нашёл(купил) ключи ,сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) - внутрь не попасть, как ни пытайся.
В моём моде: На Кордоне у майора Кузнецова(под мостом) спавнится "Нива" и забытые на ящике с выпивкой - ключи от неё. ГГ платит подвыпившим военным за проход ,и тут же ,подобрав ключи, садится в машину и исчезает,оставив майора со товарищи в большом(сравнительно) убытке.
Второй вариант: Всё то же самое, только военные соображают быстро и открывают огонь на поражение,лишь только актёр садится в "Ниву".Хотя - если не тормозить - и тут успеваешь свинтить.
Сие реализовано так:
сама Нива спавнится мной прямо за мостом: function spawn_niva() alife():create("vehicle_niva", vector():set(58.205856,-2.393073,189.756988),345171,98) -- ключи среди водки и закуски: alife():create("niva_keys", vector():set(61.393852,-0.143696695,154.954849),349686,97) end
в файле info_l01escape.xml акция "открыть огонь" привязана к сообщению Торговца об удачном пересечении ж\д насыпи(при условии, естественно, что герой взял чужие ключи): <info_portion id="esc_find_railroad_passage_done"> - родная часть <action>esc_modify.kill_thief</action> - добавлено </info_portion> - родная часть
, т. е. добавлена ссылка на несуществующий пока скрипт esc_modify и функцию в нём kill_thief.
скриптовая часть(scripts\esc_modify.script): function kill_thief() if has_alife_info("actor_has_niva_key") then db.actor:give_info_portion("esc_bridge_pass_fire") end end
Логично вот что: если ГГ не взял ключи(или взял, но спохватился и выбросил), то в спину ему никто не стрельнет, однако и машину уже не угнать.
Времени тестировать особо нет.Прошу прощения за сырость исполнения, учитывая практически отсутствующие навыки программинга. Всё - благодаря статьям именитых моддеров на Stalker inside Wiki. Всем respect,ваш J.DLRN( e.delorean@land.ru)
|
Категория: Моддинг | Добавил: _Admin_ (31.10.2011)
|
Просмотров: 2023
| Рейтинг: 5.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
|
Меню сайта |
|
|
Свежие прохождения |
Просмотров: 417 Комментариев: 0 Добавил: Hardtmuth
Просмотров: 478 Комментариев: 0 Добавил: Hardtmuth
Просмотров: 577 Комментариев: 0 Добавил: Hardtmuth
Просмотров: 634 Комментариев: 0 Добавил: Hardtmuth
Просмотров: 600 Комментариев: 0 Добавил: Hardtmuth
|
|
Категории раздела |
|
|
Мини-чат |
|
|
Поиск |
|
|
Статистика |
Онлайн всего: 91 Гостей: 91 Пользователей: 0
|
|
Форма входа |
|
|
|