Добрый день! Не нашел такой темы на форуме.
В общем для примера, есть кампания из 2-х миссий, 2-х солдат (игрок и бот) и автомобиль с оружием в багажнике.
Можете подсказать какими командами выполнить сохранение состояния бота жив или мертв в первой миссии, а также состояние автомобиля (оружия в багажнике)?
А потом выполнить загрузку этого сохранения в начале второй миссии, если бот умер, то убрать его (if bot not alive then delete vehicle "bot")?
Пробовал:
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
saveStatus "playerstate";
А в следующей:
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
loadStatus "playerstate";
Это работает только с оружием у солдат, а состояние здоровья не переносится.
И что такое weaponPool? Может по оружию в багаже автомобиля сюда копать?
Не знаю,но нашёл вот такую инфу.Может будет полезно.
Для сохранения состояния бота и автомобиля в Arma 3 поступайте следующим образом:
Сохранять состояние бота и автомобиля в переменные или в файл используя функции getVariable, setVariable, saveVar, loadVar и т.д. Вот примерный код для сохранения состояний бота и автомобиля в локальном файле:
// Сохранение состояния бота
if (!isNil "bot") then { // проверка на существование бота
botStatus = [bot, bot getVariable ["isAlive", false]] call BIS_fnc_packData; // запаковка данных состояния бота
saveVar ["botStatus.sqf", botStatus]; // сохранение в файл
};
// Сохранение состояния автомобиля
carStatus = [car, car getVariable ["isWeaponInTrunk", false]] call BIS_fnc_packData; // запаковка данных состояния автомобиля
saveVar ["carStatus.sqf", carStatus]; // сохранение в файл
Загрузка сохранения и проверка состояния бота и автомобиля:
// Загрузка состояния бота и автомобиля
botStatus = [] call compile preprocessFileLineNumbers "botStatus.sqf"; // загрузка файла состояния бота
if (!isNull botStatus) then { // проверка на успешную загрузку
[botStatus, bot] call BIS_fnc_unpackData; // распаковка данных состояния бота
bot setVariable ["isAlive", botStatus select 1]; // установка состояния бота
} else { // если файл не был найден
deleteVehicle bot; // удаление бота из игры
};
carStatus = [] call compile preprocessFileLineNumbers "carStatus.sqf"; // загрузка файла состояния автомобиля
if (!isNull carStatus) then { // проверка на успешную загрузку
[carStatus, car] call BIS_fnc_unpackData; // распаковка данных состояния автомобиля
car setVariable ["isWeaponInTrunk", carStatus select 1]; // установка состояния автомобиля
} else { // если файл не был найден
car removeWeaponFromTrunk; // удаление оружия из багажника
};
Обратите внимание, что код для сохранения и загрузки состояния бота предполагает, что вы используете переменную "bot" для хранения сущности бота в первой миссии, и передаете ее во вторую миссию. Кроме того, в этом примере используется функция BIS_fnc_packData для упаковки данных состояния в массив, который может быть сохранен в файл. Функция BIS_fnc_unpackData используется для распаковки данных при загрузке сохранения. Дополнительно, обратите внимание на способ обработки случая, когда бот не был найден при загрузке состояния.