Jump to content
Juvenil Amaro™

Command /Menu C4 + Tutorial

Recommended Posts

Venho trazer um Comando /Menu para Versão C4 Scions of Destiny

e um Tutorial Explicativo!

5Ct6tHd.gif

Em L2PcInstance Vamos Criar uma Boolean de nome _isPartyInvProt para dar um nome para chamar

+ private boolean _isPartyInvProt = false;

Sem seguida Vamos criar _isPartyInvProt Public Boolean para Ligar e Desligar a Proteção PartyInvite

+ public boolean isPartyInvProt(){
+ return _isPartyInvProt; }

 

Sem Seguida vamos criar _isPartyInvProt Public void para retornar o valor da Boolean

+ public void setIsPartyInvProt(boolean value) {
+  _isPartyInvProt = value;}

Isso vale para Comandos Party

5Ct6tHd.gif

Em L2PcInstance Vamos Criar uma Boolean de nome _isInTradeProt para dar um nome para chamar

+ private boolean _isInTradeProt = false;

Sem seguida Vamos criar _isInTradeProt Public Boolean para Ligar e Desligar a Proteção Trade

+ public boolean isInTradeProt(){
+ return _isInTradeProt; }

 

 

Sem Seguida vamos criar _isInTradeProt Public void para retornar o valor da Boolean

+ public void setIsPartyInvProt(boolean value) {
+  _isInTradeProt= value;}

Isso vale para o Comandos Trade

5Ct6tHd.gif

Em L2PcInstance Vamos Criar uma Boolean de nome _messageRefusal para dar um nome para chamar

+ private boolean _messageRefusal = false;

 

Sem seguida Vamos criar _messageRefusal Public Boolean para Ligar e Desligar a Proteção Trade

+ public boolean getMessageRefusal(){
+ return _messageRefusal; }

 

Sem Seguida vamos criar _messageRefusal Public void para retornar o valor da Boolean Atualizar Status

+ public void setMessageRefusal(boolean mode) {
+  _messageRefusal = mode;

sendPacket(new EtcStatusUpdate(this));}

Isso vale para o Comandos Message Refusal

5Ct6tHd.gif

Em L2PcInstance Vamos Criar uma Boolean de nome _getGainXpSp para dar um nome para chamar

+ private boolean _getGainXpSp = false;

 

Sem seguida Vamos criar _getGainXpSp Public Boolean para Ligar e Desligar a Proteção Trade

+ public boolean getGainXpSp(){
+ return _getGainXpSp; }

 

Sem Seguida vamos criar _messageRefusal Public void para retornar o valor da Boolean

+ public void setMessageRefusal(boolean XpSp) {
+  _getGainXpSp = XpSp;}

Isso vale parao Comando End XP and SP

5Ct6tHd.gif

Em L2World Vamos Criar uma Private Final de Valor

+ private final Map<Integer, L2PcInstance> _allPlayers;

Em Seguida Vamos Criar uma Public Collection para gerar numero inteiro de jogadores

    public Collection<L2PcInstance> getAllPlayers(){
        return _allPlayers.values();}

Isso vale para o Comando PlayerOnline

5Ct6tHd.gif

Em RequestJoinParty Vamos Chamar a isPartyInvProt() para soltar uma mensagem, ao Ativar Dentro da public void runImpl

+ if (target.isPartyInvProt()){
+ requestor.sendMessage("The player you tried to invite is in offline Party mode.");
return;}

Isso vale para Comandos Party

5Ct6tHd.gif

Em TradeRequest Vamos Chamar a getMessageRefusal() para soltar uma mensagem, ao Ativar Dentro da public void runImpl

+ if (partner.getTradeRefusal()){
+ player.sendMessage("Target is in trade refusal mode.");
return;}

Isso vale para Comando Menssagen Refusal

5Ct6tHd.gif

Em Say2 Vamos Chamar a getMessageRefusal() para soltar uma mensagem, ao Ativar Dentro da public void runImpl

+ if (player.getMessageRefusal()){
+ player.sendPacket(new SystemMessage(SystemMessageId.THE_PERSON_IS_IN_MESSAGE_REFUSAL_MODE));}

5Ct6tHd.gif

Em EtcStatusUpdate Vamos Chamar a getMessageRefusal() para Ativar a Boolean Protected void writeImpl

+ writeD((_player.getMessageRefusal() || _player.isInRefusalMode() || _player.isChatBanned()) ? 1 : 0);

5Ct6tHd.gif

Em PcStat Vamos Chamar a getGainXpSp() Dentro da Public Boolean addExp

+ if (!getActiveChar().getGainXpSp() && (value > 0)){
return false;}

Em Seguinda vamos procurar a Public Boolean addSp

+ if (!getActiveChar().getGainXpSp() && (value > 0)){
return false;}

5Ct6tHd.gif

Agora Vamos criar nossa public Class Menu.Java

 

Vamos Criar uma class de nome Public Class Menu Vamos usar implements ira ficar assim

