Перейти к содержанию

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

 
 

Mervin62 Я в С++ не копенгаген, поэтому неопытный ?

И было бы здорово если бы вы привели полное сообщение об ошибке.


46 минут назад, NitWaifu сказал:

cross_table doesn't correspond to the AI-map

Кросс-таблица, та, что строиться при сборке спавна, и находиться соответственно в all.spawn не соответствует АИ-сетки локации - level.ai. Вот и смотрите что нужно заменить, чтобы несоответствие устранить.

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
12 минут назад, denis2000 сказал:

И было бы здорово если бы вы привели полное сообщение об ошибке.

[error]Expression    : BI_NONE!=f_bones.back()
[error]Function      : P_build_Shell
[error]File          : D:\prog_repository\sources\trunk\xrPhysics\PhysicsShell.cpp
[error]Line          : 147
[error]Description   : wrong fixed bone

 такая вот была ошибка, а после редактирования алспавна все гладко и глюков нет.


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000 Что ж, я попробовал просто заново собрать all.spawn из готовой локации. Мне всё больше начинает казаться, что моддинг не моё ?, или просто надо найти человека, который в этом будет разбираться, если уж так хочу создать собственный мод.

Спойлер

Expression    : fatal error
Function      : lua_pcall_failed
File          : c:\xray\forward frontier\public build\src\layers\xrrender\resourcemanager_scripting.cpp
Line          : 101
Description   : <no expression>
Arguments     : LUA error: ...k.e.r. call of pripyat\gamedata\scripts\sim_board.script:226: attempt to index local 'spawn_smart' (a nil value)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000   

Спойлер

; cse_visual properties
visual_name = dynamics\devices\dev_vodka\dev_vodka

; cse_ph_skeleton properties

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10
;fixed_bones = wpn_body   --- вот здесь поправил.
upd:num_items = 0xe6

 


Дополнено 3 минуты спустя
3 минуты назад, NitWaifu сказал:

Мне всё больше начинает

Все начинали с ошибок, но после все получится.


Дополнено 10 минуты спустя

denis2000 В другом проекте имею вот это.

Спойлер

Expression : assertion failed

Function : anim_script_callback::play_cycle

File : D:\prog_repository\sources\trunk\xrGame\animation_script_callback.cpp

Line : 31

Description : m.valid( )

Хотя сам мод отлично работает, но при пересадке его на ганс такая вот бяка,  проект не удалил, а отложил до решения проблемы.

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

Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

NitWaifu Приведенный вылет означает, что назначенный смарт для спавна не существует. Это опять проблема all.spawn в котором нет необходимых объектов. Напомните, что вы хотели сделать в целом. Зачем редактировали АИ-сетку и что добавляли в спавн?


1 час назад, Mervin62 сказал:

такая вот была ошибка

Интересно, что ошибка соответствует оригинальному PhysicsShell.cpp и не совпадает с аналогом из гитхаба GunsXRay

Ну да ладно, может версии сборки движка.

1 час назад, Mervin62 сказал:

при пересадке его на ганс такая вот бяка

А этот вылет говорит о том, что анимация объекта которую положено играть в цикле отсутствует.

Вы как человек работающий  с ганслингером не подскажите метод которым адаптируете спавн? Может проблема не в том чего нет, а в том что движек не корректно считывает all.spawn?

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Есть эксперты по скриптам SGM?

Спойлер

Перенёс из SGM систему сохранения данных, всё работает, как надо, возникла только одна проблемка: при переходе на локацию игра создаёт autosave, система SGM должна перехватить этот сейв, и она это делает, но сохраняет как quicksave и даже перезаписывает на уже существующий, что может приводить к некоторым ошибкам. В оригинале SGM autosave перехватывается. Не понимаю, что я упустил, из-за чего именно эта часть срабатывает некорректно. Уж через поиск по всем скриптам прошерстил и так, и эдак. Мне бы наводочку, в какой скрипт заглядывать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, denis2000 сказал:

метод которым адаптируете спавн

А не какого-либо метода нет, решаю проблемы по мере их поступления.

 

1 час назад, denis2000 сказал:

А этот вылет говорит о том, что анимация объекта

Я предполагаю, что Ганс не понимает некоторых анимаций или команд в логике какого-то объекта, а вот какого это предстоит выявить.


Дополнено 20 минуты спустя

denis2000 Или все же опять спавн ковырять и искать тот объект с анимацией.?


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, denis2000 сказал:

Напомните, что вы хотели сделать в целом

Я хочу сделать свой мод, история которого будет разворачиваться на Припяти, поэтому мне пришлось немного посидеть в SDK, чтобы убрать все лишние спавны и т.д. и т.п., а затем добавил уже ГГ. На форумах читал, как правильно работать с SDK, и казалось бы, должно всё работать, но нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
18 минут назад, NitWaifu сказал:

