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

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


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

karavan, причина в банальной рассинхронизации между моделью серверного об'екта и клиентского. Хотя менеджеры состояний и анимации работают с онлайновыми об'ектами, но немало кодов/условий/проверок идет и от серверного ... Да и просто не исключаю, что информация для анимаций и подобного кешируется где-то в движке и при подобном "онлайновом" переодевании просто не обновляется, хотя ... это наврядли, т.к. тогда от времени не так сильно зависело бы.

Да и какая разница, решение по смене визуала давно есть и вполне приемлемое. А эта функция со своими нюансами может кому сгодиться для специфических моментов ...

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

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

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

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

Уважаемый Artos, не мог бы ты поделиться со мной библиотечкой для работы с нет-пакетами для чистой версии COP 1.6.02, если таковая имеется в твоём запасе? Просто оказалось, что взятые мной функции из различных модов искажают нет-пакет, даже если я совершенно не трогаю файл se_stalker, т.е. не добавляю какие-либо параметры.

По поводу флага смены визуала. Сразу хочу сказать Спасибо! Т.к. твои слова просто писать переменную в pstor твоему об'екту меня просто осинили. Я почему то всегда думал, что pstor - этот только для actora, но сейчас глянул эти функции и убедился, что это не так.

 

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

Shredder

1. Модуль нет пакетов в моем исполнении кроссплатформенен и может использоваться во всех трех играх релизных патчей ТЧ/ЧН/ЗП;

2. В топике по скриптам можно найти ссылку на вполне актуальную мартовсую версию ...

3. Учитывая пару мелких (неособенно востребованных правок) выкладываю последний на 'сейчас' вариант:

m_netpk от 25.05.2012 (~26.9 кБ)

 

Ну а насчет флага - поэтому и не устаю повторять, что в вопросах всегда стОит говорить о цели, а не зашориваться только на, зачастую далеком от оптимального, выбранном пути реализации ... ;-)

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

 

А файл se_stalker - это конструктор об'екта класса, и не обязательно только в нем курочить созданные в нем серверные об'екты. В любом месте, если ты работаешь с серверные об'ектом - ты можешь его запороть ... Важно абсолютно точно соблюдать формат нет-пакета (каждый бит!), учитывая и класс об'екта и версию игры/мода!

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

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

Ссылка на комментарий
karonbaron, об этом уже много раз писалось и статья на вики есть. Нужно зарегить смарт в simulation_objects_props. ltx с параметром surge = 1 и создать работы (way points типа смарт_surge_1_walk (look)), чтобы нпс юзали укрытие.

 

Да? Что-то я там нормальной статьи не нашел, где-бы пошагово все доходчиво объяснялось. Если нетрудно, скинь, пожалуйста, ссылку на эту статью в личку мне. Спасибо.

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

Подключил локи с Чн на ЗП и при проигрования видео в начале происходит вылет

Expression : !m_error_code

Function : raii_guard::~raii_guard

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

Line : 748

Description : ....r. - Зов Припяти\gamedata\scripts\xr_effects.script:2685: attempt to index field 'actor' (a nil value)

 

Перепробывал всё,и гуглил ,и сам пытался исправить не чё не выходит.Помогите плиз.

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

Возвращаюсь к вопросу визуалов и нет-пакетов. У меня походу скоро крыша поедет. Использование m_netpk не к чему не привело, т.к. грёбаные гитары, гармошки и прочая хрень всё также появляется у трупов. Собрал отдельную сборочку: В папке gamedata две папки configs и scripts. В папке configs всего один файл m_netpk.ltx. в Папке scripts 3 файла: m_netpk.script, mod.script и xr_motivator.script.

function logf(str,...)

if not str then

str = "((string is nil))"

end

get_console():execute("load ~#I#:"..string.format(str,...))

end

 

function npc_first_update(npc)

logf('npc update [%s]', npc:name())

if npc and npc:alive() then

local pk = m_netpk.get(alife():object(npc:id()))

if pk and pk:isOk() then

mod.logf("pk is OK")

local npc_data = pk:get()

npc_data.visual_name = [[actors\stalker_neutral\stalker_neutral_nauchniy]]

pk:set(npc_data)

end

end

end

function motivator_binder:update(delta)

 

...

 

if self.first_update == false then

if object_alive == false then

death_manager.drop_manager(object):create_release_item()

end

mod.npc_first_update(object)

self.first_update = true

end

 

...

end

 

m_netpk.script не изменял.

 

В результате, при убийстве npc у него появляются (а точнее не исчезают) вышеупомянутые предметы...

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

Подскажите пожалуйста, в чем разница логик animpoint и smartcover? Как я понял последняя необходима для боевых смарт каверов?

Freedom

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

Shredder, сколько тебе можно говорить - За лут отвечает death_manager.script и его конфиги!

Нет-пакетами ты только можешь убирать или возобновлять флаг выдачи лута и не более, за ассортимент отвечает только менеджер лута!

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

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

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

Artos я это прекрасно понимаю! Как раз флаг выдачи лута устанавливается в true после записи нет-пакета. Если в приведённом выше примере я не записываю нет-пакет, то с флагом всё в порядке. Ни файл death_manager.script, ни его конфиги (death_items_by_communities.ltx, death_items_by_levels.ltx, death_items_count.ltx) я вообще не трогаю. Я отдельно собрал минимальный набор файлов, который привёл выше. Там всё просто, как три копейки, но флаг death_droped становиться true после записи нет-пакета. Вот ссылка на архивчик с этой минисборкой. Уважаемый Artos, если найдёшь время - посмотри пожалуйста. Я уже 4-ый день не могу спокойно спать и работа над модом стоит...

 

(вообще вот это уже лучше в ЛС, дабы не засорять частностями)

Уточни версию патча твоей игры (SHoC 1.0004/5/6 ru/ww) ? Заодно проверь, нет ли в папке игры лишних *.dbN## иль в подпапке 'mods' *.xdb##.

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

--/Artos

Изменено пользователем Artos
Ссылка на комментарий
_Призрак_, я сам в этом не эксперт, но насколько я знаю, анимпоинт юзают когда логика идёт по путям, а смарткавер - это "пришёл, уселся и отыгрывает одну и ту же анимацию"

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

Есть у кого нибудь Darkscape для ЗП ? Потому как -

Подключал Darkscape из рма мода, подключил, вылет с таким логом:

FATAL ERROR

 

[error]Expression : assertion failed

[error]Function : CLevelGraph::CLevelGraph

[error]File : D:\prog_repository\sources\trunk\xrGame\level_graph.cpp

[error]Line : 35

[error]Description : header().version() == XRAI_CURRENT_VERSION

 

 

stack trace:

 

На АМК форуме сказали что аи сетку надо перекомпилировать, но даже лока не декомпилиться. Есть у кого нибуть декомпиленая ? Ну или сама лока с исправленой аи сеткой ?

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

SibireaStalker

Логика анимпоинт работает так - указывается смарт_кавер, НПС идет туда, занимает его и отыгрывает анимацию, пока что то не выгонит его с его работы.

Freedom

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

Вопрос - при переносе уровня на ЗП еногда игра в последствии выдает такой лог

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CResourceManager::_GetBlender

[error]File : D:\prog_repository\sources\trunk\Layers\xrRender\ResourceManager.cpp

[error]Line : 60

[error]Description : <no expression>

[error]Arguments : Shader 'бла-бла-бла' not found in library.

 

stack trace:

:russian_ru:

как с этим боротся (обойти)????

 

Добавлено через 19 мин.:

*иногда B)

 

Добавить недостающий шейдер.

ColR_iT

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

47.gif

LXTwrBW.png
ukgXKMe.png

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

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

Вот пример одной из них:

[logic@predban_a15_bandos]

active = walker@bandos_1

 

[walker@bandos_1]

path_walk = guard_1_walk

path_look = guard_1_look

meet = meet

combat_ignore_cond = true

combat_ignore_keep_when_attacked = true

 

И guard_1_look, guard_1_walk:

 

[guard_1_walk]

points = p0

p0:name = name00|a=guard

p0:flags = 0x1

p0:position = 229.758270263672,-0.0100167440250516,0.700320720672607

p0:game_vertex_id = 3209

p0:level_vertex_id = 59900

 

[guard_1_look]

points = p0

p0:name = name00|a=guard

p0:flags = 0x1

p0:position = 229.758270263672,-0.0100167440250516,0.700320720672607

p0:game_vertex_id = 3209

p0:level_vertex_id = 59900

 

 

И вот что он вытворяет:

http://www.youtube.com/watch?v=9KA09WXfymc&feature=plcp

Может я что-то не так делаю ? Раньше работало а теперь нет.

Изменено пользователем Batment
Ссылка на комментарий
Batment, чтобы НПС стоял и отыгрывал анимацию, то нужно ставить флаг анимации только в точке look, причём только из раздела "Стоячие состояния" в файле state_lib.script. Если же поставить таковой флаг в точке walk, то это будет означать, что НПС должен идти в эту точку с указанной анимацией, естественно анимации нужно брать из раздела "Ходячие состояния" того же файла, а ты ставишь стоячую анимацию guard, отсюда и вылеты.
Ссылка на комментарий

ColR_iT он у меня кругами вокруг точки guard_1_walk ходит, а должен поидее стоять, вот в чем проблема

 

Убери из точки walk флаг анимации (a=guard).

ColR_iT

 

Добавлено через 52 мин.:

ColR_iT Все равно ходит по кругу

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

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

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

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

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

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

Войти

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

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

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