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

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


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

Ребята, в файле gamedata\configs\misc\simulation.ltx  имеется это:

[smart_terrain_stay_time]

quick = 2, 5
medium = 6, 8
long = 12, 14
default = 10000, 10001

 

Где эти параметры указываются ? что бы можно было настраивать время пребывания в смарте ?

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

Помогите пожалуйста!!! Нужно создать функцию в которой при одевании определенного "шлема" удалялся бы "device_torch" и спавнился бы новый device_torch_helm_respirator, т.е. один раз удалился фонарик и выдался бы другой. Идея в том что бы при надевании определенного шлема на голове Актера менялся бы визуал фонарика.

function helm_check() -- actor_binder:update(delta)
local helm_slot
local helm = db.actor:item_in_slot(12)
	if helm then
		helm_slot = helm:section()	
		if string.find(helm_slot, "helm_respirator") then
			-- Удаление фонарика device_torch
			-- Спавн фонарика device_torch_helm_respirator
		end
	end
end
Изменено пользователем karavan
Ссылка на комментарий

Кто может подсказать почему device_torch только воспринимается игрой как фонарик, например склонированная секция фонарика device_torch_2 выданная в начале игры вместо device_torch не используется как фонарик. Может нужно где-то зарегестрировать device_torch_2 ?

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

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

P.S. И даже если это так, попрбуй добавить эту секцию в список attachable_items в actor.ltx

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

@Штурman,воспользуйся поиском по форуму, этот вопрос уже не однократно обсуждался, даже совсем недавно где то видел посты на эту тему... 

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

Как сделать свободу нейтралами?

                elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then
                        function goodwill_to_freedom()
                        xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"freedom", +3000})
end

 

Не помогает  :( 

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

Народ, пытался сам разобраться, да, видно, не дорос ещё.

Мне нужно было удалить НПС, я юзал вот такую функцию:

function kick_kolya()
xr_effects.remove_npc("kolya_mech")
end

 

Она вызывалась из квеста, когда он заканчивался. 

Вылета не происходило, но скрипт не срабатывал.

Народ, помогите! Как правильно ввести функцию на удаление НПС?

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

Viktor_Kris

 Я посмотрел xr_effects.script от ЧН, и функции remove_npc я не нашел, там есть destroy_object. Но судя по тому что у тебя нет вылета, мне кажется, ты передаешь неправильный параметр. Ты уверен что в параметре надо писать имя_профиля?

 

Обычно передается story_id или имя_объекта(редко). Вся фишка в том что имя_объекта - это либо значение name из all.spawn, либо(если я не ошибаюсь) имя_секции + id_объекта(для сталкеров точно так)

 

========

Все-таки из любопытства глянул скрипт ЗП, вот маленький код функции:

 

 

function remove_npc(actor, npc, p)
if p and p[1] then
npc_id = get_story_object_id(p[1])
end
if npc_id ~= nil then
alife():release(alife():object(npc_id), true)
end
end

 

 

Тебе не кажется, что надо story_id передать?

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

@Старлей, "kolya_mech" - это и есть story_id непися



Блин, я банально "перекрутил" функцию. Нужно было просто вызвать в tm_zaton уже готовую функцию %=remove_npc(id непися без кавычек)% 

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

Всем добра.
Кто сталкивался с таким вылетом?

001B:04033003 xrGame.dll, CDialogHolder::CDialogHolder()

Возникает при убийстве определенного НПС. 

AWRP : Re - Load 0.2 ©

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

Отключение функций мини-карты в сталкере для увеличения реализма и/или усложнения игры

C:\Program Files (x86)\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\ui\map_spots_relations.xml
Изменение точек на радаре (мини-карте)
C:\Program Files (x86)\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\ui
zone_map.xml

C:\Program Files (x86)\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\textures\ui
ui_actor_hint_wnd.dds - убрал индикатор о шуме и заметности для врагов (синий и зелёный на  мини-карте) и покрасил полоску здоровья в более приятный зелёный цвет
ui_hud.dds - убрал стрелку (показывающую направление к месту задания на  мини-карте)
ui_common.dds - убрал метку героя на карте (показывающую его место и направление) и звезду (показывающую глав отрядов на радаре)

В файле

C:\Program Files (x86)\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\ui
map_spots_relations
я просто уменьшил размеры "точек детектора НПС на мини-карте" до нуля (параметры width и height в разделах enemy_mini_spot, neutral_mini_spot, friend_mini_spot и deadbody_mini_spot)
По-умолчанию они равны "7", поэтому Вы можете вручную подправить эти цифры, чтобы видеть скажем, только мертвых, или только друзей.

zone_map
Чтобы избавиться от цифр счётчика людей на мини-карте, я банально вывел его расположение за пределы экрана (вместо Х=0.94 поставил -0.94), и теперь счётчик НПС находится слева от левого края экрана.

C:\Program Files (x86)\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\sounds\detectors
contact_1.ogg
contact_8.ogg
Теперь мы не видим подсказку о количестве людей, но мы можем ориентироваться по писку детектора людей, что кто-то рядом всё-таки есть, и быть настороже. Чтобы полагаться только на свои глаза и уши, нужно изменить эти два файла, отвечающие за тот самый писк. Я их просто по очереди открыл в Nero Wave Editor, выделил весь файл, меню Звук -> Заглушить и сохранил их с тем же именем. После чего эти звуки остаются и вызываются игрой при приближении НПС, но произносится "немой" звук.

C:\Program Files (x86)\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\textures\ui
ui_actor_hint_wnd.dds - убрал индикатор о шуме и заметности для врагов (синий и зелёный на  мини-карте) и покрасил полоску здоровья в более приятный зелёный цвет
ui_hud.dds - убрал стрелку (показывающую направление к месту задания на  мини-карте)
ui_common.dds - убрал метку героя на карте (показывающую его место и направление) и звезду (показывающую глав отрядов на радаре.

Ссылка на мод с ReadMe, подробно описывающим достижение реализма в Сталкере.

http://yadi.sk/d/Vms1Hv_5CCmbR

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

Кто знает относительно фаила bind_stalker.script ?Он вызывается исключительно из движка? И возможно ли создать (зарегестрировать) фаил bind_stalker2.script ?

Ссылка на комментарий
[actor]:common_ph_friction_params_on_npc_death,actor_base
...
script_binding                        = bind_stalker.actor_init

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

 

Про биндеры можешь покурить статью в теме Справочник функций и классов.

bind_stalker - биндер актёра (несмотря на своё название, сталкеры в нём тоже есть, но они из него перенаправляются в xr_motivator)
Можно ли "нормально" делать два биндера на один объект - скорее всего нет, по крайнем мере я не пробовал.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Можно ли "нормально" делать два биндера на один объект - скорее всего нет

Собственно почему нет? Ставишь один биндер, в нём же инитишь ещё один. Вопрос в другом - а нужно ли это?

 

А где искать ?

Что "где искать"? В файле bind_stalker.script вызывается функция actor_init, которая создаёт объект класса actor_binder. Вызывается эта функция движком.

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

Где написано нашел. Теперь вопрос в том как правильно прописать? 

Через запятую что ли?

script_binding                        = bind_stalker.actor_init,bind_stalker2.actor_init

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

Нет, так ты получишь вылет. Инитить свой биндер можешь прямо в функции bind_stalker.actor_init. Только скажи, для чего тебе два биндера?

 

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

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

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

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

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

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

Войти

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

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

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