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

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

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

@Houdini_one@AndreySol ,@AndrewMor,

В конфиге лут-ящика можно выставить и так:

[autoremove_parts]
time                      = -1 

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

  • Нравится 1

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

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

Всем привет, такая проблема решил я значит звуки при использовании предметов сделать. По этой статье http://stalkerin.gameru.net/wiki/index.php?title=Звук_при_использовании_предмета но при использовании предмета, заместо звука получаю вылет. Жалуется на эту строку:

item_sounds.use_snd(obj)

Что тут не так?

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

@AndrewMor после того, как объект разбит, я сквозь его обломки могу проходить.
В настройках у меня это:
 

;-------------------------------------------------------------------------------
;--- collide -------------------------------------------------------------------
;-------------------------------------------------------------------------------

[collide]
not_collide_parts = 1

;-------------------------------------------------------------------------------
;--- destroyed part ------------------------------------------------------------
;-------------------------------------------------------------------------------
[collide_parts]
small_object

Как у ящика в общем. Но не помогает.

  • Нравится 1

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

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

@Сталкер Одиночка , код в студию! Вариант пусть и небезупречный, но вполне себе работоспособный. Звуки по соответствующим путям точно присутствуют?

 

@Houdini_one , очевидное, но невероятное: а шейпы у осколков, получающихся при разбивании объекта, часом не забыл настроить?

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

0101.jpg

 

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

@Houdini_one Удали строку small_object, и у объекта и у обломков. Если нужно также, чтобы обломки контактировали друг с другом, убери not_collide_parts.

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

@ru trash_ добавить алгоритм, проверяющий, что на игрока надет шлем. И если да, то воспроизвести звук, зацикленно.

Можно через скрипты, можно через движок. Зависит от того, как у вас шлемы реализованы. В оригинале-то, их нет вовсе. Поэтому и невозможно на ваш вопрос, ответить каким-то определенным, программным кодом.

 

Edit.

Значит, вот эти скрипты и править.

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

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

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

@ru trash_ вот пример скрипта, который в том числе и звуки дыхания запускает

https://github.com/dsh2dsh/op2ogse/blob/5feadcdd0fd903c9165e039d9ce2696ed27a1977/gamedata/scripts/dsh/dsh_hud_fx.script#L271

 

Разберешься - молодец. Не разберешься - меня ни о чем не спрашивай.

 

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

Всем привет.

Внедрил Энциклопедию, по типу того, что OGSM Team делала для ЧН. Но закладка Об энциклопедии почему-то сдвинулась вниз, что не верно: http://f26.i-fotki.info/thumb/e3e59c724502ce05cab76c82d454c8654d6ff7396646073.jpg

Вопрос: как/где можно это поправить?

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

@monk 

эту статью (<article>about_enciclopedia</article>) надо выдавать, при новой игре, сразу же (и раньше других), тогда и будет 1-й в списке. В оригинале выдаётся вместе с заданием Убить Стрелка.

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

Золотой шар основан на ОГСЕ, скриптов движковая реализация. Задействованы добавленные в движок скриптовые методы по воспроизведению анимаций.

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

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

UriZzz.gif

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

Есть у нас тут еще любители поковыряться в интерфейсе?

Я уже три часа ломаю голову над тем, каким волшебным образом работает эта дурацкая менюшка со слайдером (который ПЫС обзывают "шнягой") в главном меню? Как я только не рассчитывал координаты бегунка, он всегда не совпадает с окном, если включить эффект линзы (текстура ui_magnifier). Чаще всего ровно на один шаг.

   <shniaga_wnd x="638" y="408" width="274" height="290">
        <buttons_region    x="11" y="27" width="251" height="248" always_show_scroll="false"/> <!-- y должен быть = 30. но тогда слайдер не центре текста -->
        
        <shniaga x="0" y="0" width="274" height="75">
            <texture>ui_main_menu_slider</texture>
            <magnifire x="19" y="30" width="236" height="29" stretch="1"> <!-- дурацкий эффект линзы, который ломает все, если его не отключить -->
                <texture>ui\ui_magnifier</texture>
            </magnifire>

            <left_anim x="0" y="1023" width="1" height="1" stretch="1" heading="1" alignment="c">
                <texture></texture>
            </left_anim>            
            <right_anim x="0" y="1023" width="1" height="1" stretch="1" heading="1" alignment="c">
                <texture></texture>
            </right_anim>
            <left_grating x="0" y="1023" width="1" height="1">
                <texture></texture>
            </left_grating>
            <right_grating x="0" y="1023" width="1" height="1">
                <texture></texture>
            </right_grating>
        </shniaga>        
    </shniaga_wnd>

Набросал по быстрому настройки окна с пунктами меню. Сори за дерьмовое качество, пришлось сильно увеличить из-за родного разрешения ui игры в 1024х768:

http://j-p-g.net/if/2021/02/27/0431256001614445834.jpg

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

Подскажите плиз как можно переложить все предметы из тайника в инвентарь игроку? По идее через iterate_inventory, но у меня не получается. Вот код:
 

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

function cheat()
for a=1,65535 do
obj=level.object_by_id(a)
if obj then
if IsInventoryBox(obj) then
obj:iterate_inventory(function(npc, item)
if item:section() == "bolt" or item:section() == "device_torch" or item:section() == "device_pda" then
return false
end
npc:transfer_item(item, db.actor)
end, obj)
end
end
end
end

