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

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


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

 

 

указанный в логе файл я не трогал ВООБЩЕ

А его не обязательно трогать.

Достаточно потрогать что-то, обращающееся к этому скрипту. Частенько такое бывает - привыкнешь))

Ссылка на комментарий
Накануне только 2 новых ранга ввёл. Но вряд ли это как-то связано.

А чего гадать ? Открой death_manager.script и гляди в районе 139 строки - че ему надо.

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

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

ТЧ 1.0006 + НС

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

цепляем подствол с поддержкой ВОГ 25 и ВОГ 25п

делаю активным подствол , заряжаю ВОГ 25п (update_packet.ammo_type=1)

деактивирую подствол (update_packet.ammo_type=1)

сейв/лоад

делаю активным подствол , в подстволе ВОГ 25 (update_packet.ammo_type=0)

если делать сейв лоад с активным подстволом - тип гранаты (соответственно update packet сохраняется)

Сталкивался кто либо с подобным? виноват биндер или конфиг ствола?

Благодарю за информацию!

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

 

 

Если будешь вводить в игру новый патрон - прописка его в _g.script обязательна. В противном случае будет вылет. Сам столкнулся с этим.

А почему у меня не вылетает? :)

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

А почему у меня не вылетает? :)

Наверное , у Вас эта таблица заменена на универсальную функцию :) типа такой:

function ammo_section(section)
	return system_ini():r_string(section, "class") == "AMMO"
end

Ну или еще один вариант - Вы используете metatable c __index с функцией подобной выше выше.

Третий вариант - Вы используете конфиг для загрузки в этот массив... :):ph34r:

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

@Winsor, то есть ту таблицу с патронами можно заменить этой функцией?
 

function ammo_section(section)
	return system_ini():r_string(section, "class") == "AMMO"
end

И, кстати, чуть ниже есть такая таблица с квестовыми предметами. Я добавил квестовый предмет и ничего, вылета нет.

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

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Извините, если не в эту тему написал, но по-моему этому вопросу место именно здесь.
В общем, получил вылет. Вылет происходит при убийстве NPC (новичок у костра из деревни, стрелял прямо в голову):
 

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : <no expression>
[error]Arguments : LUA error: ...\s.t.a.l.k.e.r\gamedata\scripts\death_manager.script:139: attempt to index field '?' (a nil value)

Весь прикол в том, что указанный в логе файл я не трогал ВООБЩЕ (я его даже сравнил с файлом из "чистой" gamedata - полностью совпадает). Не подскажете, в чём дело. Накануне только 2 новых ранга ввёл. Но вряд ли это как-то связано.

 

Всё, решено.
Скорее всего, это ошибка была не из-за введения нового ранга, поскольку я полностью откатил это "нововведение".
Вероятнее всего, ошибка была в файлах death_***.ltx, поскольку я там что-то кусками вставил. Я потом нормально всё дописал и вылетов больше не было.

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

Хм...А что по твоему означает stalker_movement_speeds

И чему кстати лезть в такие дебри. Где регулируется скорость ГГ - известно всем.

Думаю ты не понял суть вопроса - скорость гг где регулируется это понятно, но я спрашивал про ЗНАЧЕНИЕ скорости неписей, чтобы прописать в графу скорости актера...

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

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

 

 

Думаю ты не понял суть вопроса

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

Скорость движения у разных неписей может отличаться друг от друга. Допустим монолитовцы могут двигаться не так как сталкеры и т.д. А ты хочешь всем неписям прописать скорости ГГ. Не легче более-менее подогнать скорость ГГ к скоростям неписей?

ЗЫ...

Насколько я понимаю - тебе надоело натыкаться на кого-нить во время сопровождения и т.д.

Но и ходить(бегать) медленно тоже не в кайф.

Это как в поговорке про ёлку. И залезть хочешь и не уколоться...Так не бывает.

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

@Winsor, то есть ту таблицу с патронами можно заменить этой функцией?

 

Можно, главное правильно в используемых местах переделать обращение к этой таблице на вызов Вашей функции. Либо, чтобы не переделывать все и вся - изменить саму таблицу таким образом с использованием setmetatable __index , чтобы вызывалась Ваша функция. 

 

 

Уважаемые - по поводу проблемы с подствольником - это может кто-то подтвердить или это только моя проблема? 

Благодарю!

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

Про ammo_sections:

 

Поиск дает dunin_ammo.script, repair_check.script, restriction_stock.script, rx_wmgr.script.

То есть, один файл из amk, и 3 навески на него.

Что они с ним делают ? Правильно, проверяют секцию. По тому что в class_registrator не прописан класс для ammo.

Да, отдельный интересный вопрос - что в этой таблице делают гранаты. При том, что в другой подобной таблице граната прописана как то, из чего можно стрелять. ;)

 

Аналогично с quest_items.

 

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

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

 

 

Уважаемые - по поводу проблемы с подствольником - это может кто-то подтвердить или это только моя проблема? 

@Winsor, насколько я помню, просто так управлять неактивным типом зарядов с помощью update-части нет-пакета не получится. Если не ошибаюсь, тут надо рыть в сторону абстрактной части, причём оперировать ею будет несколько сложнее, так как она доступна только во время исполнения метода STATE_Write для серверного объекта (этот метод должен быть вызван движком, а не скриптом, то есть, по сути, для этого доступен только один момент - выход объекта в онлайн, когда клиентский объект считывает из движкового нет-пакета свои данные. Вот тогда абстрактную часть и можно прочитать и изменить).

Детали можно найти поиском в обсуждениях двух-трёхлетней давности, например кое-какая косвенная информация есть здесь.

  • Спасибо 1
Ссылка на комментарий

Ребята,  поможете? Какой код надо написать, чтобы при поднятии предмета сработал любой скрипт?

 

http://www.amk-team.ru/forum/index.php?showtopic=13054 - не кошерно ? dc

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

 просто так управлять неактивным типом зарядов с помощью update-части нет-пакета не получится.

Т.е. насколько я понял - такая проблема есть и в оригинале?

Если да - как и кто решал такую проблему?

Спасибо!

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

@Winsor, в оригинале этой проблемы нет, так как разрабам игры не было необходимости править таким образом нет-пакеты из скрипта. :)

Я же написал, что следует сделать - пощупать abstract-часть нетпакета. Естественно, с ней работали - см. мою ссылку, да и поиск на форуме работает, - но из тех, кто есть сейчас на форуме, вряд ли кто-то этим так уж заморачивался (я конкретно про тип зарядов). Попробуй ты, посмотри, что там есть, как можно менять, какой эффект, и отпиши здесь результат. Может, я вообще ошибаюсь, и рыть надо в другом месте.

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

@Vadyanchikus, насчет квестовых предметов - сказать не могу ничего, не знаю. А вот с новым патроном, правда, не у меня самого, а у другогго мододела, был вылет. И пока он патрон в _г.скрипт не прописал, вылет не исчез. Возможно, это связано с перепаковщиком патронов (dunin_ammo.script).


 

 

Не подскажете, в чём дело. Накануне только 2 новых ранга ввёл.

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

Сталкер - наше всё!

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

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

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

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

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

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

Войти

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

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

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