Ir para conteúdo
  • Cadastre-se

[Java] Criando comando [L2JServer-H5]


Souger

Posts recomendados

COMO CRIAR UM COMANDO

  • [AVISO] - O código está dividido por partes para explicar seu funcionamento. O que deven fazer é copiar as partes do código uma debaixo da outra seguindo a ordem do tutorial.

  • Passo 1 - Abrimos o Eclipse e vamos em "data/scripts - handlers.voicedcommandhandlers" Essa é a direção na qual se encontram os comandos que o Player pode usar, por exemplo ".online" ou outros como esse.

  • Passo 2 - Criamos um arquivo .java por exemplo "Information.java" Para fazerlo, click direito em cima de "handlers.voicedcommandhandlers" - New file, Onde esta File name coloque Information.java e damos OK.

  • Passo 3 - Agora com nosso arquivo já criado, abrimos ele e começamos a escrever. Isso é a licença GNU, é necessário que coloquem ao inicio do seu arquivo, se colocam não acontecera nada, não quer dizer que o arquivo não funciona, mas é recomendado para a seguridade e por ser ''LEGAL''.

O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • Como podemos ver, o texto esta entre /**/. Isso adiciona para que coloquem algum comentario e para que o mesmo não influa no arquivo java dando algum erro. Por exemplo : *Essa guia está criada por FFs */

  • Passo 4 - Devemos usar algums imports para que mostre uma janela HTML dentro do jogo. ( Imports do seu projeto )

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

 

 

"package handlers.voicedcommandhandlers" - Indica onde está o arquivo que contem o comando, Neste caso a pasta é voicedcommandhandlers.

 

"import net.xline.gameserver.cache.HtmCache" Importa o HTML Cache

 

"import next.xline.gameserver.handler.lUserCommandHandler" - Importa as ações do comando. Por exemplo que ao usar .info seja um comando y faça o que escrevemos a continuação.

 

"import net.xline.gameserver.model.actor.instance.L2PcInstance" - Importa a instancia do personagem, ou seja, que este comando sera usado por um personagem do jogo.

 

"import net.xline.gameserver.network.serverpackets.NpcHtmlMessage" - Importa a janela de texto HTMl que se abrira quando usamos o comando .info




  • Passo 5 - Agora temos que criar a classe ou o comando do nosso arquivo java. Sera algo assim :

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

 

 

 

"public class information implements lVoicedCommandHandler" - Esta classe indica que é um comando localizado no voicedcommandhandlers que diz o nome do arquivo. "Information" ( sem o .java )

 

E a continuação o nome do comando.

 

"private static final String[] VOICED_COMMANDS = {"info"}:

 

 

 

"private static final String[] VOICED_COMMANDS =" - Abre a ''zona'' para colocar o comando desejado ( .info ). Neste caso só podemos usar um, que é o ".info" não tem que adicionar ".", só coloquem info ou o comando que quiserem só que sem o " . " do mesmo.

 

 

Pronto agora o comando está criado, agora temos que dar a função.




  • Passo 6 - Está é a função do comando.

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

 

 

"if (command.equalsIgnoreCase("info"))"- Sim é o comando .info

"String htmFile = "data/html/mods/ServerInfo.htm"- Direção do arquivo Htm

"String htmContent = HtmCache.getInstance().getHtm(htmFile);" - Função de tomar ou agarrar o arquivo html.

 

 

Quando se usa o comando, agarrar ou tomar o arquivo ServerInfo.htm da direção : data/html/mods/ServerInfo.htm e faz que apareça uma janela de NPC com o texto do arquivo ServerInfo.htm.

 

 

"if (htmContent != null)

{

NpcHtmlMessage infoHtml = new NpcHtmlMessage(1);

infoHtml.setHtml(htmContent);

activeChar.sendPacket(infoHtml);

}"



  • Passo 7 - Fim do comando.

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

 

Significa : Terminar a função do comando e voltar a "VOICED_COMMANDS".

 

Pronto, isso é tudo, comando criado.

 

 

 

NOTAS

 

 

 

Nota 1 : Quando colocar os códigos, vão ter 1 erro, sera o seguinte "The method getHtm(String) from the type HtmCache is not visible"

com o puntero do mouse, coloquem em cima do sublinhado em vermelho e dão a "Change visibility of "getHtm()" to "Public"

E vai abrir um arquvio, o qual mudou o hetHtm() a publico. Salvam as mudanças no arquivo que abre quando click nessa opção e pronto.

 

Nota 2 : Tem que criar o arquivo HTML para que isso funcione. Peguem qualquer HTML de qualquer NPC e editen colocando que seja nele por exemplo rates do servidor, informação, etc.

 

Nota 3 : A direção do arquivo HTML podem mudar aqui : String htmlFile = "data/html/mods/ServerInfo.htm"

 

 

 

 

 

 

IMPORTANTE

 

 

 

Nosso comando está criado, mas falta importalo.

Para isso, fazemos o seguinte.

 

1- Vamos a "data/scripts - handlers" e abrimos o arquivo MasterHandlers.java.

 

2 - A final dos imports, adicionamos a seguinte "import handlers.voicedcommandhandlers.information"

 

3 - Mas abaixo, quase no final, na seção de voicedcommandhandlers, adicionamos o seguinte

"VOICE.registerVoicedCommandHandler(new Information());"

Isso é para que importe desde a pasta nomeada anteriormente que é "voicedcommandhandlers".

 

4- Guardamos e compilamos, [ SE NÃO SOUBER COMPILAR TEM VÁRIOS TÓPICOS DE COMO COMPILAR NA ÁREA DE TUTORIAIS ]

 

 

 

 

 

INFORMAÇÃO

 

 

Logo de fazer tudo no Eclipse, compilamos o CORE e o DATAPACK, montamos o server e testamos.

 

É tudo, não esqueça de usar o Eclipse para ver os erros, não esqueça de compilar o CORE!

 

Créditos : FFS

Editado por souger123

acm_smoke6.gif

 

Medical Seeds™

 

 

Makka Seeds™

 

 

joint.gif

 

Link para o comentário
Compartilhar em outros sites


  • 4 years later...
  • 7 months later...
 

onde que poode fazer o registro do comando em revisões que não tem no scripts o arquivo MasterHandlers.java?

Creio que nesse caso será através do Scripts.cfg, adicionando a linha 

#Handlers

handlers/voicedcommands/info.java (algo assim).

Link para o comentário
Compartilhar em outros sites

  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





×
×
  • 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.