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

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


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

Интересно, надо попробовать.

Сделал поиск по распакованному all.spawn'у #include  - 0 результатов. ПЫСы предусмотрели, но никогда не использовали ?

 

 

 

А зачем править?

Ага, понял - данные из кастом_даты, кроме видимо логики, считываются один раз, при создании объекта. И изменение подключенного через #include ltx-файла с последующим перезапуском игры ничего не даст ? Или даст ?

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

"по распакованному all.spawn'у #include"

 

Оно и не должно там быть. Это вообще то "вставить указанное при первой же попытке что-либо сделать с этим файлом". То есть, если оно запаковывается, то все уже вставлено, и ни каких #include нет и быть не может.

Так же, как с ltx и xml при запустившемся и добравшемся до стартового меню движке.

 

По поводу смартогулагов - есть вообще-то в известно-какой-теме отформаченные/переписанные/откомменченные. Не знаю, что там СЕЙЧАС в них может быть непонятно.

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

 

Так же, как с ltx и xml
Не все xml загружаются "раз и навсгда".
По крайней мере те, что относятся к UI, читаются каждый раз при обращении к ним.
Т.е. закрыл окно -> переписал файл с помощью io -> открыл уже измененное окно.
Изменено пользователем Nazgool
  • Полезно 1
Ссылка на комментарий

Ага, понял - данные из кастом_даты, кроме видимо логики, считываются один раз, при создании объекта. И изменение подключенного через #include ltx-файла с последующим перезапуском игры ничего не даст ? Или даст ?

Не даст. В кастом-дату сохранится содержимое файла на момент создания.
Ссылка на комментарий

@abramcumner, может я косноязычно изъясняюсь, но черт, я об этом и говорил, что и в all.spawn можно вынести кастом дату в файл (как хонор написал), можно в секции, как ты указал, написать, можно при спавне скриптом записать все это в кастом дату через пакет. Может меня не так поняли, но я это имел ввиду, т.е. вынести можно я хотел сказать.

 

@UnLoaded, если этот объект пересоздашь, то даст. Т.е. дефакто сохраняешь его пакет в переменную, и делаешь его копию с другой кастом датой.

 

@Nazgool, это только те которыми ты из скриптов управляешь, т.е. файлы-настройщики разумеется будут после "перевызова" обновлятся в зависимости от скрипта, будь то xml или ltx.

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

Создавайте неписей, делайте им логику и пути - в алл спавне. Безглючно. Единственный недостаток - НИ. Свободным место в гулаге не бывает - туда всё равно на работу придёт непись, пусть даже с другой локи - но это будет дружественная непись для гулага (по крайней мере - дружественной фракции). Не забудьте оставить хотя бы одно свободное место в гулаге - легче призвать, чем выкинуть. Для неписей, тех, что для Вас важны - легче их создавать ВНЕ гулага - с собственной логикой и путями - т.е. смарт терриан = ноне. Он никуда не привязан и он ВАШ. Это относиться как к неписям, так и к животине... Хотя в соли - логика животинки прописана в конфигах - лень было менять - и всё работало. И - никаких скриптов.

 

В файл логики-то писать можно что угодно. Только это движком восприниматься не будет

Ну....  :wub: .... Не знаю про двигло, но восприниматься будет, ещё как будет ;) .

 

abramcumner, 

UnLoaded, если этот объект пересоздашь, то даст. 

Nazgool, это

сказать.

UnLoaded, 

Nazgool, это

 

оставьте скрипты в покое. В этом случае - спавн - гулаг-работа-неписи - они вам ВООБЩЕ (сорри вобще) и нафиг не нужны. И не пихайте логику в ЛТХ, лишняя работа для двигла.

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

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

Ссылка на комментарий
Не совсем понял в каком контексте вы упомянули меня в своей последней цитате.
Я, сдается, писал совсем не про логику, поэтому не расцениваю выражение

 

оставьте скрипты в покое
относящимся к теме моего поста. Или я не прав?
Изменено пользователем Nazgool
Ссылка на комментарий

