Ir para conteúdo
  • Cadastre-se
  • 0

Modificar PrimeShop (Java)


IIL0rDII

Pergunta

Galera estou tentando modificar o código java referente ao PrimeShope, atualmente o código puxa as informações do arquivo "itemmall.ini"  que é

itemmall.ini
 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

em ItemMallPointId eu informo o id do item que sera cobrado.

em item-mall.xml eu informo a lista dos itens a ser exibido.

item-mal.xml

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Todo o codigo java está em ProductItemParser.java

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

oque eu quero mudar é, pode cobrar qualquer item que eu quiser adicionando o id do item no item-mall.xml, no caso eu poderia usar vários itens diferentes e não só o item adicionado em itemMall.ini da forma que está se eu colocar o id 57 todos os items serão vendidos por Adena, eu quero vender por varios itens diferentes, no caso eu iria usar o PrimeShope como um Shop geral.

vivendo e aprendendo erando e se fudendo

serginho_L0rD

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts recomendados

  • 0

Pelo que você mencionou, você deseja configurar o sistema para poder cobrar qualquer item especificado no arquivo item-mall.xml. Parece que isso é possível, já que o código fornece um parser para o arquivo intem-mall.xml e lê os atributos dos itens listados.

você pode fazer das seguintes formas:

1º Adicione o ID dos itens que você deseja cobrar no arquivo item-mall.xml, dentro do formato já definido no código. Certifique-se de incluir informações como id, category, price, e atributos adicionais como isEvent, isBest, etc.

 

2º Se precisar adicionar validações extras para os novos itens, você pode personalizar o método parseDocument() para verificar e processar quaisquer novos atributos ou tipos de itens.

 

3º  Caso deseje ajustar como esses itens são cobrados ou comprados:

  • Verifique o método requestBuyItem(Player player, int productId, int count). Ele lida com a lógica de compra de itens, incluindo verificações de saldo, peso, capacidade, etc. Você pode expandir isso para lidar com regras específicas para os novos itens.

 

Ajustes no Java:

1º Ajustar Validações no Parser: Certifique-se de que o método parseDocument() aceita IDs adicionais e os trata corretamente.

 Adicionar Lógica de Manipulação Personalizada: Personalize a lógica no método requestBuyItem para permitir a cobrança flexível para todos os itens definidos no XML.

 Garantir que Novos Itens Sejam Processados Corretamente: No método requestBuyItem, adicione lógica para processar novos IDs ou comportamentos personalizados com base no tipo de item.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Ajustes no XML:

  • id: Identificador único do produto.

  • category: Categoria do item (por exemplo, 3 para equipamentos, 5 para consumíveis).

  • price: Preço do item no sistema de pontos.

  • isEvent: Flag para indicar se o item faz parte de um evento.

  • description: (Opcional) Descrição do item.

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

L2JPremium

Link para o comentário
Compartilhar em outros sites


  • 0
Em 30/03/2025 at 09:24, L2JPremium disse:

Pelo que você mencionou, você deseja configurar o sistema para poder cobrar qualquer item especificado no arquivo item-mall.xml. Parece que isso é possível, já que o código fornece um parser para o arquivo intem-mall.xml e lê os atributos dos itens listados.

você pode fazer das seguintes formas:

1º Adicione o ID dos itens que você deseja cobrar no arquivo item-mall.xml, dentro do formato já definido no código. Certifique-se de incluir informações como id, category, price, e atributos adicionais como isEvent, isBest, etc.

 

2º Se precisar adicionar validações extras para os novos itens, você pode personalizar o método parseDocument() para verificar e processar quaisquer novos atributos ou tipos de itens.

 

3º  Caso deseje ajustar como esses itens são cobrados ou comprados:

  • Verifique o método requestBuyItem(Player player, int productId, int count). Ele lida com a lógica de compra de itens, incluindo verificações de saldo, peso, capacidade, etc. Você pode expandir isso para lidar com regras específicas para os novos itens.

 

