Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

@Dennis_Chikin, в процессе отладки у меня сложилось стойкое впечатление, что это движок его туда-сюда пинал, почему-то. Вот нутром чую, никто его скриптово не отвлекал. И даже если бы кто-то и мешал и отвлекал, почему две добавленных строчки его тут же в чувство привели? Ответа я наверное не найду.
  • Полезно 1
Ссылка на комментарий

Не так давно я писал про странный вылет, причем только при переходах с одной-единственной локации:

 

0023:7699C54F KERNELBASE.dll
0023:73EC8E89 MSVCR80.dll, EH_prolog()
0023:03B76DA8 xrGame.dll
0023:03D979DD xrGame.dll

[error][     183]    : Невозможно создать файл, так как он уже существует.

 

Так вот, дело было в дубликатах строчки name = бла-бла-бла в файле alife_имя_локации.ltx  в спавне. Как только дубли убрал - вылет пропал. Может, пригодится кому...

  • Полезно 2

Сталкер - наше всё!

Ссылка на комментарий
как минимум пробовать:

Вот что я делал

При входе в этот рестрик, должна сработать функция(xr_effects.hana_ano)

 

[251]

 

; cse_abstract properties

section_name = space_restrictor

name = anomaliii

s_rp = 0

position = 22.482372283936,-2.4042422771453,70.77449798584

direction = 0, 0, 0

version = 118

script_version = 6

 

; cse_alife_object properties

game_vertex_id = 598

level_vertex_id = 129370

object_flags = 0xffffff3e

custom_data = <[logic]

active = sr_idle

 

[sr_idle]

on_actor_inside = {+top_bor} nil %=xr_effects.hana_ano%

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 2

 

; cse_alife_space_restrictor properties

restrictor_type = 0

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Срабатывает, только один раз(выдает инф.поршен)!  Т.е после загрузки сохранения(для проверки работа-способности), уже больше не работает!

 

function hana_ano()

if db.actor:object("tv_1") and db.actor:object("tv_2") and db.actor:object("tv_3") then

db.actor:give_info_portion("anom_tyty")

end

end

 

Может здесь чего-то не хватает?

 

 

 

 

Изменено пользователем Х_и_м_и_к
Ссылка на комментарий

@Х_и_м_и_к,

active = sr_idle

[sr_idle]
on_actor_inside = {+top_bor} nil %=xr_effects.hana_ano%
вот этот вот "nil" завершает работу данной логики. Окончательно и бесповоротно.

Соответственно, раз зайдя в рестриктор, ты сам же запрещаешь повторное его срабатывание.

Изменено пользователем Kirgudu
  • Спасибо 1
Ссылка на комментарий
ты сам же запрещаешь повторное его срабатывание.

Да нет же, я имел в виду что если сделать сохранку до входа в рестрик, и потом повторно(после загрузки сохранения проверить) то больше не срабатывает! хотя должно... Суть проблемы, нужен  инф.поршен, который выдается после появления в рюкзаке 3 предметов.

Изменено пользователем Х_и_м_и_к
Ссылка на комментарий

Привет! Можно  небольшой вопросик по  NLS 7: как сделать так, чтобы все неписи покупали у меня стволы? Пробовал ковырять (в гугле нашел) папку миск далее файл трейд дженерик, нефига не выходит. Утомился подкидывать к ногам стволы и ждать подберут или нет. Вот долг на свалке, около блокпоста берет с удовольствием дрободаны, а те же сталкеры НЕТ. Где настройки на эту правку?

 

Прошу помощи плиз!

Изменено пользователем oleg-ba
  • Не нравится 1
Ссылка на комментарий

Ребята, может мне кто нибудь доходчиво объяснить,. как выдать поршен при наличии у гг нескольких  предметов. Дело в том что проверочные функции, в основном как я понял работают с <precondition> в диалогах! А мне нужна выдача поршня, из тела функции проверки  предметов в рюкзаке. Такое вообще возможно?!

 

 

с function hana_ano()
if db.actor:object("tv_1") and db.actor:object("tv_2") and db.actor:object("tv_3") then
db.actor:give_info_portion("anom_tyty")
end
end

 

Изменено пользователем Х_и_м_и_к
Ссылка на комментарий

@Х_и_м_и_к,

 

local t_wpn = {"ПРЕДМЕТ1", "ПРЕДМЕТ1", "ПРЕДМЕТ1"}
function search_ALL_weapons_complete()
local gg = db.actor
      if gg then
         for i=1,#t_wpn do
            if not gg:object(t_wpn[i]) then
               return false
            end
         end
         gg:give_info_portion("ПОРШЕНЬ")
         return true
      end