Подправил контейнер на 8 артов. Выставил, чтобы держал радиацию суммарно +40. Там почему-то было на +7 . Однако, он слегка фонит. Чем больше артов в контейнере, тем больше фонит.

В результате у ГГ потихоньку падает здоровье. Подскажите как исправить, пожалуйста.

Ссылка на комментарий
И не пихайте логику в ЛТХ, лишняя работа для двигла.

 

А что, ЛТХ логика так "ушатывает" движок? Может поэтому, у меня что 10 НПС, что 5 на не густо заселенной, небольшой локации подгружаются до нескольких секунд, хотя, учитывая их количество и мощность компа, подгрузка не должна быть так заметна? (хотя, кривое двигло сталкера. Фризы на том же Баре, как пример)

 

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

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

"что 10 НПС, что 5 на не густо заселенной, небольшой локации подгружаются до нескольких секунд"

 

Текстуры все проверены на предмет размеров ?

Лишние звуки из загрузки в неписей убраны ?

Чтение конфигов для торговли поправлено ?

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

А что, ЛТХ логика так "ушатывает" движок? Может поэтому, у меня что 10 НПС, что 5 на не густо заселенной, небольшой локации подгружаются до нескольких секунд

Очевидно, что дело не в логике. Логика у каждого НПЦ своя и если бы она "ушатывала" движок, то 10 НПЦ грузились бы в 2 раза дольше чем 5.

Это или что-то общее для НПЦ(как те же звуки, про что говорил Денис) или вообще к НПЦ не относящееся.

Надо садиться и замерять: при оптимизации 90%, что твои предположения о месте тормозов не верны :)

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

@Dennis_Chikin, в порядке все с текстурами - все правильных размеров, с наличием мип-мапов, с прописанными в textures.ltx бампами. Единственное, у некоторых стволов пока бампов нет, а они прописаны. О чем лог меня постоянно уведомляет. Но, пока руки не доходят до этого. Звуки у НПС заменял только родные - комментарии у всех прописаны. А насчет "чтения конфигов для торговли" не совсем понял, что там может быть не так?

 

@abramcumner, для примера - у меня на этой локации в одном месте 2 НПС, в другом - около 10. Разница в их подгрузке, когда они попадают в зону онлайна, те самые 150м (по-умолчанию), не сильно различается. Понять бы как это дело ускорить. Не то, что бы это большая проблема... но все же.

 

З.Ы. Кстати, при юзании команды -noprefetch подгрузка НПС ускорилась раза в два, не меньше. Хотя, в конфигах я убрал все визуалы. Хм, может еще чего забыл... По идее, ведь чистый конфиг prefetch.ltx\папка = команда -noprefetch?

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

, о текстурах я думаю имелось ввиду их размер. А в торговле там все не так.

 

Ты подумай чем твои два тормоза отличаются от тех десяти, если ты прям уверен, что дело в них, ну и сделай выводы :).

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

Такой вот вылет, особо информативный, при заходе на локацию на синхронизации:

Expression    : error handler is invoked!
Function      : invalid_parameter_handler
File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
Line          : 800
Description   : 

 

Что может быть ?

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

@UnLoaded, кривой компил?

 

Expression : error handler is invoked!

Function : invalid_parameter_handler

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

Line : 815

Description :

 

Возможно повреждение игрового архива (например, возникнет, если "забыть" указать entry_point в хидере)

 

 

[error]Expression : error handler is invoked!

[error]Function : invalid_parameter_handler

[error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp

[error]Line : 815

[error]Description :

 

Причина: вылет скорее всего связан с функцией формирования лога игры, и может возникать по разным причинам, но чаще всего

когда в какую то движковую функцию был передан nil или же когда в конфиге указаны пустые значения.

 

Пример #1: Вызвать движковую функцию установки метки на карту, и забыть этой функции передать текст с описанием (nil)

Пример #2: В конфиге предмета указать пустое имя "inv_name = " - при попытке взять предмет появиться вылет.

Лечение: найти источник вылета и устранить его.

 

..................

менял "restrictor type" с NONE default restrictor на IN default restrictor. Может в этом причина ?

Гыгы, не, не в этом :)
Изменено пользователем Eugen81
 

10.png

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

 

 

Возможно повреждение игрового архива

Ну это точно не то - ничего с игровыми архивами не делал.

Да и второй вариант мало вероятен, так как ниче с конфигами не крутил и в скриптах ниче не менял\добавлял.

 

Что делал точно перед появлением вылета - в СДК некоторым аномалиям на том уровне, при входе на который вылет происходит, менял "restrictor type" с NONE default restrictor на IN default restrictor. Может в этом причина ?

Ссылка на комментарий
что там может быть не так?

 

см. разбор в "прозекторской". Отдельное открытие файла для каждого непися, да еще по 2 раза подряд. Если файл сколько-то заметного размера - мало не покажется.

Но вообще делаем так: читаем про prifile_timer(), сажаем в xr_motivator на вызовы:

xr_sound.load_sound()

xr_gulag.setup_gulag_and_logic_on_spawn()

trade_manager.load()

Ну и первый trade_manager.update()

- и наслаждаемся результатами.

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

Насчет Expression : error handler is invoked! - изменил "restrictor type" обратно с IN default restrictor на NONE default restrictor и вылета не стало.

Поясните, кто в курсе, что они вообще означают, все эти типы рестрикторов, и что не так может быть с IN default restrictor ?

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

Доброго времени суток.
Проблема вот в чем: на новой локации заспавнил Сидоровича прописав логику:

[logic]
active = mob_trader@new_idle1
;trade = misc\trade_trader.ltx

;Основной idle (1) - за столом
[mob_trader@new_idle1]
anim_global = desk_idle
on_signal = animation_end| {~25} mob_trader@new_idle1_to_idle3, {~50} mob_trader@new_idle1_to_idle5, {~75} mob_trader@new_idle1_to_idle2, mob_trader@new_idle1_to_idle1
on_info = {=talking} mob_trader@new_idle1_to_idle3
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (2) - по диагонали
[mob_trader@new_idle2]
anim_global = diagonal_idle
on_signal = animation_end| {~25} mob_trader@new_idle2_to_idle3, {~50} mob_trader@new_idle2_to_idle4, {~75} mob_trader@new_idle2_to_idle1, mob_trader@new_idle2_to_idle2
on_info = {=talking} mob_trader@new_idle2_to_idle3
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (3) - откинувшись на спинку
[mob_trader@new_idle3]
anim_global = chair_hack_idle
on_signal = animation_end| {~30} mob_trader@new_idle3_to_idle2, {~70} mob_trader@new_idle3_to_idle1, mob_trader@new_idle3_to_idle3
on_info = {=talking} mob_trader@new_talking
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (4) - за компьютером
[mob_trader@new_idle4]
anim_global = compute_idle
on_signal = animation_end| {~40} mob_trader@new_idle4_to_idle2, mob_trader@new_idle4_to_idle4
on_info = {=talking} mob_trader@new_idle4_to_idle2
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (5) - читает
[mob_trader@new_idle5]
anim_global = listen_idle
on_signal = animation_end| {~45} mob_trader@new_idle5_to_idle1, mob_trader@new_idle5_to_idle5
on_info = {=talking} mob_trader@new_idle5_to_idle1
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait
;----------------------------------
;--------   Автопереходы   --------
;----------------------------------

; Стол - стол (промежуточная)
[mob_trader@new_idle1_to_idle1]
anim_global = desk_idle
on_signal = animation_end| mob_trader@new_idle1

; Диагональ - диагональ (промежуточная)
[mob_trader@new_idle2_to_idle2]
anim_global = diagonal_idle
on_signal = animation_end| mob_trader@new_idle2

; Спинка - спинка (промежуточная)
[mob_trader@new_idle3_to_idle3]
anim_global = chair_hack_idle
on_signal = animation_end| mob_trader@new_idle3

; Компьютер - компьютер (промежуточная)
[mob_trader@new_idle4_to_idle4]
anim_global = compute_idle
on_signal = animation_end| mob_trader@new_idle4

