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

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

22 часа назад, 666Ian сказал:

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

Пример тут в двух словах не получится привести. Могу как вариант посоветовать посмотреть Shadows Addon, там есть биндер автомобилей (sa_cars.script) и сохранение/загрузка топлива (se_car.script).

 

Но если у тебя кастомный движок типа OGSR, то нафиг это все надо - сделай себе форк и добавь необходимые параметры прямо в движок.

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

если у тебя кастомный движок типа OGSR, то нафиг это все надо - сделай себе форк и добавь необходимые параметры прямо в движок.

Истинная правда, так оно и есть.

Но людям бывает очень страшно к движку даже подойти, и в это наше C++ окунуться.

Боятся, понимаешь...

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

 

Вспоминая себя, кстати... я пожалуй не боялся. Мне было лень. Когда исходники только появились, в движке столько багов и косяков было, так было лень все это разгребать, править... данунафиг. Да и знаний по С++ на тот момент не было.

А в движке OGSR добрые люди уже без моего участия все (ну почти), косяки разгребли, исправили, причесали... Не движок - конфетка. Насколько это вообще можно сказать в отношении X-Ray. Такой движок грех не форкнуть под свои нужды.

 

А если по теме. Люди, не надо бояться движка. Он не кусается. Уж тем более теперь, когда все доведено до ума.

  • Спасибо 1
  • Нравится 1
  • Согласен 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.

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

Пример тут в двух словах не получится привести. Могу как вариант посоветовать посмотреть Shadows Addon, там есть биндер автомобилей (sa_cars.script) и сохранение/загрузка топлива (se_car.script).

 

Но если у тебя кастомный движок типа OGSR, то нафиг это все надо - сделай себе форк и добавь необходимые параметры прямо в движок.

а есть что на эту тему? Попробуем форк.. Уточню, если понял неправильно. Форк движка, по сути просто правка движка, огср позволит мне сохранять свойства предмета также легко, как я сохраняю сейчас condition предмета? Т.е я сделаю аналог set_condition(numberдля любого свойства, например, цены и смогу условно через set_cost(number) менять стоимость любого предмета? И сделать это не так уж и сложно, что даже у меня есть шансы)? Если хватит терпения у кого меня посвятить в это дело, то я готов пробовать. Вроде прикольная штука была бы и простая. Скриптами я наныл, еще не понял как, но понимать вроде начинаю и вижу там какие-то дебри

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

S.T.A.L.K.E.R. Anomaly - НПС говорит не все фразы.

Столкнулся с проблемами. В "Charasters_desc" прописал НПСу путь к голосу персонажа(в моём случае это голос наёмника). По итогу НПС молчит, говорит фразы только во время ранения, и только если тычить в него стволом. Других фраз(фразы во время перестрелки, обычные рандомные фразы и т.д.) он вообще не говорит. К тому же, если взять его в напарники, то он не высылает в чат никаких СМС в адрес ГГ(СМС про локации, мутантов и т.д.). Из-за этих двух проблем мой непись будто неживой. Что делать?

Изменено пользователем Murarius
Добавлено  Murarius,

Перемещено.

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

Как угадать, что это

Ну например в гугл вбить...

Указал он платформу. S.T.A.L.K.E.R. Anomaly вполне себе платформа, не знать о существовании которой - грех.

Изменено пользователем Zander_driver
  • Нравится 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.

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

не знать о существовании которой - грех.

Я неверно выразился - с моей виндой хр не на всякий сайт можно пробиться. А этот мод мне не знаком. Но тут оффтоп уже.

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

Ребята, подскажите пожалуйста, через какую функцию в скрипте можно удалить предмет у НПС в ТЧ? В интернете и на форуме искал, но не нашёл. Буду признателен, если поможете.

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

"нᴀᴄᴛ᧐ящиʍ ʍ᧐дʍᴇйᴋᴇᴩ᧐ʍ ʍ᧐жᴇᴛ ᴄᴛᴀᴛь ᴛ᧐ᴧьᴋ᧐ ᴨ᧐иᴄᴛинᴇ ɸᴀнᴀᴛ ᴧюбиʍ᧐й иᴦᴩы." ©

xgeVogt.png

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

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

Вариантов с диалогом у меня нет под рукой.

Переборов много разных, попробуй так

  for a = 1, 65534, 1 do
    local sobj = alife():object( a )
    if sobj and sobj:section()=="секция предмета" and sobj.parent_id == npc.id then -- если секция предмета и предмет находится у нпс какого-нибудь в собственности
      alife():release( sobj, true )
    end
  end

 

 

 

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

У меня ОГСР, поэтому я еще смотрю в сторону такого способа

function save_number(number)
local setting_ini = ini_file("important_number.ltx", true)
setting_ini.readonly = false

setting_ini:w_float("имя_сейва", "1", number) -- тут хотелось бы получать еще имя сейва... number то я могу получать
end

