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

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

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 ? Как дальше это используется ?

Ссылка на комментарий
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, посмотри работу с таблицами в луа.

Изменено пользователем abramcumner
  • Спасибо 1
  • Согласен 1
Ссылка на комментарий
2 часа назад, DMT сказал:

Насколько я знаю, в Lua ссылочные типы отсутствуют. Так ведь ?

Не так. Таблица в Lua - объект, доступ к которому осуществляется именно по ссылке (указателю). Ещё раз, почитай.

2 часа назад, DMT сказал:

Для какой цели записывать что-то в локал tt, объявленный внутри функции

Посмотри внимательнее код. Как раз не внутри функции, а за её пределами, поскольку tt - это указатель на таблицу, являющуюся подтаблицей объекта, объявленного в модуле глобально. То есть твои изменения, сделанные функцией, сохраняются и после выхода из неё, и могут использоваться затем другими функциями/модулями.

2 часа назад, DMT сказал:

То есть значение переменной s не сохраняется между двумя вызовами функции func.

А вот у тебя переменная s имеет тип "значение", объявлена уже внутри функции func(), существует только в пределах этой функции и не сохраняется после её выполнения. При повторном выполнении она создаётся заново со значением nil, что ведёт к повторному выводу в консоль.

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

Доброго времени! Подскажите пожалуйста, каким образом можно проиграть звук (фразу) от лица НПС? 

Пытаюсь разобраться с "xr_sound.set_sound_play( npc, "sound_theme", math.random( 2000,3000 ) )"? но безуспешно... Есть у кого примеры?

 

Добавлено BFG,

Ну посмотри как сделан Крот на Агро, у люка, когда он общается с ГГ. Оригинал ТЧ. В логику его загляни.

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

@gam, @BFG, прошу прощения, сам разобрался. Оказывается и моя структура рабочая, только я запамятовал что после редактирования скриптов со звуковой составляющей нужно игру перезапускать, сейв-лоада не достаточно для звуков х) 

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

Дано: мод на активацию артефактов. Требуется: способ запретить артефакту перемещаться в слот для пистолета при двойном клике, без возни с движком.

Ссылка на комментарий
11 часов назад, Капрал Хикс сказал:

запретить артефакту перемещаться в слот для пистолета

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

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

@Space.Marine, да, а ещё есть баг - если повесить артефакт на пояс а потом с пояса сразу в руки, то на худе на панели артефактов иконка этого арта так и останется висеть. Таким образом этих иконок можно на плодить...

Правда я не тестировал как с сэйф/лодом, переходом на другую локу панель обновляется или нет.

@Капрал Хикс, а не пробовал прописать дефалт то рук = труе?

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

@UriZzz , default to ruck = true, по идее, должен предотвратить баг с немедленным взятием арта с земли в пистолетный слот, если тот пуст. А вообще была мысль назначить на активацию артов ножевой слот...

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

@Капрал Хикс, только если он видим, иначе будет неудобно.

  • Согласен 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

https://www.dropbox.com/s/wvub0j4ix30gecy/trade_manager.script?dl=0

 

С этим скриптом имеются странности:

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

* Сразу после старта игры лишних предметов в ассортименте ни у кого нет. Они появляются после того, как актор успел побегать по локации.

* Если рядом с НПС, у которого в ассортименте есть гитара, губная гармошка и кпк, сохраниться и загрузиться, то лишних предметов после загрузки не будет.

 

Что приводит к возникновению этого бага? И как пофиксить? Кто сталкивался с этим ?

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

@DMT, это происходит из-за того, что при каждом переходе непися в онлайн необходимо устанавливать ему список покупаемого и цены покупки (методов не помню). В данном скрипте это делается только на первом апдейте, а затем через некоторые промежутки времени. 

  • Спасибо 1
  • Согласен 1

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

naxac.gif

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

@DMT, не возникает, потому что там всё обновляется постоянно. Попробуй такой вариант: https://yadi.sk/d/7F7_vokuUOB3zg

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

naxac.gif

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

Товарищи, а знает ли кто, как отключить баг с писком контролера после его убийства и/или после загрузки игры?

Существует "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 Мб): Адаптация

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

@-=Krovosos=-, можно после смерти ГГ поубивать скриптом всех онлайновых контролёров.

Либо после смерти ГГ, если в онлайне есть контролёры, при выходе в меню сделать get_console():execute("disconnect") - но тогда загрузка сохранения будет занимать больше времени.

Это первое, что на ум приходит.

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

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

naxac.gif

Ссылка на комментарий
только что, 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.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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