[SoC] Ковыряемся в файлах - Страница 667 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

 

 

use_object по идее
- у актора эти коллбеки работают, а на предмет в инвентари у актора - почему то нет, т.е. если добавить вывод в консоль на net_spawn/net_destoy моего объекта - то при добавлении, использовании из инвентаря - в консоли вывод есть (типа таки да, мой биндер прибинделся). А вот коллбеки - тишина, предмет просто "съедается", в консоли просто появляется сообщение о том что он удаляется (sv destroy с моим классом)...

Так простите, использование в инвентаре - это съедание. Что там можно запустить, если предмета УЖЕ нет ?

Использование "на земле" - это именно использование. Вызов соответствующего коллбэка. С самим предметом ничего не происходит.

2 большие разницы.

 

Это кроме того, что в классе может быть вообще не предусмотрено. Проверять надо - бросить на землю, и там использовать.

  • Спасибо 1

Ну как бы да. use_callback вызывается у самого актора, при съедении им итема.

а так же у внешне-лежащих объектов, когда актор их юзает, но не ест :)

drop_callback - у актора при дропе итема. а не у самого итема.

  • Спасибо 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.

Т.е. использование биндера на предмет в инвентаре, на который я хочу повесить custom callback- такого функционала нет? только через actor_binder? в моей внутренней логике callback.on_use_item должен был вызываться у прибинженого объекта при нажатии на клавищу "Использовать" в инвентаре :) .
В связи с этим следующие вопросы, на которые не смог найти ответа на форуме-
1)можно ли через конфиг создать инвентарный предмет используемый но не съедаемый (какой либо другой class), или только переспавнивать в калбеке?
2) цепочка калбеков у актора - use_object->"съедается" итем->drop_item, или "съедается" итем->use_object->drop_item
3)почему в биндере актора большинство обработок на использование, например в НС, повешено на drop_item, а не на use_object? в drop_item ведь итем все еще существует, так какая разница?
 
Благодарю!

http://www.amk-team.ru/forum/index.php?showtopic=13054
В каких-то древних версиях, типа 1.0, это не работало. dc

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

1)можно ли через конфиг создать инвентарный предмет используемый но не съедаемый (какой либо другой class), или только переспавнивать в калбеке?

Нельзя. Коллбек use_object вызывается только для съедаемых предметов. Можно выставить ему очень большое количество порций.

 

2) цепочка калбеков у актора - use_object->"съедается" итем->drop_item, или "съедается" итем->use_object->drop_item

Что такое "съедается"? Последовательность такая:

выбираешь в инвентаре "использовать",

применяются эффекты,

коллбек use_object,

если съели весь, то коллбек drop_item и удаление предмета

 

3)почему в биндере актора большинство обработок на использование, например в НС, повешено на drop_item, а не на use_object? в drop_item ведь итем все еще существует, так какая разница?

По историческим причинам. До использования коллбека use_object использовалась связка on_drop_item/проверка надличия предмета на следующем апдейте
  • Спасибо 1

 

 

2)

Это же можно самому протестировать)

 

 

Коллбек use_object вызывается только для съедаемых предметов.

Вообще-то еще для юзаемых физ-объектов, когда их юзает актор. У самого актора да, для съедаемых им.

Щас задумался над логикой такого сочетания... это когда мы в выжигателе жмем на рычаг, то рычаг должен по логике актора съесть :blink:

 

 

3)

Исторически так сложилось, да. А еще из-за инертности много чего, эти методы усердно копируются из мода в мод. Что не есть хорошо.

  • Спасибо 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.

Вообще-то еще для юзаемых физ-объектов, когда их юзает актор. У самого актора да, для съедаемых им.

Щас задумался над логикой такого сочетания... это когда мы в выжигателе жмем на рычаг, то рычаг должен по логике актора съесть :blink:

Речь шла об инвентарных предметах. В инвентаре коллбек вызывается при "съедании".

Также коллбек вызывается при взаимодействии с физическими предметами.

 

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

А так да - с точки зрения рычага это рычаг взаимодействует с актором :)

[std_item]:identity_immunities
parent_props
[item1]:std_item
child_props
[item2]:std_item
child_props
[item3]:std_item
child_props

Можно ли при таком описании узнать что item* наследуются от std_item? section() возвращает item*, parent к инвентарным итемам смысла нет . или это чисто описательная способность конфигов?

parent вообще то как раз к инвентарным предметам и применяется, возвращая владельца итема.

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

  • Спасибо 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.

То же самое, что с инклудами. Движок читает файл, разбирает, сортирует, разбивает по секциям... Хотим добраться до исходного - придется лезть во внутрь, и вытаскивать собственно работу с файлами.

  • Спасибо 1

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

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

Ребята,прошу помогите начинающему мод-мейкеру.

Я увидел в ОГСЕ классную пушку "молотилка" имя ее.

Мне сообщили что она так же имеется в солянке,самое интересное - что там где она есть (в 12-ого года соли и ОГСЕ) вытащить ее практически нельзя,я выдрал из бедной солянки один файл - ltx. который должен лежать в папке weapons.

Помогите пожалуйста,я очень пытался вытащить из ОГСЕ - там все запаковано до ужаса,мои распаковщики много добра не сделали...

 

С солянкой другой "геморрой",там кароче такая ситуация - в "meshes'aх" ничего нету (файлов указанных в файле ЭЛ ТЕ ИКС sayga_12c_m1_hud.ogf,sayga_12c_m1.ogf ПРОСТО НЕТУ!)

 

