Jump to content
Sign in to follow this  
Souger

[Java] Criando comando [L2JServer-H5]

Recommended Posts

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''.

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <[url="http://www.gnu.org/licenses/>."]http://www.gnu.org/licenses/>.[/url]
*/
  • 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 )

package handlers.voicedcommandhandlers;

import net.xline.gameserver.cache.HtmCache;
import net.xline.gameserver.handler.IVoicedCommandHandler;
import net.xline.gameserver.model.actor.instance.L2PcInstance;
import net.xline.gameserver.network.serverpackets.NpcHtmlMessage;

 

 

"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 :

public class Informacion implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS = {"info"};

 

 

 

"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.

public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
if (command.equalsIgnoreCase("info"))
{
String htmFile = "data/html/mods/ServerInfo.htm";
String htmContent = HtmCache.getInstance().getHtm(htmFile);
if (htmContent != null)
{
NpcHtmlMessage infoHtml = new NpcHtmlMessage(1);
infoHtml.setHtml(htmContent);
activeChar.sendPacket(infoHtml);
}
return true;
}
return false;
}

 

 

"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.

public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}

 

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

Edited by souger123
  • Like 1

acm_smoke6.gif

 

Medical Seeds™

 

 

Makka Seeds™

 

 

joint.gif

 

Share this post


Link to post
Share on other sites
 

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).

Share this post


Link to post
Share on other sites
Sign in to follow this  


⭐ Links Úteis




⚔️ Server Patrocinador



🎁 Ofertas







×
×
  • Create New...