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

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

13 минут назад, phalcor сказал:

Увы... 

 

28 минут назад, phalcor сказал:

Платформа: ОП 2.2

У меня OGSR, в биндере actor_binder:update(delta) 

https://disk.yandex.ru/i/J16oMpsKFlCeUA

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

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

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

У меня OGSR

Да, понятно. Но у меня обычный двиг. Тут, наверное, только net_packet подойдёт, да и то... знать бы, как?

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

@phalcor , в трубочку дыхнуть надо? Ну если прибухнул, выдай инфопоршен, который удалится по таймеру...

  • Спасибо 1
  • Не нравится 1

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

Ссылка на комментарий
27 минут назад, phalcor сказал:

Но у меня обычный двиг

1 час назад, phalcor сказал:

Платформа: ОП 2.2

Пардон, но разве это одно и то же? Мне кажется что в ОП с движком что-то все же делали. Стало быть, надо брать их справочную документацию/исходники и смотреть там.

 

4 минуты назад, mole venomous сказал:

инфопоршен, который удалится по таймеру

Костыль на костыле... и работать "так, как ожидалось", эта конструкция будет не всегда. И числовое значение если оно важно/нужно, из инфопоршня не вытянуть.

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

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

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

Ссылка на комментарий
6 минут назад, Zander_driver сказал:

Костыль на костыле... и работать "так, как ожидалось", эта конструкция будет не всегда. И числовое значение если оно важно/нужно, из инфопоршня не вытянуть.

Никто не интересовался конкретно числовым значением, насколько я вижу. Также непонятно, всегда ли нужно проверять ГГ на градус, может лишь единожды. Есть скриптовый вариант? Предложи, ибо твоё мнение авторитетно. 

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

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

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

Есть скриптовый вариант? Предложи

Я движка ОП не знаю)

Сам по себе числовой параметр опьянения ГГ, присутствует в сталкере с оригинала ТЧ. Так что в движке он полюбому есть, ну кроме тех версий где его зачем-то выпилили (сомневаюсь что такие существуют).

В OGSR это число доступно в db.actor.alcohol

В оригинале ТЧ... не помню я.

В ОП

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

надо брать их справочную документацию/исходники и смотреть там.

 

В ОП есть же какой-то lua_help?
Вот с него и начать.

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

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

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

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

@Zander_driver , тогда самое разумное, это привнести правки в движок. Имея исходники движка ОП-2.2 и навык работы с движком.

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

Ссылка на комментарий
3 минуты назад, Zander_driver сказал:

В ОП есть же какой-то lua_help?
Вот с него и начать.

В lua_help ничего нет, в искходниках (от версии 2.1) - тоже нет. (под "нет" я подразумеваю "не нашёл").

Потому и вопрошаю про нет-пакеты. Однако же подозреваю, что и это не поможет :cray5:

Только что, mole venomous сказал:

привнести правки в движок. Имея исходники

Авторы не делятся такими священными данными :biggrin:

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

 

7 минут назад, mole venomous сказал:

самое разумное, это привнести правки в движок

Не совсем так.

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

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

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

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

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

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

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

В ТЧ полностью движковый обсчет опьянения со ссылкой на eat_alcohol в конфиге расходника и скорость отрезвления alcohol_v (+ _sleep) в конфиге ГГ – см. [xrGame\ActorCondition.cpp]. В нетпакетах значение не упоминается.

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

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

Шпаргалка

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

Движок огср. Нет-пакеты из огср стандартные(Артас)

Всем привет. Копаюсь иногда в сталкер, делаю всякое, вот дошли руки до свойств предметов(артефакты, оружие, броня). Дело в чем, значит, меняю я это свойство, например, у пистолета что-то типо pistol:get_weapon().cost = 10000. Отлично. Все работает, но до следующей загрузки и сбрасывается. Вопрос, как записать это свойство навсегда? это нет-пакеты? Просто я и пакетами пытался и как я понял пакетом менять-то особо нечего: моделька, custom_data(почти бесполезная штука для предмета?), положение и позиция на уровне, какие-то ненужные мне настройки стори ид, какие-то непонятные items_num... Нет, я гуглю конечно, смотрю, читаю про пакеты и медленно узнаю что-то новое, но может кто сразу скажет возможно ли пакетами менять свойства предмета, как я выше приводил пример скриптами, но навсегда? Если не пакеты, то может как-то ещё можно сохранить выставленный скриптом property? Если нельзя, то зачем вообще тогда эта возможность менять свойства предмета? 

