Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Advanced Grand Boss Observation

Iniciado por Swarlog, Sep 01, 2022, 12:17 AM

Tema anterior - Siguiente tema

Swarlog

Citardata/scripts/custom/RaidObserver/RaidObserver.java

package custom.RaidObserver;
import javolution.text.TextBuilder;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;

/**
 * @author `Heroin
 * Made For Maxcheaters.com
 */
public class RaidObserver extends Quest
{
private static final int _Baium = 29020;
private static final int _Antharas = 29068;
private static final int _Valakas = 29028;
private static final int _AntQueen = 29001;
private static final int npcid = 36650; // npc id
private static final boolean EnableObservation = true; // Set it true to allow players to observe raidbosses
private static final boolean EnableTeleport = true; // Set it true to allow players to teleport to raidbosses
private static final int ObservationAdena = 5000; 
private static String htm = "data/scripts/custom/RaidObserver/1.htm"; //html location
private int x = 0; //Dont Change
private int y = 0;//Dont Change
private int z = 0;//Dont Change

public RaidObserver(int questId, String name, String descr)
{
super(questId, name, descr);
addFirstTalkId(npcid);
addTalkId(npcid);
addStartNpc(npcid);
}

@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.startsWith("Valakas"))
{
RaidInfo(event, npc, player, event);
}
if (event.startsWith("tp_Valakas"))//location of the teleport
{
player.teleToLocation(213447, -115136, -1636);
}
if (event.startsWith("Baium"))
{
RaidInfo(event, npc, player, event);
}
if (event.startsWith("tp_Baium"))
{
player.teleToLocation(115213, 16623, 10085);//location of the teleport
}
if (event.startsWith("Antharas"))
{
RaidInfo(event, npc, player, event);
}
if (event.startsWith("tp_Antharas"))   
{
player.teleToLocation(179864, 114819, -7711);//location of the teleport
}
if (event.startsWith("AntQueen"))
{
RaidInfo(event, npc, player, event);
}
if (event.startsWith("tp_AntQueen"))
{
player.teleToLocation(-21514, 181871, -5722); //location of the teleport
}
if (event.startsWith("Back"))//Back Button Dont Chant
{
Back(event, npc, player, event);
}
 
return "";
}


private void checkxyz(String command) // Selecting Location for Observing each raidboss
{
if (command.equals("Baium"))
{
x=115213;
y=16623;
z = 10085;
}
if (command.equals("Valakas"))
{
x=213447;
y=-115136;
z = -1636;
}
if (command.equals("AntQueen")) // , 181871, -5722
{
x=-21514;
y= 181871;
z = -5722;
}
if (command.equals("Antharas"))
{
x=179864;
y=114819;
z = -7711;
}



private int checkppl(String command, L2PcInstance player)//Calculating players inside boss area
{
if (command.equals("Baium"))
{
int ppl = getPlayerInside(12002);
return ppl;
}
if (command.equals("Valakas"))
{
int ppl = getPlayerInside(12010);
return ppl;
}
if (command.equals("AntQueen"))
{
int ppl = getPlayerInside(12012);
return ppl;
}
if (command.equals("Antharas"))
{
int ppl = getPlayerInside(12001);
return ppl;
}
return 0;

}
private int checkpts(String command, L2PcInstance player)//Calculating parties inside boss area
{
if (command.equals("Baium"))
{
int pts = getPartiesInside(12002);
return pts;
}
if (command.equals("Valakas"))
{
int pts = getPartiesInside(12010);
return pts;
}
if (command.equals("AntQueen"))
{
int pts = getPartiesInside(12012);
return pts;
}
if (command.equals("Antharas"))
{
int pts = getPartiesInside(12001);
return pts;
}
return 0;
}
private boolean israidon(String name)//Checks if raid is online/offline
{
int id = 0;
if (name.equals("Baium"))
id = _Baium;
if (name.equals("Valakas"))
id = _Valakas;
if (name.equals("AntQueen"))
id = _AntQueen;
if (name.equals("Antharas"))
id = _Antharas;
int status = GrandBossManager.getInstance().getBossStatus(id);
if (status == 2)
return false;
else if (status == 1)
return true;
else
return false;
}

@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
final int npcId = npc.getNpcId();
if (player.getQuestState(getName()) == null)
{
newQuestState(player);
}
if (npcId == npcid)
{
String html = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), htm);
html = html.replaceAll("%player%", player.getName());
html = html.replaceAll("%teleport%", EnableTeleport ? "<font color=\"00FF00\">Enabled</font>" : "<font color=\"FF0000\">Disabled</font>");
html = html.replaceAll("%observation%", EnableObservation ? "Observation: <font color=\"00FF00\">Enabled</font><br>Observation Adena Price: <font color=\"LEVEL\">"+ObservationAdena+"</font>"
: "<font color=\"FF0000\">Observation: Disabled</font>");