Ajustes no Java:

1º Ajustar Validações no Parser: Certifique-se de que o método parseDocument() aceita IDs adicionais e os trata corretamente.

 Adicionar Lógica de Manipulação Personalizada: Personalize a lógica no método requestBuyItem para permitir a cobrança flexível para todos os itens definidos no XML.

 Garantir que Novos Itens Sejam Processados Corretamente: No método requestBuyItem, adicione lógica para processar novos IDs ou comportamentos personalizados com base no tipo de item.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Ajustes no XML:

  • id: Identificador único do produto.

  • category: Categoria do item (por exemplo, 3 para equipamentos, 5 para consumíveis).

  • price: Preço do item no sistema de pontos.

  • isEvent: Flag para indicar se o item faz parte de um evento.

  • description: (Opcional) Descrição do item.

 

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Irmão obrigadoo vou analisar todas as infos que passou e colocar em pratica em breve dou um retorno se eu consegui.

vivendo e aprendendo erando e se fudendo

serginho_L0rD

Link para o comentário
Compartilhar em outros sites

  • 0
53 minutos atrás, IIL0rDII disse:

Irmão obrigadoo vou analisar todas as infos que passou e colocar em pratica em breve dou um retorno se eu consegui.

 

O novo código Java deve ser adicionado aos seguintes métodos e classes específicas:

1º Dentro do método parseDocument(): Este método é responsável por analisar o arquivo XML e criar objetos de itens com base nos atributos especificados no XML. Você deve inserir o novo código aqui para processar novos atributos e IDs personalizados.

Citar

 

@Override
protected void parseDocument() {
    for (Node c = getCurrentDocument().getFirstChild(); c != null; c = c.getNextSibling()) {
        if ("list".equalsIgnoreCase(c.getNodeName())) {
            for (Node n = c.getFirstChild(); n != null; n = n.getNextSibling()) {
                if ("product".equalsIgnoreCase(n.getNodeName())) {
                    final NamedNodeMap list = n.getAttributes();
                    
                    final int productId = Integer.parseInt(list.getNamedItem("id").getNodeValue());
                    final int price = Integer.parseInt(list.getNamedItem("price").getNodeValue());
                    final String description = list.getNamedItem("description") != null ? list.getNamedItem("description").getNodeValue() : "";

                    // Cria e adiciona o novo objeto ProductItem com os novos atributos.
                    ProductItem pr = new ProductItem(productId, price, description);
                    _itemsList.put(productId, pr);
                }
            }
        }
    }
}

 


2º Personalizar o método requestBuyItem(): Este método gerencia a lógica de compra dos itens. Você deve ajustar aqui para lidar com as novas funcionalidades, como novos IDs ou atributos de cobrança dos itens.

Adicione ao método qualquer lógica de verificação ou ação especial que deseje aplicar aos novos itens. Por exemplo:

Citar

 

public void requestBuyItem(Player player, int productId, int count) {
    final ProductItem product = getProduct(productId);
    if (product == null) {
        player.sendMessage("Item não encontrado.");
        return;
    }

    // Verifica se o item tem uma descrição personalizada ou regras adicionais.
    if (!product.getDescription().isEmpty()) {
        player.sendMessage("Comprando: " + product.getDescription());
    }

    // Continuação da lógica existente...
}

 

3º Modifique ou expanda a classe ProductItem: Adicione novos atributos para armazenar informações adicionais (como description) e métodos de manipulação desses atributos.

Citar

 

public class ProductItem {
    private int id;
    private int price;
    private String description;

    public ProductItem(int id, int price, String description) {
        this.id = id;
        this.price = price;
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

 

Essas mudanças devem ser feitas principalmente dentro da classe ProductItemParser e qualquer classe associada que manipule ProductItem.

 

  • Gostei 1

L2JPremium

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...



×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.