return false
end

 

 

Изменено пользователем Marafon6540
  • Спасибо 1
Ссылка на комментарий

Marafon6540, пока ответ писал, ты уже ответил.

Полностью согласен, функция 100% рабочая, сам пользовал.

 

Вот моя (то же самое, в моде УЗИ отлично работает)

local azot_parts = {"box_condensers", "materials_textolite", "materials_wire", "box_transistors", "kanifol"}


function radioparts_have(task, objective)
local gg = db.actor
if gg then
for i=1,#azot_parts do
if not gg:object(azot_parts) then
return false
end
end
return true
end
return false
end

 

Изменено пользователем AndrewMor
  • Спасибо 1

Сталкер - наше всё!

Ссылка на комментарий

 

 

Только вы бы тег кода использовали, оно чутка нагляднее:

local azot_parts = {"box_condensers", "materials_textolite", "materials_wire", "box_transistors", "kanifol"}
function radioparts_have(task, objective)
 local gg = db.actor
 if gg then
  for i=1,#azot_parts do
   if not gg:object(azot_parts[i]) then
    return false
   end
  end
 return true
 end
 return false
end 

 

 

  • Спасибо 1
Ссылка на комментарий

Kondr48 объяснить что нужно и для чего.  Допустим гг собирает тяжелый хлам в виде каких то предметов, когда он соберет нужные, то сработает рестрик1  для включения следующей функции. Чтобы рестрик1 сработал нужно выдать нужный ему поршен. Нужна рабочая функция для тч.

 

 

local azot_parts = {"box_condensers", "materials_textolite", "materials_wire", "box_transistors", "kanifol"}

 

local t_wpn = {"ПРЕДМЕТ1", "ПРЕДМЕТ1", "ПРЕДМЕТ1"}
Спасибо что откликнулись! Сейчас буду пробовать  :)
Ссылка на комментарий

А рестриктор в этой схеме он зачем? Это в определенной зоне прям нужно делать? Просто можно всё то же самое, по-моему было бы дергать из колбека на взятие предмета, как только ГГ получает предмет, скрипт проверяет, есть ли в инвентаре все, что надо. А в рестрикторе, я полагаю, это висит на апдейте?

Изменено пользователем Kondr48
  • Спасибо 1
  • Согласен 1
Ссылка на комментарий

Kondr48, согласен, так нагляднее. Забыл про этот тег.

 

Х_и_м_и_к, если в опр. зоне - то да. Прописывай функцию в xr_effects и вызывай ее из рестра. Я свою функцию вызывал из таска, но это ж не принципиально.

Изменено пользователем AndrewMor

Сталкер - наше всё!

Ссылка на комментарий
Прописывай функцию в xr_effects и вызывай ее из рестра.

Я так и сделал.

 Kirgudu - Да вы правы, пришлось убрать этот самый "nil" , но заработала правильно только с этой функцией. Остался последний вопрос, не повлияет ли на фпс логика рестрика без "nil" ? 

 А вот собственно то что получилось: -

 

рестрик

[logic]

active = sr_idle

 

[sr_idle]

 

on_actor_inside = {+top_vov} %=xr_effects.hana_ano%

функция (немного изменил)

 

local obj = {"seif", "tv_1", "tv_2"}

function hana_ano()

local gg = db.actor

if gg then

for i=1,#obj do

if not gg:object(obj) then

return false

end

end

gg:give_info_portion("anom_tyty")

return true

end

return false

end

 

 

 Спасибо всем кто помогал!

Изменено пользователем Х_и_м_и_к
Ссылка на комментарий

 

 

Остался последний вопрос, не повлияет ли на фпс логика рестрика без "nil" ? 

Не повлияет.

Что мешает отправить рестр в nil, по полученному поршню anom_tyty ?

 

Например через 

....
on_actor_outside = {+anom_tyty} nil

Нашёл предметы ===> получил поршень ====> вышел из рестра, и по полученному поршню рестр ушёл в nil. А если рестр не нужен, то удали ты его по имени или по назначенному СИДу, после.

  • Спасибо 1

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

NPC покупают оружие:
Чтобы обычные сталкеры и др. npc могли покупать у ГГ оружие, нужно править файл gamedata\config\misc\trade_generic.ltx.
 
Господа, почему если сделать как написано, то совсем не работает?

Изменено пользователем Kirgudu
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...