/*
* 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 <http://www.gnu.org/licenses/>.
*/
package teleports.GrandBossTeleporters;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.DoorTable;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;
import com.l2jserver.gameserver.model.L2CommandChannel;
import com.l2jserver.gameserver.model.L2Party;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.zone.type.L2BossZone;
import com.l2jserver.gameserver.util.Util;
/**
* @author Plim
* Original python script by Emperorc
*/
public class GrandBossTeleporters extends Quest
{
private static final int[] NPCs =
{
13001, //Heart of Warding : Teleport into Lair of Antharas
36600, //Heart of Volcano : Teleport into Lair of Valakas
31859, //Teleportation Cubic : Teleport out of Lair of Antharas
31384, //Gatekeeper of Fire Dragon : Opening some doors
31540, //Watcher of Valakas Klein : Teleport into Hall of Flames
31686, //Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano
31687, //Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano
31759 //Teleportation Cubic : Teleport out of Lair of Valakas
};
private Quest antharasAI()
{
return QuestManager.getInstance().getQuest("antharas");
}
private Quest valakasAI()
{
return QuestManager.getInstance().getQuest("valakas");
}
private static int playerCount = 0;
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = "";
QuestState st = player.getQuestState(getName());
if (st == null)
st = newQuestState(player);
player.teleToLocation(183813, -115157, -3303);
st.set("allowEnter", "1");
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = "";
QuestState st = player.getQuestState(getName());
if (st == null)
return null;
switch (npc.getNpcId())
{
case 13001:
if (antharasAI() != null)
{
if (player.getParty() == null)
{
htmltext = "test.htm";
}
if (player.getParty().getCommandChannel() == null)
{
htmltext = "test.htm";
}
if (player.getParty().getCommandChannel().getLeader() != player)
{
htmltext = "test.htm";
}
if (player.getParty().getCommandChannel().getMemberCount() < 2 || player.getParty().getCommandChannel().getMemberCount() > 65)
{
htmltext = "test.htm";
}
for (L2PcInstance channelMember : player.getParty().getCommandChannel().getMembers())
{
if (!Util.checkIfInRange(1000, player, channelMember, true))
{
htmltext = "test.htm";
}
}
int status = GrandBossManager.getInstance().getBossStatus(29019);
int statusW = GrandBossManager.getInstance().getBossStatus(29066);
int statusN = GrandBossManager.getInstance().getBossStatus(29067);
int statusS = GrandBossManager.getInstance().getBossStatus(29068);
if (status == 2 || statusW == 2 || statusN == 2 || statusS == 2)
htmltext = "13001-02.htm";
else if (status == 3 || statusW == 3 || statusN == 3 || statusS == 3)
htmltext = "13001-01.htm";
else if (status == 0 || status == 1) //If entrance to see Antharas is unlocked (he is Dormant or Waiting)
{
// st.takeItems(3865, 1); // No longer consumed in h5
L2BossZone zone = GrandBossManager.getInstance().getZone(179700, 113800, -7709);
if (zone != null)
zone.allowPlayerEntry(player, 30);
for (L2PcInstance channelMember : player.getParty().getCommandChannel().getMembers())
{
channelMember.teleToLocation(179700 + getRandom(700), 113800 + getRandom(2100), -7709);
}
if (status == 0)
{
L2GrandBossInstance antharas = GrandBossManager.getInstance().getBoss(29019);
antharasAI().notifyEvent("waiting", antharas, player);
}
}
}
break;
case 31859:
player.teleToLocation(79800 + getRandom(600), 151200 + getRandom(1100), -3534);
break;
case 31385:
if (valakasAI() != null)
{
int status = GrandBossManager.getInstance().getBossStatus(29028);
if (status == 0 || status == 1)
{
if (playerCount >= 200)
htmltext = "31385-03.htm";
st.unset("allowEnter");
L2BossZone zone = GrandBossManager.getInstance().getZone(212852, -114842, -1632);
if (zone != null)
zone.allowPlayerEntry(player, 30);
player.teleToLocation(204328 + getRandom(600), -111874 + getRandom(600), 70);
playerCount++;
if (status == 0)
{
L2GrandBossInstance valakas = GrandBossManager.getInstance().getBoss(29028);
valakasAI().startQuestTimer("1001", Config.Valakas_Wait_Time, valakas, null);
GrandBossManager.getInstance().setBossStatus(29028, 1);
}
}
else if (status == 2)
htmltext = "31385-02.htm";
else
htmltext = "31385-01.htm";
}
else
htmltext = "31385-01.htm";
break;
case 31384:
DoorTable.getInstance().getDoor(24210004).openMe();
break;
case 31686:
DoorTable.getInstance().getDoor(24210006).openMe();
break;
case 31687:
DoorTable.getInstance().getDoor(24210005).openMe();
break;
case 31540:
if (playerCount < 50)
htmltext = "31540-01.htm";
else if (playerCount < 100)
htmltext = "31540-02.htm";
else if (playerCount < 150)
htmltext = "31540-03.htm";
else if (playerCount < 200)
htmltext = "31540-04.htm";
else
htmltext = "31540-05.htm";
break;
case 31759:
player.teleToLocation(150037 + getRandom(500), -57720 + getRandom(500), -2976);
break;
}
return htmltext;
}
public GrandBossTeleporters(int questId, String name, String descr)
{
super(questId, name, descr);
for (int npcId : NPCs)
{
addStartNpc(npcId);
addTalkId(npcId);
}
}
public static void main(String[] args)
{
new GrandBossTeleporters(-1, GrandBossTeleporters.class.getSimpleName(), "teleports");
}
}
i get this error:
Jun 21, 2012 1:32:15 AM com.l2jserver.gameserver.model.quest.Quest showError
WARNING: D:\h5 svr\game\data\scripts\teleports\GrandBossTeleporters\GrandBossTeleporters.java
java.lang.NullPointerException
at teleports.GrandBossTeleporters.GrandBossTeleporters.onTalk(GrandBossTeleporters.java:95)
at com.l2jserver.gameserver.model.quest.Quest.notifyTalk(Quest.java:636)
at handlers.bypasshandlers.QuestLink.showQuestWindow(QuestLink.java:197)
at handlers.bypasshandlers.QuestLink.useBypass(QuestLink.java:65)
at com.l2jserver.gameserver.model.actor.L2Npc.onBypassFeedback(L2Npc.java:945)
at com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:145)
at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62)
at com.l2jserver.gameserver.network.L2GameClient.run(L2GameClient.java:1097)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
line 95: if (player.getParty().getCommandChannel() == null)
Added: a brand-new default dashboard template.
You can now add multiple game/login server builds.
Full support for running both PTS & L2J servers simultaneously, with switching between them.
Payment systems: added OmegaPay and Pally (new PayPal-style API).
Account history now stores everything: donations, items delivered to characters, referrals, transfers between game accounts, and coin transfers to another master account.
Personal Promo Code System: you can create a promo code and assign it to a user or promoter. When donating, a player can enter this promo code to receive bonus coins, and the promo code owner also receives a bonus — all fully configurable in the admin panel.
Look demo site: demo
🚀 **TOMORROW – GRAND OPENING!** 🚀
📅 **Grand Opening Date:** 5 December 2025
⏰ **Time:** 20:00 GMT+2
🎫 **BONUS CODE:** `WELCOME-TO-L2MID`
⚠️ Limited to the **first 100 players** only!
🖥️ **Server Info:**
- 🕒 The server will open **1 hour earlier (19:00 GMT+2)** so you can create your characters.
- 🧍 All important **NPCs will appear at 20:00 GMT+2** for the official **GRAND OPENING**.
💡 **How to redeem the bonus code:**
- After you create your character, log in to the **L2Mid Panel** and redeem your bonus here:
🔗 https://l2mid.com/account.php#dash-promocode
🎁 **BONUS CODE REWARDS:**
🧪 Mana Drug × 50
🛡️ Greater CP Potion × 50
❤️ Greater Healing Potion × 50
📜 Blessed Scroll of Escape × 5
⭐ Bonus Rune – 3 Hours × 1
⚔️ Get ready for the start of your new adventure on **L2Mid**!
Question
Leon29
What is wrong with this code
/* * 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 <http://www.gnu.org/licenses/>. */ package teleports.GrandBossTeleporters; import com.l2jserver.Config; import com.l2jserver.gameserver.datatables.DoorTable; import com.l2jserver.gameserver.instancemanager.GrandBossManager; import com.l2jserver.gameserver.instancemanager.QuestManager; import com.l2jserver.gameserver.model.L2CommandChannel; import com.l2jserver.gameserver.model.L2Party; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.zone.type.L2BossZone; import com.l2jserver.gameserver.util.Util; /** * @author Plim * Original python script by Emperorc */ public class GrandBossTeleporters extends Quest { private static final int[] NPCs = { 13001, //Heart of Warding : Teleport into Lair of Antharas 36600, //Heart of Volcano : Teleport into Lair of Valakas 31859, //Teleportation Cubic : Teleport out of Lair of Antharas 31384, //Gatekeeper of Fire Dragon : Opening some doors 31540, //Watcher of Valakas Klein : Teleport into Hall of Flames 31686, //Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano 31687, //Gatekeeper of Fire Dragon : Opens doors to Heart of Volcano 31759 //Teleportation Cubic : Teleport out of Lair of Valakas }; private Quest antharasAI() { return QuestManager.getInstance().getQuest("antharas"); } private Quest valakasAI() { return QuestManager.getInstance().getQuest("valakas"); } private static int playerCount = 0; @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = player.getQuestState(getName()); if (st == null) st = newQuestState(player); player.teleToLocation(183813, -115157, -3303); st.set("allowEnter", "1"); return htmltext; } @Override public String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = player.getQuestState(getName()); if (st == null) return null; switch (npc.getNpcId()) { case 13001: if (antharasAI() != null) { if (player.getParty() == null) { htmltext = "test.htm"; } if (player.getParty().getCommandChannel() == null) { htmltext = "test.htm"; } if (player.getParty().getCommandChannel().getLeader() != player) { htmltext = "test.htm"; } if (player.getParty().getCommandChannel().getMemberCount() < 2 || player.getParty().getCommandChannel().getMemberCount() > 65) { htmltext = "test.htm"; } for (L2PcInstance channelMember : player.getParty().getCommandChannel().getMembers()) { if (!Util.checkIfInRange(1000, player, channelMember, true)) { htmltext = "test.htm"; } } int status = GrandBossManager.getInstance().getBossStatus(29019); int statusW = GrandBossManager.getInstance().getBossStatus(29066); int statusN = GrandBossManager.getInstance().getBossStatus(29067); int statusS = GrandBossManager.getInstance().getBossStatus(29068); if (status == 2 || statusW == 2 || statusN == 2 || statusS == 2) htmltext = "13001-02.htm"; else if (status == 3 || statusW == 3 || statusN == 3 || statusS == 3) htmltext = "13001-01.htm"; else if (status == 0 || status == 1) //If entrance to see Antharas is unlocked (he is Dormant or Waiting) { // st.takeItems(3865, 1); // No longer consumed in h5 L2BossZone zone = GrandBossManager.getInstance().getZone(179700, 113800, -7709); if (zone != null) zone.allowPlayerEntry(player, 30); for (L2PcInstance channelMember : player.getParty().getCommandChannel().getMembers()) { channelMember.teleToLocation(179700 + getRandom(700), 113800 + getRandom(2100), -7709); } if (status == 0) { L2GrandBossInstance antharas = GrandBossManager.getInstance().getBoss(29019); antharasAI().notifyEvent("waiting", antharas, player); } } } break; case 31859: player.teleToLocation(79800 + getRandom(600), 151200 + getRandom(1100), -3534); break; case 31385: if (valakasAI() != null) { int status = GrandBossManager.getInstance().getBossStatus(29028); if (status == 0 || status == 1) { if (playerCount >= 200) htmltext = "31385-03.htm"; st.unset("allowEnter"); L2BossZone zone = GrandBossManager.getInstance().getZone(212852, -114842, -1632); if (zone != null) zone.allowPlayerEntry(player, 30); player.teleToLocation(204328 + getRandom(600), -111874 + getRandom(600), 70); playerCount++; if (status == 0) { L2GrandBossInstance valakas = GrandBossManager.getInstance().getBoss(29028); valakasAI().startQuestTimer("1001", Config.Valakas_Wait_Time, valakas, null); GrandBossManager.getInstance().setBossStatus(29028, 1); } } else if (status == 2) htmltext = "31385-02.htm"; else htmltext = "31385-01.htm"; } else htmltext = "31385-01.htm"; break; case 31384: DoorTable.getInstance().getDoor(24210004).openMe(); break; case 31686: DoorTable.getInstance().getDoor(24210006).openMe(); break; case 31687: DoorTable.getInstance().getDoor(24210005).openMe(); break; case 31540: if (playerCount < 50) htmltext = "31540-01.htm"; else if (playerCount < 100) htmltext = "31540-02.htm"; else if (playerCount < 150) htmltext = "31540-03.htm"; else if (playerCount < 200) htmltext = "31540-04.htm"; else htmltext = "31540-05.htm"; break; case 31759: player.teleToLocation(150037 + getRandom(500), -57720 + getRandom(500), -2976); break; } return htmltext; } public GrandBossTeleporters(int questId, String name, String descr) { super(questId, name, descr); for (int npcId : NPCs) { addStartNpc(npcId); addTalkId(npcId); } } public static void main(String[] args) { new GrandBossTeleporters(-1, GrandBossTeleporters.class.getSimpleName(), "teleports"); } }i get this error:
line 95: if (player.getParty().getCommandChannel() == null)
:o
9 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now