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

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

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

@ErCody_, + весьма сомнительно, что движок воспримет формат "видео+аудио". Т.е. отдельно - видеоряд, отдельно - звуковая дорожка в соответствуюших форматах. Старенький faq, но для понимания принципа сойдёт.

  • Нравится 1
Ссылка на комментарий
Только что, Купер сказал:

сомнительно, что движок воспримет формат "видео+аудио"

Точно НЕ воспримет) был такой опыт.

  • Согласен 2

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

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

@Вася Сапляшо опять?

https://modfaq.ru/Распаковка_игровых_архивов

и поставьте же себе, наконец, это. Ну сколько можно мучиться и искать себе приключений :dash2:

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

Товарищи спецы, просветите. Платформа OGSR (да и XRE, в принципе).

Вводная: попытка реализации дискретных шлемов c отсечкой по костюмам. 

В bind_stalker соответствующий callback:

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

function actor_binder:net_destroy()
    self.object:set_callback(callback.on_slot, nil)

function actor_binder:reinit()
    self.object:set_callback(callback.on_slot, self.item_to_slot, self)

function actor_binder:item_to_slot(obj)
    inventory.check_remove_gasmask()

 

 

Сама проверка, нагло свистнутая ради эксперимента:

inventory:

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

 


function have_gasmask()
    local armor = db.actor:get_current_outfit()
    if not armor then return false end
    local armorname = armor:section()
    if string.find(armorname, "military_outfit") or
       string.find(armorname, "protection_outfit")
    then return true end
end

function check_remove_gasmask()
    local bio_belt = db.actor:item_in_slot(10)
    if not bio_belt then return end
    local sect = bio_belt:section()
    if sect == "af_maska_1" or sect == "af_maska_2" then
        if have_gasmask() then
            db.actor:move_to_ruck(bio_belt)
            update_inventory_window()
        end
    end
end

 

 

Выхлоп на горячей перезагрузке:

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

[error]Expression    : FATAL ERROR
[error]Function      : CInventory::DropItem
[error]File          : c:\projects\ogsr-engine\ogsr_engine\xrgame\inventory.cpp
[error]Line          : 236
[error]Description   : CInventory::DropItem: InSlot(pIItem): [af_maska_217160], id: [17160]

Что не докручиваю, куда копать, где подсмотреть? В общем, требуется перевод этого на технический русский.

Ссылка на комментарий
Только что, Купер сказал:

перевод этого на технический русский.

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

Но эт все актуально тогда, когда движок == "черный ящик".

А если

Только что, Купер сказал:

Платформа OGSR

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

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

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

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

-- Болтик на худе
function Bolt_in_hud()
local slot_bolt = db.actor:active_slot()
local hud = get_hud():GetCustomStatic("hud_bolt")
	if slot_bolt == 5 then
		if not hud then
			 get_hud():AddCustomStatic("hud_bolt")
		end
	else
		get_hud():RemoveCustomStatic("hud_bolt")
	end
end

Запись в ui_custom_msgs

  <hud_bolt x="921" y="711" width="38" height="38" stretch="1">
    <texture x="750" y="1150" width="50" height="50">ui\ui_icon_equipment</texture>
  </hud_bolt>

 

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

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

UriZzz.gif

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

иконка отображается почему то за текстурой статика, почему?

 

Измени скрипт вот так

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

function Bolt_in_hud()
local slot_bolt = db.actor:item_in_slot(db.actor:active_slot())
local hud = get_hud():GetCustomStatic("hud_bolt")
	if slot_bolt and slot_bolt:section() == "bolt" then
		if not hud then
			get_hud():AddDialogToRender(get_hud():AddCustomStatic("hud_bolt", true):wnd())
		end
	else
		if hud then
			get_hud():RemoveDialogToRender(hud:wnd())
			get_hud():RemoveCustomStatic("hud_bolt")
		end
	end
end

 

 

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

@ted.80, да, так заметно по проще.

А то я уж там начал ваять...:facepalm:

  • Смешно 1

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

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

UriZzz.gif

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

Возвращаясь к этому, а можно пример "человечячего" метода получения этого самого апдейта?

Вариант:

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

function XYZ()
    local x = 1
    local precondition = function()
        x = x - 1
        return x == 0
    end        
    local action = function()
 ...
    end 
level.add_call(precondition, action)
end

 

 

Смотрится как-то костыльно.

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

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

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

Ребят, а каким образом можно вернуть раскачку оружия из билдов? Пытался из ЛА и ОЛР, ничего не помогло.

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

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

@Svobodovec_Arbuz, в OLR там скриптовая, адаптировать надо. Ну или движёк править, В OGSR она в движке, без скриптов.

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

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

UriZzz.gif

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

Ребят, а каким образом можно вернуть раскачку оружия из билдов?

Пока отдельно встречал только из LA вроде выдернутую с собственными dll.

https://yadi.sk/d/Cs45bOdRP_NrSA

  • Спасибо 1
Ссылка на комментарий
10 часов назад, Libery сказал:

функцию в сталкер 1.0006 на поднятие предметов С ЗЕМЛИ!

https://yadi.sk/i/ICkRv13I4Uc0Gg

@Libery, это всё-таки, наверное, сюда. Судя по "... сталкер 1.0006".

 

1. take_item_from_box - это больше про взаимодействие с inventory_box (S_INVBOX). Как минимум, попробовать желаемое на on_item_take.

Общая информация по нюансам: тут тут и тут

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

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

Народ, столкнулся с такой проблемой: Не работает спавн через all.spawn на новой локации. В чем может быть проблема?
 

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

 

Примечание
- Новая локация прописана в файле "all.ltx"; ACDC
- Количество локаций в файле "all.ltx" поставлено соответствующее: ACDC
- Все файлы связанные с локацией (game_graphs.ltx, game_levels.ltx, game_maps_single.ltx) имеются в папке gamedata.
- game.graph в папке gamedata соответствующий. 
- В папке с локацией присутствует "level.spawn".

Пример секции: 
 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[8967]

; cse_abstract properties
section_name = level_changer
name = aver_level_changer_to_svalka
position = -329.354248046875, 40.3436546325684, -380.652862548828
direction = 0, -0.684000015258789, 0
id = 65535
version = 118
script_version = 6
spawn_id = 302

; cse_alife_object properties
game_vertex_id = 2886
level_vertex_id = 174770
object_flags = 0xffffff3e
custom_data = <<END
[pt_move_if_reject]
path = aver_way_if_reject
END
story_id = 11507

; cse_shape properties
shapes = 1
shape_0:type = box
shape_0:axis_x = 274.305633544922,0,0
shape_0:axis_y = 0,82.5668029785156,0
shape_0:axis_z = 0,0,1
shape_0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 3

; cse_alife_level_changer properties
dest_game_vertex_id = 368
dest_level_vertex_id = 307645
dest_position = 152.736175537109, -2.4588451385498, 251.547668457031
dest_level_name = L02_Garbage

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 


 

Изменено пользователем W.A.S.P.
Добавлено  Опричник,

Убрать под спойлер - выделить текст и нажать на панели инструментов кнопку с глазом.

bar.jpg

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

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

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

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

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

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

Войти

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

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

AMK-Team.ru

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