Приветствую!! Не могу понять как работает функция AddToPackageMap У меня в мутатторе прописано так При этом, как пишут в документации, отсутствует bAddToServerPackages=True в defaultpropertis Какой толк от данной функции и в каких случаях её нужно добавлять вместе с bAddToServerPackages? Господа гуру, помогите!!!
Если есть необходимость в том, чтобы пакет закачивался на клиент, используется bAddToServerPackages=True или AddToPackageMap. В случае с мутатором, обычно используется bAddToServerPackages=True, ибо в основном классе Mutator есть следующее: Спойлер Код: event PreBeginPlay() { if ( !MutatorIsAllowed() ) Destroy(); else if (bAddToServerPackages) AddToPackageMap(); } Если параметр в AddToPackageMap пропущен, то будет загружен пакет, в котором находится данный актёр. Иногда AddToPackageMap используется в мутаторе, чтобы клиент мог скачать какие-то ресурсы. Например ClanLogoMut Там AddToPackageMap используется для того, чтобы логотипы кланов закачивались на клиент.
спасибо! то есть я так понимаю, что одновременное нахождение AddToPackageMap() например в PreBeginPlay() и bAddToServerPackages=True в defaultproperties - это бессмысленно? Достаточно будет оставить в таком случае только bAddToServerPackages=True?
еще вопрос, влияет и как-то параметр RemoteRole=ROLE_SimulatedProxy или любое другое значение на bAddToServerPackages? или еще есть ли необходимость ставить if (Level.NetMode != NM_Standalone) перед AddToPackageMap()?
На сам параметр нет. Можно указать bAddToServerPackages=True для клиентского мутатора, но при этом не прописать Спойлер Код: bAlwaysRelevant=True RemoteRole=ROLE_SimulatedProxy И мутатор будет закачан на клиент, но толку то, он на нём не выполняется. А вот если прописать тот код, что я указал выше, то клиентский мутатор будет работать корректно. Необходимости нет, если это не одиночная игра. Да и для одиночки я думаю эт ни к чему.