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

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


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

Если же мы возьмем Шустрого, то первой точкой у него АТП, ага.

Да, и потом он бежит в деревню новисов, а в моем случае, если бы я сохранился в этот момент когда он бежит, а потом загрузился, он бы побежал обратно на АТП в первую точку (где он на коленях сидит), встал там на секунду, развернулся, и побежал бы обратно в деревню, отрабатывая волкера повторно с начала, а не от момента сохранения.

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

Для начала хоть уточни: они у тебя под смартом, или сами по себе ?

Ну и про OGSE тоже момент важный.

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

они у тебя под смартом, или сами по себе

Без смартов. Обычные квестовые НПС управляемые чисто логикой *.ltx, коих сотни в других модах. 

Да, что-то явно в ОГСЕ, ибо на чистой игре все ОК, но понять бы возможные причины такого сбоя как таковые, а там видно будет от чего отталкиваться.

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

У меня подобное было с погодой. На Затоне нормально, В Припяти резкая смена погоды. Я два месяца понять не мог, где косяк, пока лишние скрипты не выкинул. Так и не понял где было.

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

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий
AndrewMor, вот соляночная функция для спауна вещей кому угодно:

Чего-то не догоняю, как в твоей функции npc заменить на inventory_box, точнее, как прикрутить мою строчку

 

local obj = alife():object("pred_rukzak")

 

к Соляночной функции?

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

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

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

Ерундой занимаетесь.

Для спавна во что-нибудь надо id этого самого чегo-нибудь.

дальше - alife():create( "чегонадо", vector(), 0, 0, id )

 

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

 

Как получить id того, в кого спавним - вопрос другой. Тайник создается на ходу, или где-то готовый лежит ?

Если создается, то

local obj = alife():create( "тайник", позиция, lvid, gvid )

if obj then alife():create( "чегонадо", vector(), 0, 0, obj.id ) end

 

Если готовый, то как создан ? Есди в олспавне, то local obj = alife():object( имя из олспавна ) и далее по тексту.

Если создан неизвестно когда неизвестно где - озаботьтесь способом его найти.

 

 

Производить простейшую операцию через 100500 скриптов, смысл которых в том, что они меняют местами lvid и gvid - чтоб ни кто не догадался - плохая, негодная идея.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
Для спавна во что-нибудь надо id этого самого чегo-нибудь.дальше - alife():create( "чегонадо", vector(), 0, 0, id )

Да так и делаю. Только при сейв/лоад содержимое пропадает. Спавню вот так:

function spawn_card()

local obj = alife():object("pred_rukzak")

if obj then

alife():create( "access_card", vector(), 0, 0, obj.id )

end

end

 

 

 

 

 

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

А это вот как сделать?

Dennis_Chikin, и вдогонку вопрос: если спавн в тайник происходит на текущей локации, тайник всегда в онлайне, даже если далеко от ГГ, или нет?

Изменено пользователем AndrewMor
Добавлено Dennis_Chikin,

Радиус алайфа.

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

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

if level.object_by_id( obj.id ) then

alife():set_switch_online( obj.id, false )

end

ну и где-то как-то потом выполнить обратный процесс

if not level.object_by_id( ид тайника ) then

alife():set_switch_online( ид тайника, true )

end

 

p.s.

 

 

 

 

Это нынче так модно ?

 

 

 

 

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

 

 

ну и где-то как-то потом выполнить обратный процесс

А если сразу сей процесс выполнить? Или надо какое-то время конкретное подождать?

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

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

Может банальнo не успеть.

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

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

Поэтому, чтобы не ждать , можно просто трансферить предмет при выходе его в онлайн из ящика в него же - это и делает функция, которую написал @dsh. Но тут тоже есть одно "но" - она предназначена для спавна в клиентских InventoryOwner'ов, так что придется дождаться выхода в онлайн заспавненного тайника.

 

А вообще можно - самое простое - добавить ящику custom_data в секцию, в файле которой прописать в секции spawn нужные предметы.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

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

 

Вообще, по-хорошему, давно пора уже в ящиках и прочих рюкзаках хранить не объекты, а записи о них. И еще от кучи проблем избавит.

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

 

 

А вообще можно - самое простое - добавить ящику custom_data в секцию, в файле которой прописать в секции spawn нужные предметы.

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

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

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

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

Насколько я помню, в OGSE параметры текущей логики дополнительно сохраняются в серверном объекте. Ткнуть пальцем сейчас не могу, ибо на планшете.

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

 

 

А вообще можно - самое простое - добавить ящику custom_data в секцию, в файле которой прописать в секции spawn нужные предметы.
Зачем такие сложности с кастом датой, если можно сделать любой ПУСТОЙ ящик\рюкзак в оллспавне и по событию запихнуть в него то,  что надо.

Например , кусочек из скрипта Солянки

local items = {["патроны"] = 3, ["пушка"] = 1, ["антирад"] = 4, ["аптечка"] = 2, ["артефакт"] = 1}
        local t_box = alife():object("имя ящика в оллспавне")
        if t_box then
           local pos  = t_box.position
           local lvid = t_box.m_level_vertex_id
           local gvid = t_box.m_game_vertex_id
           local id   = t_box.id
           for k,v in pairs(items) do
            for i = 1, v do
             alife():create(k, pos, lvid, gvid, id)
            end
           end  

И не важно где будет этот ящик, в онлайне или в оффлайне. Способ проверен и работает.

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

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

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

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

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

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

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

Войти

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

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

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