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

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

4 часа назад, Black_Raven_03 сказал:
local sil_obj = level.object_by_id(0)

Полагаю, вот это лишнее. Достаточно объявления local sil_obj

  • Спасибо 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.

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

Достаточно объявления local sil_obj

Привычка: приучил себя по совету:rtfm: небезизвестного Kamikazze:489: всегда инициализировать переменные в ЛуаДжите

Как позже выяснилось, проблема была в inventory_for_each - метод (почему-то:az1000106:) не мог перейти на след. предмет! :31:

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

AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, CoP Gunslinger, ShoC GA, Legend Return, Anomaly, CS OGSM!

Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
Black_Raven.gif
 

Ссылка на комментарий
13 часов назад, Black_Raven_03 сказал:
db.actor:inventory_for_each( function( temp_sil, db.actor)

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

Что-то я даже затрудняюсь сказать, что будет с глобальной кеширующей актора переменной db.actor, если её использовать в качестве выходного параметра. Обнулится со всеми вытекающими? Или будет создана локальная одноимённая переменная, не влияющая на глобальную, поскольку существует только внутри этой функции?

В любом случае делать так не стоит.

Изменено пользователем Kirgudu
  • Согласен 1
  • Полезно 2
Ссылка на комментарий
43 минуты назад, Kirgudu сказал:

Что-то я даже затрудняюсь сказать, что будет с глобальной кеширующей актора переменной db.actor, если её использовать в качестве выходного параметра. Обнулится со всеми вытекающими? Или будет создана локальная одноимённая переменная, не влияющая на глобальную, поскольку существует только внутри этой функции?

У меня скрипт с таким объявление функции вообще не распарсился lua в ЗП.

  • Полезно 2
Ссылка на комментарий

@Zander_driver @Kirgudu , огромное спасибо за предупреждение - учту и сделаю выводы

7 часов назад, abramcumner сказал:

 вообще не распарсился lua в ЗП.

а какая связь между ЗП и ТЧ-ориентированным ОГСР-движком?! я же специально указал год сборки движка - 2020! ЛуаДжиты же разные!

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

AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, CoP Gunslinger, ShoC GA, Legend Return, Anomaly, CS OGSM!

Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
Black_Raven.gif
 

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

В Зове Припяти при покупке патронов учитывается кол-во патронов в пачке, оно влияет на цену. Хочу в ТЧ это дело поправить. Где в trade_manager.script смотреть это?

  • Полезно 1
Ссылка на комментарий
1 час назад, Black_Raven_03 сказал:

а какая связь между ЗП и ТЧ-ориентированным ОГСР-движком?! я же специально указал год сборки движка - 2020! ЛуаДжиты же разные!

Такое не должно и на ТЧ/ОГСР парситься. Что было под рукой, на том и проверил.

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

Например, сделать запись лога через flush и поискать в нем часть фразы "* Game … is successfully loaded from file '…sav' …" – если встречается только один раз, значит первая загрузка. В ТЧ можно добраться до файла через класс fs(), в ЧН/ЗП через библиотеку io.

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

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

Шпаргалка

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

Если колбек объекта не перевести в nil в net_destroy, то при удалении объекта колбек так и будет болтаться всю игру?

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

Скорее всего нет, в деструкторе объекта в движке есть очистка соответствующего массива коллбэков. Но это не точно, пусть двигоправы скажут лучше, если я не прав.
А вот при возможном уходе в оффлайн такого объекта хвосты останутся болтаться.

  • Полезно 2
Ссылка на комментарий

Можно ли как-то добавить свои консольные команды? Хочу, чтобы при вводе команды в лог записывалась информация об акторе.

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

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

  • Согласен 1
  • Полезно 1
Ссылка на комментарий

Хочу уменьшить на 1 количество патронов в пачке, находящейся в инвентаре актора.

Делаю так:  

netpacket:modify(sobj, "ammo_left", n-1) --sobj - серверный объект пачки патронов

Но ничего не меняется. Подозреваю, что нужно менять в клиентском объекте, но как?

(стрелять не предлагать :hunter::biggrin:)

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

Параметр с условным наименованием "ammo_left" есть как в state, так и в update части нет-пакета пачки патронов. В таком модуле управления нет-пакетами, как m_netpk от Артоса, это предусмотрено.

Что за функционал скрывается под капотом netpacket:modify, мне не известно, но я бы посмотрел в вышеупомянутую сторону.

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

Параметр с условным наименованием "ammo_left" есть как в state, так и в update части нет-пакета пачки патронов.

 

Увы, так тоже не работает:  (причём в update-части параметра nammo_left вообще нет, читал пакет так m_netpk.get(sobj,2)) 

local id = ammo_from:id()
local sobj = server_object(id)
local pk = m_netpk.get(sobj)
local data = pk:get()
data.ammo_left = n-1              
pk:set(data)

Тут видимо нужно с клиентским объектом как-то работать...

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

Тогда в голову приходит только пересоздание пачки с новым количеством патронов через alife():create_ammo().

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

 

Цитата

причём в update-части параметра nammo_left вообще нет, читал пакет так m_netpk.get(sobj,2)

При чтении полного пакета есть: data.ammo_left и data.upd.ammo_left. Но ни на что не влияет.

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

Кто-нибудь адаптировал для себя отдельно в таск_менеджер награду инфой из АМК? У меня лыжи что-то не едут.

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

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

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

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

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

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

Войти

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

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

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