23-07-2011, 05:16 AM
|
#1237
|
|
Membro - Recruta
Registrado em: Jun 2011
Posts: 1
Agradecido 0 Vezes em 0 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
|
Tentando add um npc faz 3 semanas
Galera eu estou usando o pack 5.0 pra mim jogar sózinho msm offline,só to tentando add um último npc pra começar a jogar.
Qro add um npc Raid Boss Respawn Info,tenho os script mas não consigo add de jeito nenhum.
Eu não manjo nada de java e essas coisas tds,só qro arrumar o servidor do jeito q eu gosto pra mim msm jogar,consigo editar uma coisinha aqui e ali só isso :/
Alguem me ajuda a fazer esse npc funcionar?Só falta ele pra mim jogar :(
Aqui esta a HTML
<html><title>RaidBoss Respawn</title>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<font color="32C332">Choose the Boss Level according to your Level.</font><br>
<button value="Raid Boss Level 20-30" action="bypass -h Quest BossRespawn raidboss_20" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<button value="Raid Boss Level 30-40" action="bypass -h Quest BossRespawn raidboss_30" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<button value="Raid Boss Level 40-50" action="bypass -h Quest BossRespawn raidboss_40" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<button value="Raid Boss Level 50-60" action="bypass -h Quest BossRespawn raidboss_50" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<button value="Raid Boss Level 60-70" action="bypass -h Quest BossRespawn raidboss_60" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<button value="Raid Boss Level 70-80" action="bypass -h Quest BossRespawn raidboss_70" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<button value="Raid Boss Level 80-90" action="bypass -h Quest BossRespawn raidboss_80" width=200 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br><br>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<br>
</center>
</body>
</html>
Aqui os Scripts
package custom.BossRespawn;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import javolution.text.TextBuilder;
from com.jenova.L2DatabaseFactory;
from com.jenova.gameserver.ThreadPoolManager;
from com.jenova.gameserver.instancemanager.GrandBossMan ager;
from com.jenova.gameserver.model.actor.L2Npc;
from com.jenova.gameserver.model.actor.instance.L2PcIns tance;
from com.jenova.gameserver.model.quest.Quest;
from com.jenova.gameserver.network.serverpackets.NpcHtm lMessage;
from com.jenova.gameserver.templates.StatsSet;
from com.jenova.util.L2FastList;
/**
*
* @author UnAfraid
*
*/
public class BossRespawn extends Quest
{
private static final int NPC_ID = 93000;
private static final boolean GM_ONLY = true;
private static final boolean DEBUG = false;
private static List<Grandboss> GRAND_BOSSES = new L2FastList<Grandboss>();
private static List<Raidboss> RAID_BOSSES = new L2FastList<Raidboss>();
private static final long refreshTime = 5 * 60 * 1000;
private static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
public BossRespawn(int questid, String name, String descr)
{
super(questid, name, descr);
addFirstTalkId(NPC_ID);
addTalkId(NPC_ID);
addStartNpc(NPC_ID);
ThreadPoolManager.getInstance().scheduleGeneralAtF ixedRate(new reloadBosses(), 1000, refreshTime);
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "home.htm";
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
return "main.htm";
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equalsIgnoreCase("grandbosses"))
sendGrandBosses(player);
else if (event.equalsIgnoreCase("raidbosses"))
return "raidbosses.htm";
else if (event.startsWith("raidboss_"))
{
try
{
int level = Integer.parseInt(event.substring(9));
sendRaidBosses(player, level);
}
catch (NumberFormatException nfe) {}
}
return null;
}
private void sendRaidBosses(L2PcInstance player, int bosslevel)
{
TextBuilder tb = new TextBuilder();
tb.append("<html><title>Grand Boss Info</title><body><br><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><table width=260>");
for (Raidboss rb : RAID_BOSSES)
{
String name = rb.getName();
int level = rb.getLevel();
int min = bosslevel;
int max = min + 10;
if (level >= min && level <= max)
{
long delay = rb.getRespawn();
long currentTime = System.currentTimeMillis();
if (delay <= currentTime)
tb.append("<tr><td><font color=\"00C3FF\">" + name + " (" + level + ")</color>:</td><td><font color=\"32C332\">Is Alive</color></td></tr>");
else
tb.append("<tr><td><font color=\"00C3FF\">" + name + " (" + level + ")</color>:</td><td><font color=\"9CC300\">" + (player.isGM() && GM_ONLY ? sdf.format(new Date(delay)) : "Dead") + "</color></td></tr>");
}
}
tb.append("</table><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br></center></body></html>");
NpcHtmlMessage msg = new NpcHtmlMessage(NPC_ID);
msg.setHtml(tb.toString());
player.sendPacket(msg);
}
private void sendGrandBosses(L2PcInstance player)
{
TextBuilder tb = new TextBuilder();
tb.append("<html><title>Grand Boss Info</title><body><br><center><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><table width=260>");
for (Grandboss boss : GRAND_BOSSES)
{
String name = boss.getName();
StatsSet stats = GrandBossManager.getInstance().getStatsSet(boss.ge tId());
if (stats == null)
{
player.sendMessage("Stats for GrandBoss " + boss.getId() + " not found!");
continue;
}
long delay = stats.getLong("respawn_time");
long currentTime = System.currentTimeMillis();
if (delay <= currentTime)
tb.append("<tr><td><font color=\"00C3FF\">" + name + "</color>:</td><td><font color=\"32C332\">Is Alive</color></td></tr>");
else
tb.append("<tr><td><font color=\"00C3FF\">" + name + "</color>:</td><td><font color=\"9CC300\">" + (player.isGM() && GM_ONLY ? sdf.format(new Date(delay)) : "Dead") + "</color></td></tr>");
}
tb.append("</table><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br></center></body></html>");
NpcHtmlMessage msg = new NpcHtmlMessage(NPC_ID);
msg.setHtml(tb.toString());
player.sendPacket(msg);
}
private class reloadBosses implements Runnable
{
public void run()
{
RAID_BOSSES.clear();
GRAND_BOSSES.clear();
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("SELECT `n`.`name`, `g`.`boss_id` FROM `npc` as `n` CROSS JOIN `grandboss_data` AS `g` ON `n`.`id` = `g`.`boss_id` GROUP BY `n`.`name` ORDER BY `g`.`respawn_time` DESC");
ResultSet rset = statement.executeQuery();
while (rset.next())
{
Grandboss boss = new Grandboss();
boss.setGrandboss(rset.getInt("boss_id"), rset.getString("name"));
GRAND_BOSSES.add(boss);
}
rset.close();
statement.close();
}
catch (Exception e)
{
_log.log(Level.WARNING, "Could not restore grand bosses: " + e.getMessage(), e);
}
finally
{
L2DatabaseFactory.close(con);
}
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("SELECT `n`.`level`, `n`.`name`, `r`.`respawn_time` FROM `npc` as `n` CROSS JOIN `raidboss_spawnlist` AS `r` ON `n`.`id` = `r`.`boss_id` ORDER BY `n`.`level`");
ResultSet rset = statement.executeQuery();
while (rset.next())
{
Raidboss rb = new Raidboss();
rb.setRaidboss(rset.getString("name"), rset.getInt("level") , rset.getLong("respawn_time"));
RAID_BOSSES.add(rb);
}
rset.close();
statement.close();
}
catch (Exception e)
{
_log.log(Level.WARNING, "Could not restore raid bosses: " + e.getMessage(), e);
}
finally
{
L2DatabaseFactory.close(con);
}
if (DEBUG)
{
_log.info("Boss Respawn last update: " + sdf.format(new Date(System.currentTimeMillis())));
_log.info("Boss Respawn Loaded: " + GRAND_BOSSES.size() + " Grand Bosses");
_log.info("Boss Respawn Loaded: " + RAID_BOSSES.size() + " Raid Bosses");
_log.info("Boss Respawn next update: " + sdf.format(new Date(System.currentTimeMillis() + refreshTime)));
}
}
}
private class Raidboss
{
private String bossName = null;
private long bossRespawn = 0;
private int bossLevel = 0;
private void setRaidboss(String name, int level, long respawn)
{
bossName = name;
bossLevel = level;
bossRespawn = respawn;
}
private String getName()
{
return bossName;
}
private int getLevel()
{
return bossLevel;
}
private long getRespawn()
{
return bossRespawn;
}
}
private class Grandboss
{
private int bossId = 0;
private String bossName = null;
private void setGrandboss(int id, String name)
{
bossId = id;
bossName = name;
}
private int getId()
{
return bossId;
}
private String getName()
{
return bossName;
}
}
public static void main(String[] args)
{
new BossRespawn(-1, "BossRespawn", "custom");
}
}
Se alguem souber o que devo fazer,ou quiser me ajudar,por favor,qro mto jogar,obrigado.
|
|
|