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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

 

 

То есть, если виновник установлен, то и КАК оно происходит - тоже должно быть вполне очевидно. Да, в зависимости от местоположения объектов некорректные действия над ними дают постоянный вылет.

Объясни поподробней пожалуйста тот момент где сохраняется этот вирус-вылет.

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

Если ты внимательно читал мои предидущие посты, то я до агропрома доходил много раз, при чём все разы с новой игры, и не было этого вылета. А потом он появился, и стал стабильным. И я скачал мод где его нет, т.е версию где я не ковырял, и думал что в ней будет всё нормально, но у меня он теперь всё равно есть и там. Вот это вот объясни поподробней.

Чего-то затупил: как скриптом проиграть партикл? Если можно в СДк глянуть, то как?

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

@AndrewMor, в СДК глянуть это тебе надо в партикл эдиторе открыть свой файл и выбрать нужный партикл, а проиграть, есть такой класс, но том движке, на котором я сижу он выглядит вот так:

C++ class particles_object {
    particles_object (string);
    
    function pause_path(boolean);
    function play_at_pos(const vector&);
    function move_to(const vector&, const vector&);
    function looped() const;
    function last_position() const;
    function stop_path();
    function load_path(string);
    function start_path(boolean);
    function stop();
    function stop_deffered();
    function set_direction(const vector&);
    function set_orientation(number, number, number);
    function play();
    function playing() const;
};

