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

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

10.08.2023 в 13:25, 666Ian сказал:

Но если я буду записывать сразу 100 переменных, там ничего не треснет? Не сломается?

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

10.08.2023 в 13:25, 666Ian сказал:

я же правильно делаю, что на игрока пишу и с него читаю, или можно как-то по уму это делать, грамотно?

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

 

Ты не правильно даже говоришь об этом. xvars не имеет никакого отношения ни к игроку, ни к каким-то там объектам... Ты пишешь не "на игрока". А именуешь переменные неким образом, отчего тебе почему-то кажется что "это записано на игрока" ... кажется тебе это. Неправильно.

И в тот раз, мы не в объект писали. Просто в xvars, просто в имени переменной содержится id объекта... а оно может и не содержаться. К объектам никакого отношения нет, это просто переменная которую ты можешь обозвать как угодно. Вложив что-либо в название для того чтобы с чем-то другим не перепутать, и только.

 

 

  • Согласен 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.

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

Приветствую!

Непонятный затык какой-то... Заметил, что давно нет респавна убитым монстрам/сталкерам. По времени уже несколько раз должны были сработать респавны. Кордон почти пуст третьи сутки. И если ранее при ручном спавне тестового сталкера он тут же переходил под управление какого-нибудь гулага, то теперь сколько не спавню - они все ходят-бродят кругами, не будучи подхваченные гулагами. Понятно, что мутновато описал проблему, но вдруг кто-то стилкивался с подобным и знает решение? 

p.s. А где интересно сам механизм захвата заспавненного сталкера под гулаг - в скриптах или же в движке?

 

UPD: такс, нашёл, гулаг объекту назначается в частности в скрипте se_respawn вызовом obj:brain():update(), и далее проверка - нет гулага, объект удаляется. Вот потому у мну и пустыня... Вопрос, что мешает этому brain():update() назначить сталкерам гулаг?!! По условиям тех же гулагов (capacity и т.д.) всё норм.

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

OGSE 0.6.9.3, переназначение клавиш и кнопок для обработки новых действий:

Spoiler
[ogse_rebind_key.script]
local dik_key_to_name = {

--[256] = "MOUSE_1",	-- похоже, враньё в lua_help
--[512] = "MOUSE_2",	-- аналогично
--[1024] = "MOUSE_3",	-- та же песня
[337] = "MOUSE_1",
[338] = "MOUSE_2",
[339] = "MOUSE_3",

 

 

В ТЧ 1.0006 событие "нажать / отпустить ЛКМ или ПКМ" успешно ловится (в скриптовом окне) при ссылке на таблицу DIK_keys с "неправильными" кодами кнопок мыши.
Как понимать указанный выше комментарий в OGSE?

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

Шпаргалка

Ссылка на комментарий
04.09.2023 в 04:49, Norman Eisenherz сказал:

image.pngКак понимать указанный выше комментарий в OGSE?

Вот так и понимай, выше неправильные коды, правильные - 0xED(=200) + num

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

1. ED (hex) = 237 (16^1 * 14 + 16^0 * 13), иначе не сходится.

2. Картинка сложилась: в [lua_help.script] указаны действующие ссылки и неправильные значения, а при проверке if dik == DIK_keys.MOUSE_1 и т. п. читаются движковые значения.

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

Шпаргалка

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

Подскажите, пожалуйста, можно ли делать проверку расстояния от актора до произвольных координат, не привязанных к игровому объекту?
Мне нужна просто проверка расстояния до заданной мной фиксированной точки на локации, не хотелось бы спавнить объекты без необходимости. Как это сделать правильно?
Anomaly 1.5.2. Вот пример (оно работает, если что):

function is_swamp()
	local actor = db.actor	
	local obj_pos = vector():set(44.860466003418,-3.8407301902771,-361.91436767578)
	if actor and obj_pos then
		if actor:position():distance_to(obj_pos) < 75 then
			log("ambient_sound: actor in swamp zone! ")
			--return true
		end
	end
end

 

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

В ТЧ через файловую систему:

local file = getFS():r_open(полный путь) или …($app_data_root$, "user.ltx")
local text = file:r_stringZ()
-- дальше разбирать полученный текст через string.find, string.match и прочие методы

 

В ЧН через библиотеку io:

local filename = "_appdata_\\user.ltx"

for line in io.iines(filename) do		-- построчное чтение
	local x = line:find(…)
	

 

Еще через консоль можно: get_console():get_тип(название параметра или привязки клавиши).

Изменено пользователем Norman Eisenherz
  • Спасибо 1

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

Шпаргалка

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

При одном параметре можно обойтись консолью. Если надо больше, требуется полное описание задачи.

  • Спасибо 1

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

Шпаргалка

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

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

 

--в начале скрипта
local outfit = false

--в кусок кода в функции при нажатии кнопки
if not outfit then
	item:set_condition(1)
	self:GetStatic("no_money"):SetText("Костюм отремонтирован")
    outfit = true
else
	self:GetStatic("no_money"):SetText("Закончились кевларовые пластины")
end

 

Да забыл уточнить ремнабор многоразовый вернее трех разовый. т.е скрипт запускается три раза до удаления предмета из инвентаря. Все ломается после загрузки сейва.

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

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

Чтобы этого не происходило, значение переменной нужно не просто присваивать, но также сохранять в сейве (и читать оттуда при загрузке).
Примеров достаточно на любой вкус, даже в оригинале: см. xr_logic.pstor_store / xr_logic.pstor_retrieve (но это не лучший из вариантов, разве что для единичного использования).

  • Спасибо 1
  • Нравится 1
  • Согласен 1
Ссылка на комментарий

Здравствуйте. Интересует пару вопросов.

1. Есть ли у кого какой-либо парсер xml данных нпс по specific_character id, чтобы получить этим самым парсером данные по спавну оружия и предметов у конкретного нпс? (всё думаю сделать скриптовую замену спавна предметов нпсам при спавне, через условную Lua-таблицу. В теории можно было бы просто <supplies> закоментить и спавнить что хош уже в скриптах, но было бы здорово получить хоть какие то данные из xml, чтобы хоть как то не подтереть что квестовое ненароком)

2. Словил прикол с поведением зверушек. А именно: 1) заспавнил зверушку и перманентно её ослепил. (set_fov(0)) 2) далее просто сделал движение и зверушка меня услышала и начала бежать на меня. 3) Я убежал, аж за АИ-сетку, чтобы зверушка отстала от меня. 4) Зверушка отагрилась и уселась под кустом отдыхать 5) Самый сок: я возвращаюсь на АИ-сетку за овер9999 метров от неё, она начинает бежать на меня. Самое интересное что best_enemy == nil , а get_enemy == 0. По моему монстры не обнуляют что то у себя, тем самым и возникают проблемы с тем что они порой "видят спиной". Вот интересно  мнение спеца на подобное.

