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

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


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

1 час назад, AndreySol сказал(а):

параметр времени жизни для этих объектов

Я его и имел в виду. Не совсем понятно, что автор поста хотел сказать этим "Как сделать материальными части, которые появляются после того, как объект был разбит". Части эти и так материальны, нет?

Сталкер - наше всё!

16.02.2021 в 16:07, Silver Raven сказал(а):

какой-либо смысл? Или все туфта

Представь нагрузку на ЦП с одним ядром в 100% и игра фризит- не хватает мощности. Твой вариант программки лишь распределит эти 100% на все ядра (~100%/колич. ядер), но не доберет те проценты, которых не хватает для погашения фризов. Тут либо выбирать ЦП с большей Гц на одно ядро, либо копать в сторону полноценной многопоточности. При многопоточности: 100% распределяться по клич. ядер + произойдет распределение тех %, которых не хватало.

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

@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

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

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

  • Полезно 1

@Купер все уже разобрался, пути до звуков не правильно были указаны.

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

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

 

Edit.

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

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

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

2 минуты назад, Zander_driver сказал(а):

как у вас шлемы реализованы

Через скрипты, использовал - Dynamic Hud от @Bak.

@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 / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

 

Скрытый текст
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 / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

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

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

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

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

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

Войти

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

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

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