Pular para o conteúdo principal

Migração da 0.10

Faça backup da sua pasta pages do Typewriter e dos dados de plugins/Typewriter/ antes de atualizar. As entries são lidas como estão: as páginas existentes carregam, mas várias coisas se comportam de forma diferente.

Removido​

O quêSubstituir por
aggroMultiplier na Dungeon InstanceNada. Nunca era lido e foi removido.
/typewriter dungeon start/typewriter dungeon enter <instance>.
O vínculo partyLobbyArtifactNada. Não é usado: os lobbies não são mais restaurados após um reload ou uma reinicialização. A entry Dungeon Party Lobby Artifact ainda carrega, mas é inerte, e sua remoção está prevista para uma versão futura.
Entrar em um lobby criando uma party no MMOCore ou no PartiesAs parties são somente leitura. A party inteira de um jogador entra no lobby com ele.

Comportamento que muda​

  • allowedDungeonIds em um Dungeon NPC Instance. Agora é uma lista de referências a dungeon instances (mesmo nome de campo, mesmos dados armazenados, então as páginas antigas carregam). Uma lista vazia agora significa todas as runs de todas as dungeons. Na 0.10, o NPC nunca era exibido. Uma lista que continha ids continua funcionando enquanto os ids existirem. O padrão de group agora são os membros da run.
  • O Dungeon NPC Instance é exibido. Na 0.10 ele nunca aparecia. Se você usava um baú ancorado em um NPC de outra extensão como solução provisória, agora pode ancorá-lo neste.
  • criteria nos slots da categoria são avaliados por jogador. Na 0.10, qualquer criterion bloqueava o slot para todos. Remova os criteria que você usava como bloqueio fixo.
  • criteria e damageMultiplier da dungeon agora são aplicados (damageMultiplier padrão 1).
  • cooldownSeconds: 0 ou vazio significa sem limite de tempo.
  • As salas agora disparam. onEnter, onLeave, modifiers e criteria de um Dungeon Room são executados. Salas que se sobrepõem são todas acionadas, a de priority maior primeiro. verticalMargin é novo, com padrão de 2,0 blocos: um jogador agora conta como dentro desde 2 blocos abaixo do nó mais baixo até 2 blocos acima do mais alto, para toda sala. Defina-o como 0 para manter a altura exata que você tinha. Uma sala alta (um grande salão, uma torre) pode precisar de um valor maior, para que um pulo ou um veículo continue dentro.
  • Facts. indungeon e indungeon_instance retornam valores reais.
  • As estatísticas são gravadas. Elas começam em zero.
  • Isolamento. O novo campo isolation é AUTO por padrão: SLIME_CLONE com o Advanced Slime Paper, caso contrário WORLD_PER_RUN (uma cópia de templateWorld, apagada após a run). Na 0.10, o Paper puro usava o próprio mundo modelo e removia dele toda entidade que não fosse jogador. Para continuar compartilhando um mundo, defina SHARED_WORLD_SLOTS e construa a dungeon em cada slot. Veja Runs e isolamento de mundo.
  • O menu de party é escolhido pelo seu campo dungeonInstance, e um menu com esse campo vazio atende qualquer dungeon que nenhum outro menu nomeie. Antes era "o primeiro menu encontrado".
  • Loot Chest Trigger ONCE vale uma vez por run, não até a reinicialização do servidor.
  • As runs sobrevivem a um reload se um runtimeArtifact estiver vinculado (senão, runs.json). Uma reinicialização do servidor as encerra.
  • Dungeon Enter e /typewriter dungeon enter verificam o tamanho do grupo, os criteria, o custo de entrada e o limite de runs.
  • Mobs da extensão (novo): nenhum é criado a menos que você adicione entries Dungeon Mob Spawn.

Novos snippets e campos​

Todos os textos que os jogadores leem nos menus, lobbies, barra lateral, baús de loot e recusas de início agora são snippets do Typewriter (content.dungeon_menu., content.dungeon_lobby., content.dungeon_run.sidebar., content.dungeon_chest., content.dungeon_launch.). Os padrões são os textos que a extensão já exibia, então nada muda até você editá-los. A lista está no índice. As respostas dos comandos de administração também são snippets (content.dungeon_command.).

Dois grupos de campos são novos, com padrões que mantêm o comportamento antigo:

  • lobbyIdleKickSeconds na Dungeon Instance (padrão 120, os 2 minutos fixos de antes).
  • Em Loot Chest Trigger: triggerSoundVolume, triggerSoundPitch, triggerParticleCount, triggerParticleSpread, triggerParticleSpeed (padrões 1, 1, 30, 0.5, 0.1). broadcastMessage agora aceita códigos de cor.

Compatibilidade de dados​

  • O journal das runs é lido das versões 1 a 3. Ele é gravado como versão 2 enquanto nenhuma run gerada estiver nele, e como versão 3 assim que houver uma (ele também ganha as listas opcionais mobs e mobsOwed). Voltar para uma build mais antiga só é seguro, portanto, enquanto nenhuma run gerada tiver sido salva; não faça downgrade depois de usar dungeons geradas. Um artifact que não pode ser lido nunca é sobrescrito.
  • A lista MarkerKind de um modelo de sala ganhou NPC e MOB no final. Os modelos de sala existentes mantêm sua identidade e não mudam.
  • O id da entry de entidade dungeon_npc_instance não mudou.

Checklist​

  1. Faça backup das suas pages.
  2. Atualize o JAR e inicie o servidor. Leia o log em busca de avisos sobre um runtimeArtifact ou um menu de party ausente.
  3. Confira o isolation de cada dungeon.
  4. Revise allowedDungeonIds nas suas NPC instances.
  5. Revise os criteria dos slots da categoria e o verticalMargin das salas.
  6. Substitua os usos de /typewriter dungeon start.