☣Связанные Зоной☣Форум
?
  
  • Страница 1 из 1
  • 1
Модератор форума: Кракен, [Дядька]_ЯR  
Форум » S.T.A.L.K.E.R. - Тени Чернобыля » Модостроение » Авторазбор
Авторазбор
Не в Зоне slavapro




Всем привет.

Задался я как-то целью сделать в "S.T.A.L.K.E.R." (версия 1.0004) машины, юзабельность которых зависит от наличия в инвентаре ГГ конкретного предмета, а именно ключей от данного транспорта. Спавн автотехники - пройденный этап,не буду заострять внимание,скажу лишь,что здесь привязал спавн машины к диалогу с коррумпированным майором на Кордоне. Файл dialogs_escape.xml, строки:
Code
<phrase id="11">  
   esc_bridge_soldiers_start_11  
   <action>esc_modify.spawn_niva</action> - моя добавка  
   <next>12</next>  
   </phrase>
Прописал Ниву, прописал в файлик config\misc\item.ltx ключи от неё таким образом:
Code
;;;;;;;;;;;;--ключи от нивы--;;;;;;;;;;;;  
  [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,в блоке"Нивы" строчку вида:
Code
custom_data = scripts\niva_data.ltx
Ясно, после этого - создал сам файл config\scripts\niva_data.ltx, с содержимым:
Code
[logic]  
  active = ph_car  
  [ph_car]  
  usable = {+actor_has_niva_key}
Добавил в info_l01escape.xml требующуюся инфопорцию:
Code

<info_portion id="actor_has_niva_key"></info_portion>
А дальше интересно - активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт escape_tasks.script с опросом инфопорций свои строки:
Code
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  
  ----------------------------------------------------  
  .......и далее по оригиналу.
(закомментил сообщение о находке ключей, так как оно является нам каждый раз после любой ближайшей загрузки уровня - не доработал:)
Получилось в итоге вот что: актёр нашёл (купил) ключи, сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) - внутрь не попасть, как ни пытайся.

В моём моде: На Кордоне у майора Кузнецова(под мостом) спавнится "Нива" и забытые на ящике с выпивкой - ключи от неё. ГГ платит подвыпившим военным за проход, и тут же, подобрав ключи, садится в машину и исчезает, оставив майора со товарищи в большом (сравнительно) убытке. Второй вариант: Всё то же самое, только военные соображают быстро и открывают огонь на поражение, лишь только актёр садится в "Ниву". Хотя - если не тормозить - и тут успеваешь свинтить.

Сие реализовано так - cама Нива спавнится мной прямо за мостом:
Code
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 акция "открыть огонь" привязана к сообщению Торговца об удачном пересечении ж\д насыпи (при условии, естественно, что герой взял чужие ключи):
Code
<info_portion id="esc_find_railroad_passage_done"> - родная часть  
  <action>esc_modify.kill_thief</action> - добавлено  
  </info_portion> - родная часть
т. е. добавлена ссылка на несуществующий пока скрипт esc_modify и функцию в нём kill_thief.

Скриптовая часть (scripts\esc_modify.script):
Code
function kill_thief()  
  if has_alife_info("actor_has_niva_key") then  
  db.actor:give_info_portion("esc_bridge_pass_fire")  
  end  
  end
Логично вот что: если ГГ не взял ключи (или взял, но спохватился и выбросил), то в спину ему никто не стрельнет, однако и машину уже не угнать.

Времени тестировать особо нет.Прошу прощения за сырость исполнения, учитывая практически отсутствующие навыки программинга.




Форум » S.T.A.L.K.E.R. - Тени Чернобыля » Модостроение » Авторазбор
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
Любое использование материалов сайта возможно только с разрешения Администрации.
Для просмотра сайта рекомендуем использовать Яндекс.Браузер
Copyright soc-team © 2014.

   Бесплатный анализ сайта
Общий канал
Общий канал
Сталкер, мы кого попало не пропускаем.
0
Группировки


Вступить

Обновления форума

Поиск по сайту

Лучшие сталкеры
slavapro
Постов: 544
Репутация: 11
Virus
Постов: 348
Репутация: 1
KiRiYaNoV
Постов: 319
Репутация: 1
p203w
Постов: 120
Репутация: 0
Кракен
Постов: 66
Репутация: 2

Кто нас сегодня посетил


Братья по оружию
 
Новости, общение и многое другое,<br> у нас на survarium-delta.ucoz.ru  Top Life-Stalker.RU
 Сайт создан не для заработка, а для вас Заходите Сталкеры. Оцените наш проект)ждем вас на http://DOLG-vs-SVOBODE.3dn.ru
Новости общение и многое другое, у нас на exelent731.ucoz.ru