/*
* 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)
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.
Question
Leon29
What is wrong with this code
i get this error:
line 95: if (player.getParty().getCommandChannel() == null)
:o
9 answers to this question
Recommended Posts
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.