NpcHtmlMessage npcHtml = new NpcHtmlMessage(0);
npcHtml.setHtml(html);
player.sendPacket(npcHtml);
}
return "";
}

public static void main(final String[] args)
{
new RaidObserver(-1, RaidObserver.class.getSimpleName(), "custom");
System.out.println("De Level Manager by `Heroin has been loaded successfully!");
}
private void Back(String event, L2Npc npc, L2PcInstance player, String command)
{

try
{

String html = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), htm);
html = html.replaceAll("%player%", player.getName());
html = html.replaceAll("%teleport%", EnableTeleport ? "<font color=\"00FF00\">Enabled</font>" : "<font color=\"FF0000\">Disabled</font>");
html = html.replaceAll("%observation%", EnableObservation ? "Observation: <font color=\"00FF00\">Enabled</font><br>Observation Adena Price: <font color=\"LEVEL\">"+ObservationAdena+"</font>"
: "<font color=\"FF0000\">Observation: Disabled</font>");

NpcHtmlMessage npcHtml = new NpcHtmlMessage(0);
npcHtml.setHtml(html);
player.sendPacket(npcHtml);

}
catch (Exception e)
{
player.sendMessage("Something went wrong try again.");
}
}
@SuppressWarnings("deprecation")
public int getPlayerInside(int zoneId)//Calculating players inside party area.
    {
        int i = 0;
        for (L2ZoneType zone : ZoneManager.getInstance().getAllZones())
            if (zone.getId() == zoneId)
            {
                for (L2Character character : zone.getCharactersInside().values())
                    if (character instanceof L2PcInstance && (!((L2PcInstance) character).getClient().isDetached()))
                        i++;
            }
return i;
}
private void RaidInfo(String event, L2Npc npc, L2PcInstance player, String command)
{

try
{
int playersin = checkppl(command, player);
int partiesin = checkpts(command, player);
boolean status = israidon(command);
checkxyz(command);
String color = status ? "<font color=\"00FF00\">Online</font>" : "<font color=\"FF0000\">Offline</font>";
NpcHtmlMessage nhm = new NpcHtmlMessage(5);
TextBuilder tb = new TextBuilder("");
tb.append("<html><head><title>"+player.getName()+"</title></head><body><center>");
tb.append("<br><tr><td><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></td></tr><br>");//image
tb.append("<font color=\"FFA500\">"+command+" Information</font><br>");
tb.append("<table bgcolor=444444 width= 280>");
tb.append("<tr><td align=center><font color=\"C0C0C0\">Players Inside "+command+" Zone: "+playersin+"</font></td></tr>");
tb.append("<tr><td align=center><img src=\"L2UI.SquareWhite\" width=90 height=1></td></tr>");
tb.append("<tr><td align=center><img src=\"L2UI.SquareBlank\" width=90 height=1></td></tr>");
tb.append("<tr><td align=center><img src=\"L2UI.SquareBlank\" width=90 height=1></td></tr>");
tb.append("<tr><td align=center><font color=\"C0C0C0\">Parties Inside "+command+" Zone: "+partiesin+"</font></td></tr>");
tb.append("</table><br>");
tb.append("<table width= 280>");
tb.append("<tr><td align=center>Raid Boss Status: "+color+"</td></tr></table><br><BR>");
tb.append("<table bgcolor=444444 width=50>");
tb.append("<tr><td><button value=\"Teleport To "+command+
"\" action=\"bypass -h Quest RaidObserver tp_"+command+"\" width=150 height=22 back=\"L2UI_ct1.Button_DF_Calculator_Down\" fore=\"L2UI_ct1.Button_DF_Calculator\"></td></tr>");
if (EnableObservation)
{
tb.append("<tr><td><button value=\"Observe "+command+
"\" action=\"bypass -h npc_"+npc.getObjectId()+"_observe "+ObservationAdena+" "+x+" "+y+" "+z+"\" width=150 height=22 back=\"L2UI_ct1.Button_DF_Calculator_Down\" fore=\"L2UI_ct1.Button_DF_Calculator\"></td></tr>");
}
tb.append("<tr><td><button value=\"Back\" action=\"bypass -h Quest RaidObserver Back\" width=150 height=22 back=\"L2UI_ct1.Button_DF_Calculator_Down\" fore=\"L2UI_ct1.Button_DF_Calculator\"></td></tr>");

tb.append("</table><br><br><br><br>");
tb.append("<tr><td><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></td></tr><br>");
tb.append("</body></html>");
nhm.setHtml(tb.toString());
player.sendPacket(nhm);
}
catch (Exception e)
{
player.sendMessage("Something went wrong try again.");
}
}
@SuppressWarnings("deprecation")
public int getPartiesInside(int zoneId)//Calculating parties inside party area.
    {
        int i = 0;
        for (L2ZoneType zone : ZoneManager.getInstance().getAllZones())
            if (zone.getId() == zoneId)
            {
                for (L2Character character : zone.getCharactersInside().values())
                    if (character instanceof L2PcInstance && (!((L2PcInstance) character).getClient().isDetached()) &&
                    ((L2PcInstance) character).getParty() != null &&
                    ((L2PcInstance) character).getParty().isLeader((L2PcInstance) character))
                        i++;
            }
        return i;
    }
}

