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

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

@Kirgudu И снова дьявол кроется в деталях: если сравнить имена объектов, то в твоем сейве имя pseudodog_weak#, а у меня проблема с мутантом, который живет в пещере за АТП и имеет уникальное имя esc_pseudodog_strong. У слабой псевдособаки вызов binder:load действительно ловится, у этой – нет.

В [all.spawn] для этого зверя указано section_name = pseudodog_weak, то есть вроде бы точно такая же псевдособака.

  • Смешно 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
10 часов назад, Norman Eisenherz сказал:

У слабой псевдособаки вызов binder:load действительно ловится, у этой – нет.

А что у них прописано в script_binding в их секциях? Неужели нечто разное... (Тогда надо прописать штатный биндер, и будет ловить нормально)

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

Нашлась еще одна неведома зверушка: кабан esc_bd__m_boar_e_0007, который спавнится в виде трупа среди аномалий западнее а/м моста (или севернее вагончика, где лежит раненый Толик).

 

@Zander_driver Оба мутанта описаны только в [all.spawn]. Единственная запись со словом script: script_version = 6. В исходных конфигах одна ссылка для всех вариантов: script_binding = bind_monster.bind.

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

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz 

Затестил скрипт с переменной, она тру после первого юза / сейвлоада, но сбрасывается в false при смене уровня. Если добавить в se_monster.script:

function se_monster:keep_saved_data_anyway()
	return true
end

то будет сохранение.

 

К примеру, если подобный блок удалить в se_zones.script для se_restrictor, то их логика будет сбрасываться на начало после смены уровня.

; test sr
[logic]
active = sr_idle@1

[sr_idle@1]
on_info = {+ai4_sr_to_2} sr_idle@2 %=send_tip(SR_to_section_2)%

[sr_idle@2]
on_info = {+ai4_sr_to_3} sr_idle@3 %=send_tip(SR_to_section_3)%
on_game_timer = 50 | {-ai4_sr_to_3} %+ai4_sr_to_3%

[sr_idle@3]
  • Нравится 1
  • Полезно 2
Ссылка на комментарий

Да, оно: потестил на начальных зверях (+ еще два уника в подземке НИИ), состояние запоминается правильно.

 

 

Есть ли информация о причине такого ограничения? Не приведет ли снятие запрета к записи каких-нибудь неправильных данных в нетпакет?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz 

Насчёт ограничений, есть исходники ориг. ТЧ: https://github.com/mortany/xray

xrServer_Object_Base.cpp,

//client object custom data serialization SAVE

u16 client_data_size = (u16)client_data.size();

 

 

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

Не знаю, насколько это подходит…

Нашел в OGSR [se_stalker.script] вот такой комментарий:

Spoiler

-- Dsh (c):
-- Это включать не нужно, будут проблемы. Ни движок, ни скрипты на это
-- не расчитаны. Проблема в том, что оно работает и клиентские данные
-- сохраняются. При том, все данные, не только то, что скрипты
-- запишут, но и то, что движок сохраняет. В этом-то и
-- проблема. Например, движок сохраняется информацию о best_danger и
-- вот что получается. На Янтаре у долговца был best_danger, ну пусть
-- другой долговец. Теперь мы уходим с локации и best_danger остается
-- в клиентских данных. Через некоторое время этот долговец тоже
-- уходит с Янтаре и мы с ним пересекаемся в Баре. И что мы видим?
-- Долговец в истерике, т.к. у него есть best_danger, который был
-- загружен из клиентских данных, т.к. они не были очищены из-за
-- keep_saved_data_anyway(). Тоже самое с хитовой памятью. На другой
-- локации у непися всплывает хит, m_object которого нет, т.к. он
-- остался на той локации, где хит был нанесен.
--
-- Со скриптами тоже проблема всплывает. Например, в
-- xr_logic. Представим, что непись был в смарте, получил там работу и
-- у него была активная логика. Мы ушли с локации и активная логика
-- была сохранена в клиентских данных. Потом непися выгнали из смарта
-- и его приняли в другой. Все это было в оффлайне и клиентские данные
-- все еще содержат активную логику первоначального смарта. Теперь мы
-- пересекаемся с ним на какой-нибудь локации и тут xr_logic
-- восстанавливает его активную логику и оказывается, что никакой
-- вертекс пути это логики, на этой локации не существует. Движок
-- обижается и падает.
--
-- Переделывать все это я не вижу смысла. Сохранение активной логики
-- скриптовыми методами требует меньших усилий, чем приведение всего
-- этого в порядок.
--
-- function se_stalker:keep_saved_data_anyway()
--   return true
-- end

 

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

  • Полезно 2

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
14 часов назад, Norman Eisenherz сказал:

Не знаю, насколько это подходит…

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

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