чтобы убрать все лишние спавны

А в ресурсах игры убрал? 


Дополнено 6 минуты спустя

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

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

Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Может кто-нибудь подсказать по функционалу скрытия игрового худа?
 

Спойлер

Собственно, проблема возникла при адаптации Ганслингера на СВ: В паутине лжи. И вот в чем она заключается:
 

Спойлер

ss-gloki-05-25-22-00-48-35-topi.jpg
ss-gloki-05-25-22-00-48-23-topi.jpg
ss-gloki-05-25-22-00-48-29-topi.jpg

Как видно из скринов, при зуммировании ПДА рамка миникарты не пропадает, хотя в диалогах все работает, как и должно. Данная рамка в модификации заложена в отдельном файле, в ui_actor_hint_wnd.xml на нее обращаются подобным образом:
 

Спойлер


    <file name="ui\ui_actor_hint_wnd_minimaps">
        <texture id="ui_inGame2_Patroni_HUD_main_window" x="1280" y="251" width="422" height="240" />
		<texture id="ui_inGame2_quickslot_background" x="844" y="52" width="164" height="84" />
	    <texture id="ui_inGame2_Radar_main_window" x="30" y="0" width="496" height="456" />
	    <texture id="ui_inGame2_Radar_main_window3x4" x="30" y="1536" width="496" height="456" />
	    <texture id="ui_inGame2_Radar_main_window15x9" x="798" y="1536" width="498" height="456" />
	    <texture id="ui_inGame2_Radar_main_window16x10" x="30" y="768" width="496" height="456" />
	    <texture id="ui_inGame2_Radar_main_window16x7.5" x="798" y="768" width="500" height="458" />
	</file>

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Mervin62 сказал:

[error]Description   : wrong fixed bone

 такая вот была ошибка, а после редактирования алспавна все гладко

Я ж говорил, смотри в ол спауне)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, Hunter сказал:

Я ж говорил, смотри в ол спауне

А я же говорил, что не мог его распаковать.?


Дополнено 1 минуту спустя

Apka добрый человек помог.


Дополнено 3 минуты спустя

denis2000 А ларчик просто открывался

Спойлер

[vodka_destroy]:physic_destroyable_object
$spawn                        = "dynamic_objects\devices\dev_vodka\vodka_destroy"
visual                        = dynamics\devices\dev_vodka\dev_vodka.ogf

[vodka_trash_destroy]:physic_destroyable_object
$spawn                        = "dynamic_objects\devices\dev_vodka\vodka_trash_destroy"
visual                        = dynamics\devices\dev_vodka\dev_vodka_trash.ogf

как видим кости не указаны, вот он и ругается.

  • Жму руку 1
  • Смех 1

Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun файлы-то выложите


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

(Да, я знаю что я тупой)
Как из инвентаря ГГ удалить определённый предмет? Пробовал функцией

Спойлер

function questobject_delete()
alife():release(alife():object(questobject_name),true)
end

 

- не срабатывает. Срабатывание прописывал через свойства рестриктора.

UPD: разобрался, прописал слегка изменённую взятую с интернета схему удаления НПС - вроде заработало,

Спойлер

function questobject_delete(object)
local id, obj, kto
for id=0, 65535 do
obj = alife():object(id)
if obj then
kto = obj:section_name()
if (kto == "удаляемый_обьект") then
alife():release(alife():object(id), true)
end
end
end
end

 

 

Изменено пользователем Сталкер из прошлого


ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 часа назад, Mervin62 сказал:

как видим кости не указаны, вот он и ругается

Не совсем так. Параметр fixed_bones в данной секции нужен для того, чтобы при добавлении объекта dynamic_objects\devices\dev_vodka\vodka_destroy при помощи SDK автоматически выставлялся параметр fixed_bones в настройках объекта. Этот параметр при компиляции спавна попадет в файл all.spawn откуда игровой движек его считает. То, что движок читает этот параметр напрямую из файла конфига, я не уверен, и кто при этом приоритетнее all.spawn или конфиг.


NitWaifu Понял, вы движетесь в правильном направлении, но перекомпилировать АИ-сетку было не нужно если вы ее не меняли, но уж если изменили, то после компиляции сетки, собирается спавн. Теперь из конфигов придется удалить те объекты которые вы удалили на локации. В частности смарты спавна при старте игры: файл simulation.ltx секция [start_position_имя_локации]. Ее нужно очистить и заполнять по мере настройки спавна.


Сталкер из прошлого А как она может сработать если переменная questobject_name в функцию не предается? Или переменную передавайте или прямо имя объекта внесите в функцию.

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
11 минут назад, denis2000 сказал:

Не совсем так.

