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

[SoC] Ковыряемся в файлах

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

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

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

@Pug-Lover, Читаешь нетпакет нпс, составляешь список его имущества, для сложных предметов вроде оружия, читая и их нетпакет тоже.

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

Это если по старинке, на оригинальном движке без модернизации. Дедовскими методами.

Про работу с нетпакетами искать модули Артоса. Про чтение и спавн - общие сведения о скриптах почитать, луа-хелп там... Запись данных теми же модулями Артоса (se_stor). Как-то так.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@Pug-Lover, Читаешь нетпакет нпс, составляешь список его имущества, для сложных предметов вроде оружия, читая и их нетпакет тоже.

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

Это если по старинке, на оригинальном движке без модернизации. Дедовскими методами.

Про работу с нетпакетами искать модули Артоса. Про чтение и спавн - общие сведения о скриптах почитать, луа-хелп там... Запись данных теми же модулями Артоса (se_stor). Как-то так.

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

Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

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

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

function cheat_dialog:OnButton_btn2_clicked()
	edit_box		= self:GetEditBox("edit_box")
	edit_box2		= self:GetEditBox("edit_box2")
	edit_box3		= self:GetEditBox("edit_box3")
	edit_box4		= self:GetEditBox("edit_box4")

      pos_x = tostring(edit_box:GetText())
      pos_y = tostring(edit_box2:GetText())
      pos_z = tostring(edit_box3:GetText())
      pos_name = tostring(edit_box4:GetText())
--часть с записью
 if pos_x~="" and pos_y~="" and pos_z~="" and pos_name~="" then
	self.settingFileName = "gamedata\\teleports_coordinats.txt"
	local file = io.open( self.settingFileName, "a" )
	if file ~= nil then
		file:write( pos_name.."|"..pos_x.."|"..pos_y .."|"..pos_z.."\n")
		file:close()
--часть с записью
	end
      self:OnButton_portal_clicked()
 end

end

 

Отсюда вопрос: есть ли какой-нибудь  способ записи параметров объекта в файл, который в папке с игрой, т.е. так же, как и в повелителе зоны в чн? Если да, то, если можно, пример, пожалуйста.

30.03.2010 в 20:04, Atempad сказал:

Я же сказал, в скриптах ТЧ не работает вывод (запись) в файлы. Для этого используй ЧН или ЗП.

Лично я не вижу в этом кооператива, только изврат в чистом виде.

 

P.S. Про скайп я не шутил... Оно того не стоит. А вообще - дерзай.

Нельзя

27 минут назад, Pug-Lover сказал:

Нельзя

Нашёл намного более простой способ, который работает именно так, как я хотел. Вот код, если кому-то может быть нужно:

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

function first()
amk.save_variable("testjops", "succsess")
end

function second()
asf=amk.load_variable("testjops", "failure")
news_manager.send_tip(db.actor, asf, nil, nil, 5000)
end

 


 

Здрасте, где можно посмотреть список параметров при подмене net_packet'ов? Т.е:

t = amk.read_stalker_params(sobj)
t.health=0.1
t.killerid=65535

и другие параметры относящиеся к нпс(или другому объекту)?

 

  • Сочувствую 1
Ссылка на комментарий

Всем привет! На днях сделал мод для "ТЧ", отчасти подправил в нём синглплеер, отчасти сделал мод мультиплеерным. Но остается вопрос по поводу "мультика". Дело в том, что я не правил файл ui_mp_icon_kill.dds, где нарисованы иконки, появляющиеся в нижнем левом углу экрана при убийстве противника во время сетевой игры. Можете мне подсказать, в каких файлах прописаны координаты изображения оружия, высвечивающегося при наборе фрагов в сетевой игре (в том самом левом углу экрана)? И критически ли важно дополнить файл ui_mp_icon_kill.dds и связанные с ним конфигурационные файлы? Просто я не нашёл в игровых архивах нужные мне для правки файлы категории ui. Доделки внести хочется, но я не знаю, в какие именно файлы.

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

Здравия желаю всей честнОй компании.

Такая ерунда наметилась, ни хорошая.

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

function HandHid(info_id)
    if info_id == "ui_pda" or info_id == "ui_inventory" or info_id == "ui_trade" or info_id == "ui_car_body" then
        db.actor:hide_weapon()
    elseif info_id == "ui_pda_hide" or info_id == "ui_inventory_hide" or info_id == "ui_trade_hide" or info_id == "ui_car_body_hide" then
        db.actor:restore_weapon()
    end
end

Работает только в самом начале, до получения задания на счёт флешки шустрого, после перестаёт работать, почему так?

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

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

UriZzz.gif

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

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

Можно ли как-то добиться торговли схожей с ЗП ? Чтобы не скупали убитые стволы. Пробовал добавлять в конфиги buy_item_condition_factor = 0.7 - толку никакого.

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

@Space.Marine, без правки движка не как.

В x ray ext есть хак, в OGSR тоже что то есть...

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

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

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

UriZzz.gif

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

@Space.Marine, вообще, @Kirgudu делал для  OGSM CS 1.8 CE Fixes (для CS, правда). Можно попробовать? перетащить. Но там такая эквилибристика со скриптами, что проще действительно XRE или OGSR использовать.

  • Согласен 1
Ссылка на комментарий
11 часов назад, Space.Marine сказал:

