VirtualStorage
Descrição
O VirtualStorage adiciona barris e tendas cujos inventários são salvos em arquivos separados enquanto estão fechados. É útil para servidores com grandes inventários de armazenamento: fechar um contêiner salva seu conteúdo e remove as entidades contidas após uma gravação bem-sucedida; abri-lo recria os itens salvos.
Use as interações de abrir e fechar do contêiner. Aguarde o fim do carregamento antes de movimentar itens ou fechá-lo novamente. Contêineres virtuais não podem ser guardados uns dentro dos outros. Os kits de barril posicionam o barril correspondente e são consumidos na colocação; as tendas usam suas ações normais de montagem e empacotamento.
Os inventários ficam em $mission:storage_<instanceId>/AC/VirtualStorage/<class>/<persistentID>.json, com a pasta da classe em minúsculas e o identificador persistente do contêiner. Preserve esses arquivos junto dos dados das entidades da missão ao fazer backup ou migrar o servidor. Excluir um contêiner também pode excluir seu arquivo de inventário salvo.
Configuração
Configuração padrão
VirtualStorage.json
{
"m_Enable": 0,
"m_Logging": 1,
"m_AutoClose": 0,
"m_CloseRadius": 10,
"m_AsyncLoading": 0,
"m_EnableDismantle": 0,
"m_DeleteCloned": 0,
"m_IgnoreItems": []
}Opções
| Opção | Tipo | Descrição |
|---|---|---|
m_Enable | bool | Com 1, habilita o armazenamento virtual e suas ações de abertura. Com 0, desabilita essas ações de abertura e a gravação/restauração pelo ciclo de abrir e fechar contêineres. |
m_Logging | bool | Com 1, registra as ações de abertura e fechamento dos jogadores, incluindo classe e identificador do contêiner. Com 0, desativa esses registros de ações. |
m_AutoClose | bool | Para barris: com 1, fecha o barril após o último jogador sair da área de presença configurada; com 0, desativa esse fechamento automático. |
m_CloseRadius | int | Raio de presença de jogadores para o fechamento automático dos barris, em metros. Limitado entre 5 e 20 ao carregar as configurações. |
m_AsyncLoading | bool | Para barris: com 1, recria as entradas do inventário salvo progressivamente, com cerca de 100 milissegundos entre elas; com 0, restaura em uma única passagem. O fechamento fica bloqueado durante o carregamento progressivo. |
m_EnableDismantle | bool | Para barris: com 1, permite desmontar no kit correspondente quando o barril está fechado, vazio e marcado como disponível para ser recolhido; com 0, desativa a desmontagem. |
m_DeleteCloned | bool | Com 1, também exclui contêineres duplicados identificados no carregamento inicial do armazenamento pela repetição do identificador persistente; com 0, registra a duplicata detectada sem excluí-la. |
m_IgnoreItems | array<string> | Nomes exatos das classes de itens recusadas ao receber itens no cargo do contêiner. A verificação compara o nome completo, sem correspondência por herança. Use [] para nenhuma exclusão adicional por classe. |
O fechamento automático, m_CloseRadius, o carregamento progressivo e a desmontagem por kit aplicam-se aos barris. As tendas restauram o inventário em uma única passagem e usam condições nativas de empacotamento: devem estar abertas, vazias e sem falha registrada no carregamento do inventário, além de atender às verificações normais do jogo.
Barris com conteúdo salvo não podem ser levados às mãos nem colocados no cargo. Esvazie o barril e feche-o para atualizar a contagem de itens armazenados antes de tentar movê-lo ou desmontá-lo. Barris virtuais não podem ser furados para criar barris de fogo.
Com m_DeleteCloned=1, os objetos duplicados detectados são excluídos permanentemente. Faça backup dos arquivos dos contêineres e dos dados da missão antes de ativar essa opção. Retire o conteúdo armazenado antes de desabilitar o módulo para mantê-lo acessível.
Se um inventário salvo não puder ser lido ou um item não puder ser recriado, preserve o arquivo salvo e confira se as classes e os mods necessários estão disponíveis antes de realizar outras operações no contêiner. Arruinar um contêiner fechado tenta restaurar seu conteúdo salvo válido no chão; isso não substitui um backup.
Tipos
As variantes de barril oferecem 100, 250 ou 500 espaços de cargo nas cores verde, azul, vermelha e amarela, com um kit de colocação correspondente a cada variante. As tendas médias oferecem 300 espaços; as grandes, 500 ou 750; as tendas de carro, 500 ou 1000. As tendas virtuais não oferecem espaços de acessórios.
O XML inclui os contêineres utilizáveis e os kits de barril. A capacidade é definida pela classe do item; não há campo de capacidade em VirtualStorage.json.
types.xml
<type name="AC_VirtualStorage_BarrelGreen_100">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelGreen_250">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelGreen_500">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelBlue_100">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelBlue_250">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelBlue_500">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelRed_100">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelRed_250">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelRed_500">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelYellow_100">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelYellow_250">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelYellow_500">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_MediumTent_300">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_MediumTentGreen_300">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_MediumTentOrange_300">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_LargeTent_500">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_LargeTent_750">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_CarTent_500">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_CarTent_1000">
<lifetime>3888000</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelGreen_100_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelGreen_250_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelGreen_500_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelBlue_100_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelBlue_250_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelBlue_500_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelRed_100_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelRed_250_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelRed_500_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelYellow_100_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelYellow_250_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>
<type name="AC_VirtualStorage_BarrelYellow_500_Kit">
<lifetime>7200</lifetime>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
</type>