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

скрипт крылья пв

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

есть у кого рабочий скрипт квест на крылья

или же может подскажет что за ошибка

1. WARNING in \Wings.java (at line 97)
        if(npcId == npcId)
           ^^^^^^^^^^^^^^
Comparing identical expressions

 

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


Ссылка на сообщение
Поделиться на другие сайты
42 минуты назад, JoeyTribbiani сказал:

это не ошибка, на функционал не влияет.

разобрался просто вписал id

только всё ровн оквест почему то н работает

Изменено пользователем JediMaster

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


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

package quests.Wings;

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 Wings extends QuestJython
{
    //NPC
    private final static int npcId = 9000;
    private final static int[] MOBS = {10000,10001};
    private final static int RaidBoss = 10005;
    //QuestItem
    private final static int BLACK_FEATHER = 12000;
    private final static int ITEM_FROM_RB = 9500;
    //Chance from mobs
    private final static int chance1 = 100;
    //Chance from RB
    private final static int chance2 = 100;
    //Item
    private final static int FEATHER = 9501;
    private int count;
    //Разрешено ли повторять квест?
    private static boolean REPEATABLE = true;

    private int cond = 0;

    private State STARTED = new State("Started", this);

    public Wings(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 = "9000-2.htm";
            st.setState(STARTED);
        }
        else if (event.equalsIgnoreCase("sobral"))
        {
            count = player.getInventory().getInventoryItemCount(BLACK_FEATHER,0);
            if (count < 300)
                event = "9000-no.htm";
            else
            {
                st.takeItems(BLACK_FEATHER,300);
                st.set("cond","2");
                event = "9000-4.htm";
            }
        }
        else if (event.equalsIgnoreCase("item_RB"))
        {
            count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB,0);
            if (count < 1)
                event = "9000-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 = "9000-1.htm";
            else if (cond == 1)
                htmltext = "9000-3.htm";
            else if (cond == 2)
                htmltext = "9000-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) < 300)
                                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) < 1)
                                    member.getQuestState(getName()).giveItems(ITEM_FROM_RB,1);
                        else
                            if (killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1)
                                st.giveItems(ITEM_FROM_RB,1);
                break;
        }
        return null;
    }

    public static void main(String[] args)
    {
        new Wings(-1, "Wings", "quests");
    }
}

 

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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

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