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

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


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

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

 

я то вообще дуб дубом. мне бы кто то пожевал бы .

 

вроде в каком то файле нужно где то строчку изменить или прописать.

 

видимо не судьба ((.

 

 

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

А можно ли в ЗП сделать так: после выполнения опр логики, сталкер получал новую логику? Тоесть например сталкер ваня сделал полностью logic@bla-bla-bla и после этого получил логику logic@v_dva_raza_bolshe_bla

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

_Призрак_,

А можно ли в ЗП сделать так: после выполнения опр логики, сталкер получал новую логику? Тоесть например сталкер ваня сделал полностью logic@bla-bla-bla и после этого получил логику logic@v_dva_raza_bolshe_bla

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

 

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

Здраствуйте. Я пытался вытянуть из Сигероус мода схему поведения "телохранители" для чистой игры. Зарегестрировал модель поведения в modules.script, закинул скрипт самой модели поведения с примыкающими к ней файлами, также записал в _g.script, написал логику для НПСа. Где я ошибся? Какие файлы нужны для полной работы новой модели поведения?

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:512: attempt to index field 'alife_task' (a nil value)

 

 

stack trace:

 

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

Помогите! В ЗП не работает sr_sound в space_restrictor-ах Чем заменить или как восстановить эту функцию?

Хочу сделать так:

active = sr_sound

[sr_sound]
snd = characters_voice\human_02\stalker\alife\defence\request_help_vs_mutant_1_pda

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

Phantom1305, нет не забыл, я просто показал саму логику. Правда писал в алл.спавн, хотя собака зарыта в отсутствии sr_sound.script

 

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

Ладно, проблему почти решил - прописал sr_sound.script в modules.script, как это сделал PavelSnork, и получил тоже вылет как и он:

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\sr_sound.script:201: attempt to call field 'get_safe_sound_object' (a nil value)

 

И у меня почти такие же требования и вопросы как и у него.

 

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

В завершение. Добавил следующий код в конец файла 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

 

 

Добавлено:

И всё заработало!!!

 

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

PavelSnork, я посмотрел файл, на который ссылается икс-рей. Получил следующее:

        v.game_vertex_id = v.alife_task:game_vertex_id()
        v.level_id         = game_graph():vertex(v.game_vertex_id):level_id()
        v.position       = v.alife_task:position()

Суди сам, что ты намудрил, но, как видишь, это кусочек функции позиции: гаме вертекс, левел вертекс и позитион.

Изменено пользователем Greh921
Ссылка на комментарий
Greh921, я уже решил ету проблему. Убрал строку № 512 и 514. Пока все работает. Хотя кто знает какие после етого проблемы в игре будут... Изменено пользователем PavelSnork
Ссылка на комментарий

TREWKO,

этот параметр работает только для Грави. И если не ошибаюсь, то это задаёт подпрыгивание самого артефакта, а, как мне показалось, TimeShift хотел для ГГ.

Изменить динамически высоту прыгания ГГ вроде как нельзя.

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

Срочно! Не могу получить инфопоршень с спейс_регитр-а на новой локации для старта квеста

[logic]

active = sr_idle

 

[sr_idle]

on_actor_inside = nil %=give_task(+escape_stalker_help)%

 

 

[escape_stalker_help]

icon = ui_inGame2_V_poiskah_Soroki

prior = 112

storyline = true

title = {-escape_stalker_help} escape_stalker_help

descr = {-escape_stalker_help} escape_stalker_help_text

target = {+escape_stalker_help} esc_kwest

;reward_money = 3000

condlist_0 = {+escape_stalker_help_done} complete

;condlist_1 = {+jup_b220_trapper_zaton_chimera_hunted_told} complete

 

 

[20506]

; cse_abstract properties

section_name = space_restrictor

name = esc_tips_fox

position = 287.200012207031,16.6319103240967,275.321502685547

direction = -0.104504659771919,0.517827808856964,-0.0501847825944424

 

; cse_alife_object properties

game_vertex_id = 934

distance = 0

level_vertex_id = 594270

object_flags = 0xffffff3e

custom_data = <<END

cfg = scripts\esc_tips_fox.ltx

END

 

; cse_shape properties

shapes = shape0,shape1,shape2,shape3,shape4,shape5

shape0:type = box

shape0:axis_x = 71.6746063232422,0,0

shape0:axis_y = 0,18.0631980895996,0

shape0:axis_z = 0,0,7.15800046920776

shape0:offset = 0,0,0

shape1:type = box

shape1:axis_x = 71.6746063232422,2.67008715582051e-007,-2.13606972465641e-006

shape1:axis_y = 0,18.063196182251,1.34581313204762e-007

shape1:axis_z = 0,2.66656297043255e-008,7.15800046920776

shape1:offset = -70.810791015625,3.28049087524414,0.246719360351563

shape2:type = box

shape2:axis_x = 70.5857162475586,-5.34017431164102e-007,-12.4460964202881

shape2:axis_y = 6.72906566023812e-008,18.063196182251,-6.72906566023812e-008

shape2:axis_z = 1.24296712875366,1.06662518817302e-007,7.04925537109375

shape2:offset = -139.549942016602,6.66907978057861,6.34806823730469

shape3:type = box

shape3:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148

shape3:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007

shape3:axis_z = 3.0250871181488,0,6.48735809326172

shape3:offset = -203.898208618164,6.86461544036865,27.2836456298828

shape4:type = box

shape4:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148

shape4:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007

shape4:axis_z = 3.0250871181488,0,6.48735809326172

shape4:offset = -260.097442626953,7.74838256835938,53.8768310546875

shape5:type = box

shape5:axis_x = 65.4553070068359,4.65114135295153e-006,-45.8319931030273

shape5:axis_y = -1.67716643773019e-006,26.4829940795898,9.86568466032622e-007

shape5:axis_z = 6.40486860275269,3.32790563106755e-007,9.14716148376465

shape5:offset = -318.800598144531,12.4033985137939,88.3407592773438

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

Помогите! Плиз!

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

Подскажите почему у меня не бежит непись?

[zaton_lox_trup_walk1]

points = p0

p0:name = wp00|a=run|sig=path_end

p0:flags = 0x1

p0:position = -53.8860282897949,-2.06345987319946,-206.42658996582

p0:game_vertex_id = 1186

p0:level_vertex_id = 139608

 

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

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

Greh921, give_task(...) - это выдача задания, а не инфы, попробуй так

[logic]

active = sr_idle@help

 

[sr_idle@help]

on_actor_inside = sr_idle@test %=give_task(escape_stalker_help) +escape_stalker_help%

 

[sr_idle@test]

on_info = {+escape_stalker_help} sr_idle@nil %=run_cam_effector_global(scenario_cam\zaton\zat_b14_robbery)%

 

[sr_idle@nil]

 

 

Вторая секция логики - проверка на месте выдачи инфо, потом переключишь у себя на [sr_idle@nil] .

 

_Призрак_, так выдь точка пути одинарная - он и не побежит, делай двойной путь с первой точкой

на месте спавна (или там откуда он должен бежать), а вторую уже в конце пути, где у тебя по замыслу он помрет.

А что-бы быстрей бежал a=sprint .

[zaton_lox_trup_walk1]

points = p0,p1

p0:name = wp00|a=run|sig=path_end

p0:flags = 0x1

p0:position = откуда должен бежать

p0:game_vertex_id = откуда должен бежать

p0:level_vertex_id = откуда должен бежать

p0:links = p1(1)

 

p1:name = wp01

p1:flags = 0x1

p1:position = -53.8860282897949,-2.06345987319946,-206.42658996582

p1:game_vertex_id = 1186

p1:level_vertex_id = 139608

 

 

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

Прошу прощения если вопрос уже задавали, но я не нашел на него ответа: можно ли сделать так, чтобы обрез и детектор можно было взять в руки одновременно?

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

Неработает - достает с детектором нож. Может быть "animation_slot = 3" поменять?

 

За что отвечает "hand_dependence = 1"?

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

В файле character_desc_general в самом начале есть строки:

<name>st_actor_name</name>

<icon>ui_inGame2_Hero</icon>

насколько я понял, 1 - имя, 2 - фото. Но вот его-то я и не могу нигде найти. Может я ошибаюсь?

Подскажите, где найти файл с иконками персонажей которые в главном меню отображаются. Всю папку перебрал - не нашел.

 

Ковыряю: SGM 1.6 + апдейт

 

ЗЫ: Если кто может, но хочет прилюдно обсуждать - подскажите в личку. Я волшебное слово знаю - "Пожалуйста".

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

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

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

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

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

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

Войти

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

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

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