function IsInventoryBox(obj)
local otype = obj:clsid()
if
otype == clsid.inventory_box then
return true
else
return false
end
end

 

 

Ссылка на комментарий
8 часов назад, Pug-Lover сказал(а):

iterate_inventory

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

Этому можно сколько угодно удивляться, но, тайники (InventoryBox) к таким не относятся. И iterate_inventory для них не работает.

Есть два способа это обойти/исправить.

1) Перебирая все 65к объектов, сравнивать их parent_id с id тайника, и таким образом найти все те, которые ему принадлежат.

2) Править движок, чтобы у тайников метод тоже работал (Потребуется и сам класс CInventoryBox тоже подправить)

 

Upd. А так работать оно и не будет. Ты берешь парент- объект, и его засовываешь в аргумент функции object_by_id... А надо в данном случае с владельца (parent), взять id, и его сравнивать с id тайника.

7 часов назад, Pug-Lover сказал(а):

if level.object_by_id(obj:parent()):clsid()

Изменено пользователем Zander_driver
  • Спасибо 1
  • Нравится 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 минут назад, Zander_driver сказал(а):

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

Этому можно сколько угодно удивляться, но, тайники (InventoryBox) к таким не относятся. И iterate_inventory для них не работает.

Есть два способа это обойти/исправить.

1) Перебирая все 65к объектов, сравнивать их parent_id с id тайника, и таким образом найти все те, которые ему принадлежат.

2) Править движок, чтобы у тайников метод тоже работал (Потребуется и сам класс CInventoryBox тоже подправить)

 

сделал по первому варианту и результата ноль, даже не вылетает
 

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

function ch_5:cheat26()
for a=1,65535 do
obj=level.object_by_id(a)
if obj then
if level.object_by_id(obj:parent()):clsid()==clsid.inventory_box then
level.object_by_id(obj:parent()):transfer_item(obj, db.actor)
end
end
end
end

 

 

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

xrs_utils.set_weapon_data(xrs_utils.get_weapon_data(obj),replacement)

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

function cheat()
for a=1,65535 do
obj=alife():object(a)
if obj then
if obj.parent_id~=nil and obj.parent_id~=65535 then
if alife():object(obj.parent_id):clsid()==clsid.inventory_box then
replacement=alife():create(obj:section_name(),db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
--xrs_utils.set_weapon_data(xrs_utils.get_weapon_data(obj),replacement)
alife():release(obj, true)
end
end
end
end
end

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

 

Ссылка на комментарий
7 часов назад, Pug-Lover сказал(а):

теперь мне нужно как-то передать данные об обвесах, состоянии, патронах и т.д. в объект, которым заменяем.

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

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

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

Так как отдельной темы по all.spawn нет, спрошу здесь... Кто-нибудь занимался глобальной очисткой спавна от всяческого мусора, который ну вот 100% не нужен нигде и удаление которого не приведёт к вылету? Как пример приведу файл для Тёмной долины, где есть вот такие 4 чудных спейс рестриктора без роду и племени:

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

 

[2424]
; cse_abstract properties
section_name = space_restrictor
name = _space_restrictor
position = 35.393367767334,-1.96477317810059,-56.8688201904297
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 811
distance = 0
level_vertex_id = 316473
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 1.7837952375412,0,0
shape0:axis_y = 0,1.93420171737671,0
shape0:axis_z = 0,0,1.7837952375412
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 2
 

[2427]
; cse_abstract properties
section_name = space_restrictor
name = _space_restrictor_0000
position = 46.5568656921387,8.59524917602539,-30.9014167785645
direction = 0,0,-6.11010409556911e-006

; cse_alife_object properties
game_vertex_id = 811
distance = 0
level_vertex_id = 316473
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 1.7837952375412,0,0
shape0:axis_y = 0,1.93420171737671,0
shape0:axis_z = 0,0,1.7837952375412
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 2

 

[2435]
; cse_abstract properties
section_name = space_restrictor
name = _space_restrictor_0001
position = 148.444839477539,0.765969753265381,-232.418548583984
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 811
distance = 0
level_vertex_id = 316473
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 1.7837952375412,0,0
shape0:axis_y = 0,1.93420171737671,0
shape0:axis_z = 0,0,1.7837952375412
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 2

 

[2437]
; cse_abstract properties
section_name = space_restrictor
name = _space_restrictor_0002
position = 142.275543212891,0.697487950325012,-272.112213134766
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 811
distance = 0
level_vertex_id = 316473
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 1.7837952375412,0,0
shape0:axis_y = 0,1.93420171737671,0
shape0:axis_z = 0,0,1.7837952375412
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 2

 

Зачем они вообще там нужны? Остатки от билдов? Оно-то конечно "работает - не трогай", но хотелось бы избавить спавн от возможных косяков. Я знаю, что многое поправлено в спавне в зарубежном моде ZRP, но бездумно тянуть оттуда все правки как-то не хочется, особенно когда я вижу там странные правки вида: p3:level_vertex_id = -1 вместо p3:level_vertex_id = 4294967295 (явно глючного) (так вообще можно писать с -1?).

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

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

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

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

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

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

Войти

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

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

AMK-Team.ru

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