- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 445
- Реакции
- 10
Здарова, реверсеры.
Достал из закромов старую функцию palspawn, попытался оживить её под актуальный билд Palworld, но столкнулся с классической проблемой. Оффсеты вроде обновил, сигнатуры подтянул, но результат нулевой.
Что имеем на данный момент:
При попытке вызова функции спавна проигрывается только звук появления пала, но сам актер в мире не отрисовывается и не инициализируется. Похоже, что после последних патчей логика SpawnIndividualActor_ServerInternal изменилась глубже, чем просто смена имен функций или адресов.
Кто в последнее время ковырял нутрянку палов, поделитесь мыслями по поводу инициализации актеров. Куда копать, чтобы пал всё-таки появлялся, а не просто кричал в пустоту?
Кто уже сталкивался с таким поведением функции?
upd: нашел
Достал из закромов старую функцию palspawn, попытался оживить её под актуальный билд Palworld, но столкнулся с классической проблемой. Оффсеты вроде обновил, сигнатуры подтянул, но результат нулевой.
Что имеем на данный момент:
При попытке вызова функции спавна проигрывается только звук появления пала, но сам актер в мире не отрисовывается и не инициализируется. Похоже, что после последних патчей логика SpawnIndividualActor_ServerInternal изменилась глубже, чем просто смена имен функций или адресов.
Раньше базовая публичная версия работала без костылей, но сейчас явно не хватает какого-то промежуточного этапа инициализации или регистрации актера в менеджере. Напоминаю, что вся эта движуха актуальна только для синглплеера, так как в мультиплеере это дело давно и успешно пофиксили на стороне сервера.
- Проверял ли кто-то актуальные структуры в дампе?
- Есть ли смысл копать в сторону дополнительных вызовов регистрации сервера для SP?
- Возможно, изменились параметры в самой SpawnIndividualActor?
Кто в последнее время ковырял нутрянку палов, поделитесь мыслями по поводу инициализации актеров. Куда копать, чтобы пал всё-таки появлялся, а не просто кричал в пустоту?
Кто уже сталкивался с таким поведением функции?
upd: нашел
Код:
SDK::FNetworkActorSpawnParameters spawnParam = SDK::FNetworkActorSpawnParameters();
spawnParam.NetworkOwner = Engine.GetLocalPlayerCharacter();
spawnParam.Name = Engine.StringLibrary()->Conv_StringToName(L"None");
spawnParam.Owner = Engine.GetLocalPlayerCharacter();
spawnParam.SpawnLocation = Engine.GetLocalPlayerCharacter()->K2_GetActorLocation();
spawnParam.SpawnLocation.X += 10; spawnParam.SpawnLocation.Y += 10;
spawnParam.SpawnRotation = Engine.GetLocalPlayerCharacter()->K2_GetActorRotation();
spawnParam.SpawnScale = { .1, .1, .15 };
spawnParam.ControllerClass = Engine.PalUtility()->GetNPCManager(Engine.GetWorld())->NPCAIControllerBaseClass.Get();
spawnParam.SpawnCollisionHandlingOverride = SDK::ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;
spawnParam.bAlwaysRelevant = true;