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

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


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

@nPOPOK, после компиляции нового уровня получается отдельный алспавн. Что бы интегрировать новую локу в общую массу, подшиваешь новый алспавн к старому (например) при помощи ggEditor, и прописываешь переход в алспавне при помощи (например) ACDC. Обратить внимание на то, что бы ГГ был один, а не  два.

andreyholkin.gif

rod_cccp.gif

 

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

При попытке заговорить с добавленным персонажем игра летит с логом

 

 

Expression    : no_assert
Function      : CXML_IdToIndex<class CPhraseDialog>::GetById
File          : D:\prog_repository\sources\trunk\xrServerEntities\xml_str_id_loader.h
Line          : 112
Description   : item not found, id
Arguments     : zat_b215_stalker_guide_start
 

 

 

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

Сегодня еще шумят наши леса, и смеются наши дети. Сегодня еще богаты наши недра и поют птицы. На наш век хватит, говорили мы. А вот не хватило!!!

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

[member=nPOPOK], в профиле характера этого нпс удали диалог проводников.

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

andreyholkin.gif

rod_cccp.gif

 

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

@Дизель, нет, совершенно другая история. В геймдате оказалось, что часть диалогов вырезана, пришлось копировать куски из оригинальной геймдаты и вставлять в новую. Только вместо части диалогов отображаются их... условные обозначения чтоли? К примеру, вместо "Ты можешь провести в Припять?", выдает что-то вроде "zat_b215_stalker_guide_to_pripyat_no_way".

Сегодня еще шумят наши леса, и смеются наши дети. Сегодня еще богаты наши недра и поют птицы. На наш век хватит, говорили мы. А вот не хватило!!!

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

Да, там оказалось, что не достает целый массив, и нужно копировать весь.

Сегодня еще шумят наши леса, и смеются наши дети. Сегодня еще богаты наши недра и поют птицы. На наш век хватит, говорили мы. А вот не хватило!!!

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

@MOnC9lTuHA

 

 

Как создается источник звука в определенной точке?

Можно через спейс рестриктор, например в ЧН включение и выключение звука трансформатора:

 

[logic]
active = sr_idle

[sr_idle]
on_info = sr_idle@2 %=play_sound_looped(lim_electro_fience_transformer)%

[sr_idle@2]
on_info = {+lim_electro_fence_off} nil %=stop_sound_looped(lim_electro_fience_transformer)%

 

 

Если при входе ГГ в рестриктор, то что-то такое:

 

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = sr_idle@line_2 %=play_sound_looped(steam) %

[sr_idle@line_2]
on_actor_outside = sr_idle %=stop_sound_looped(steam)%

 

 

Если в зависимости от неких инфопоршней, то что-то такое:

 

[logic]
active = sr_idle@sound

[sr_idle@sound]
on_info = {+agru_leader_dolg_task_complete} sr_idle@warning %=play_sound_looped(agru_waterfall)%

[sr_idle@warning]
on_info = {+agru_stop_siren} sr_idle@end %=stop_sound_looped()%

[sr_idle@end]

 

 

Сам звук нужно вписать в script_sound_локация.

Ссылка на комментарий
Можно через спейс рестриктор

Можно поподробнее про спейс рестриктор? 

 

 

play_sound_looped(steam)

Где именно начинается название звука?Там указывается файл или что-то другое?

Изменено пользователем MOnC9lTuHA
Ссылка на комментарий
Можно поподробнее про спейс рестриктор?

В секции спавна локации создаёшь рестриктор:

 

[8076]

; cse_abstract properties

section_name = space_restrictor

name = lim_electro_transformer_restr

position = 71.1540069580078,18.6341781616211,324.265960693359

direction = 0,-1.57079601287842,1.57079601287842

 

; cse_alife_object properties

game_vertex_id =  гейм вертекс локации

distance = 0

level_vertex_id = левел вертекс локации

object_flags = 0xffffff3e

custom_data = <<END

[logic]

cfg = scripts\limansk\lim_electro_transformer.ltx - логика рестриктора

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 1

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

 

Логику рестриктора можно вписать прямо в спавне, или вынести в отдельный файл (что удобней для последующего редактирования).

 

play_sound_looped(lim_electro_fience_transformer) - воспроизводимый звук указан в скобках (то есть - lim_electro_fience_transformer), looped - значит звук будет постоянно повторяться. (Название берётся из script_sound_локация.ltx) 

