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

Proteja seu servidor de ataques DDoS massivos!

VPS EPIC
 

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  



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • so n te ajudo por que estou config o meu server mais boa sorte ai ou vc se quiser mandar msg ai
    • Ok! Tava pensado nisso mesmo  vou adiciona novo um shoop!  
    • mano vc tem qui add esses custom pow ate pq a pack ta limpa e n posui isso tem la mais n adianta vc so pegar a textura e animation n e melhor vc add por sua vontade a não ser qui vc ache os o mesmo e add armorgrp e intename e weapongrp e skillgrp e skillname
    • Estou com problema  na textura do npc gm shop se alguen tive manda por favor pois ja procurá no fórum não encontrei! Weapon  TOP SET TOP ACESSORIOS E TATTOS
    • Alguém teria esse pack de icones para postar ? https://uploaddeimagens.com.br/imagens/FYGxCog
    • Esquece, peguei o link do fórum, lá tá funcionando perfeitamente! Valeu! "alguém tem o link de download atualizado? O da primeira página está dando erro... obrigado."
    • Você alterou o ip do server "7777" para outro? por exemplo, 7778? verifica na system também.
    • pessoal boa noite  estou com problema na de loga no servido  nao passa da tela de long. vou passa as configuração do longserve e gamer serve longserve #============================================================= #                         Loginserver #============================================================= # This is transmitted to the clients, so it has to be an IP or resolvable hostname Hostname = 25.128.249.2 # Bind ip of the LoginServer, use * to bind on all available IPs LoginserverHostname = * LoginserverPort = 2106 # The Loginserver host and port. LoginHostname = 192.168.1.5 LoginPort = 9014 # How many times you can provide an invalid account/pass before the IP gets banned LoginTryBeforeBan = 3     gamerserve   # ================================================================ #                          Gameserver setting # ================================================================ # This is transmitted to the clients, so it has to be an IP or resolvable hostname. If this ip is resolvable by Login just leave * Hostname = 25.128.249.2 # Bind ip of the gameserver, use * to bind on all available IPs. GameserverHostname = * GameserverPort = 7777 # The Loginserver host and port. LoginHost = 192.168.1.5 LoginPort = 9014 # This is the server id that the gameserver will request. RequestServerID = 1 # If set to true, the login will give an other id to the server (if the requested id is already reserved). AcceptAlternateID = True   por favor me ajuda estou com 4 horas tentado resolve e nao consigo .   estou usado  hamachi .
    • nao sei se entendi direito mas vc quer o IDTemplate do npc que eu quero por como SHOP? Se for isto pode ser o 22129.
    • baixa o gm shop que quiser e manda o id dele aqui, eu te mando a xml pronta. o restante só add normal
×
×
  • Create New...