3. Монстры "видят спиной", как лечить? :)

4. Ребят, как реализовать рандомные апгрейды в ЗП на заспавненных предметах? В наличии есть m_netpk, но не знаю какой параметр и как "подкручивать" :russian_ru:

5. есть у кого рабочая схема работы подствольников для нпс на COC 1.4.22 ? 

6. в COC 1.4.22 когда нпс стреляют из РГ-6 то у них затем в некоторой области зависает danger_inertion: стоят тупо озираются и ничего больше не делают. Мало ли у кого есть правка. :happy:

7. Пытаюсь перенести музыку из бара на базе ЧН в ЧН - в ЗП COC 1.4.22. Столкнулся с проблемой при установке комментария на музыку . Использовал  oggcommentfix ver. 8 и ничего не вышло,звучит всё так же "из головы" а не от бара. Может кто подсказать в чём дело? Мб каким другим софтом коммент править?

... А наше дело маленькое - с ружьём да по болотам. (с)

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

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

Для того чтоб составить луа-таблицу под ваши нужды, совершенно нет нужды пользоваться луа.

Давно есть готовые инструменты для парсинга xml на любом удобном языке, из массово-употребимых.

php, C++, или другие по вкусу. Пишете там свой парсер, он вам дает данные, а их уже Ctrl+C -> Ctrl+V в свой Lua-скрипт. Ну, я лично делал бы так.

Если все же категорически хочется юзать Луа - тут это обсуждалось.

  • Полезно 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.

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

Кто-нибудь разбирал методы биндеров подробно?

 

1. Что такое net_Relcase и почему этот метод вызывается 10–20 раз подряд при спавне объекта, а после по 1–2 раза при обращении к инвентарю и прочих вроде бы не связанных с отдельным объектом действиях? Есть старый пост, но он мало похож на правду – метод net_destroy показывает, что объект находится в онлайне при всех вызовах net_Relcase. В движке под таким методом вроде как удаляются ссылки на объект.
2. При каких условиях вызываются методы net_import и net_export? Есть другой старый пост, но он, видимо, вообще не про биндеры.

3. Зачем нужен метод reinit(section), если ссылку на секцию объекта можно получить через self.object в методе reload, который вызывается при тех же условиях "спавн / онлайн"?
4. Обязательно ли выполнять обновление объекта через общий класс object_binder в методах reload, reinit и update?
5. Обязательно ли проверять объект через object_binder.net_spawn?
6. Обязательно ли удалять биндер через object_binder.net_destroy?
7. Почему для разрушаемых объектов вроде ящиков привязка событий через set_callback указана не в reinit, а в net_destroy?
8. Обязательно ли отключать обработку событий в net_destroy?

  • Нравится 1

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

Шпаргалка

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

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

snd:play_no_feedback(obj, sound_object.s3d, 0, obj:position(), 1) -- звук не движется за объектом

Я что-то неправильно делаю или для ворон это не работает в принципе? Через play_at_pos тот же результат. Если для ворон движение звука не сделать в принципе, то ещё вопрос:

snd:play_at_pos(obj, obj:position(), 5, sound_object.s3d)

Если задать timeout 5 секунд для звука движущегося объекта, в какой позиции он начнёт воспроизводиться?:
1. в той, где объект был на момент выполнения функции
2. в той, где объект будет находиться в момент начала воспроизведения звука после истечения таймера

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

@wdfgosdgf https://xray-engine.org/index.php?title=Класс_sound_object

 

Автоматическое изменение позиции звука не реализовано, нужно делать ручками. В твоем случае надо подвязаться на апдейт биндера вороны и обновлять позицию звука через метод set_position. Разумеется, для каждой вороны свой экземпляр звукового объекта, ссылка на который сохраняется в биндере.

Изменено пользователем RayTwitty
  • Нравится 3
  • Полезно 1
Ссылка на комментарий
On 12/8/2014 at 11:51 AM, Dennis_Chikin said:

Ну, помним, незабвенный watcher_act.scrip, когда непись прямо во время боя прется через всю локацию, ни на что не обращая внимания, подбирать упавший бинтик, на другом краю этой локации, причем ориентируясь НА СЛУХ.

Надо полагать, это файл из НС-2010, в котором "ориентирование на слух" представлено перебором стандартного списка memory_sound_objects.

Потестил в ТЧ: бинты и прочие медикаменты при сбросе даже рядом с NPC в список источников звука не заносятся.
В "солянке" не правленый движок, скрипты только – была ли в действительности такая проблема?

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

Шпаргалка

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

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

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

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

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

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

Войти

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

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

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