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

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


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

Решил добавть зону ранодомного звука.

1) Файл script_sound.ltx.

#include "script_sound_los.ltx"
[list]:list_script_sound_los

 

 

2) Файл script_sound_los.ltx

[list_script_sound_los]
ambient_podzemka

[ambient_podzemka]
type = 3d
path = ambient\ugrnd\
shuffle = rnd
idle = 3,5,100

 

 

3) Логика space_restrictor:

[logic]
active = sr_sound

[sr_sound]
snd = ambient_podzemka
rnd = 100
position = random
idle = 5
delay = 7

 

 

 

Вылет:

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:405: attempt to index field '?' (a nil value)

 

 

 

P.S.: Добавил это в конец файла xr_sound.script:

--' Таблица для хранения созданных саунд обжектов.
sound_object_by_theme = {}
--' type = [random|seq|looped]
function get_sound_object(theme, t_type)
if sound_theme.ph_snd_themes[theme] == nil then
abort("ph_snd_themes for theme %s", tostring(theme))
return
end

if sound_object_by_theme[theme] == nil then
sound_object_by_theme[theme] = {}
end

if t_type == nil then
t_type = "random"
end

--' Выбор следующего айдишника
local play_id = -1
local table_size = table.getn(sound_theme.ph_snd_themes[theme])
if sound_object_by_theme[theme].last_id == nil then
if t_type == "random" then
if table_size >= 2 then
play_id = math.random(1, table_size)
else
play_id = 1
end
else
play_id = 1
end
else
if t_type == "random" then
if table_size >= 2 then
play_id = math.random(1, table_size - 1)
if play_id >= sound_object_by_theme[theme].last_id then play_id = play_id + 1 end
else
play_id = 1
end
else
if sound_object_by_theme[theme].last_id < table_size then
play_id = sound_object_by_theme[theme].last_id + 1
else
if type == "looped" then
play_id = 1
end
end
end   
end

printf("SOUND_OBJECT: selected id [%s] for theme [%s], type [%s], size [%s]", tostring(play_id), tostring(theme), tostring(type), table_size)

if play_id == -1 then
return
end
--' Проверяем создан ли у нас соответствующий саунд обжект или его надо создать
if sound_object_by_theme[theme][play_id] == nil then
if type(sound_theme.ph_snd_themes[theme][play_id]) == "table" then
sound_object_by_theme[theme][play_id.."_r"] = get_safe_sound_object(sound_theme.ph_snd_themes[theme][play_id][1].."_r")
sound_object_by_theme[theme][play_id.."_l"] = get_safe_sound_object(sound_theme.ph_snd_themes[theme][play_id][1].."_l")
else
sound_object_by_theme[theme][play_id] = get_safe_sound_object(sound_theme.ph_snd_themes[theme][play_id])
end
end

sound_object_by_theme[theme].last_id = play_id

--' Возвращаем саунд обжект
if type(sound_theme.ph_snd_themes[theme][play_id]) == "table" then
return sound_object_by_theme[theme][play_id.."_r"], sound_object_by_theme[theme][play_id.."_l"]
else
return sound_object_by_theme[theme][play_id]
end
end

local sound_object_by_path = {}
--' Обертка вокруг функции, возвращающий звуковой объект.
function get_safe_sound_object(path)
if sound_object_by_path[path] == nil then
sound_object_by_path[path] = sound_object(path)
end
return sound_object_by_path[path]
end

function stop_all_sound_object()
for k,v in pairs(sound_object_by_path) do
if v:playing() then
v:stop()
end
end
end
function clear_all_sound_object()
sound_object_by_theme = {}
end

 

 

И sr_sound прописал в modules.script.

Тот же вылет.

Прошу помощи. Заранее, благодарю за разъяснение :)

 

Добавлено через 41 мин.:

CuJIbBEP, в папке configs есть папка environment.

В ней есть папка weather. В ней файл [default]. Это основной конфиг погоды для поверхностных локаций.

Для подземелий используется indoor. В файлах погоды идут ссылки на солнце(suns.ltx), грозовые эффекты(thunderbolts), звуковой амбиент(ambients.ltx, в котором содержаться секции цикла дня(день, ночь, вечер и т.д.), и sound_channels.ltx(сами ссылки и настройки на звуковые файлы)), ссылки на текстуры неба, облаков, эффекты живого мира(effects.ltx) и т.д.

Это в кратце. Надеюсь, я правильно тебя понял.

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

zoidberg123456789, а тебе нужно чтобы звук играл в голове актора или от источника? И условие какое, только когда актор в зоне спейс-рестриктора звук должен быть?

 

 

Добавлено через 24 мин.:

Товарищи скриптеры, прошу помочь разобраться с...выбросом.

Ситуация такая - есть наземная локация, есть подземная. На наземной работает выброс, подземную в surge_manager.script ка кобычно не регим, что логично. И если вход (левел_ченджер) в подземку находится в зоне рестриктора укрытия наземной, то вроде все нормально, но! - если во время старта выброса переходишь на подземный уровень, то пока выброс не пройдет, остается эмбиент (подсветка, звук, саунд с наземной локи) в подземелье, что не есть гуд и смотрится глупо.

Стал просматривать surge_manager.script и обнаружил занятный момент - в двух местах, в функциях CSurgeManager:update() и дальше в CSurgeManager:start(manual) стоит такой код-проверка:

 

if(level_name=="labx8" or level_name=="jupiter_underground") then

printf("Surge skipped because of level!")

self.skip_message = true

self:skip_surge()

return

end

 