Сам звук регистрируется в script_sound_локация.ltx (например, script_sound_limansk) по пути configs\misc\ примерно так:

 

[list_lim]

lim_electro_fience_transformer

 

[lim_electro_fience_transformer]

type = looped - повторяющийся

path = ambient\special\lim_transformer - путь к самому звуку без расширения из папки sounds. (эти характеристики можно посмотреть в какой-нибудь статье по модингу.)

 

Если звук на новой (подключенной) локации, то сам script_sound_локация.ltx нужно внести в оригинальный script_sound.ltx по аналогии с остальными.

Конечно, это всё можно провернуть с помощью SDK, но я, например, SDK знаю плохо, поэтому всё делаю вручную.

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

Universal ACDC при любом изменении в alife_**** из папки all не хочет компилировать и ругается на ошибку 1919, а также:

 

 Function: stkutils::scan::get_class

Description: cannot find clsid for class level_changer

 

Что он там не находит, представить себе не могу, all.spawn из мода


 

 

Глючный переход между локациями.

То есть?

Изменено пользователем MOnC9lTuHA
Добавлено warwer,

Глючный переход между локациями.

Добавлено warwer,

Я не предсказатель. Откуда у меня подробности с чем ты экспериментируешь?

 

Описание: Не можете найти CLSID для класса level_changer - это переход.

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

Первый раз решил попробовать себя в ЗП. Времени много,  делать нечего. Заспавнить пытался новый сквад на новой локации. Естественно, получил вылет.

 

Expression : !m_error_code


Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...er call of pripyat\gamedata\scripts\sim_board.script:227: attempt to index local 'spawn_smart' (a nil value)

 

 

[start_position_l01_escape_old]
esc_blokpost_military_squad = esc_blokpost_military_smart

 

 

[esc_blokpost_military_smart]:default_base
territory = 1
sim_avail = true

 

 

[esc_blokpost_military_squad]:online_offline_group
faction = army
npc = sim_default_military_1, sim_default_military_0, sim_default_military_0
target_smart = esc_blokpost_military_smart

 

 

[smart_terrain]
squad_id = 1
max_population = 3
respawn_params = respawn@esc_blokpost_military_smart

[respawn@esc_blokpost_military_smart]
sim_military

[sim military]
spawn_squads = military_sim_squad_novice
spawn_num = 1

 

 

В sim_board.script и smart_terrain.script тоже локу прописал.

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

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

@Возрождённыйигра не может определить данную функцию (spawn_smart) в указанном файле. Причин на это три:

Её действительно нет.

Её имя написано с ошибкой. 

Либо (в некоторых случаях) функция находится ниже по коду от того места, где идёт её вызов.

З.Ы. Если же в ошибке указано имя файла, то либо файла не существует (возможно неправильное имя файла), либо в указанном файле синтаксическая ошибка.

 

 

 

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

Outfater, local всё-таки переводится как "локальная", а не "функция".

Возрождённый, игра не может найти указанную точку спавна - что-то с именем смарт-тирейна не так. Ещё раз сравни с именем в оллспавне.

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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

Имя одно и тоже везде. Все ведь прописано как надо, а не работает. Действительно...парадокс.

 

-----------------------------

 

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

Изменено пользователем Возрождённый

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

Ссылка на комментарий
Outfater, local всё-таки переводится как "локальная", а не "функция".

А я разве утверждал, что local переводится как функция? Если не знаешь, то в папке scripts находятся скриптовые ФУНКЦИИ, и как переводится "local" я в курсе.

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

 

 

 

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

Кто знает, как заставить НПС у костерка сидеть? Вроде все сделал...или еще что-то в конфиг смарта дополнительно прописывать надо (не судите строго, уроков по этому я не нашел, методом тыка делаю)?

 

 

 

[4005]

; cse_abstract properties
section_name = camp_zone
name = esc_blokpost_military_camp
position = -194.60179138184, -21.376089096069, -409.84411621094
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 191
distance = 0
level_vertex_id = 62506
object_flags = 0xffffff3e
custom_data = <[camp]
cfg = scripts\camp.ltx
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 5.84479999542236

; cse_alife_space_restrictor properties
restrictor_type = 3

[4006]

; cse_abstract properties
section_name = smart_cover
name = esc_blokpost_military_animpoint_1
position = -197.00978088379, -21.374753952026, -407.31958007813
direction = 0.201557993888855, -0.674389004707336, -0.315095007419586
id = 65535
version = 124
script_version = 8
spawn_id = 785

; cse_alife_object properties
game_vertex_id = 191
distance = 23.799999
level_vertex_id = 61111
object_flags = 0xffffffbf

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 1

; cse_smart_cover properties
description = animpoint_sit_low
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
loopholes =

[4007]

; cse_abstract properties
section_name = smart_cover
name = esc_blokpost_military_animpoint_2
position = -192.34197998047, -21.579877853394, -408.65908813477
direction = 0.201557993888855, -0.674389004707336, -0.315095007419586
id = 65535
version = 124
script_version = 8
spawn_id = 785

; cse_alife_object properties
game_vertex_id = 191
distance = 23.799999
level_vertex_id = 65244
object_flags = 0xffffffbf

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 1

; cse_smart_cover properties
description = animpoint_sit_ass
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
loopholes =



Разобрался. Действительно забыл в конфиг прописать логику. Но теперь вылет:

 

Expression : !m_error_code


Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...talker call of pripyat\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil)

 

 

[logic@esc_blokpost_military_animpoint_1]
suitable = {=npc_community(army)} true
prior = 100
active = animpoint@esc_blokpost_military_animpoint_1
can_select_weapon = true

[animpoint@esc_blokpost_military_animpoint_1]
cover_name = esc_blokpost_military_animpoint_1
use_camp = true
meet = meet
combat_ignore_cond = false
combat_ignore_keep_when_attacked = false
invulnerable = false
gather_items_enabled = true
help_wounded_enabled = rrue
corpse_detection_enabled = true

[meet]
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
close_snd_distance = 3
abuse = false
use = {=actor_enemy} true
allow_break = true
meet_on_talking = true

 

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

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

НПС у костерка

Думаю тебе стоит начать с этого: http://www.stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_4 начиная отсюда - Смарттерейны и гулаги.

Ты опять задаёшь неполный вопрос.

Новый у тебя смарт, уже есть в игре?...  Если уже готовый, то нпс, при определённом кол-ве штук, сами рассаживаются у костра. Короче, нюансов много. Почитай статьи по ссылке выше.

Изменено пользователем warwer
Ссылка на комментарий
Возрождённый, нужно делать так:

custom_data = <<END

[camp]
cfg = scripts\camp.ltx
END
 
Нужно внимательно проверять созданное (смотреть как сделано в оригинале), или часто будешь ловить вылеты.
Ссылка на комментарий

@h0N0r, Да у меня так, это спойлер выходит скривил почему-то. =\

 

 

 

Новый у тебя смарт, уже есть в игре?

 

Новый смарт, НПС в нем заспавнились. Теперь вот пытаюсь занятие им найти...кхм...создать. Только вот с логикой что-то не то, раз вылет, когда пытаешься её задействовать.

 

Я понял в чем ошибка. Исправил уже. Накосячил в самом смарте.

Изменено пользователем Возрождённый

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

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

Игра почему-то стала вылетать без лога, хотя ничего такого вообще не делал. Заглянул в файлик logs, нашел там это:

 

* phase time: 960 ms


* phase cmem: 365286 K
* phase time: 19 ms
* phase cmem: 365286 K
* [win32]: free[2847528 K], reserved[170752 K], committed[1175960 K]
* [ D3D ]: textures[321642 K]
* [x-ray]: crt heap[365286 K], process heap[31571 K], game lua[32411 K], render[198 K]
* [x-ray]: economy: strings[25108 K], smem[10192 K]
compiling shader model_def_lqs_0
compiling shader base_lplanes
compiling shader model_def_lplanes_0
compiling shader model_distort4glass_2
! Unknown command: dump_infos
stack trace:

0023:0833E8B3 xrGame.dll, CDialogHolder::CDialogHolder()
0023:0833FB45 xrGame.dll, CDialogHolder::CDialogHolder()
0023:05432EA3 lua.JIT.1.1.4.dll, luaopen_io()

 

 

Что-то про диалоги, неизвестную команду...что не так может быть?

Изменено пользователем Возрождённый

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

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

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

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

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

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

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

Войти

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

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

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