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

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


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

Charsi, закоментировал строки, которые Вы указали для "выпадения" Полтергейста, но не увидел желанного эффекта. Может, за данный эффект отвечают другие строки\параметры?

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

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

Простите за беспокойство еще один лог

FATAL ERROR



[error]Expression : BI_NONE != bone
[error]Function : CDamageManager::load_section
[error]File : D:\prog_repository\sources\trunk\xrGame\damage_manager.cpp
[error]Line : 86
[error]Description : bip01_ponytail1

 

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

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

	local obj_clsid = self.object:clsid()
	if obj_clsid == clsid.poltergeist_s then
		if alife():object(self.object:id()) ~= nil then
			-- удаляем полтергейста
			alife():release(alife():object(self.object:id()), true)
			-- спавним фейковый труп
			local sobj = alife():create("polter_dead",self.object:position(),self.object:level_vertex_id(),self.object:game_vertex_id())
			self.object:set_fastcall(function()
				-- ждем спавна трупа
				 local obj=level.object_by_id(sobj.id)
				 if not obj then return false end
				 -- пинаем физическую оболочку
				 obj:get_physics_shell():apply_force(0,0.1,0)
				 return true
			end)
		end
	end 
[polter_dead]
class       = O_PHYS_S
remove_time = 999999
visual = monsters\poltergeist\poltergeist 

 

 

  • Нравится 1
Ссылка на комментарий

А есть способ отследить уход ГГ с уровня, чтобы успеть перевести спейс-рестриктор в другую схему?

Вот допустим пример логики:

[logic]
active = sr_idle@wait
[sr_idle@wait]
on_info = {=actor_on_level(zaton)} sr_idle@wait_out
[sr_idle@wait_out]
on_info = {!actor_on_level(zaton)} sr_idle@wait
  - которая не срабатывает. Проверка {!actor_on_level(zaton)} не успевает отработать и спейс-рестриктор остается все время в последней схеме...можно такое решить?

 

А мне вот интересно, а как ты проверял, что условие не срабатывает?

ColR_iT

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

А мне вот интересно, а как ты проверял, что условие не срабатывает?

Когда уходишь с уровня, потом возвращаешься - рестриктор остается во второй схеме. Проверьте, если не верите.

 

Да, нет я то верю. :ny_megalol: 

Проблема в том, что ты возвращаешься на уровень...

ColR_iT

 

 

Вы меня наверное опять не поняли. Хорошо, чтобы понятней было изменим вот так:

[logic]
active = sr_idle@wait
 
[sr_idle@wait]
on_info = {=actor_on_level(zaton)} sr_idle@wait_out %=send_tip(actor_on_level)%
 
[sr_idle@wait_out]
on_info = {!actor_on_level(zaton)} sr_idle@wait

 

То есть стартуем напрмер на затоне, получаем месседж, потом уходим на Юпитер, возвращаемся на Затон, но месседж опять не получаем. Рестриктор во второй схеме так и висит.

 

Так вот с этого и нужно было начинать.

Проблема не в условии, а в том, что ты от него хочешь. Апдейт работает только в онлайне, поэтому условие и не срабатывает.

ColR_iT

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

Nostrik, клиентский объект актора (game_object) НИКОГДА не меняет локации, т.е.актор всегда находится на той локации, которая загружена из сэйва.

Поэтому любые проверки связанные с ним никогда не покажут смену уровня.

В момент "перед переходом", когда создается автосэйв - серверному объекту актора устанавливаются соответствующие координаты локации, куда актор перейдет после перезагрузки...

Можешь написать что-то свое или использовать проверку из utils.level_changing(), которая как раз и определяет будет ли переход на др.уровень или нет.

Однако, я бы посоветовал, чтобы не рестриктор сам из своего апдейта выполнял бы проверку, а в момент создания автосэйва логика рестриктора должна принудительно проверяться и изменяться. В противном случае, не гарантированно, что сработает очередной апдейт для рестриктора и он сменит логику до записи его состояния в автосэйв. 

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

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

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

Nostrik, есть вопросы, на которые невозможно ответить информативно но кратко...

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

Т.о. у тебя два три пути:

- по факту активизации метода actor_binder:save(...) ловить момент любого  сэйва и уже из него определять "авто-" или нет.

- в биндере твоего рестриктора в соответствующем методе сохранения делать то, что выше...

- добавить в соотв.схему (например в твою sr_idle) недостающий метод сохранения и из него уже выполнять проверки и корректировки активной секции...

 

Собственно готовые решения имеются в некоторых модах, но... парой строчек, без знаний Lua и алгоритмов игры тебе не обойтись. Ищи и обрящешь. ;-)

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

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

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

Понятно, простого решения нет)) Будем искать... Спасибо за инфу!