Citardata/scripts/custom/RaidObserver/1.htm

<title>%player%</title>
<center><br>
<tr><td><img src="L2UI_CH3.herotower_deco" width=256 height=32></td></tr><br>
<center><font color="CC9900">Grand Raid Boss Informaton</font></text></center>
<br>
<table>
<tr>
<td align=center><img src="icon.accessory_ring_of_baium_i00" width=32 height=32>
</td>
<td align=center><button value="Baium" action="bypass -h Quest RaidObserver Baium" width=90 height=32 back="L2UI_CT1.Button_DF_Calculator_Over" fore="L2UI_CT1.Button_DF_Calculator_Over">
</td>
<td align=center><button value="Valakas" action="bypass -h Quest RaidObserver Valakas" width=90 height=32 back="L2UI_CT1.Button_DF_Calculator_Over" fore="L2UI_CT1.Button_DF_Calculator_Over">
</td>
<td align=center><img src="icon.accessory_necklace_of_valakas_i00" width=32 height=32>
</td>
</table>
<br><img src="L2UI.SquareGray" width=155 height=1><br>
<table>
<tr>
<td align=center><img src="icon.accessory_earring_of_antaras_i00" width=32 height=32>
</td>
<td align=center><button value="Antharas" action="bypass -h Quest RaidObserver Antharas" width=90 height=32 back="L2UI_CT1.Button_DF_Calculator_Over" fore="L2UI_CT1.Button_DF_Calculator_Over">
</td>
<td align=center><button value="Queen Ant" action="bypass -h Quest RaidObserver AntQueen" width=90 height=32 back="L2UI_CT1.Button_DF_Calculator_Over" fore="L2UI_CT1.Button_DF_Calculator_Over">
</td>
<td align=center><img src="icon.accessory_ring_of_queen_ant_i00" width=32 height=32>
</td>
</table><br><img src="L2UI.SquareGray" width=155 height=1><br><BR><BR>
Teleport: %teleport%<br>
%observation%<br>
<tr><td><img src="L2UI_CH3.herotower_deco" width=256 height=32></td></tr><br>

Citarscripts.cfg

custom/RaidObserver/RaidObserver.java
CitarSQL:

INSERT INTO `npc` VALUES ('36650', '13173', 'RaidObserver', '1', 'MaxCheaters.com', '1', 'LineageNPC.clear_npc', '8.00', '19.00', '85', 'male', 'L2Npc', null, null, null, null, null, '40', '43', '30', '21', '20', '20', '0', '0', null, null, null, null, '230', '1', '0', '333', '0', '0', '0', '60.00000', '120.00000', '1', '1', '0', '0');