+ Public Class Menu implements IUserCommandHandler{

}

 

 

Segundo Passo Vamos Criar uma Private Static Final String ACTIVED DESATIVED Ira ficar assim

   + private static final String ACTIVED = "<font color=00FF00>ON</font>";
    + private static final String DESATIVED = "<font color=FF0000>OFF</font>";

 

Logo a pos Vamos Criar um Private Static Final Int[] COMMAND_IDS ={
        118
    };

Apos Criar um implements  IUserCommandHandler Ela ira pedir um Metodo  @Overrride Public Boolean(int id, L2PcInstance player) Ira ficar assim

 

    @Overrride
    Public Boolean useUserCommand(int id, L2PcInstance player){
        if (id == 118){
sendMainWindow(player);}
return true;}

Ao chamar o Comand Inteiro 118 Vai abrir Chat Chamado sendMainWindow Para Criar o Chat sendMainWindow

+ public static void sendMainWindow(L2PcInstance player){

Vamos Abrir um Chat em Html Com

+ NpcHtmlMessage htm = new NpcHtmlMessage(0);

Agora Vamos fazer um Calendario pra Reconhecer o Horario do Servidor Atualmente!

   + int t = GameTimeController.getInstance().getGameTime();
+ int h = t/60;
+ int m = t%60;
+ SimpleDateFormat format = new SimpleDateFormat("h:mm a");
+ Calendar cal = Calendar.getInstance();
+ cal.set(Calendar.HOUR_OF_DAY, h);
+ cal.set(Calendar.MINUTE, m);

Agora Vamos colocar o Caminho da Html a ser Aberta com o Comando 118

+ htm.setFile("data/html/mods/menu.htm");

Abaixo Colocaremos o que Html vai ler

        +htm.replace("%online%", L2World.getInstance().getAllPlayers().size());
+ htm.replace("%partyRefusal%", player.isPartyInvProt() ? ACTIVED : DESATIVED);
+ htm.replace("%tradeRefusal%", player.isInTradeProt() ? ACTIVED : DESATIVED);
+ htm.replace("%cantGainXP%", player.getGainXpSp() ? ACTIVED : DESATIVED);
+ htm.replace("%messageRefusal%", player.getMessageRefusal() ? ACTIVED : DESATIVED);
+ htm.replace("%time%",  format.format(cal.getTime()));
player.sendPacket(htm);
+ return;

}

E ao Final da Class Menu Colocaremos um Metodo @Override Public Int[] getUserCommandList() resultado

[email protected]
+ public int[] getUserCommandList(){
+ return COMMAND_IDS;}

}

5Ct6tHd.gif

Obrigado a Todos! 

Eu não afirmo ser um desenvolvedor especialista java, nem mesmo perto disto.

Mais Se você ja conhece esse metodos não deixe de Curtir

Codigo Completo Em Pastebin

https://pastebin.com/aUx9iTFa

Obs: Isso Vale para todas as Versão L2Java Existente!
Em nem uma Das Class Citadas a Cima Coloquei os import Porque algumas podem estar em local diferente mais ira mostrar um Erro em cada Class sem Import o Proprio Eclipes Ira mostrar onde esta cada importe a ser Adicionado

Resultado!

Sp70EE7.png

Edited by Juvenil Amaro™

Bom, acredito que na verdade a luz é a ausencia da escuridão, pois a escuridão existe por si só sem necessitar de qualquer meio, já a luz necessita de reações para que seja produzida

Mensagens Pedindo Ajuda serão ignoradas
Caixa de PM não e central de Duvidas ou Pedidos

Share this post


Link to post
Share on other sites

Proteja seu servidor de ataques DDoS massivos!

VPS EPIC

Mas esse mod ja existe nao ? pq tenho ele no meu projeto c4, a diff era do interlude mas n muda nada pra adaptar 

Share this post


Link to post
Share on other sites
7 minutos atrás, Marlon disse:

Gostei do tópico Júvenil, está ficando bom meu querido! Parabéns.

Obrigado Fiquei 6 Horas com o topico em criação e ao meu ver ainda esta bagunçado, quando o tutorial e feito por escrita e complicado um pouco.

Estou animado com C4 resolvi compartilhar um conteudo que Membros gostaria de entender !

Esses Metodos a cima usa em quase todos futuros Mods a serem adicionados 

6 minutos atrás, Christian-SDM disse:

Mas esse mod ja existe nao ? pq tenho ele no meu projeto c4, a diff era do interlude mas n muda nada pra adaptar 

Quando crio um engine ediferente eu uso uma Source limpa sem codigos adicionados sendo assim não existe em C4


Bom, acredito que na verdade a luz é a ausencia da escuridão, pois a escuridão existe por si só sem necessitar de qualquer meio, já a luz necessita de reações para que seja produzida

Mensagens Pedindo Ajuda serão ignoradas
Caixa de PM não e central de Duvidas ou Pedidos

Share this post


Link to post
Share on other sites



×
×
  • Create New...