И вот еще замучил меня этот вылет с жалобами на xrRender_R3.dll(((( И игру переставлял, и юзер.лтх удалял - вылетает! Причем в самых неожиданных местах - может в меню вылететь, или при загрузке игры на стадии амд-роликов, и на чистой игре и с модами. Может что в системе не так? Но ведь раньше все нормально было на этой же системе и с этим железом. Драйвера свежие, железо нормальное...Помогайте братцы, я уже замучился(((

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

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

Ссылка на комментарий
Есть один вопрос. Пытался сам реализовать, но не получилось.

Суть такова. Есть здание ( большое ). Есть один смарт. Нужно, что-бы вокруг здания находилось 3 отряда собак! в разных точках. Здание от начала новый игры далеко ( собаки при старте новой игры оффлайн ), нужно, что-бы при переходе в онлайн, собачки оказались на своих местах.

Что я делал: В squad_descr_pripyat, в секции отряда писал spawn_point = pripyat_fmg4_spawn_point_1 ( и ставил вей поинт с таким-же именем. В итоге когда я прихожу на смарт, собаки появляются в центре смарта, а не на spawn_pont. Ставил 3 точки ( pripyat_fmg4_dog_home_1,2,3 ). В логике смарта писал:


[smart_terrain];собачки! перед КБО!

squad_id = 4  

max_population = 4

 

[exclusive]

dog_1 = fmg\pripyat\logic_dog_kbo.ltx

dog_2 = fmg\pripyat\logic_dog_kbo.ltx

dog_3 = fmg\pripyat\logic_dog_kbo.ltx

dog_4 = fmg\pripyat\logic_dog_kbo.ltx

dog_5 = fmg\pripyat\logic_dog_kbo.ltx

dog_6 = fmg\pripyat\logic_dog_kbo.ltx

dog_7 = fmg\pripyat\logic_dog_kbo.ltx

dog_8 = fmg\pripyat\logic_dog_kbo.ltx

dog_9 = fmg\pripyat\logic_dog_kbo.ltx

dog_10 = fmg\pripyat\logic_dog_kbo.ltx

dog_11 = fmg\pripyat\logic_dog_kbo.ltx

dog_12 = fmg\pripyat\logic_dog_kbo.ltx


Вот логика собачек:


;********************** 1 ***************

[logic@dog_1]

active = mob_home@dog_1

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = true

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_1]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;********************** 2 ***************

[logic@dog_2]

active = mob_home@dog_2

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = true

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_2]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;********************** 3 ***************

[logic@dog_3]

active = mob_home@dog_3

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_3]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;********************** 4 ***************

[logic@dog_4]

active = mob_home@dog_4

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_4]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;*****************5***********************

 

[logic@dog_5]

active = mob_home@dog_5

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_5]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;*****************6***********************

[logic@dog_6]

active = mob_home@dog_6

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_6]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 45

home_max_radius = 100

aggressive_home

 

;*****************7***********************

[logic@dog_7]

active = mob_home@dog_7

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_7]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 65

home_max_radius = 110

aggressive_home

 

;*****************8***********************

[logic@dog_8]

active = mob_home@dog_8

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_8]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 22

home_max_radius = 48

aggressive_home

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;*****************9***********************

[logic@dog_9]

active = mob_home@dog_9

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_9]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 60

home_max_radius = 89

aggressive_home

 

;*****************10***********************

[logic@dog_10]

active = mob_home@dog_10

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_10]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 54

home_max_radius = 84

aggressive_home

 

;*****************11***********************

[logic@dog_11]

active = mob_home@dog_11

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_11]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 71

home_max_radius = 96

aggressive_home

 

;*****************12***********************

[logic@dog_12]

active = mob_home@dog_12

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_12]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 23

home_max_radius = 47

aggressive_home


Если написать в squad_descr_pripyat, в секции отряда target_smart = pripyat_fmg4, то происходит вот такой вылет:


Expression    : !m_error_code

Function      : raii_guard::~raii_guard

File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

Line          : 748

Description   : ...Ð. Çîâ Ïðèÿïÿòè\gamedata\scripts\bind_monster.script:262: attempt to index local 'smart_task' (a nil value)


Там, что-то связанно с работой... Ставил 12 валкеров в смарте... в логике собачек писал monster_job = false (там это в коде есть ). Мб я, что-то не так делаю? 

В оригинальном ЗП видел, как отряд монстров пришел на смарт, некоторые кабаны начали патрулировать, другие спать... смотрел в СДК смарт... вроде стандартный, с гуардами, валкерами, кемпом, коверами... Помогите пожалуйста!

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

Shredder

Звук ходьбы у мобов настраивается параметром material = creatures\*имя параметра* в соответствующем конфиге.

З.Ы. Для кошки, советую поставить бесшумный: material = creatures\phantom.

 

З.Ы.Ы. Народ, подскажите, кто знает, как правильно настроить направление взгляда ГГ, при создании своего перехода между уровнями. Пробовал ставить соответствующие координаты выдаваемые спец. скриптом, но толку нет. В различных статьях по созданию переходов, как через алл.спавн (в моем случае), так и через скрипт, этому не уделяется никакого внимания. Как говориться: "Работает и ладно...".

 

По переходам можешь заглянуть сюда: >>ClicK Me<<

ColR_iT

Изменено пользователем ColR_iT
  • Нравится 3

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

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

FeLLoN