ТЕКСТУРЫ - тоже пропали??

либо я такой криворукий,либо - так все сложно.

Тут еще одна проблема навалилась,скопировал - на 31%(по моим предположениям) распакованную геймдату - в папку с игрой,и там пишет вот что :(игра не запускается с такими логами)

Expression : I


Function : CInifile::Load
File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
Line : 166
Description : Can't find include file:
Arguments : Installer_wpn\ammo\ammo_16x70.ltx

 

каждый раз - патроны разные,прописываю из лога строчку ( #"Installer_wpn\ammo\ammo_16x70.ltx")в нужный файл,т.е - в Installer.ltx

 

Не нужно писать жирным шрифтом. здесь все, всё видят. Пока пред устно.

Изменено пользователем Хемуль36рус

[Eger.Overkill] // Ⓐ // Eкьюалити / Uнити // 

 "Burn the rich // eat the rich"

О себе : Какой-то Ноунэйм с олд форума , заядлый нарушитель общественного порядка и правил , рецидивист.

Egor4ikModMaker.gif

Наследование по предметам очень упростило бы групповую обработку (при условии что правильно описаны конфиги предметов), инклюды - было бы удобно, скорее всего для некого "виртуального редактора" всей структуры скриптов сталкера (ИМХО).

 

Уважаемые знающие, не могу найти на форуме описание классов для работы с GUI (в том числе и в теме GUI :( ) и соответственно описание структуры xml для этих классов. Интересуют всякие табы, фреймы, выпадающие списки. Благодарю за любую инфомауцию!

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

 

 

не могу найти на форуме описание классов для работы с GUI

Хм, а в "Справочнике по функциям и классам" - Создание и управление худом и пользовательским интерфейсом ?

Очень кратко, к сожалению, и там только список классов, без описания xml конфигов к ним. и хотел пример использования TabControl.

 

И да, к сожалению - цитата из этого поста "В неохваченном осталась тема о создании окон на основе XML описания." Данный вопрос очень интересует, после вдумчивого прочтения существующих xml-ек озарение не наступило, ибо вариантов таких описаний очень много, а хочется почитать какой нибудь единый справочник.

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

@Winsor, получи знания сам, напиши статью. Что-бы сократить время можно посмотреть сразу в движке, я 15 дополнительных атрибутов насчитал для статиков. Разумеется для каждого класса свои атрибуты. Их много, просто так их тебе я думаю никто описывать не будет. Туторов по ним я вроде не видел.

  • Спасибо 1

@Winsor, есть еще вариант создавать объекты GUI-классов с помощью скриптов, и с помощью них же управлять. Тут щас по традиции поднимут вайн что это ненужно и неправильно, я же придерживаюсь позиции что ненужен xml :)
 А своими методами я лично доволен.

Я подниму вайн, что давно уже нужна статья и хорошая, читабельная рыба. dc

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

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

Вопрос телепатам:

 

Как можно спрятать окно диалога, где идет треп с неписем/торговцем ?

Ну, например, с Сидоровичем. Вот это вот, центральное, где "Привет-привет !" "Обнимемся-обнимемся !" и т.д.

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

 

 

upd: нет, осознание - не то. Нужен именно фон. Ну вот как я с ремонтом картинки показывал, но там был готовый. Осталось только элементы между рамочками вписать. Хочется опять же готовый.

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

@Dennis_Chikin, есть ключ need_osoznanie_mode, который скрывает лист диалога, а так же иконки актора и нпс, в общем что ты у осознанца видишь вот это то и есть, можешь любому ставить работает 100%, проверял и не раз. Метода для отдельного скрытия этого окна нет, это уже нужно в движке добавлять. Черная текстурка, ну это можешь из любой вырезать черную часть и размножить :)

При помощи известной матери нашел пост, из которого вообще что-то понятно.

 

function Vehicles:GetDescription(id)

return game.translate_string(self.vehicles[id].descr)

end

 

game.translate_string() - функция игры, преобразующая поданную строку в текст, прописанный для нее в соответствующем xml-файле.

 

self.vehicles - таблица, заполняющаяся в function Vehicles:LoadFromLtx() из конфига.

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

Таки да - изучать язык, читать документацию по ссылкам из первого поста темы и т.д.

Значит долго не заходил не было времени,  спасибо за ответ, хорошо а теперь откуда берется тогда значения из таблицы если эта вот эта таблица да?

name             = ltx:r_string(id, "inv_name"),
				descr            = ltx:r_string(id, "description"),
				cost             = ltx:r_u32   (id, "cost"),
				has_trunk        = ltx:r_bool  (id, "has_trunk"),
				trunk_capacity   = ltx:r_float (id, "trunk_capacity"),
				fuel_tank        = ltx:r_float (id, "fuel_tank"),
				fuel_consumption = ltx:r_float (id, "fuel_consumption"),
				dist_use_fuel    = ltx:r_float (id, "dist_use_fuel")

По ошибкам вроде не найдены эти значения хотя в файлах конфигов по машинам вроде правки сделаны

http://www.amk-team.ru/forum/index.php?showtopic=12820&view=findpost&p=920464

Собственно еще один вопрос к знатокам, обыскал форум не нашел как запустить диалог у мертвого непися как будто он живой, вышло недоразумение сталкера уже нет в живых а он нужен для квеста, переигрывать сначала  игры не хочется, нашел файлы логики этого сталкера попробовал закоментить on_death = death но ничего не вышло

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

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

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

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

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

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

Войти

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

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

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