DMT 2 Опубликовано 16 Декабря 2019 Поделиться Опубликовано 16 Декабря 2019 2 часа назад, Kirgudu сказал: а результаты изменений, сделанных внутри функции update, доступны также и за её пределами. Я о том и спрашивал. Но... Нужны детали. 2 часа назад, Kirgudu сказал: Для общего понимания рекомендую почитать, что такое ссылочные типы данных и типы значений (reference type и value type). Насколько я знаю, в Lua ссылочные типы отсутствуют. Так ведь ? 1 час назад, abramcumner сказал: Это не чистая функция, у нее есть побочные эффекты в виде вызовов npc:buy_condition и аналогичных функций. А почему после npc:buy_condition( tt.config, str ) идет строка tt.current_buy_condition = str ? Для какой цели записывать что-то в локал tt, объявленный внутри функции, если вызов npc:buy_condition уже был ? Я написал следующий код: Цитата function func() local s if s==nil then print(64) s=32 end end func() func() Проверил его тут: https://repl.it/languages/lua Результат работы: Цитата 64 64 То есть значение переменной s не сохраняется между двумя вызовами функции func. Зачем тогда в скрипте торговли присваивание tt.current_buy_condition = str ? Как дальше это используется ? Ссылка на комментарий
abramcumner 1 020 Опубликовано 16 Декабря 2019 Поделиться Опубликовано 16 Декабря 2019 (изменено) 1 час назад, DMT сказал: То есть значение переменной s не сохраняется между двумя вызовами функции func. Ну код же не такой. Код в функции такой: local tt = {{a=1}, {b=0}} function f(s) local t = tt[1] t.a = t.a + 1 s.b = s.b - 1 print(t.a, s.b) end print(tt[1].a,tt[2].b) f(tt[2]) f(tt[2]) print(tt[1].a,tt[2].b) Выводится: 1 0 2 -1 3 -2 3 -2 Как написал @Kirgudu, посмотри работу с таблицами в луа. Изменено 16 Декабря 2019 пользователем abramcumner 1 1 Ссылка на комментарий
Kirgudu 924 Опубликовано 16 Декабря 2019 Поделиться Опубликовано 16 Декабря 2019 (изменено) 2 часа назад, DMT сказал: Насколько я знаю, в Lua ссылочные типы отсутствуют. Так ведь ? Не так. Таблица в Lua - объект, доступ к которому осуществляется именно по ссылке (указателю). Ещё раз, почитай. 2 часа назад, DMT сказал: Для какой цели записывать что-то в локал tt, объявленный внутри функции Посмотри внимательнее код. Как раз не внутри функции, а за её пределами, поскольку tt - это указатель на таблицу, являющуюся подтаблицей объекта, объявленного в модуле глобально. То есть твои изменения, сделанные функцией, сохраняются и после выхода из неё, и могут использоваться затем другими функциями/модулями. 2 часа назад, DMT сказал: То есть значение переменной s не сохраняется между двумя вызовами функции func. А вот у тебя переменная s имеет тип "значение", объявлена уже внутри функции func(), существует только в пределах этой функции и не сохраняется после её выполнения. При повторном выполнении она создаётся заново со значением nil, что ведёт к повторному выводу в консоль. Изменено 16 Декабря 2019 пользователем Kirgudu 1 Инструмент Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 20 Декабря 2019 Поделиться Опубликовано 20 Декабря 2019 Доброго времени! Подскажите пожалуйста, каким образом можно проиграть звук (фразу) от лица НПС? Пытаюсь разобраться с "xr_sound.set_sound_play( npc, "sound_theme", math.random( 2000,3000 ) )"? но безуспешно... Есть у кого примеры? Добавлено BFG, 20 Декабря 2019 Ну посмотри как сделан Крот на Агро, у люка, когда он общается с ГГ. Оригинал ТЧ. В логику его загляни. Ссылка на комментарий
gam 116 Опубликовано 20 Декабря 2019 Поделиться Опубликовано 20 Декабря 2019 @_Sk8_AsTeR_, Таким образом? Нет и нетю. local snd_obj = xr_sound.get_safe_sound_object([[anomaly\dezodor]]) snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 21 Декабря 2019 Поделиться Опубликовано 21 Декабря 2019 @gam, @BFG, прошу прощения, сам разобрался. Оказывается и моя структура рабочая, только я запамятовал что после редактирования скриптов со звуковой составляющей нужно игру перезапускать, сейв-лоада не достаточно для звуков х) Ссылка на комментарий
Капрал Хикс 460 Опубликовано 23 Декабря 2019 Поделиться Опубликовано 23 Декабря 2019 Дано: мод на активацию артефактов. Требуется: способ запретить артефакту перемещаться в слот для пистолета при двойном клике, без возни с движком. Ссылка на комментарий
Space.Marine 454 Опубликовано 24 Декабря 2019 Поделиться Опубликовано 24 Декабря 2019 11 часов назад, Капрал Хикс сказал: запретить артефакту перемещаться в слот для пистолета Там ещё засада была такая, что если слот пестика пустой, то поднятый с земли арт перемещается автоматически в слот пистолета. Бесит жутко. 1 Ссылка на комментарий
UriZzz 992 Опубликовано 24 Декабря 2019 Поделиться Опубликовано 24 Декабря 2019 @Space.Marine, да, а ещё есть баг - если повесить артефакт на пояс а потом с пояса сразу в руки, то на худе на панели артефактов иконка этого арта так и останется висеть. Таким образом этих иконок можно на плодить... Правда я не тестировал как с сэйф/лодом, переходом на другую локу панель обновляется или нет. @Капрал Хикс, а не пробовал прописать дефалт то рук = труе? Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Капрал Хикс 460 Опубликовано 24 Декабря 2019 Поделиться Опубликовано 24 Декабря 2019 @UriZzz , default to ruck = true, по идее, должен предотвратить баг с немедленным взятием арта с земли в пистолетный слот, если тот пуст. А вообще была мысль назначить на активацию артов ножевой слот... Ссылка на комментарий
UriZzz 992 Опубликовано 25 Декабря 2019 Поделиться Опубликовано 25 Декабря 2019 @Капрал Хикс, только если он видим, иначе будет неудобно. 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
DMT 2 Опубликовано 26 Декабря 2019 Поделиться Опубликовано 26 Декабря 2019 (изменено) https://www.dropbox.com/s/wvub0j4ix30gecy/trade_manager.script?dl=0 С этим скриптом имеются странности: * Непись, зашедший в онлайн, потом оффлайн, а потом снова в онлайн, начинает торговать гитарой, губной гармошкой и кпк. * Сразу после старта игры лишних предметов в ассортименте ни у кого нет. Они появляются после того, как актор успел побегать по локации. * Если рядом с НПС, у которого в ассортименте есть гитара, губная гармошка и кпк, сохраниться и загрузиться, то лишних предметов после загрузки не будет. Что приводит к возникновению этого бага? И как пофиксить? Кто сталкивался с этим ? Изменено 26 Декабря 2019 пользователем DMT Ссылка на комментарий
naxac 2 372 Опубликовано 26 Декабря 2019 Поделиться Опубликовано 26 Декабря 2019 @DMT, это происходит из-за того, что при каждом переходе непися в онлайн необходимо устанавливать ему список покупаемого и цены покупки (методов не помню). В данном скрипте это делается только на первом апдейте, а затем через некоторые промежутки времени. 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
DMT 2 Опубликовано 26 Декабря 2019 Поделиться Опубликовано 26 Декабря 2019 @naxac, А почему в оригинале такой проблемы не возникает ? Ссылка на комментарий
naxac 2 372 Опубликовано 27 Декабря 2019 Поделиться Опубликовано 27 Декабря 2019 @DMT, не возникает, потому что там всё обновляется постоянно. Попробуй такой вариант: https://yadi.sk/d/7F7_vokuUOB3zg Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
DMT 2 Опубликовано 27 Декабря 2019 Поделиться Опубликовано 27 Декабря 2019 @naxac, такой вариант не помог, увы. 1 Ссылка на комментарий
-=Krovosos=- 64 Опубликовано 4 Января 2020 Поделиться Опубликовано 4 Января 2020 Товарищи, а знает ли кто, как отключить баг с писком контролера после его убийства и/или после загрузки игры? Существует "Shoker Mod" под ЧН, где это убрано. Однако, под ТЧ я такого найти не смог. Ковырялся в файлах "Shoker Mod", но не смог найти, где же там что было сделано в этой части. А делал DEXXX. Спасибо! Карусель-карусель - это радость для нас, прокатись на нашей ка-ру-се-ли!-=Krovosos Mod=- 4.0 Final для S.T.A.L.K.E.R. SHoC 1.0004 (336 Мб): Мод Финальный патч для -=Krovosos Mod=- (1 Мб): Патч Адаптация -=Krovosos Mod=- под S.T.A.L.K.E.R. SHoC 1.0006 (1 Мб): Адаптация Ссылка на комментарий
naxac 2 372 Опубликовано 4 Января 2020 Поделиться Опубликовано 4 Января 2020 (изменено) @-=Krovosos=-, можно после смерти ГГ поубивать скриптом всех онлайновых контролёров. Либо после смерти ГГ, если в онлайне есть контролёры, при выходе в меню сделать get_console():execute("disconnect") - но тогда загрузка сохранения будет занимать больше времени. Это первое, что на ум приходит. Изменено 4 Января 2020 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Save1999 0 Опубликовано 12 Января 2020 Поделиться Опубликовано 12 Января 2020 Люди, подскажите пожалуйста: Номинальное значение кровотечения это сколько (в цифрах)? Заранее спасибо! Ссылка на комментарий
Zander_driver 10 166 Опубликовано 12 Января 2020 Поделиться Опубликовано 12 Января 2020 только что, Save1999 сказал: Номинальное значение кровотечения Знать бы, что вы имеете в виду... Метод, запрашивающий текущую величину кровотечения, возвращает число с плавающей точкой, т.е. float. Значения от 0 до X, где Х часто бывает намного больше единицы. Не знаю, какой там возможный максимум, при этих "больше единицы", ГГ склеивает ласты довольно быстро, за несколько секунд. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти