WIKI

ARTIGO · GENESYS WIKI

ShopManager.txt.

Como associar NPCs, posições e scripts aos índices das lojas do servidor.

Para que serve o ShopManager.txt

O arquivo MuServer\Data\ShopManager.txt liga um índice de loja a uma classe de NPC. O GameServer usa esse índice para encontrar a loja em MuServer\Data\Shop. Ele não define os itens vendidos nem cria o NPC no mapa; essas configurações ficam em outros arquivos ou sistemas.

Cada linha de loja tem cinco valores, separados por espaços ou tabulações:

Index  Npc  Map  X  Y  // Comentário opcional

Termine a lista com end, como no arquivo original. Linhas iniciadas por // são comentários e ajudam a identificar a loja.

O que significa cada coluna

Coluna Significado
Index Número da loja. Use um índice único de 0 a 99. O arquivo de itens correspondente em Data\Shop usa três dígitos no início do nome: índice 0 → 000 - Nome da loja.txt. Scripts também podem abrir uma loja diretamente por esse número.
Npc Classe do NPC, conforme os dados de monstros/NPCs do servidor. É a classe, não o número da posição em que ele foi colocado no mapa. Não use * para tentar representar todas as classes.
Map Número do mapa para uma correspondência exata. * indica que a linha não exige um mapa específico.
X, Y Coordenadas para uma correspondência exata. * indica que a linha não exige aquelas coordenadas específicas.
// Comentário Texto para quem edita o arquivo; não é o nome exibido dentro da loja.

No arquivo original, * é lido como -1. Por isso, uma linha com * em mapa e coordenadas funciona como associação geral pela classe do NPC, explicada abaixo.

Como o servidor escolhe a loja

  1. Primeiro, o servidor procura uma linha em que classe, mapa, X e Y coincidam exatamente com o NPC.
  2. Se não houver coincidência exata, procura uma linha com a mesma classe de NPC e usa a primeira pelo menor Index.
  3. Se a classe não estiver cadastrada, o NPC não recebe um índice de loja pelo ShopManager.txt.

Portanto, preencher Map, X e Y dá prioridade àquela posição, mas não impede que outros NPCs da mesma classe recebam uma loja pela regra geral. O ShopManager.txt também não controla onde o NPC aparece no mapa.

Exemplo ilustrativo, com um índice adicional fictício:

0   251   *   *     *     // Loja geral da classe 251
30  251   0   124   143   // Loja diferente para esta posição exata
end

Nesse exemplo, a classe 251 em mapa 0, X 124, Y 143 usa a loja 30. Nas demais posições, usa a loja 0. Para o exemplo funcionar, devem existir os arquivos de itens 000 - ...txt e 030 - ...txt na pasta Data\Shop. Não copie essas linhas para sua instalação sem conferir os NPCs e as lojas existentes.

Relação com a pasta Shop e com scripts

O Index precisa existir no ShopManager.txt para que o GameServer carregue o arquivo correspondente em Data\Shop. Os nomes dos arquivos seguem o padrão NNN - Nome.txt, com três dígitos, espaço, hífen e espaço. Mantenha apenas um arquivo para cada índice.

Uma loja também pode ser aberta por um script usando diretamente o índice, sem depender da conversa normal com o NPC. Na configuração atual, o evento Crazy Shop usa o índice 26 e carrega 026 - Crazy Shop.txt. Os itens e as seções internas dessas lojas serão explicados no guia da pasta Shop.

Ao editar

  • Faça uma cópia do arquivo e preserve os índices das lojas já usadas por NPCs ou scripts.
  • Ao criar uma loja, escolha um índice livre, crie seu arquivo de itens em Data\Shop e configure separadamente o NPC ou script que vai abri-la.
  • Uma entrada sem arquivo de itens correspondente não oferece uma loja funcional. O arquivo original contém uma entrada de teste; não a use como referência de loja pronta.
  • Aplique alterações de associação em uma manutenção planejada do GameServer e do GameServerCS. O índice é atribuído aos NPCs quando são criados; recarregar somente o texto não atualiza os NPCs que já estão no mapa.
  • Depois, teste a conversa com o NPC ou a abertura pelo script e confirme que a loja certa apresenta os itens esperados.
Fim do artigo
AJUDE A MELHORAR A WIKI

Encontrou algo incorreto ou faltando?

O WhatsApp abrirá com o título e o link deste artigo. Conte no atendimento o que precisamos ajustar.

Reportar uma questão