Перейти к содержанию
Авторизация  
screamer9206

Вопрос по квесту

Рекомендуемые сообщения

Всем привет, подскажите сборка пв, квест стандарный на веспер, хочу переделать его под другие вещи, но не могу найти, где меняется текст задания866846417_.PNG.dff86192bcff633affdbe10d8be1f49e.PNG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще подскажите, как изменить чтобы вещь котрую надо набить была не одна, а 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");
	}
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...