Jump to content
  • 0

_456 Dont Know Dont Care Quest! Me Plhrwmh!


roukounas123

Question

Pws ginete na milaei o kathenas ksexwrista sto RB kai na pernei to essence!! 8a plhrwsw opoion mporesei kai to ftiaksei!!! opoios mporei ena

PM!! euxaristw

 

 

 

package quests;

 

import java.util.Calendar;

import java.util.HashMap;

import java.util.Map;

 

import org.apache.commons.lang3.ArrayUtils;

 

import wp.commons.util.Rnd;

import wp.gameserver.model.Player;

import wp.gameserver.model.instances.NpcInstance;

import wp.gameserver.model.quest.Quest;

import wp.gameserver.model.quest.QuestState;

import wp.gameserver.scripts.ScriptFile;

 

/**

 * @author pchayka Daily quest ВНИМАНИЕ! Данный квест можно выполнять не только группой, но и командным каналом, все персонажи в командном канале имеют шанс получить квестовые предметы. После убийства боссов будут появляться специальные НПЦ - мертвые тела боссов, для получения квестовых предметов

 *         необходимо будет "поговорить" с этим НПЦ.

 */

public class _456_DontKnowDontCare extends Quest implements ScriptFile

{

private static final int[] SeparatedSoul =

{

32864,

32865,

32866,

32867,

32868,

32869,

32870

};

private static final int DrakeLordsEssence = 17251;

private static final int BehemothLeadersEssence = 17252;

private static final int DragonBeastsEssence = 17253;

private static final int DrakeLord = 25725;

private static final int BehemothLeader = 25726;

private static final int DragonBeast = 25727;

 

private static final int DrakeLordCorpse = 32884;

private static final int BehemothLeaderCorpse = 32885;

private static final int DragonBeastCorpse = 32886;

 

// Reward set

private static final int[] weapons =

{

15558,

15559,

15560,

15561,

15562,

15563,

15564,

15565,

15566,

15567,

15568,

15569,

15570,

15571

};

private static final int[] armors =

{

15743,

15744,

15745,

15746,

15747,

15748,

15749,

15750,

15751,

15752,

15753,

15754,

15755,

15756,

15757,

15759,

15758

};

private static final int[] accessory =

{

15763,

15764,

15765

};

private static final int[] scrolls =

{

6577,

6578,

959

};

private static final int[] reward_attr_crystal =

{

4342,

4343,

4344,

4345,

4346,

4347

};

private static final int gemstone_s = 2134;

 

private static Map<String, Long> _hwidsCompleted = new HashMap<>();

 

public _456_DontKnowDontCare()

{

super(PARTY_ALL);

addStartNpc(SeparatedSoul);

addTalkId(DrakeLordCorpse, BehemothLeaderCorpse, DragonBeastCorpse);

addQuestItem(DrakeLordsEssence, BehemothLeadersEssence, DragonBeastsEssence);

addKillId(DrakeLord);

addKillId(BehemothLeader);

addKillId(DragonBeast);

}

 

@Override

public String onEvent(String event, QuestState st, NpcInstance npc)

{

String htmltext = event;

if (event.equalsIgnoreCase("sepsoul_q456_05.htm"))

{

st.setState(STARTED);

st.setCond(1);

st.playSound(SOUND_ACCEPT);

}

else if (event.equalsIgnoreCase("take_essense"))

{

if ((st.getCond() == 1) && (st.getInt(String.valueOf(npc.getNpcId())) == 1))

{

switch (npc.getNpcId())

{

case DrakeLordCorpse:

if (st.getQuestItemsCount(DrakeLordsEssence) < 1)

{

st.giveItems(DrakeLordsEssence, 1);

}

break;

case BehemothLeaderCorpse:

if (st.getQuestItemsCount(BehemothLeadersEssence) < 1)

{

st.giveItems(BehemothLeadersEssence, 1);

}

break;

case DragonBeastCorpse:

if (st.getQuestItemsCount(DragonBeastsEssence) < 1)

{

st.giveItems(DragonBeastsEssence, 1);

}

break;

default:

break;

}

if ((st.getQuestItemsCount(DrakeLordsEssence) > 0) && (st.getQuestItemsCount(BehemothLeadersEssence) > 0) && (st.getQuestItemsCount(DragonBeastsEssence) > 0))

{

st.setCond(2);

}

}

else

{

return "You cannot talk to me, you have to kill the boss with a command channel of at least 18 players.";

}

 

return null;

}

else if (event.equalsIgnoreCase("sepsoul_q456_08.htm"))

{

if (_hwidsCompleted.containsKey(st.getPlayer().getHWID()))

{

long resetTime = _hwidsCompleted.get(st.getPlayer().getHWID());

if (resetTime > System.currentTimeMillis())

{

return "You have already completed this quest for today.";

}

}

 

st.takeAllItems(DrakeLordsEssence);

st.takeAllItems(BehemothLeadersEssence);

st.takeAllItems(DragonBeastsEssence);

 

if (Rnd.chance(7))

{

st.giveItems(weapons[Rnd.get(weapons.length)], 1);

}

else if (Rnd.chance(20))

{

st.giveItems(armors[Rnd.get(armors.length)], 1);

}

else

{

st.giveItems(accessory[Rnd.get(accessory.length)], 1);

}

 

if (Rnd.chance(30))

{

st.giveItems(scrolls[Rnd.get(scrolls.length)], 1);

}

if (Rnd.chance(70))

{

st.giveItems(reward_attr_crystal[Rnd.get(reward_attr_crystal.length)], 1);

}

st.giveItems(gemstone_s, 3);

 

st.setState(COMPLETED);

st.playSound(SOUND_FINISH);

 

st.exitCurrentQuest(this);

 

Calendar cal = Calendar.getInstance();

if (cal.get(Calendar.HOUR_OF_DAY) >= 6)

{

cal.add(Calendar.DATE, 1);

}

cal.set(Calendar.HOUR_OF_DAY, 6);

cal.set(Calendar.MINUTE, 30);

_hwidsCompleted.put(st.getPlayer().getHWID(), cal.getTimeInMillis());

}

 

return htmltext;

}

 

@Override

public String onTalk(NpcInstance npc, QuestState st)

{

String htmltext = "noquest";

 

int cond = st.getCond();

if (ArrayUtils.contains(SeparatedSoul, npc.getNpcId()))

{

if (_hwidsCompleted.containsKey(st.getPlayer().getHWID()))

{

long resetTime = _hwidsCompleted.get(st.getPlayer().getHWID());

if (resetTime > System.currentTimeMillis())

{

return "You have already completed this quest for today.";

}

}

 

switch (st.getState())

{

case CREATED:

if (st.isNowAvailable())

{

if (st.getPlayer().getLevel() >= 80)

{

htmltext = "sepsoul_q456_01.htm";

}

else

{

htmltext = "sepsoul_q456_00.htm";

st.exitCurrentQuest(true);

}

}

else

{

htmltext = "sepsoul_q456_00a.htm";

}

break;

case STARTED:

if (cond == 1)

{

htmltext = "sepsoul_q456_06.htm";

}

else if (cond == 2)

{

htmltext = "sepsoul_q456_07.htm";

}

break;

}

}

 

return htmltext;

}

 

@Override

public String onKill(NpcInstance npc, QuestState st)

{

if ((st.getPlayer().getParty() != null) && (st.getPlayer().getParty().getCommandChannel() != null) && (st.getPlayer().getParty().getCommandChannel().size() >= 18))

{

for (Player plr : st.getPlayer().getParty().getCommandChannel())

{

st = plr.getQuestState(getName());

if (st != null)

{

switch (npc.getNpcId())

{

case DrakeLord:

st.set(String.valueOf(DrakeLordCorpse), 1);

break;

case BehemothLeader:

st.set(String.valueOf(BehemothLeaderCorpse), 1);

break;

case DragonBeast:

st.set(String.valueOf(DragonBeastCorpse), 1);

break;

}

}

}

}

return "You must kill the boss with a command channel of at least 18 players to complete the quest.";

}

 

@Override

public void onLoad()

{

}

 

@Override

public void onReload()

{

}

 

@Override

public void onShutdown()

{

}

}

Edited by roukounas123
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...