Объясните пожалуйста почему spawn_sections.ltx не держит инклудов. Я так и не нашел концов этим артефактам :(. С ним олл.спавн работает напрямую штоле?

Кто использует респаунеры из Солянки, которые при спауне мутантов делают вот так:

      local t = amk.read_monster_params( obj )
      if ( not t.custom ) or string.len( t.custom ) == 0 then
        local cfg_name = utils.cfg_get_string(
          sini, "respawn", "creature_binded_logic", false, false, false, ""
        )
        t.custom = "[logic]\ncfg = scripts\\amk\\" .. cfg_name .. ".ltx"
        amk.write_monster_params( t, obj )
      end

Имейте ввиду, если в файле, подключаемом через вышеуказанный "cfg", есть

[smart_terrains]
none = true

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

 

Вообще, соляночный код меня поражает. Кто-то, вероятно, сделал подключение логики таким образом. А кто-то другой начал писать файлы логики со smart_terrains, даже не удосужившись проверить, а работает-ли оно. И все это годами используется и всем пофиг. А я удивляюсь, да что за фигня, куда делись тушканы на остановке АТП, которые там раз в сутки должны респаунится. А они ушли на АТП, в гулаг тушканов.

нашла ответ на свой вопрос 

 

@stalk9r, sid Воронина: 507.
Попробуй так помирить:

function my_func()
	local sobj = alife():story_object(507)
	local lobj = sobj~=nil and level.object_by_id(sobj.id) or nil
	if lobj then
		lobj:set_relation(game_object.friend, db.actor)
	end
end
Только запускай функцию, когда Воронин в онлайне. Иначе не сработает.

 


Увы не как не могу найти в каком файле исправлять данные значения и ещё как понять Воронин должен быть онлайн. Подскажите пожалуйста. 

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

Группировка stranger и файл character_desc_stalker.xml вообще кому-то где-то надо? Или можно их того? Ну и чего таить, все уж character_desk_группировка тоже послать {на север через свалку}.

 

Это было послание телепатам ? Поиск по файлам инересующего слова обычно помогает и без телепатов, да.

Где-то что-то такое я тут уже слышал :(. Ну ладно, коли так, то займусь совершенствованием трансцедентального, и впредь тут постараюсь вопросов не задавать, да. Изменено пользователем Карлан

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

Всем хай, возникла интересная проблема:
Добавил новую анимацию (перегнал из ЗП в ТЧ), она прекрасно работает, но до тех пор пока рядом нет гулага!
То есть, если НПСа с отдельным файлом логики заспавнить рядом с гулагом (к которому этот гад не каким боком не причастен), то новая анимация просто перестает работать! НПС тупо стоит на месте! И ему плевать что в логики есть секция: 

[smart_terrains]none = true

Но стоит мне взамен новой анимации поставить стандартную, то все прекрасно работает!

Так вот в чем собственно вопрос:
Где и в каких настройках надо прописать анимацию что бы гулаг (или смарт) отстал от НПСа?

Пытаюсь создать глобальный мод с новым сюжетом,буду рад любой оказанной помощи

 

 

мутант тут-же уйдет в подходящий, свободный гулаг.

Это при наличии у него в логике

[smart_terrains]
none = true

А я вот всю дорогу думал, что он вообще ни в какой гулаг не пойдет. Может я не прав ?

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

 

Ты не удосужился даже логику показать, под какой схемой он работает, на что ты вообще надеешься?

 

 

А я вот всю дорогу думал, что он вообще ни в какой гулаг не пойдет. Может я не прав ?

 

При наличии

[smart_terrains]
none = true

не пойдет. Ты правильно думал. Но! При условии, что эту секцию кто-нибудь прочитает и соотв. действия выполнит. Например, в приведенном мной примере

[logic]
cfg = tra\la\la\mylogic.ltx

наличие [smart_terrains] в файле mylogic.ltx ни на что не влияет. Секцию [logic] читает xr_logic.script, а ему смарт террейны до лампочки. Но в приведенном мной примере проблема даже не в этом, а в том, что сразу после alife():create() мутанта и до записи ему custom data, которая идет в следующих строках,  мутант попадает в свободный гулаг.

 

Как я это обошел, можно посмотреть тут:

 

https://github.com/dsh2dsh/op2ogse/commit/4a8691d89e89b1aaa5323258566ac70b3e9c0ab1

 

См. в самом низу изменения в se_monster.script и se_respawn.script. Грязный хак, но лучше решения я придумать не смог.

Но в приведенном мной примере проблема даже не в этом, а в том, что сразу после alife():create() мутанта и до записи ему custom data, которая идет в следующих строках, мутант попадает в свободный гулаг.

Вроде распределение по гулагам идет на апдейте - custom_data должна спокойно записываться.

Кроме того custom_data можно задать прямо в конфиге секции.

Вроде распределение по гулагам идет на апдейте - custom_data должна спокойно записываться.

 

Отладка показывает, что присваивание смарт террейна происходит вот тут

function se_monster:on_before_register()
	if modified_params then -- при наличии таблицы с данными для замены
		-- читаем из родного пакета данные
		local params = m_net_utils.get_monster_data( self )
		replace_params( modified_params, params )
		m_net_utils.set_monster_data( params, self )
		modified_params = nil -- обнуляем табличку с исходными данными
	end
	self:fill_exclusives()
end

С modified_params - это уже мое.

 

Кроме того custom_data можно задать прямо в конфиге секции.

 

Ты же не предлагаешь для каждого респаунера делать мутантов со своими секциями? Это соляночные респаунеры, они скриптово задаются и мутанты в них спаунятся самые обычные, какие в конфиге задали. Тем более, что во всех Солянках, мутантам в этих респаунерах задается своя логика. А это значит, что custom_data у них должна быть разная, в зависимости от респаунера.

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

У свежезаспавненного монстра очевидно нет ни каких эксклюзивов. Соотвественно, они ни где не запоминаются.

Изменено пользователем Dennis_Chikin
Это не соляночный код.

 

Упс... Не ожидал, что в ОП-2 это изменено. Вот из ОП-2:

function se_monster:on_before_register()
	self:fill_exclusives()
end

В Солянке по другому?

 

 

У свежезаспавненного монстра очевидно нет ни каких эксклюзивов. Соотвественно, они ни где не запоминаются.

 

Отладка показывает, что свежеспауненого мутанта немедленно, вон в том коде, затягивает в любой свободный гулаг. Если выразиться точнее, не в том коде конкретно, а в промежутке между create() и вызовом amk.on_REspawn(), который вызывает amk_mod.respawned(), который и ставит мутанту custom_data.

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

Я что-то запутался, скрипт smart_terrain.script, в оригинальном должна быть 1031 строка, вот эта:

local ltx         = ini_file( "misc\\" .. self.gparams.type .. ".ltx" )

Собсно что есмь такое? type я тут понимаю - имя гулага, собственно какая роль этого конфига в этом скрипте? Чисто статистическая?

Отладка показывает, что свежеспауненого мутанта немедленно, вон в том коде, затягивает в любой свободный гулаг. Если выразиться точнее, не в том коде конкретно, а в промежутке между create() и вызовом amk.on_REspawn(), который вызывает amk_mod.respawned(), который и ставит мутанту custom_data.

Не знаю, что там в моде. Есть чистый ТЧ, se_respawn.script:

obj = alife():create(spawn_section,
	...
obj:brain():update()
local smart_terrain_id = obj:smart_terrain_id()
То есть для распределения по гулагам специально вызывается obj:brain():update(). До этого вызова смарт не задан.

@abramcumner, а при чем тут чистый ТЧ, если я в самом первом сообщении, на эту тему, написал:

 

Кто использует респаунеры из Солянки, которые при спауне мутантов делают вот так:

 

Ах да, это же русский форум. ;)

ТЧ 1.0006 + НС 

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

В том же пресловутом watcher_act.script есть проверка по npc:memory_visible_objects() , по которой сталкеры движутся к выброшенному объекту из инвентаря. но физические объекты не попадают в этот список. 

Т.е. я хочу, чтобы сталкер подошел к "брошенному" (заспавненному ящику) и, например, попытался сделать "use" на него. само собой, ящик спавниться абсолютно произвольно. Эти объекты можно "увидеть" в amk_offline_alife.script но как то странно срабатывает , т.е. сталкер может "заметить" ящик за 400 метров от себя, игнорируя тот что лежит под ногами...

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

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

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

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

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

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

Войти

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

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

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