Ссылка на комментарий
4 часа назад, phalcor сказал:

Подскажите, как можно определить опьянение актора? Скриптовой функции, я так понял, нет. 

Может, как-то через нет-пакет это число добывается? 

Просто факт опьянения или степень опьянения? Если первое - можно попробовать отследить наличие эффектора. Если второе, то тут сложнее и костыли.

 

Вроде в АМК моде была алкогольная зависимость, можно посмотреть как там сделали.

 

P.S. А, на чистом движке эффектор тоже не получить никак, так что только костыли выдумывать.

 

@666Ian значение надо сохранить в серверном объекте в se_item.script, найдя нужный тебе класс оружия. После чего загрузить и выставить это значение при входе оружия в онлайн (на net_spawn или на первом апдейте).

Изменено пользователем RayTwitty
  • Нравится 1
  • Полезно 1
Ссылка на комментарий
1 час назад, RayTwitty сказал:

Вроде в АМК моде была алкогольная зависимость

И в огсе 0693 была. Только не знаю, своя или взяли откуда-нибудь.

 

Desktop: i7-11700k/Gigabyte Z590 D/64 Гб DDR4-3600 (2х32Гб)/RTX 3060 12Гб/HP Z24n G3 - WUXGA/Kingston HyperX Predator (m2) 240Гб + Kingston A2000 1Тб + 4HDD (11Тб)/Thermaltake smart BM2 - 650Вт/Win10+QtTab

Notebook: Dell Precision 7710/i7-6820HQ/32Гб DDR4 (2х16Гб)/FHD 17,3"/Quadro M4000M 4Гб/ ADATA Legend 960 4Тб + Crucial P3 4Тб/Win10+QtTab

\\\ Дополнения к ОГСЕ 0693 /// \\\ OGSRmod ///\\\Огниво (говорим обо всём)///\\\Балкон///

Ссылка на комментарий
2 часа назад, Опричник сказал:

огсе 0693

В нем есть свойство alcohol, там все проще.

 

В АМК скорее всего считали сколько раз выпили водку (использовали предмет) и параллельно рассчитывали опьянение на апдейте, повторяя то, что делает движок внутри. Ну я бы так наверно сделал, если нет возможности движок поправить.

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

 

@666Ian значение надо сохранить в серверном объекте в se_item.script, найдя нужный тебе класс оружия. После чего загрузить и выставить это значение при входе оружия в онлайн (на net_spawn или на первом апдейте).

А можно какой-нибудь простой пример, вот цену предмета конкретного выставить в 10 рублей? А то я голову сломал уже. Не понимаю как мне получить серверный объект методом для онлайнового. Да и вообще, наверное все не так делал.

Ссылка на комментарий
2 часа назад, 666Ian сказал:

Не понимаю как мне получить серверный объект методом для онлайнового.

Если "онлайновый" = клиентский, то никак :)

В общем случае, самый удобный способ получения клиентских/серверных объектов - это получать их по id.

local obj = level.object_by_id(id) -- Получаем клиентский объект, зная его ID
local obj_id = obj:id() -- Узнаем ID клиентского объекта, если он у нас есть
local sobj = alife():object(id) -- Получаем серверный объект, зная его ID
local sobj_id = sobj.id -- Узнаем ID серверного объекта, если он (объект) у нас есть.
--ID серверных и клиентских объектов всегда совпадают. Так что, выяснив id одного из них (например клиентского), можно зная id получить серверный, и наоборот.
--У некоторых специфических объектов игры (например: Болт). Существует только клиентский объект, а серверного нет.

 

  • Нравится 1

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

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

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