Ну вот, это оно, подумал я - подземные уровни исключаются из выброса. Дописал по аналогии в этих местах свою подземку:

 

if(level_name=="labx8" or level_name=="jupiter_underground" or level_name=="warlab") then

 

Но теперь при переходе во время выброса в warlab актор тут-же гибнет. Так как моих скромных познаний нехватает, чтобы разобраться в скрипте, прошу тех кто решил эту проблему помочь.

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

Clayman, звук должен играть рандомно. Так ведь можно? По крайней мере в ТЧ можно было.

Т.е. мне надо зону, при входе в которую начинают воспроизводиться звуки(рандомно).

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

X-R@D, игра не может найти анимацию ak47_idle_bore. Попробуй изменить анимацию в конфиге на ak74_idle_bore.

 

А ребят, у меня у самого вопрос назрел : что с Сидоровичем?

thumb.png

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

AWRP : Re - Load 0.2 ©

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

Народ, как запустить диалог с удаленным NPC? (напримр как с наемником на цехах подстанции затона).

Заранее спасибо.

 

Рекомендую не обращаться к 'народу' ... Не каждый, кто мог бы и ответить, возмется отвечать за 'народ'. --/Artos

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

Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

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

zoidberg123456789, логику спейс-рестриктора можно такой сделать:

[logic]

active = sr_idle@wait

 

[sr_idle@wait]

on_actor_inside = sr_idle@sound

 

[sr_idle@sound]

on_info = %=play_sound(ambient_podzemka)% ; звук играется всегда, пока актор в зоне спейс-рестриктора

on_actor_outside = sr_idle@wait

 

Дело в том, что схема sr_sound в ЗП не работает без дополнительных манипуляций, но ее с успехом заменяет функция play_sound() из xr_effects и настройки звука в script_sound.

 

Akella-96 aka SvD, уже много раз обсуждали, Сидора нужно скриптами восстанавливать, его класс подрезали в ЗП.

Изменено пользователем Clayman
Ссылка на комментарий
Clayman, класс я восстановил. Хотя не уверен, что полностью. Может у кого есть готовый Сидор? Уж очень он мне нужен.

AWRP : Re - Load 0.2 ©

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

Пытался добавить в SZM 0.2 ствол М4А1 от Death,но словил такой вылет:

 

Expression : error handler is invoked!

Function : handler_base

File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp

Line : 764

Description : application is aborting

 

 

 

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

rusMAFIA, проблема с моделью. Либо игру заново начинать, либо ствол заменять.

Clayman, всё сделал. Запустилось. Но при входе в зону с рандомными звуками вылет такого типа:

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...r. - Зов Припяти\gamedata\scripts\sound_theme.script:672: bad argument #1 to 'select_next_sound' (interval is empty)

 

 

Звкивписать что-ли надо в sound_theme.script?

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

Clayman, и в чем же подрезали "класс Сидора"?

Не путай других. Класс cse_alife_trader (se_trader) как был, так и остался в ЗП. Иной вопрос, что поудаляли "ненужные" разрабам скрипты (из того же биндера монстров). Ничего не мешает и восстановить скрипты и даже сделать по нормальному, выделив торговцев в собственный биндер и т.п.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Artos, я ответил как ответил, поскольку других ответов вообще небыло.

А я сделал считай замечание, поправив твой некорректный ответ, дабы другие не транслировали далее это ошибочное утверждение и не путались сами.

Порой лучше помолчать, чем давать неверный/пустой "ответ" --/Artos

 

zoidberg123456789, проверяй настройки script_sound, делай по аналогии с ЗП-шными. У тебя там в path непонятно что, должен быть путь до звука. Звуки должны называться звук_1, звук_2 а в path прописываешь звук_ и тогда при параметре rnd будет случайно выбирать звук, на вики есть подробная статья про script_sound.

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

Clayman, просто я хотел сделать так, чтобы проигрывалась вся папка....

Ладно.

[x]

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

zoidberg123456789, так вся папка и будет проигрываться, просто назови одинаково под номерами файлы.

Akella-96 aka SvD, боюсь конечно отвечать некорректно..но рискну :) Короче, есть у меня папка со скриптами, по которой я восстановил Сидора, там и файлы с аллспана есть, если возмешься совмещать со своим модом, давай тебе скину куда-нить.

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

Всем доброго времени суток!

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

"трассер"

Вспышка

Ссылка на комментарий
Clayman, конечно, заливай. Буду благодарен. Изменено пользователем Akella-96 aka SvD

AWRP : Re - Load 0.2 ©

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

Народ, подскажите пожалуйста, какие есть возможности по редактированию ассортимента уников у Шустрого? Суть в том, что имеется несколько новых, очень годных стволов, добавлять в продажу обычным торгашам, пусть и на поздних этапах, желания нет, вот и назрел вопросец. Всё, что знаю на данный момент, это то, что в trade_generic.ltx, в секции уникальных предметов, они помечены приставкой _nimble, + конфигах каждого оружия есть секция для уника.

 

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

Подскажите пожалуйста.

Есть группировка. Можно ли как то поставить на всех членов этой групприровки метку?

Как поставить на одного непися-это понятно, а вот вопрос в массовых "выдачах". Как понял это всё же скрипт.

Если не знаете, может просто подскажите куда, в какой мануал обратиться для "подробного разбора", те что в шапке хорошие, но не то.

Спасибо заранее.

З.Ы. На ЗП.

 

Сообщение от модератора ColR_iT
А ещё в шапке написано какие вопросы следует задавать в этой теме, а какие нет.

Переместил.

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

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

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

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

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

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

Войти

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

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

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