И вроде оно сохраняет, т.е точно сохраняет, но имя сейва получить при сохранении как не знаю. Я нашел случайно, но еще не пытался это в свои скрипты пихать такое в скрипте xr_effects из зп.

-- Сюжетное сохранение в важных местах
function scenario_autosave(actor, npc, p)
	local save_name = p[1]
	if save_name == nil then
		abort("You are trying to use scenario_autosave without save name")
	end

	if IsImportantSave() then
		local save_param = user_name().." - "..game.translate_string(save_name)

		get_console():execute("save "..save_param)
	end
end

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

Меня интересует, если я пытаюсь идти верной дорогой в своих хотелках, то как это всё дело загрузить потом? 

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

@666Ian Мне бы конкретно удалить после определённой фразы, ГГ или НПС. Т.е да, в диалогах. Но так, спасибо, что откликнулся!

"нᴀᴄᴛ᧐ящиʍ ʍ᧐дʍᴇйᴋᴇᴩ᧐ʍ ʍ᧐жᴇᴛ ᴄᴛᴀᴛь ᴛ᧐ᴧьᴋ᧐ ᴨ᧐иᴄᴛинᴇ ɸᴀнᴀᴛ ᴧюбиʍ᧐й иᴦᴩы." ©

xgeVogt.png

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

@666Ian Мне бы конкретно удалить после определённой фразы, ГГ или НПС. Т.е да, в диалогах. Но так, спасибо, что откликнулся!

там в переборе ошибка, если что. скопировал код, не глянул, но кстати даже так может выдать ошибку xD Так я и делаю сам моды. Методом тыка.

19 минут назад, 666Ian сказал:
  for a = 1, 65534, 1 do
    local sobj = alife():object( a )
    if sobj and sobj:section()=="секция предмета" and sobj:parent()~=nil then
      alife():release( sobj, true )
    end
  end

 

А вот с диалогами. Блин возится буду с час, искать смотреть. да по сути на диалог можно тот же перебор повесить) Если он работает корректно.

Ну вот я нашел функцию из зп по-быстрому. Вроде бы должна работать.

function delete_item(first_speaker, second_speaker)
	local section = "секция"
	if second_speaker:object("секция") ~= nil then alife():release(alife():object(second_speaker:object(section):id()), true) end
end

Хотя к слову, зачем вообще возиться-то тебе с предметом? Если нпс умирает и все удаляет дез_менджер?

  • Полезно 1
Ссылка на комментарий
30 минут назад, 666Ian сказал:

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

У меня ОГСР

Опять 25.

Ну у тебя же уже есть рабочий пример сохранения в xvars. (Я уж молчу о том что он и в OGSR-Wiki как был так и есть). Зачем опять эти костыли, да еще прости-господи, нет-пакеты?

Сохрани свою переменную в xvars и не парься.

  • Смешно 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.

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

@Zander_driver точно, просто на любой предмет писать эту переменную? А потом её читать? Или как? А на что писать. На ту же броньку и не парится? Я просто отмучался там и забыл уже, а ты напомнил мне как я страдал

ну на броник я бы точно не стал, о чем я боже... А как, а на что? На болт? Ладно пойду посплю. может завтра лучше подумается

блин точно. на игрока и писать. надеюсь не опозорился хоть раз

Изменено пользователем 666Ian
  • Жуть! 1
Ссылка на комментарий

@666Ian Спасибо огромное, завтра утром проверю. А по поводу смерти НПС и очистки менеджером: он и не умирает, т.к. играет роль квестовика. Поэтому, хочу подзапариться. Можно, конечно, было убрать из профиля предмет, но я хотел сделать вариативность - забрать силой, или потолковать. Вот тут и понадобилось очистить инвентарь от предмета:) Спасибо ещё раз.

"нᴀᴄᴛ᧐ящиʍ ʍ᧐дʍᴇйᴋᴇᴩ᧐ʍ ʍ᧐жᴇᴛ ᴄᴛᴀᴛь ᴛ᧐ᴧьᴋ᧐ ᴨ᧐иᴄᴛинᴇ ɸᴀнᴀᴛ ᴧюбиʍ᧐й иᴦᴩы." ©

xgeVogt.png

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

@Zander_driverа что такого? Неправильно понял в итоге я? Или ты с моих тупняков в шоке? Вообще поинтересуюсь, может знаешь, присел на xvars значит. Удобно. Классно. Но если я буду записывать сразу 100 переменных, там ничего не треснет? Не сломается? И ещё раз, я же правильно делаю, что на игрока пишу и с него читаю, или можно как-то по уму это делать, грамотно? 

У меня все работает, кстати, поэтому я доволен как бы в любом случае) хварс тема. 

  • Нравится 1
Ссылка на комментарий
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

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

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

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

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

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

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

Войти

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

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

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