Ссылка на комментарий
27 минут назад, Zander_driver сказал:

Если "онлайновый" = клиентский, то никак :)

В общем случае, самый удобный способ получения клиентских/серверных объектов - это получать их по id.

local obj = level.object_by_id(id) -- Получаем клиентский объект, зная его ID local obj_id = obj:id() -- Узнаем ID клиентского объекта, если он у нас есть local sobj = alife():object(id) -- Получаем серверный объект, зная его ID local sobj_id = sobj.id -- Узнаем ID серверного объекта, если он (объект) у нас есть. --ID серверных и клиентских объектов всегда совпадают. Так что, выяснив id одного из них (например клиентского), можно зная id получить серверный, и наоборот. --У некоторых специфических объектов игры (например: Болт). Существует только клиентский объект, а серверного нет.

local obj = level.object_by_id(id) -- Получаем клиентский объект, зная его ID
local obj_id = obj:id() -- Узнаем ID клиентского объекта, если он у нас есть
local sobj = alife():object(id) -- Получаем серверный объект, зная его ID
local sobj_id = sobj.id -- Узнаем ID серверного объекта, если он (объект) у нас есть.
--ID серверных и клиентских объектов всегда совпадают. Так что, выяснив id одного из них (например клиентского), можно зная id получить серверный, и наоборот.
--У некоторых специфических объектов игры (например: Болт). Существует только клиентский объект, а серверного нет.

 

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

  • Жуть! 1
Ссылка на комментарий
6 часов назад, 666Ian сказал:

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

Нужно создать биндер для оружия (по аналогии с физ. объектами например), подключить его в базовой секции в конфигах (если есть, иначе во всех секциях по отдельности), получать на net_spawn серверный объект и смотреть, сохранена ли там стоимость. Если да, то менять (восстанавливать) ее твоим способом через свойство cost для клиентского объекта.

Соответственно при первом изменении свойства, менять также значение и в серверном объекте по аналогии. Серверный объект это "слепок" клиентского/онлайного, в котором сохраняются данные. Тебе надо следить за тем, чтобы данные были одинаковы.

 

Проще по-моему двиг поправить, добавив там в общую кучу сохранение cost))

  • Нравится 1
  • Сочувствую 1
Ссылка на комментарий

@RayTwitty да мне не только cost. Я вообще все свойства хотел менять в перспективе, такая же фишка интересная: вот есть у тебя ствол, ты с этим стволом в руках влез в какой-нибудь кисель или ещё лучше уронил его туда и вот уже пушка пройдя через условия поменяла свойства, стала там радиоактивной или стрелять сильнее, мощнее. Можно конечно переспавнить ствол и не парится, но зачем если вроде бы свойства так меняются. Те же артефакты можно было сделать уникальными, т.е каждый арт необычный и непредсказуемый. А так, я думаю, ну по крайней мере это звучит так, что это плохая идея возится с этим. Свойства эти никогда не сохранятся, они должны быть заранее где-то в скрипте прописаны и каждый раз выставляться предмету при его нет спавне, правильно я понял? Тот же биндер на физобьекты обрабатывает сразу все объекты, если даже выделить секцию, например артефакт медуза, то таких медуз по зоне будет дофига, и у всех модифицированные свойства будут? Тогда какой в этом смысл. Заранее брать какой-то предмет по имени там или айди какому, то тоже не то, потому что я и сам не знаю с каким предметом игрок пройдет через "улучшатор/ухудшатор". Это должен был быть бы каждый раз разный предмет. А может я вообще не так понял ответ твой и все отрисовал неправильно. Короче это достаточно геморно, чтобы поменять это как, например, меняется моделька предмета через пакеты? Потому что модельку я научился менять без всяких там биндеров, без всяких нет спавнов... Загнал в оффлайн, сменил модельку, вывел в онлайн и забыл. Вот так же я и свойства думал менять примерно, хотел бы. А ещё лучше было бы, чтобы все эти изменения в клиентском объекте оставались бы сами навсегда, как состояние там или кол-во патронов в той же пушке. 

 

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...