Ну логику ты нормально якобы написал, ну не все.
Здесь много недостающих данных.
1.зарегистрировал ли в simulation_objects_props.ltx Если да то какое оно имеет значение???
2.покажы код сквада собак
3.непонятно какой ты используешь смарт свой ​​или оригинальный??? Если свой то squad_id должен быть уникальным не повторяться.
4.поставь лучше monster_job = true в всех работах собак
5.что за aggressive_home может aggressive = true
6.проверь путти в файле way_pripyat.ltx, а именно префикс имени пути
Если я правильно тебя понял смарт у тебя pripyat_fmg4, ну тогда пути у way_pripyat.ltx должны иметь такие имена
pripyat_fmg4_pripyat_fmg4_god_home_1
pripyat_fmg4_pripyat_fmg4_god_home_2
pripyat_fmg4_pripyat_fmg4_god_home_3
7.что-то мне не нравится такая запись fmg\pripyat\logic_dog_kbo.ltx, ну не знаю точно, надо видеть содержимое папок. Папка fmg
должна быть вместе с папкой smart в папке configs\scripts\pripyat\

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

Что касается этого если хочешь чтобы в твой смарт приходили симуляционные монстры, то напиши такой код у файле simulation_objects_props.ltx. Это уже как повезет, когда кто-то из мутантов придет с другого смарта у твой. Кто знает кабаны, кровососы, собаки, может прийти кто угодно. В том фишка симуляции.

Если ты спавниш в своем смарте отряд, то вряд ли он задержатся там.

[TVOY_SMART]:default_lair
territory 	= 1
sim_avail =  true

 

 

Изменено пользователем S.K.Y.M.I.X.X.E.R.S
Ссылка на комментарий

Здравствуйте.

С анимациями заминка получилась: в схеме remark параметр anim ставлю psy_shoot. Всё идёт нормально: сталкер падает на колени, тяжело дышит, собирается с силами для последнего усилия в его жизни - нажатия отягощёнными пальцами на спусковой курок пистолета и... Падает замертво. Просто падает, выстрела из пистолета нет, а в Build 2232 сталкер после выстрела аж отлетает к стене. Из за чего такой баг может быть?

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

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

Доброго времени суток!

1. У меня такая проблема - ресурсы Зова Припяти распаковал, перекинул в "K:\X-Ray_CoP_SDK\editors\gamedata".

2. Скачал конвертер, распаковал в папку editors.

3. Переименовал fsconverter_cop в fsconverter. В строке 2 прописал свой путь:

 

"$sdk_root$            = false| false| K:\X-Ray_CoP_SDK\editors\"
 

4. В converter.ini изменил следующие строки:

 

; 3870+ (Call of Pripyat включая обновления)
[3870_config]:3456_config
$game_data$            = K:\X-Ray_CoP_SDK\editors\gamedata\
$game_levels$            = K:\X-Ray_CoP_SDK\editors\gamedata\levels\
spawn_version = cop
 

5. Вот мой батник:

 

converter -level zaton -out zaton_decompiled -mode le -with_lods
pause
 

Но при запуске он выдает такое сообщение:

Level name: zaton
can't load zaton
 

Что делать? Или я что-то не так делаю?

С#Н#Т#Р# (CoP 1.6.02)

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

У меня есть вопрос - НПС в логике использует схему remark, как прописать чтобы при этом он смотрел в заданную точку.

 

:ny_use_search: >>ClicK Me<<

ColR_iT

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

Доброго времени суток, коллеги!

Вот меня всегда напрягал поиск артефактов в ЧН/ЗП - при помощи детектора. Вот если подумать, то возникает вопрос: а как же самые первые сталкеры находили артефакты без детекторов? Ведь даже в предыстории игры говорится, что "вслед за сталкерами за изучение Зоны берутся учёные", которые, собсна, и придумали детекторы.

Короче, суть вопроса такова: можно ли артефактам вернуть видимость как в ТЧ? Не всем. Например, самые простые арты найти можно легко; арты покруче найти сложно, но без детектора возможно, но с детектором легче (всевозможные сигналы, отображение на экране и т.п.); ну а крутые арты уже без детектора не найти.

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

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

Wo1fRam, во, хоть кто-то нашёлся, кто разделяет мои чувства! Тоже этот момент меня напрягал и у себя я его исправил так: видимые артефакты - все из ТЧ + несколько новых, засекаемые только детекторами - ново введённые в ЧН и ЗП + несколько новых. А делается это следующим образом: 

Есть строчка в конфиге артефакта - af_rank и есть несколько значений для неё:

0 (видимый), 1 (засекается Откликом и выше), 2 (Медведь и выше), 3 (Велес и Сварог)

И всё.

P.S. Но если делать так, то отпадает надобность в детекторах, а они "прижились", без них будет как-то не так... Но из этого положения выход есть... :russian_ru:

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

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

Сталкер Лом, благодарю. И как же я сам до этого не додумался? :wacko2:

А детекторы я полностью исключать не хочу: самые простые арты, допустим, "Кипятильник" из книг, пусть будет видно - не обшаривать же аномалию с детектором, чтобы кофейку заварить :ny_z_6: А те что покруче будем детектором находить.

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

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

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

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

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

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

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

Войти

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

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

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