И еще подскажите, как изменить чтобы вещь котрую надо набить была не одна, а 3
Сам текст кода
package quests.Vesper;
import net.sf.l2j.gameserver.model.L2Party;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.quest.QuestState;
import net.sf.l2j.gameserver.model.quest.State;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.util.Rnd;
public class Vesper extends QuestJython
{
//NPC
private final static int npcId = 77778;
private final static int[] MOBS = {21376,21377,21378,21394,21652,21379,21653,21380,21383,21654,21382};
private final static int RaidBoss = 70021;
//QuestItem
private final static int BLACK_FEATHER = 10596;
private final static int ITEM_FROM_RB = 9773;
//Chance from mobs
private final static int chance1 = 100;
//Chance from RB
private final static int chance2 = 100;
//Item
private final static int FEATHER = 9772;
private int count;
//Разрешено ли повторять квест?
private static boolean REPEATABLE = true;
private int cond = 0;
private State STARTED = new State("Started", this);
public Vesper(int questId, String name, String descr)
{
super(questId, name, descr, 1);
State st = new State("Start", this);
this.setInitialState(st);
addStartNpc(npcId);
addTalkId(npcId);
for (int mobs : MOBS)
addKillId(mobs);
addKillId(RaidBoss);
}
public String onEvent(String event, QuestState st)
{
L2PcInstance player = st.getPlayer();
if (event.equalsIgnoreCase("start"))
{
st.set("cond","1");
event = "77778-2.htm";
st.setState(STARTED);
}
else if (event.equalsIgnoreCase("sobral"))
{
count = player.getInventory().getInventoryItemCount(BLACK_FEATHER,0);
if (count < 1000)
event = "77778-no.htm";
else
{
st.takeItems(BLACK_FEATHER,1000);
st.set("cond","2");
event = "77778-4.htm";
}
}
else if (event.equalsIgnoreCase("item_RB"))
{
count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB,0);
if (count < 1)
event = "77778-no1.htm";
else
{
st.takeItems(ITEM_FROM_RB,1);
st.giveItems(FEATHER,1);
st.exitQuest(REPEATABLE);
event = "<html><body>kvest zavershen</body><html>";
}
}
else if (event.equalsIgnoreCase("otmena"))
{
event = "<html><body>kvest otmenen</body></html>";
st.exitQuest(true);
}
return event;
}
public String onTalk(L2NpcInstance npc, L2PcInstance talker)
{
QuestState st = talker.getQuestState(getName());
String htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>";
if(st == null) return htmltext;
int npcId = npc.getNpcId();
cond = st.getInt("cond");
if(npcId == npcId)
{
if (cond == 0)
htmltext = "77778-1.htm";
else if (cond == 1)
htmltext = "77778-3.htm";
else if (cond == 2)
htmltext = "77778-5.htm";
}
return htmltext;
}
public String onKill (L2NpcInstance npc, L2PcInstance killer, boolean isPet)
{
QuestState st = killer.getQuestState(getName());
if(st == null) return null;
int npcId = npc.getNpcId();
int cond = st.getInt("cond");
L2Party party = killer.getParty();
switch(cond)
{
case 1:
for (int id : MOBS)
if (npcId == id)
if (Rnd.get(100) < chance1)
if (st.getPlayer().getInventory().getInventoryItemCount(BLACK_FEATHER,0) < 1000)
st.giveItems(BLACK_FEATHER,1);
break;
case 2:
if (npcId == RaidBoss)
if (Rnd.get(100) < chance2)
if (party != null)
for (L2PcInstance member : party.getPartyMembers())
if (member.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) == 0)
member.getQuestState(getName()).giveItems(ITEM_FROM_RB,1);
else
if (killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) == 0)
st.giveItems(ITEM_FROM_RB,1);
break;
}
return null;
}
public static void main(String[] args)
{
new Vesper(122, "Vesper", "custom");
}
}