; Читает - читает (промежуточная)
[mob_trader@new_idle5_to_idle5]
anim_global = listen_idle
on_signal = animation_end| mob_trader@new_idle5

;----------------------------------
;----- Переходы  между idle-ми ----
;----------------------------------

; Диагональ - компьютер
[mob_trader@new_idle2_to_idle4]
anim_global = diagonal_to_compute
on_signal = animation_end| mob_trader@new_idle4

; Компьютер - диагональ
[mob_trader@new_idle4_to_idle2]
anim_global = compute_idle_to_diagonal
on_signal = animation_end| mob_trader@new_idle2

; Диагональ - спинка
[mob_trader@new_idle2_to_idle3]
anim_global = diagonal_to_chair_hack
on_signal = animation_end| {=talking} mob_trader@new_talking, mob_trader@new_idle3

; Спинка - диагональ
[mob_trader@new_idle3_to_idle2]
anim_global = chair_hack_to_diagonal
on_signal = animation_end| mob_trader@new_idle2

; Стол - спинка
[mob_trader@new_idle1_to_idle3]
anim_global = desk_to_chair_hack
on_signal = animation_end|{=talking} mob_trader@new_talking, mob_trader@new_idle3

; Спинка - стол
[mob_trader@new_idle3_to_idle1]
anim_global = chair_hack_to_desk
on_signal = animation_end| mob_trader@new_idle1

; Стол - диагональ
[mob_trader@new_idle1_to_idle2]
anim_global = desk_to_diagonal
on_signal = animation_end| mob_trader@new_idle2

; Диагональ - стол
[mob_trader@new_idle2_to_idle1]
anim_global = diagonal_to_desk
on_signal = animation_end| mob_trader@new_idle1

; Стол - читает
[mob_trader@new_idle1_to_idle5]
anim_global = desk_to_listen
on_signal = animation_end| mob_trader@new_idle5

; Читает - стол
[mob_trader@new_idle5_to_idle1]
anim_global = listen_to_desk
on_signal = animation_end| mob_trader@new_idle1


;--------------------------------------
;------------- Разговор ---------------
;--------------------------------------

[mob_trader@new_talking]
anim_global = chair_hack_talk
anim_head = normal
on_info = {!talking} mob_trader@new_idle3


;-------------------------------------
;---------- Приветствия --------------
;-------------------------------------

[mob_trader@new_hello]
anim_global = hello
anim_head = normal
sound_phrase = trader_hello_what_have_you_got
on_signal = animation_end | mob_trader@new_idle2

[mob_trader@new_bye]
on_actor_dist_ge_nvis = 12 |mob_trader@new_wait
anim_global = hello
anim_head = normal
sound_phrase = trader_bye
on_signal = animation_end | mob_trader@new_wait

[mob_trader@new_wait]
anim_global = diagonal_idle_short
on_actor_dist_le_nvis = 3 | {-esc_trader_hello_played} mob_trader@new_hello %+esc_trader_hello_played%
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12    | %-esc_trader_hello_played -esc_trader_bye_played%

 

 

 

Работало как часы, но через определенный отрезок времени (прошел месяц) он перестал двигаться! Так скажем "застыл", хотя в его логике я даже копаться не смел.
Вот код из all.spawn

 

 

[11337]
; cse_abstract properties
section_name = m_trader
name = predbannik_m_trader
position = -19.5539226531982,-4.34696102142334,329.650390625
direction = 0,1.61639988422394,0

; cse_alife_object properties
game_vertex_id = 3870
distance = 0
level_vertex_id = 7
object_flags = 0xffffff3b
custom_data = <<END
[spawn]
wpn_pm
ammo_9x18_fmj

[logic]
cfg = scripts\predbannik\predbannik_trader.ltx
END
story_id = 5484
; cse_visual properties
visual_name = actors\trader\trader

; cse_alife_trader_abstract properties
money = 1000000
trader_flags = 0
character_profile = escape_trader  

 

 

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

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

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

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

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

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

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

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

Войти

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

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

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