Сталкер как удалить предмет из инвентаря
object 'ххххххх_restrictor': section 'sr_idle': field 'on_npc_in_zone': there is no object with story_id 'ххххх'
Важно! Делайте копии оригинальных файлов.. Удаляйте объекты, будучи в полной уверенности, что они больше не нужны!
Для удаления объектов из игры используйте уже имеющийся (закомментированный) блок кода в скрипте bind_stalker.script
[center]Как все это правильно сделать - читаем ниже, под спойлером:
Порядок действий и примеры удаления!
--[[local bad_object_names = --"wpn_lr30025601", "wpn_lr30028817","wpn_lr30033589"
local i, se_name, se_obj
for i, se_name in ipairs(bad_object_names) do
se_obj = alife():object(se_name)
if se_obj then
news_manager.send_tip(db.actor,"Удалили глючный ствол:"..se_name,nil,nil,1000)
alife():release(se_obj, true)
end
end]]
2 . Убрать комментарии --[[ в начале перед local и ]] в конце после end -- не забываем удалить и двойное тире перед первой строкой, не только скобки!
Пример 1. Удаление глючного ствола
[error]Description : Invalid vertex for object
[error]Arguments : wpn_ ххххххххх
-- Где вместо "wpn_хххххххх" - будет название вашего "глючного" ствола (либо любого другого предмета/объекта), который и нужно удалить из игры, вставив его в код для удаления.
Правильный код должен выглядеть так:
local bad_object_names =
local i, se_name, se_obj
for i, se_name in ipairs(bad_object_names) do
se_obj = alife():object(se_name)
if se_obj then
news_manager.send_tip(db.actor,"Удалили глючный ствол:"..se_name,nil,nil,1000)
alife():release(se_obj, true)
end
end
Пример 2. Удаляем глючного наемника на "Дикой территории"
Description : any vertex in patrol path [ ros_sniper2_walk ] in inaccessible for object [ ros_sniper2 ]
-- Где вместо "ros_sniper2" , в случае подобного вылета, может быть другое название НПС, смотрим у себя в логе.
Вставлять для удаления то, что идет вслед за inaccessible for object , в конце строки.
Правильный код:
local bad_object_names = ros_sniper2 " >
local i, se_name, se_obj
for i, se_name in ipairs(bad_object_names) do
se_obj = alife():object(se_name)
if se_obj then
news_manager.send_tip(db.actor,"Удалили глючный ствол:"..se_name,nil,nil,1000)
alife():release(se_obj, true)
end
end
При удалении объекта, на который идет ругань в "консоли", типа: ! Cannot find saved game
object 'ххххххх_restrictor': section 'sr_idle': field 'on_npc_in_zone': there is no object with story_id 'ххххх'
вставляем для удаления это: ххххххх_restrictor , или то, что идет вслед за
-- где вместо: ххххххх -- будет название вашего заглючившего рестриктора/ объекта.
После успешного удаления лучше (не критично) восстановить комментарии в коде --[[ в начале перед local и ]] в конце после end , по необходимости по ходу игры повторить операции с п.1 для другого объекта (объектов).
Правильный порядок дейтвий при удалении от камрада MAV
Проверка предмета у ГГ
описание. если есть хотя бы одна вещь, то мы получим фразу, если нет всех нет разговора
Проверка кол-ва предметов у ГГ
Отбираем предмет у ГГ
размещается в файлах скрипт
выдача поршня вставляется под строку действия:
Примечание, что бы отобрать два одинаковых предмета пишем
Если надо больше меняем цифру 2 на нужную нам.
Как в игре S.T.A.L.K.E.R. - ЗП выбросить из рюкзака невыбрасываемые предметы
[jup_b32_scanner_device]:device_pda
$spawn = "quest_items\jup_b32_scanner_device"
visual= dynamics\equipments\quest\scanner_artefact.ogf
inv_weight= 2
inv_name= st_jup_b32_scanner_device_name
inv_name_short= st_jup_b32_scanner_device_name
description= st_jup_b32_scanner_device_desc
inv_grid_width= 1
inv_grid_height= 2
inv_grid_x= 9
inv_grid_y= 23
cost= 0
can_trade= false
quest_item = true
custom_data = models\objects\ignore_static.ltx
И там где написано quest_item прописываем вместо true false
Если захочешь продать то ищем can_trade и вместо false ставим true там где cost ставим цену (предмет можно будет выкинуть только если он будет убран из квестовых)
Удаление предмета с заданным именем из игры
ПРИМЕР --' убираем финального Клыка
Я добавлю может кому и пригодится.Болотный Доктор
S.T.A.L.K.E.R.: Shadow of Chernobyl: FAQ (Создание нового предмета)
идём в gamedata\config\misc и создаём новый файл с расширением *.ltx например: dom.ltx
пишем в dom.ltx это:
;------------это наш дом--------------------;
[dom]:ammo_base
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "devices\quest_items\yan_x16_documents" ; option for Level Editor
> cform = skeleton
visual = house\fahaz2.ogf
description = dom
$prefetch = 64
radius=1
cost = 0
inv_name = название предмета
inv_name_short = название предмета
inv_weight = 1
inv_grid_width = 2
inv_grid_height = 1
inv_grid_x = 6
inv_grid_y = 19
k_dist = 1
k_disp = 3
k_hit = 1.4
k_impulse = 1.2
k_pierce = 1.35
impair = 1.15
buck_shot = 1
tracer = off
wm_size = 0.05
сохраняем,закрываем.
далее модельку(я выбрал эту fahaz2.ogf ) кидаем в gamedata\meshes\house\fahaz2.ogf (если нет такой папки создаём её!).
даеле идём в gamedata\config\misc открываем items.ltx и в самом конце файла вписуем :
и последнее: запускаем xrSpawner_v0.13.1Betaи находим в списке actor.
пишем туда так:
[spawn]
wpn_binoc
detector_simple
novice_outfit
device_torch
dom
Спавним вещь в инвентарь ГГ
Полезные методы и функции
Далее идем по пути gamedata/script/bind_stalker.script Функция:
Проверка денег у ГГ
Вариант первый(используют ПЫС)
<precondition>имя скрипта.название функции</precondition>
<-----------Вариант два--------------> Использовал на ТЧ, но и в ЗП работает
Выдаём предмет ГГ
Размещается в файлах скрипт.
Выдача поршня вставляется под строку действия.
Примечание, что бы выдать два одинаковых предмета пишем
Если надо больше меняем цифру 2 на нужную нам.
Читайте также: