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

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


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

Magnus1, Прописываете диалоги обоим нужным неписям. У одного, ставите проверку поршня на диалог (<has_info>поршень</has_info>). А у другого, в конце диалога наоборот, выдаете этот поршень (<give_info>поршень</give_info>).

Виден сначала только один диалог. Как поговорили с ним, появляется другой диалог.

В общем, хочу убиваемость бандитов в черных плащах понизить, но не знаю как. Конфиги перелопатил по быстрому, но ничего не нашел. Где их резисты находятся? :mellow:

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

В общем, хочу убиваемость бандитов в черных плащах понизить, но не знаю как. Конфиги перелопатил по быстрому, но ничего не нашел. Где их резисты находятся? :mellow:

Каких ещё черных бандитов? :mellow:

Замени строку stalker в секции на другую, а затем её зарегистрируй в файле m_stalker

[cit_bandit_respawn_2]:stalker

$spawn = "respawn\cit_bandit_respawn_2"

character_profile = sim_bandit_master

spec_rank = master

community = bandit

 

Вставь в m_stalker;

 

[stalker_new]:stalker

$spawn = "stalkers\stalker_new"

immunities_sect = stalker_immunities_new

condition_sect = new_stalker_condition

 

 

[new_stalker_condition]

satiety_v = 0.00001 ;скорость уменьшения сытости со временем

radiation_v = 0.0001 ;скорость уменьшения радиации

satiety_power_v = 0.0005 ;увеличение силы при уменьшении сытости

satiety_health_v = 0.0 ;0.0001 ;увеличение здоровья при уменьшении сытости

satiety_critical = 0.0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться

radiation_health_v = 0.000 ;уменьшение здоровья при воздействии радиации

morale_v = 0.0001 ;скорость восстановления морали

health_hit_part = 0.05 ;процент хита, уходящий на отнимание здоровья

power_hit_part = 0.05 ;процент хита, уходящий на отнимание силы

psy_health_v = 0.01 ; скорость восстановления psy-здоровья

health_restore_v = 0.00001 ;скорость восстановления здоровья

 

sleep_health = 1.0 ;коэффициенты скоростей изменения параметров во время сна

sleep_power = 1.0

sleep_satiety = 1.0

sleep_radiation = 1.0

sleep_psy_health = 1.0

 

;---LIMPING STATE-----------------------------------------------------

use_limping_state = off

limping_threshold = 0.5

 

;открытые раны

bleeding_v = 0.0 ;потеря крови при номинальной ране в секунду

wound_incarnation_v = 0.001 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)

min_wound_size = 0.01

 

[stalker_immunities_new]

burn_immunity = 0.05 ;коэффициенты иммунитета

strike_immunity = 0.05

shock_immunity = 0.05

wound_immunity = 0.3

radiation_immunity = 0.0

telepatic_immunity = 0.0

chemical_burn_immunity = 0.08

explosion_immunity = 100

fire_wound_immunity = 0.00000000001

wound_2_immunity = 0.0000000001

 

 

 

Только не забудь подправить секцию stalker_immunities_new и new_stalker_condition

Изменено пользователем ColR_iT
Используем спойлеры для кода большого размера!

К20

Каких ещё черных бандитов? :mellow:

Благодарю, все работает, только теперь мастера выдерживают 3 рожка с лр300 :unsure: А можно им каким нибудь макаром броню прописать? Чтобы брали защиту из damages.ltx, как прочие костюмы. У меня в конфигах уже прописаны оба бандитских плаща, но как их присвоить бандитам, я не знаю.

Благодарю, все работает, только теперь мастера выдерживают 3 рожка с лр300 :unsure: А можно им каким нибудь макаром броню прописать? Чтобы брали защиту из damages.ltx, как прочие костюмы. У меня в конфигах уже прописаны оба бандитских плаща, но как их присвоить бандитам, я не знаю.

Ты наверное просто скопировал приведенный код. Необходимо поработать с секциями new_stalker_condition, stalker_immunities_new и настроить их под себя (ну или кого там- бандитов?)

К20

Имеется не большой вопросик: насколько я знаю в алл спавне в ТЧ при спавне, например, НПС нельзя что бы секции повторялись, то они во всех файлах алл спавна пповторяться не должны или только в отдельном, например в alife_l01_escape.ltx?

Magnus1

 

В смысле строчка name = ?

Если пользуетесь последним universal_acdc (kd87) то все можно, но нежелательно.

Мой архив

Сталкером не занимаюсь.

Magnus1

 

В смысле строчка name = ?

Если пользуетесь последним universal_acdc (kd87) то все можно, но нежелательно.

Нет всмыле вот здесь:

[spoiler=Самая первая строка в кв.скобках

][3677]

 

; cse_abstract properties

 

section_name = inventory_box

 

name = level_prefix_inventory_box_0016

 

position = 110.549880981445,0.0583252906799316,52.8774147033691

 

direction = 0,0.574199974536896,0

 

 

 

; cse_alife_object properties

 

game_vertex_id = 1168

 

distance = 0

 

level_vertex_id = 76465

 

object_flags = 0xffffff3f

 

custom_data = <

 

[logic]

 

cfg = scripts\treasure_inventory_box.ltx

 

END

 

story_i

 

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

Magnus 1, твой вопрос следует адресовать в топик Universal ACDC и другие perl-скрипты , т.к. относится не к самому файлу all.spawn'у а к отображению его формата распаковки и об этом можно прочитать в указанном топике.

То, что ты назвал "секцией", на самом деле называется идентификатором секции спавна (spawn_id).

В самом файле all.spawn эти идентификаторы начинаются с 0 и следуют строго последовательно до конца (кол-ва) секций - не повторяясь!

Однако, в распакованном виде, например для версии универсального ACDC (by KD87), это ограничение на неповторяемость относится только к каждому отдельному файлу конкретной локации (alife_XXX.ltx), а в разных файлах номера идентификаторов могут дублировать такие же номера из соседних файлов. Также нет обязательного условия последовательности номеров идентификаторов.

Т.о. , если используешь uACDC, то ты сам ответил себе правильно - "повторяться не должны ... только в отдельном, например в alife_l01_escape.ltx"

.

Примечание После компиляции в полученном all.spawn'е все идентификаторы будут переопределены в соотвествии с требованием непрерывности и последовательности, так что чтобы работать с реальными текущими данными следует скомпилировать и обратно декомпилировать - тогда ты полуцчишь реальные номера идентификаторов, т.е. так как они будут в игре.

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

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

Не знаю, может быть не в тему, но все равно прошу совета.

Подключал локацию из ЧН к локам ТЧ. При переходе на новую локу получаю вылет с вот таким логом:

- Destroying level

* DVB created: 4096K

* DIB created: 512K

- r__tf_aniso 16

- r2_tf_mipbias -0.5

* GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)

* GPU vertex cache: recognized, 24

*** RESET [386 ms]

xr_3da.exe -nointro

* phase time: 8 ms

* phase cmem: 208552 K

Сервер: Старт...

* phase time: 104 ms

* phase cmem: 208608 K

Сервер: Загрузка симуляции жизни...

* phase time: 8 ms

* phase cmem: 208608 K

Загрузка игры "user_autosave.sav"...

* Loading spawn registry...

* 8642 spawn points are successfully loaded

* Loading objects...

* 17222 objects are successfully loaded

stack trace:

 

001B:028FF63B xrGame.dll

Кто-нибудь может расшифровать, что это такое?

с левел чайнджером наверное что-то не то.

 

Правила цитирования прочти. Cyclone

К20

Дописал в se_item.script для класса se_outfit два метода - STATE_Write(packet) и STATE_Read(packet). Ну и проверил сколько раз эти методы будут вызываться при спауне броника скриптом. Результат:

STATE_Write

STATE_Read

STATE_Write

STATE_Write

STATE_Read

Кто знает, зачем столько раз происходят вызовы методов ? И какова их привязка к последовательности спауна предмета ?

 

Многострочный текст с прокруткой по вертикали - как сделать ? Класс CUIStatic не позволяет такого ? Пытался подсмотреть в оригинальных кодах игры, в частности смотрел как сделано описание предмета в инвентаре. Там это выглядит так:

 
<descr_list x="12" y="223" width="298" height="140" always_show_scroll="0" left_ident="16">
 <font font="letterica16" r="240" g="217" b="182"/>
</descr_list>

Но вычислить какой это класс из CUI... не получилось.

Подскажите.

 

Дописал в se_item.script для класса se_outfit еще один метод - on_before_register(). Когда он вызывается - когда серверный объект, созданный ф-цией create уже существует ?

 

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

STATE_Write

STATE_Write

STATE_Read

То-же не очень понятно кол-во вызовов методов класса.

AndreySol, вот когда ты себе ответишь на что такое "серверный объект, созданный ф-цией create уже существует" - тогда и получишь ответ на свой вопрос.

По многострочиям читаем Справочник по функциям и классам, где расписаны оконные классы.

 

Когда же к работе рук ты будешь подключать работу головой (своею) или хотя бы глаз, чтобы читать уже понаписанное?

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

Здравствуйте. У меня вопрос.

Начну издалека - у меня стоит мод Complete 1.4.1 2009 и поверх него я уже своими ручками кое-что добавляю. Сегодня возникла проблема -

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

 

[1233]

; cse_abstract properties

section_name = space_restrictor

name = swolf_govorit

position = -210.632614135742,-20.050708770752,-142.461120605469

direction = 0,0,0

; cse_alife_object properties

game_vertex_id = 61

distance = 0

level_vertex_id = 42599

object_flags = 0xffffff3e

custom_data = <<END

[logic]

active = sr_idle

[sr_idle]

on_actor_inside = %+esc_on_talk%

END

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 6.6438484191895

; cse_alife_space_restrictor properties

restrictor_type = 3

 

 

function on_talk()

local npc = level_object_by_sid(006)

db.actor:run_talk_dialog(npc)

end

 

 

А проблема вот в чём.

Когда я подхожу на эти 6 метров к Волку ничего не происходит.

Но когда я пытаюсь заговорить с ним (F), то пропадает из рук оружие и ГГ, как бы, "зависает на месте" - не может отойти, совершить какое-то действие и т.д. можно только смотреть по сторонам.

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

Помогите, пожалуйста.

 

P.S. Иногда такое же было, когда я пытался заговорить с Волком в Simbion Mod. Но у меня, увы, постоянно :С

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

Такие дела. - Курт Воннегут.

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

if npc:position():distance_to_sqr(db.actor:position()) < 6 then

квадрат 3-х = 9 , поэтому условие проверки можно все же ослабить до:

if npc:position():distance_to_sqr(db.actor:position()) < 9 then

 

Можно также при желании пропатчить ехе-шник (см. X-Ray Extentoins), чтобы снять это ограничение...

 

Если мне не изменяет память, то там не ровно три метра, а немного меньше, поэтому 6 - в самый раз.

ColR_iT

 

Все это идет от параметра take_dist (смотрим секцию [inventory] в system.ltx) и там дефолтно стоИт = 2, так что ты в общем-то прав, хотя в своем же ответе выше поминал 3 метра. ;-) Практика показывает, что 3-х метров вполне достаточно и ниже - это уже перестраховка.

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

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

Блин,

я нубоват в скриптах.

Эту функцию, что ты скинул, нужно вживить в мой mar_quests.script

function on_talk()

local npc = level_object_by_sid(006)

if npc:position():distance_to_sqr(db.actor:position()) < 6 then

db.actor:run_talk_dialog(npc)

end

 

 

Чтобы вышло вот так, да?

 

Так, только end для структуры if забыл.

ColR_iT

 

P.S. Снизил радиус рестриктора (не прописывая if npc:position():distance_to_sqr(db.actor:position()) < 6 then) до 2 м (как в туториале указано) - оружие пропадает всё равно.

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

Такие дела. - Курт Воннегут.

irish_rebel, блинами делу не поможешь ... и если нубоват - то как раз и пишешь в разделе "Школа", так что есть возможность подучиться.

1. Логика твоего рестриктора предусматривает одностороннее переключение - один раз зайдя в него актор постоянно будет под действием выданного инфопоршня esc_on_talk - и как предполагаю, именно по наличию этого инфопоршня у тебя идет вызов функции on_talk. Тогда ничего удивительного, что актор начинает постоянно "разговаривать".

2. Оружие исчезает из рук актора - ну так при активном разговоре оружие и убирается автоматически.

3. Если не хочешь получать вылеты при отсутствии/смерти Волка - то и наличие его объекта требуется проверять, т.е.:

if npc and npc:position():distance_to_sqr(db.actor:position()) < N then

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

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

Скажите, каким способом можно распаковать игровой архив(ТЧ) gamedata.dbg? Обычный Data_unpacker его не берет.

 

 

Можно попробовать плагин для Total Commander от malandrinus.

ColR_iT

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

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

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

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

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

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

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

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

Войти

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

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

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