А может где-то реализовано скриптами ? Посоветуйте, пжлста.

Есть скрипт динамической торговли с нпс. Там помоему сталкеры покупают оружие только если оно лучше чем у них. Полностью скриптовая торговля, движковая отключена.

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

Скрипт поддержки динамических схем торговли, для нпс.

-Индивидуальная схема торговли у каждого нпс.
-пистолеты и автоматы рассматриваются как отдельные типы предметов.
-случайные цены, в определённых пределах, для каждого нпс в отдельности.
-установлена процентная вероятность на покупку и продажу большинства предметов.

-оружие покупается только лучшее, относительно того, что уже есть.
-оружие продаётся, только если у нпс их несколько. При этом, наилучшее в продажу не идёт.
-поддерживается процентная вероятность на покупку и продажу оружия.

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

Автор: @singapur22

СКАЧАТЬ: https://yadi.sk/d/SeKhlnMfshtCJ

 

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

function TestInfo(info_id)
    if info_id == "ui_pda" then
        amk.send_tip("***ТЕСТ ИНФО НА ОТКРЫТИЕ ПДА***")
    elseif info_id == "ui_inventory" then
        amk.send_tip("***ТЕСТ ИНФО НА ОТКРЫТИЕ ОКНА ИНВЕНТАРЯ***")
    elseif info_id == "ui_trade" then
        amk.send_tip("***ТЕСТ ИНФО НА ОТКРЫТИЕ ОКНА ТОРГОВЛИ***")
    elseif info_id == "ui_car_body" then
        amk.send_tip("***ТЕСТ ИНФО НА ОТКРЫТИЕ ОКНА ОБЫСКА***")
    elseif info_id == "ui_pda_hide" then
        amk.send_tip("***ТЕСТ ИНФО НА ЗАКРЫТИЕ ПДА***")
    elseif info_id == "ui_inventory_hide" then
        amk.send_tip("***ТЕСТ ИНФО НА ЗАКРЫТИЕ ОКНА ИНВЕНТАРЯ***")
    elseif info_id == "ui_trade_hide" then
        amk.send_tip("***ТЕСТ ИНФО НА ЗАКРЫТИЕ ОКНА ТОРГОВЛИ***")
    elseif info_id == "ui_car_body_hide" then
        amk.send_tip("***ТЕСТ ИНФО НА ЗАКРЫТИЕ ОКНА ОБЫСКА***")
    end
end

Соорудил такую функцию, повесил на инфо кэллбэк, тесты показали что инфопоршни тыки подаются, почему функция на прятанье рук перестаёт работать, ума не приложу...:616:

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

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

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

UriZzz.gif

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

перестаёт работать

Я просто поставил вызов прятания рук из inventory.on_inventory_info. При использовании инвентаря всегда всё работает.

Здесь могла быть ваша реклама.

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

Всем привет ребята. У меня 2 маленьких вопроса, не откажите в помощи. 1. Как уменьшить обьем метки игрока на карте, чтобы надпись "Меченый" не выводилась постоянно? 2. Как восстановить квест бармена на убийство монолитовца мастера? В таск менеджере он не закомментирован, но все равно не выдается. Причем хочу сделать так, чтобы он выдавался только один раз за игру и не был автоматическим.

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

@Ninna

1. [config\ui\map_spots.xml]: actor_level_spot и actor_level_spot_p. Добавить stretch=1 к каждому заголовку и задать width, height сколько требуется.

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

Шпаргалка

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

Пытаюсь открыть инвентарь но выходит такая ошибка 

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


FATAL ERROR
 
[error]Expression    : error handler is invoked!
[error]Function      : invalid_parameter_handler
[error]File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line          : 804
[error]Description   : 
 

stack trace:
 

я не знаю что я такое намудрил, что у меня вылетает, когда я открываю инвентарь (даже в самом начале игры)

Свобода - лучшие сталкеры в зоне!

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

если менять какой-то параметр через консоль, то где посмотреть, как его правильно вбивать?

@Vasilij28, на данный исторический уже неактуально, но вдруг в будущем пригодится:

1. В игре открываем консоль и набираем в ней команду help

2. Либо смотрим необходимую команду в самой консоли (PgUp / PgDown), либо закрываем игру и смотрим лог.

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

Забавно, как народ  начинает с упоением советовать милый сердцу метод научно-эмпирического тыка.

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

d11422657ff706800bdefe2b2fb82034.jpeg 96317855424812c3f06c4255d3a4d72f.jpeg 56a7afa23cd3841744000f73deb52d52.jpeg

 

 

 

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

@Ninna, забавный у GSC мастер-монолит на Радаре получился:
 

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

 

task_manager.ltx:

91585021c9d72c9af4f79b85a8e7da22.jpeg

character_desc_radar.xml / npc_profile.xml:

3f61518dfcafb249723bab66b5b0a49a.jpeg

all.spawn (ACDC):

74d92aad0499c153fa80e662641511bf.jpeg

 

rad_monolith_master != rad_monolit_master. На аутентичном Радаре - он такой один. Простейшее решение с переименованием очевидно. Но профиль не уникальный. (см. Бункер под Выжигателем)

Для надёжности - сделать его уникальным a-la ... Волк :biggrin:

 

Самовыдаваемость квеста: task_manager.ltx: init_condition =  {...} <-> ;init_condition = 

 

 

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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