Можно ли методом obj:set_nonscript_usable(false) "окирпичить" предмет вроде аптечки или оружия? Какой биндер править? Прямое изменение при сбросе предмета не мешает потом его поднять и использовать.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
7 часов назад, Norman Eisenherz сказал:

не мешает потом его поднять и использовать.

И не помешает, т.к. аптечки и подобное юзаются движком напрямую, без участия скриптов.

Тут либо править движок, либо пользоваться колбеками наподобие before_use , которые опять же найти можно в исправленных движках.

  • Согласен 1
  • Полезно 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

На движке ОГСР можно вынести пути во внешний файл. А скриптом можно заспавнить НПС, которому в кастом дате указать пути, пописанные в этом файле. 

Скрытый текст

Указать путь к путям (:dash3:) в файле external.ltx

0OrIK2Na.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2013-04-2023%2007:10:34.jpg

Дальше ручками добавлять новые секции с прописанными к ним кастом-датами.

А в кастом дате уже указываем пути и остальное:

JdIerp4F.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2013-04-2023%2007:17:38.jpg

Или при спауне скриптом сразу записывать дату, но, насколько помню, таким образом не всё туда запишется.

Скрытый текст

Пример с функциями АМК-мода:

 

local obj=amk.spawn_item("ros_killer_respawn_1",vector():set(-70.358726501465,-13.440641403198,-160.03511047363),107,201811)
    if (IsStalker(obj)) then 
        local t=amk.read_stalker_params(obj) 
        t.custom="[logic]\nactive=walker\n[walker]\npath_walk=add_merc_esc_walk\npath_look=add_merc_esc_look"
        amk.write_stalker_params(t,obj)        
    end

 

 

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

Здесь могла быть ваша реклама.

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

@mole venomous по-моему он спросил не о кастом дате, а о возможности спавнить вэй-поинт скриптом.

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

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

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

Я лишь подумал, что некорректно поставлен вопрос :unknw:

  • Не согласен 1

Здесь могла быть ваша реклама.

Ссылка на комментарий
5 часов назад, dsh сказал:

можно и скриптом создавать

Сложно представить ситуацию, когда это нужно.

Скрытый текст

ситуации, когда ГГ даёт НПСу указание, как подчинённому, типа "Стоять здесь!". И он остаётся там навсегда уолкером, например, а не в ремарке.

 

Изменено пользователем mole venomous
  • Сочувствую 1

Здесь могла быть ваша реклама.

Ссылка на комментарий
8 часов назад, mole venomous сказал:

Но точки путей, это объекты, которые можно заспавнить?

Нет. Во всяком случае это НЕ игровой объект в его классическом представлении (серверный, клиентский, имеет id, секцию, конфиг, класс...) - нет. Точки путей это более простая вещь, которая таким объектом не является.

Заспавнить их нельзя. Скриптом создать (в OGSR) - можно.

1 час назад, mole venomous сказал:

Сложно представить ситуацию, когда это нужно

 

Сложно представить? А если еще подумать? Что можно ТОЛЬКО ТАК и делать? :)

Все случаи, когда нам надо путь динамически создать, а не прибить его раз-навсегда гвоздями в алл.спавн. Это только исключительно динамическое создание через скрипт. По другому никак.

  • Нравится 1
  • Согласен 1
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@Zander_driver ,

Скрытый текст

ты сейчас не согласен с тем, что сам утверждаешь? Судя по красному крестику. Если что, там у меня не вопрос, хоть и со знаком вопроса. Это недоумение. К вопросу о том, как заспавнить поинты. Ну да ладно. Не нужно быть матёрым кодером, что бы понимать, что точки путей это не объекты. Поэтому вопрос юзера был, как я считаю, некорректным.  

 

17 минут назад, Zander_driver сказал:

динамически создать

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

Здесь могла быть ваша реклама.

Ссылка на комментарий
1 минуту назад, mole venomous сказал:

Но не вижу в этом острой необходимости.

Скрытый текст

 

В одно окно смотрели двое. Один увидел дождь и грязь.
Другой — листвы зелёной вязь, весну и небо голубое.
В одно окно смотрели двое.

 

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

А я вижу... :( и почему-то только я?

 

 

  • Нравится 1
  • Смешно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@Zander_driver , 

  

8 минут назад, Zander_driver сказал:

Видеть можно совершенно противоположные, разные "явления"

 

так всегда было. И во всём. Но это не повод для грусти, вообще то. Я бы так сказал:

Не вижу острой необходимости. Вообще то, я сам любитель рандома. Ещё со времён "Диабло". Но считаю, что он не должен быть совсем хаотичным. Ну то есть, мне не лень будет сделать с десяток дорог, из которых каждый раз будет выбрана одна. :unknw: 

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

Здесь могла быть ваша реклама.

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

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

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

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

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

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

Войти

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

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

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