Ну это было всего лишь предположение, но теперь проверяю весь алспавн в моде чтобы потом не было сюрприза 


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 минут назад, Mervin62 сказал:

теперь проверяю весь алспавн в моде чтобы потом не было сюрприза

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


Дополнено 4 минуты спустя

Neptun Насколько я помню, сам SGM сейв не делает, он лишь перехватывает событие сохранения игры и добавляет свои параметры в специальный отдельный файл отличный от сейва движка. Конкретно в SGM 2.2 событие сохранение автосейва при переходе на другую локацию перехватывается в скрипте sgm_utils.script комментарий "Фиксация автосохранения":
 

    if sgm_functions.read_variable("currert_level")~=nil then
       if sgm_functions.read_variable("currert_level")~=level.name() then
          sgm_functions.write_variable("currert_level",level.name())
          sgm_flags.string_savegame_type="autosave"
          data_param_save_game(user_name().."-".."autosave")
       end
    end

 


Дополнено 13 минуты спустя
5 часов назад, Сталкер из прошлого сказал:

прописал слегка изменённую взятую с интернета схему удаления НПС

Какой кошмар! Используйте стандартную функцию из xr_effects.script remove_item.

  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 24.05.2022 в 15:27, denis2000 сказал:

А этот вылет говорит о том, что анимация объекта которую положено играть в цикле отсутствует.

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


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mervin62 Подобные объекты, как правило, не имеют логики вообще, анимация задана параметром skeleton_name в all.spawn (в териминалогии ACDC) или Animation в SDK. Они делятся на два типа: с зацикленной анимацией и линейной анимацией. С зацикленной играю ее постоянно (так делали бензогенераторы в ЧН, вентилятор на Юпитере у начальника Долга), а объекты с линейной анимацией часто управляются из логики другого объекта рестриктора или физического (подъемный мост в Лиманск, гермодвери в путепроводе).

 

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 24.05.2022 в 16:09, Neptun сказал:

Есть эксперты по скриптам SGM?

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


Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Дароу, мальчишки и девчонки! Скажите кто-нить плз, кто либо спавнил воронов на навой локе? Расскажите как, будьте друзьями. А то нашёл урок 2014ого года где чувак через АСДС это делал) Кароче не то, я пипл - старомодный, но не настолько. Я вроде понимаю что смарт наверное нужен, но в ориге глянул там же 4 спавна каких то непонятных. В общем, не знаю как быть. Хелп) 


Дополнено 0 минут спустя

Хочется просто правильно сделать всё

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
9 часов назад, makdm сказал:

есть другие способы

Привет, ткните носом школьника(меня) хочу реализовать в своем проекте, да и так пригодится.

 

16 часов назад, denis2000 сказал:

параметром skeleton_name в all

Опять я к вам, перелопатил всю локу и сравнил с полностью рабочей, в итоге результата пока ноль. Может быть где-то этот skeleton_name наоборот не указан тогда возникает вопрос как все это кушает простой движок игры.


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Сталкер из прошлого если удалять предмет, то лучше начинать итерацию не с ноля (0), а с единички (1), так как айди актёра всегда равен нулю. На одну итерацию меньше.
Вот плохо, что в ЗП вырезали возможность получать Alife-объект по его имени. А ведь очень удобно, чем перебирать айди или заранее ему назачать spawn_story_id.

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

dasher Да со спавном вранов все предельно просто:
1. Создаете на локации несколько точек для рандомного спавна воронов.
2. Создаете рестриктор-спавнер с логикой:

[logic]
active = sr_crow_spawner

[sr_crow_spawner]
max_crows_on_level = 7	;Очевидно - максимальное количество воронов на локации
spawn_path = levelname_crow_spawn_1, levelname_crow_spawn_2, levelname_crow_spawn_3, levelname_crow_spawn_4, levelname_crow_spawn_5 ;точки на локации для рандомного спавна воронов

3. Все.


Mervin62 Если параметр "skeleton_name" не указан, то никакая анимация играться не будет не автоматически ни по команде и соответственно никакой проблемы нет. А вот если указана анимация, то движек считывает из параметра "skeleton_name" ее имя, затем ищет ее в модели или прикрепленном файле анимаций. Вот на этом этапе происходит сбой. То есть или имя анимации считалось не верно (возможно лишние пробелы или символы табуляции) или имя считано верно, но ее нет в модели (к сожалению в сообщение о проблеме не предусмотрено выводить ни имя анимации ни имя модели).
К стати а вылет этот происходит при загрузке уровня или при перемещении по локации?

Изменено пользователем denis2000
  • Лайк 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, denis2000 сказал:

этот происходит при загрузке

Когда уровень загружается, даже уже делается сохранение avtosave.


Дополнено 12 минуты спустя

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

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

Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   3 пользователя онлайн