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

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


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

@AndrewMor, Вроде всё верно, но зачем столько лишних телодвижений со строкой <text /> ? Указал её в красном поле. Сначала ты разветвляешь диалог, потом зачем то 2 раза с помощью этой строки переводишь фразу от ГГ НПСу и обратно. Почему не поставил прекондишен сразу перед фразой (зелёным выделено) и убрать не нужную секцию ?

1fe827aecd931ac6ded37e4a60d6fb645eb4bd25

"Кругом зомби.....у меня кончаются патроны...."

Йо. 1. Подскажите, где находится параметр, отвечающий за время респавна артефактов в аномалии.

2. Как добавить в ту или иную аномалию спавн артефакта? К примеру, создал на новой локе жарку, и хочу в неё добавить спавн капли и огненного шара. Спасибо заранее.

@Vitalik Izotop

В оригинале SoC нет никакого респавна артов в аномалиях. Если ты о каком-то моде, то хотя-бы уточни - о каком ?

@UnLoaded, хм... это ввело меня в заблуждение. На примере подземелья агропрома: каждые 1,5 суток (точный интервал не вычислил) в полночь у электры спавнится вспышка. Бывало, зачистил полностью локу от артов, а они потом в ночь снова появляются. Игра без модов, поэтому и спрашиваю. Может что-то путаю, но ещё знаю, что в ЧН и ЗП респавн артов есть 100%

@Kondr48,

alife():set_switch_online(box.id, true)
alife():set_switch_offline(box.id, false)
Потом немного подождать, пока он (ящик) выйдет в онлайн, и можно трансферить предметы.

Проблема вылезла в том, чтобы узнать id ящика. У меня есть только story_id его. level_object_by_sid возвращает game_object или я не правильно понял? В любом случае когда тайник в офлайне он мне nil возвращает.

P.S. Или же ткните, где есть реализованная на базе ТЧ функция ограбления ГГ, чтобы все его шмотки перепорхнули в нужный ящик. Я с оригинала только арену вспомнил, но там ящик как раз-таки в онлайне, что мне не подходит.

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

@Kondr48

Ну почему только level_object_by_sid ?

У класса alife_simulator есть метод story_object, используй его:

local sim = alife()
local soBox = sim:story_object(тут SID твоего ящика)
  • Спасибо 1

Опять. Тестил подземелья: стабильно спавнится вспышка и бенгальский огонь у электр. Есть шанс появления двух бенгальских огней сразу!

Теперь хочу найти параметр, отвечающий за респавн. Не вижу его..

Теперь хочу найти параметр, отвечающий за респавн. Не вижу его..

В конфигах аномалий есть:

artefacts = af_rusty_thorn,0.7,af_rusty_kristall,0.25,af_rusty_sea-urchin,0.05
BirthProbability = 0.1

Если я не ошибаюсь, то этот респавн происходит только при выходе аномалий в он-лайн.

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

1. Насколько я знаю, сталкеры и мутанты с определённой вероятностью могут покинуть гулаг и начать путешествие по локациям в поисках другого свободного. ( собаки уходят с агропрома на свалку, плоти идут на агропром. Сталкеры с арм.складов в бар ходят. Второстепенные персонажи, типо Фраера и Кочерги шляются из гулага в гулаг. ) Какой параметр отвечает за вероятность "желания" уйти с гулага в свободное путешествие?

P.S. Unloaded, правил конфиг аномалий, респавн артов всё равно составляет 1,5-2 суток. Разве что получилось заспавнить огненный шар в карусели)

Кстати говоря, для меня загадка, откуда при переходе из ТД на кордон позади тебя спавнятся 10-13 бандитов. Если АТП заполнено, другие гулаги тоже, то какая цель? Или это наитупейший маршрут на свалку, где они должны были остановиться?

 

 

Почему не поставил прекондишен сразу перед фразой (зелёным выделено) и убрать не нужную секцию ?

Опытным путем выяснил, что вылет идет из-за precondition, если его убрать(закомментировать) - все работает. Тады вопрос: почему?

function bandits_death(actor, npc)
  if not has_alife_info("job_kill_bandits") then
        return true
  end
        return false
end

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

Тады вопрос: почему?

Ну так что не ясно: видимо условие в прекондишене не выполняется, он возвращает false, движок соответственно не может "построить" дальше диалог -> вылет. Для диалогов с ветвлениями есть такое правило - должна быть хотя-бы одна ветка, которая будет доступна и движок сможет "построить" ее до конца.

 

Насколько я знаю, сталкеры и мутанты с определённой вероятностью могут покинуть гулаг...

Все зависит от условий. Если мобу, в его кастом-дате, однозначно прописан гулаг, он его не покинет никогда. Если моб просто подошел по параметрам и взят в гулаг - его может "вытеснить" с работы\из гулага более подходящий моб. Все это регулируется в xr_gulag.script, в скриптах гулагов и в профилях мобов.

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

Вопрос про серверные и клиентские классы. Чтобы сделать "скриптовую обёртку" для серверного объекта ( в смысле как se_stalker.script ) нужно, чтобы этот класс был зарегистрирован в class_registrator.script, а так же, чтобы был экспортирован клиентский(?) класс ( CMosquitoBald и тому подобное) . И так как классы CNoGravityZone и CRadioactiveZone не экспортированы, такую вот "обвязочку" им не сделаешь. Я правильно всё понял?

... А наше дело маленькое - с ружьём да по болотам. (с)

 

 

Ну так что не ясно: видимо условие в прекондишене не выполняется

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

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

 

Все зависит от условий. Если мобу, в его кастом-дате, однозначно прописан гулаг, он его не покинет никогда. Если моб просто подошел по параметрам и взят в гулаг - его может "вытеснить" с работы\из гулага более подходящий моб. Все это регулируется в xr_gulag.script, в скриптах гулагов и в профилях мобов.

Что значит "более подходящему", если на гулаге не стоит условий, и туда могут зайти любые сталкеры, но тем не менее один опытный одиночка вытесняет другого, хотя по профилю они все одинаковы "agr_stalker_regular

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

такая проблема создал нпс по тутору просто скопировал код)))и все норм. работало и тут решил создать второго нпс тоже по тутору тому же самому и просто поменял все имена esc_unik_npc на gan_store

и выбивает ошибку вот лог

Expression    : m_pItemDataVector->end() == t_it
Function      : CXML_IdToIndex<class CCharacterInfo>::InitInternal
File          : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
Line          : 184
Description   : duplicate item id
Arguments     : esc_unik_npc

 

 

 

просто поменял все имена esc_unik_npc на gan_store и выбивает ошибку вот лог

Значит, не везде поменял :)

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

Значит, не везде поменял :)

ну везде все проверил все поменял

ну везде все проверил все поменял

все извините это я протупил в nps_profile.xml забыл поменять id

 

 

но тем не менее один опытный одиночка вытесняет другого

Мало информации, чтоб что-то конкретно понять: что за гулаг, что прописано в checkStalker(...), при каких условиях там неписи друг друга вытесняют, чистая SoC или мод...

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

  • Нравится 1

Словил вылет:

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

Ругается на строчку (выделена красным жирным)

if infop.params then
      xr_effects[infop.func](actor, npc, infop.params)
     else
      xr_effects[infop.func](actor, npc)
     end

 

в функции pick_section_from_condlist(actor, npc, condlist). В чем может быть причина?

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

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

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

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

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

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

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

Войти

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

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

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