Para que serve o CashShopProduct.txt
O arquivo MuServer\Data\CashShop\CashShopProduct.txt define cada produto entregue pela Cash Shop: seu identificador, preço individual, item, nível, opções, sockets, durabilidade ou quantidade e duração. Os pacotes, categorias e a moeda são configurados em CashShopPackage.txt.
O arquivo original contém 549 produtos. Preserve os registros existentes e confirme o vínculo com CashShopPackage.txt antes de adicionar, remover ou renumerar um produto.
Formato de cada linha
ID Number Value Item Level Skill Luck Option ExOpt AncOp JOH Oexe Socket1 Socket2 Socket3 Socket4 Socket5 Qtd Duration
Cada linha tem 19 números nessa ordem. Espaços ou tabulações separam os campos. Encerre o arquivo com end; comentários após // não são interpretados como dados.
| Campo | Significado |
|---|---|
ID |
Identificador base do produto (BaseIndex). Deve corresponder ao PBaseN do pacote. |
Number |
Identificador principal do produto (MainIndex). Deve corresponder ao PMainN quando este não é 0. |
Value |
Preço de compra individual do produto. A moeda é definida pelo Coin do pacote que o contém; não há moeda própria nesta linha. |
Item |
Código interno completo do item: Section × 512 + Type, usando a tabela MuServer\Data\Item\Item.txt. Exemplo: 512 corresponde ao item 1/0. |
Level |
Nível do item criado. Para produtos especiais, o servidor também pode interpretar esse campo como parâmetro da ação. |
Skill |
Opção de habilidade: geralmente 0 ou 1, quando o item a suporta. |
Luck |
Opção Luck: geralmente 0 ou 1, quando aplicável. |
Option |
Valor da opção adicional normal do item. |
ExOpt |
Máscara numérica de opções excellent. 0 não marca opções; 63 aparece em vários itens do catálogo original. |
AncOp |
Código da opção ancient/set; 0 indica nenhuma. |
JOH |
Código da opção Jewel of Harmony; 0 indica nenhuma. |
Oexe |
Código de opções estendidas do item; 0 indica nenhuma. |
Socket1 a Socket5 |
Cinco posições de socket. 255 indica posição sem opção configurada no arquivo original; use opções compatíveis com o item. |
Qtd |
Valor enviado como durabilidade ou quantidade interna do item, conforme o tipo. Não é a quantidade de cópias do produto no pacote. O catálogo original usa 0 em todos os produtos; na prévia do cliente, o servidor calcula a durabilidade padrão quando o valor não é positivo. |
Duration |
Duração em segundos para produtos temporários. 0 significa que a linha não configura uma duração positiva; todos os produtos do arquivo original usam 0. Efeitos, itens e produtos especiais podem tratar a duração de maneira diferente, portanto teste cada tipo antes de oferecer uma variante temporária. |
Exemplo do arquivo original
1280 1280 25 512 13 1 1 7 63 0 0 0 255 255 255 255 255 0 0 // Small Axe (1 UN)
O produto 1280 custa 25 na moeda do pacote ao ser comprado individualmente. O código 512 representa o Small Axe (Section 1, Type 0), com nível 13, Skill, Luck, opção normal 7 e máscara excellent 63. Essa linha está vinculada ao pacote Main = 128 no arquivo CashShopPackage.txt.
Entrega e uso
Após a compra, o produto é registrado primeiro na área de itens da Cash Shop. O resgate consulta novamente seu Number e as opções configuradas. Um item comum é então criado para o personagem; alguns produtos aplicam um efeito ou acionam uma função especial. Por isso, verifique o comportamento real antes de usar um código de item destinado a selos, cartões ou serviços.
O preço Value só vale na compra individual. A compra do pacote completo usa Price de CashShopPackage.txt e inclui seus produtos vinculados.
Antes de editar
- Faça uma cópia do arquivo e confirme que
IDeNumberusados pelos pacotes apontam para o produto correto. Mantenha os identificadores principais únicos. - Confira o
Itemna tabela de itens e valide nível, opções, sockets,QtdeDurationpara aquele tipo.255nos sockets não deve ser trocado por0por conveniência. - Se mudou o preço individual, confira também o preço do pacote em
CashShopPackage.txt; são valores independentes. - Recarregue CashShopProduct pelo menu de reload do GameServer. Se mudou vínculos, recarregue também CashShopPackage; faça o mesmo no GameServerCS se ele atender a loja.
- Teste a prévia no cliente, a compra, a presença na área de itens da Cash Shop e o resgate. Confirme as opções efetivamente recebidas pelo personagem.