Jump to content
  • 0

Java Code Addaption To Acis Request.


Question

Posted (edited)

Hello guys i want this feature so bad and if someone could adapt it for acis i will be glad take a look at the code below.

package handlers.voice;

import javolution.text.TextBuilder;
import ru.la2bygaga.gameserver.datatables.NpcTable;
import ru.la2bygaga.gameserver.handler.IVoicedCommandHandler;
import ru.la2bygaga.gameserver.handler.VoicedCommandHandler;
import ru.la2bygaga.gameserver.instancemanager.GrandBossManager;
import ru.la2bygaga.gameserver.model.actor.instance.L2PcInstance;
import ru.la2bygaga.gameserver.model.entity.GrandBossState;
import ru.la2bygaga.gameserver.network.serverpackets.NpcHtmlMessage;

public class GrandBossSpawn implements IVoicedCommandHandler {

    private static final int[] BOSSES = {29001, 29006, 29014, 29019, 29020, 29022, 29028, 29045};
                                  // QueenAnt, Core, Orfen, Antharas, Baium, Zaken, Valakas, Frintezza
    private static final String [] VOICED_COMMANDS = {"epic"};

    @Override
    public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) {
        if (activeChar == null) {
            return false;
        }
        if (command.startsWith("epic")) {
            NpcHtmlMessage epic = new NpcHtmlMessage(5);
            TextBuilder html = new TextBuilder("<html><body><br>");
            html.append("<html><title>Grand Boss Info By Dleogr</title><body><br><center>");
            html.append("<img src=\"legen.logogo\" width=231 height=76><br><br>");

            for (int bossid : BOSSES) {
                String name = NpcTable.getInstance().getTemplate(bossid).getName();
                
                long delay = GrandBossManager.getInstance().getGrandBossRespawnDate(bossid);
                GrandBossState.StateEnum state = GrandBossManager.getInstance().getGrandBossSpawnState(bossid);
                html.append("<font color=\"00C3FF\">" + name + "</font>: <font color=\"");
                switch (state) {
                    case NOTSPAWN:
                        html.append("FFFFFF\">Sleep/Not spawn</font>" + "<br1>"); //Спит или не заспавнен
                        break;
                    case ALIVE:
                        html.append("9CC300\">Is Alive</font>" + "<br1>"); //Живой
                        break;
                    case DEAD:
                        html.append("FFFFFF\">Is Dead </font>" + "<br1>"); //Вот-вот умер
                        break;
                    case INTERVAL:
                        if (System.currentTimeMillis() < delay) { // Мертв
                            int hours = (int) ((delay - System.currentTimeMillis()) / 1000 / 60 / 60);
                            if (hours < 10) {
                                int mins = (int) (((delay - (hours * 60 * 60 * 1000)) - System.currentTimeMillis()) / 1000 / 60);
                                html.append("FFFFFF\">Respawn in:</font><font color=\"32C332\"> " + hours + " ч. " + mins + " мин.</font><br1>");
                            } else {
                                html.append("FFFFFF\">Is Dead</font><br1>"); //Еще мертв
                            }
                        } else {
                            html.append("9CC300\">Is Now Alive</font><br1>"); // Ожил (delay = currentUnixTime) 
                        }                                                           // либо delay < currentUnixTime но флаг INTERVAL еще не снят
                        break;                                                      // TODO: Проверить, возможно ли такое вообще
                    case SLEEP:
                        html.append("FFFFFF\">Sleep</font>" + "<br1>"); // Точно спит
                        break;
                    case UNKNOWN:
                        html.append("FFFFFF\">Unknown</font>" + "<br1>"); // Хз как так - проверь БД grandboss_intervallist
                        break;
                }
            }

            html.append("<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>");
            html.append("</center></body></html>");

            epic.setHtml(html.toString());
            activeChar.sendPacket(epic);
            return true;
        }
        return false;
    }
    
    @Override
    public String getDescription(String command) {
        if (command.equals("epic")) {
            return "Показать статус Эпик Босов";
        }
        return null;
    }
    
    @Override
    public String[] getVoicedCommandList() {
        return VOICED_COMMANDS;
    }
    
    public static void main(String[] args) {
        VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new GrandBossSpawn());
    }
}
Edited by Sawadee

8 answers to this question

Recommended Posts

  • 0
Posted

3 lines to addapt :p

One method to remove

 

public static void main(String[] args) {

VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new GrandBossSpawn());

And register file in voicedcommandhandler.java

  • 0
Posted

i doubt you want a code that every player can easily spam this command and fuck your srv...

 

OnTopic:

 

Isnt that hard to adapted. if i have time i will do it 

  • 0
Posted

I think its need other part of code, because l2jacis don't have  GrandBossState

It haven't boss state as enum state but there is getBossStatus as integer... The only thing you have to do is define status like alive =1 etc and adapt the other part

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.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.



×
×
  • Create New...