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

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


Halford

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

Пытаюсь заспаунить источник света. В распакованном all.spawn, в файле alife_l01_escape.ltx скопировал секцию 617 (это лампа в подвальчике справа от костра в центре Деревни новичков, имя - light_alarm_glass_0000), добавил в конец вышеозначенного файла, изменил: имя на light_alarm_glass_0004, координаты, gv и lv, остальное не трогал. Для level.spawn для Кордона сделал все то-же самое. Скомпилил level.spawn и all.spawn, начал НИ - нет источника света в точке спауна. Начал проверять в чем же дело - оказалось, что объект не выходит в он-лайн. Но почему тогда light_alarm_glass_0000 нормально спаунится и светит как положено, ведь для нового источника все скопировал один в один ?

Точку спауна проверил - спаунил по ней аптечку, нормально вроде.

Поделиться этим сообщением


Ссылка на сообщение

volazar

Печально, но Ваш пример кода не помог. Все его отличия от того что прописал я - наличие s_flags = 0x23 и секция логики

custom_data = <<END

[collide]

ignore_static

END

При добавлении что первого, что второго ничего не меняется - объект не выходит в он-лайн.

Есть еще какие-то варианты ?

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

Поделиться этим сообщением


Ссылка на сообщение

volazar

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

Так я именно так и сделал, я ж описал все в первом посте. Я уже и без level.spawn'а пробовал - результат то-же - объект не выходит в он-лайн !

Поделиться этим сообщением


Ссылка на сообщение

""нормально вроде". Нормально или вроде?"

Аптечка естественно лежала на полу, ну на поверхности значит. Но именно там, где прописано в координатах и вертексах.

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

"возможно где то, что то сбоит/глючит. Например в скриптах."

Скрипты при чем, все прописано только в all.spawn ?

Поделиться этим сообщением


Ссылка на сообщение

Пытаюсь и дальше с этим разбираться - вообще кошмар полный !

Использую такой код, чтоб определиться с состоянием объекта:

 

local obj_ser = alife():object("light_alarm_glass_0004")
if obj_ser then
level.map_add_object_spot_ser(obj_ser.id, "alife_presentation_monstr", "лампа") -- сталю метку на объект --
alife():set_switch_online(obj_ser.id, true) -- пытаюсь вывести объект в он-лайн --
local text = "объект light_alarm_glass_0004 - "
..string.format("X: %d, Y: %d, Z: %d, gv: %d, lv: %d", obj_ser.position.x, obj_ser.position.y, obj_ser.position.z, obj_ser.m_level_vertex_id, obj_ser.m_game_vertex_id)
news_manager.send_tip(db.actor, text, nil, nil, 30000)
local obj = level.object_by_id(obj_ser.id)
if obj then
	local text = "объект light_alarm_glass_0004 - "
..string.format("X: %d, Y: %d, Z: %d, gv: %d, lv: %d", obj:position().x, obj:position().y, obj:position().z, obj:level_vertex_id(), obj:game_vertex_id())
	news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
end

 

Вижу только первое сообщение, т.е. получается, что проверка "if obj then" не проходит. Меняю в этом коде

light_alarm_glass_0004 на light_alarm_glass_0000

- и опять вижу только первое сообщение. Получается, что для объекта, который явно нормально работает (т.е. светит) не возможно получить его клиентский объект !

Помогайте, кто в этом понимает, а то я уже имею мысль убиться головой об каменную стенку. Сжальтесь !

Поделиться этим сообщением


Ссылка на сообщение

- таким образом ты спавнишь объект в ту-же самую точку!

почему ? Я же указал, что координаты изменил на требуемые.

Сразу после инициирования выхода в онлайн онлайнового объекта ещё нет, надо ждать несколько апдейтов. Это же основы, такие вещи надо знать.

Почему Вы решили, что я этот код вызывал в том-же месте что и создание объекта ? Объект создавался в all.spawn, а код, про который Вы указали - уже значительно позже.

Atos

"т.е. никак не может быть в НЕ в онлайне!" - но ведь та и есть - не выходит моя лампа в он-лайн.

 

Пошел еще дальше в экспирементах - убрал вообще исходную секцию этой лампы. Перекомпилировал all.spawn, начал новую игру - до жопы, лампа как была на месте так и осталась !

Я в ауте, что это значит ??????

Поделиться этим сообщением


Ссылка на сообщение

Может надоел кому, но все-же...

Снова об объекте, которых светит - можно ли его создать(заспаунить) скриптово ?

Вот что я выяснил все о той-же лампе в подвальчике в деревне новичков на Кордоне.

 

 

1). В alife_l01_escape.ltx убрал вообще ее секцию, скомпилировал all.spawn, начал НИ, прибежал в подвальчик - лампа светит как обычно. Получается, что spawn-объект light_alarm_glass_0000 не имеет явного отношения к объекту который светит, хотя в его секции в alife_l01_escape.ltx прописано кучу параметров, явно относящихся к объекту, излучающему свет.

Помня о предположениях, что я вообще не с тем источником света дрюкаюсь - сделал скриптом получение объекта по имени и установки на него метки - метка появляется именно там где и должно быть. Естественно, для варианта all.spawn, где секция для light_alarm_glass_0000 имеется.

2). В LE SDK выявил, что объект этой лампы состоит из трех честей:

- при включенном режиме "Light" имеется объект light_0032

- при включенном режиме "Glow" имеется объект glow_0002

- при включенном режиме "Spawn Element" имеется объект light_alarm_glass_0000

Поиск в файлах 'gamedata' и распакованных файлах all.spawn имен light_0032 и glow_0002 ни чего не дал, получается эти элементы(не знаю как правильно выразится)являются частью "мебели" или геометрии уровня и не являются спаун-объектами, т.е. их нельзя создать ф-цией create ?

Так как-же тогда скриптово создать объект, излучающий свет так-же как и "стандартные" лампы\сетильники ?

 

Поделиться этим сообщением


Ссылка на сообщение

malandrinus

Ну а как тогда заспаунить источник света ? Простое копирование имеющейся в исходном ltx-файле all.spawn'а секции с изменением имени и координат не дает результата. Не могу разобраться почему ?

Поделиться этим сообщением


Ссылка на сообщение

Скопировано с секции лампы в подвальчике в деревне новичков, у меня она 617 в alife_l01_escape.ltx. Изменил только имя light_alarm_glass_0000 на light_alarm_glass_0004 и координаты спауна.

 

 

 
; cse_abstract properties
section_name = lights_hanging_lamp
name = light_alarm_glass_0004
position = -195.981475830078, -18.0143604278564, -134.596420288086
direction = 1.36992639454547e-011, 0, 3.14159274101257
version = 118
script_version = 6
; cse_alife_object properties
game_vertex_id = 36
level_vertex_id = 56184
object_flags = 0xffffffba
; cse_visual properties
visual_name = physics\light\new_light\light_alarm_glass
; cse_ph_skeleton properties
; cse_alife_object_hanging_lamp properties
main_color = 0xfffe8812
main_brightness = 0.699999988079071
main_range = 4
light_flags = 0x2a
lamp_fixed_bones = link
health = 100
main_virtual_size = 0.100000001490116
ambient_radius = 2
ambient_power = 0.200000002980232
main_bone = bone_lamp
main_cone_angle = 2.09439516067505
glow_radius = 0.699999988079071
ambient_bone = bone_omni

 

Поделиться этим сообщением


Ссылка на сообщение

Artem_K

в ТЧ статические объекты освещения имеют две секции спавна, физ.модель и сам свет от объекта, на статике кстати может не быть видно заспавненого света

А как вычислить эти секции для конкретной лампы ?

 

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

Такая вот бяда: в описании артефактов, в окне инвентаря, параметры которые в artefacts.ltx описаны как health_restore_speed, radiation_restore_speed, satiety_restore_speed, power_restore_speed, bleeding_restore_speed отображаются всегда 1, не зависимо от присвоенных значений. К примеру для "медузы" - "Радиация +1" а должно быть - "Радиация +5". Параметры-же из секции absorbation отображаются нормально, для той-же "медузы" - "Пулестойкость + 2%". В artefacts.ltx ничего особо не трогал, только прибрал прыжки и свечение для всех артов, да и не в этом дело - пробовал восстанавливать оригинальный artefacts.ltx(от чистой ТЧ v 1.0004), все равно не правильно отображается. В чем еще может быть причина ?

Поделиться этим сообщением


Ссылка на сообщение

Вот пример секции из оригинального alife_l01_escape.ltx (распакован ACDC 1.27):

[102]

; cse_abstract properties
section_name = physic_object
name = vedro_0007
position = -179.066909790039, -20.1019878387451, -140.893676757813
direction = 0.03852479159832, -0.00217132666148245, 0.056316215544939
version = 118
script_version = 6

 

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 3978
object_flags = 0xfffffffa

 

; cse_visual properties
visual_name = physics\decor\vedro_01

 

; cse_ph_skeleton properties
skeleton_name =
skeleton_flags = 1

 

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10
skeleton_flags = 1
source_id = 65535 

 

повторяющийся параметр - имеет смысл или просто ляп ?



Задача - прикрутить зацикленный звук к объекту, спаунящемуся из all.spawn.

[logic]
active = ph_sound@generator

[ph_sound@generator]
snd = work_generator
looped = true

Сам звук - ambient\marsh_generator.ogg, в sound_theme.script схему прописал. Все работает, но присутствует явно различимый "переход" на повторе звука - провал в долю секунды.

Вопрос: провал в звуке - это особенность работы схемы с флагом looped = true или-же есть смысл ковырять сам звук в каком-то редакторе ?

 

 

 

 

 

 

Поделиться этим сообщением


Ссылка на сообщение

 

Подозреваю, что кто-то по ошибке скопипастил дубли строк не в то место...

 

 

Извините, Artos, но не понял что это означает.

Есть all.spawn от чистого ТЧ 1.0005. Есть ACDC 1.27. Распаковываю этот all.spawn с помощью этого ACDC и получаю конкретно в alife_l01_escape.ltx для двух объектов:

[102]

; cse_abstract properties

section_name = physic_object

name = vedro_0007

position = -179.066909790039, -20.1019878387451, -140.893676757813

direction = 0.03852479159832, -0.00217132666148245, 0.056316215544939

version = 118

script_version = 6

; cse_alife_object properties

game_vertex_id = 0

level_vertex_id = 594270

object_flags = 0xfffffffa

; cse_visual properties

visual_name = physics\decor\vedro_01

; cse_ph_skeleton properties

skeleton_name =

skeleton_flags = 1

; cse_alife_object_physic properties

physic_type = 0x3

mass = 10

skeleton_flags = 1

source_id = 65535

 

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

 

[143]

; cse_abstract properties

section_name = physic_object

name = vedro_0001

position = -112.361404418945, -30.1370162963867, -393.068908691406

direction = -0.0343178249895573, 9.07830180949532e-005, 0.00264587346464396

version = 118

script_version = 6

; cse_alife_object properties

game_vertex_id = 0

level_vertex_id = 594270

object_flags = 0xfffffffa

; cse_visual properties

visual_name = physics\decor\vedro_01

; cse_ph_skeleton properties

skeleton_name =

skeleton_flags = 1

; cse_alife_object_physic properties

physic_type = 0x3

mass = 10

skeleton_flags = 1

source_id = 65535 

 

Я не знаю, что это за два ведра таких хитро...опых, я Вам верю, что значение 1 для skeleton_flags может быть туфтой - но что вижу, о том и спрашиваю.

Возможно проблема в ACDC, но на данный момент ссылка на 1.35 не рабочая, как только обновят, проверю на свежей версии.

=================================

Ссылка на ACDC 1.35  в шапке ЭТОЙ темы вполне себе рабочая. Только что проверил.

BFG

Поделиться этим сообщением


Ссылка на сообщение

Подскажите - какие соотношения или формулы используются движком при обсчете эффектов от артефактов ? К примеру, имеем в actor.ltx параметр health_restore_v, а в секции какого либо арта health_restore_speed - как они будут обсчитываться движком, есть ли формула обсчета ?

И еще - минимальные и максимальные значения для параметров в секции  actor_condition и для health_restore_speed, radiation_restore_speed, satiety_restore_speed, power_restore_speed, bleeding_restore_speed у артефактов ?

Поделиться этим сообщением


Ссылка на сообщение

Прописал такие вот инфо-порции:

 <info_portion id="esc_tehnic_proceed"></info_portion>
 <info_portion id="esc_tehnic_complete"> <disable>esc_tehnic_proceed</disable> </info_portion> 

Выдаю сначала esc_tehnic_proceed, все нормально. Затем выдаю esc_tehnic_complete, проверяю esc_tehnic_proceed - она остается активной ! Я где-то ошибся или что-то не понял о том, что означает тэг <disable></disable> для инфо-порций ?
 

Поделиться этим сообщением


Ссылка на сообщение

 

прописал верно, все должно работать!!!

 

Я и сам вижу, что прописано верно, но не работает !

Поделиться этим сообщением


Ссылка на сообщение

Имеется диалог построенный по такому шаблону:

<dialog id="ляляляляля"> 
  <phrase_list>
    <phrase id="0">
      <text>Привет, сталкер !</text>
      <next>1</next>
    </phrase>
    <phrase id="1">
      <text>Что надо от меня ?</text>
      <next>2</next>
      <next>4</next>
    </phrase>
    <phrase id="2">
      <text>...............</text>
      <next>3</next>
    </phrase>
    <phrase id="3">
      <text>...............</text>
    </phrase>
    <phrase id="4">
      <text>...............</text>
      <next>5</next>
    </phrase>
    <phrase id="5">
      <text>...............</text>
    </phrase> 
  </phrase_list>
</dialog>

т.е. присутствует развилка - 2 или 4 фраза. И получается, что при отсутствии условий в каждой из них они доступны одновременно. Вопрос - как движок это обработает ?

 

Во-первых, в следующий раз подобный пост без спойлера потру.

Во-вторых, что мешает узнать проверив это собственно ручно?

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

Во-первых, в следующий раз подобный пост без спойлера потру.

Во-вторых, что мешает узнать проверив это собственно ручно?

 

Про спойлер забыл, извиняйте...

 

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

Поделиться этим сообщением


Ссылка на сообщение

Два вопроса:

1). Если я правильно понимаю, то: репутация - это параметр ГГ по отношению к группировкам, а благосклонность - это параметр ГГ по отношению к конкретному НПСу ?

 

2). Имеется добавленный мною НПС, приписан к гулагу, ему прописаны квесты(не регулярные) для ГГ. При их успешном выполнении будет-ли ГГ автоматически(движково\по умолчанию) начисляться репутация и\или благосклонность ? Или надо самому начислять и то и другое по факту выполнения  ?



malandrinus
 

при каждом заходе актора на какой-то уровень

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

Поделиться этим сообщением


Ссылка на сообщение

malandrinus

 

2. По-моему, любой эффект от задания надо прописывать в этом задании явно, как собственно эффект или эффект от фразы при сдаче задания 

 

А так называемые регулярные задания, ну типа как у Сидора - принеси то, убей того, найди это ? Там как идет начисление всех этих благосклонностей и репутации ?

Поделиться этим сообщением


Ссылка на сообщение

В game_relations.ltx прописана группировка "stranger" - кто это в игре ?

В этом-же файле есть строчка

goodwill_neutal = 0

Похоже на опечатку, видимо должно быть goodwill_neutral ?

 

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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