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

квест на крыля армор

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

здравствуйте у меня такая проблема собираю 300 перьев отдаю их бегу к РБ убиваю его а с него дропа нет в чем может быть проблема сборка ПВ 8 ява 

все настроено нормально

 

 

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 = 80028;
private final static int[] MOBS = {22123, 22124, 22126, 22128};
    private final static int RaidBoss = 80047;
//QuestItem
private final static int BLACK_FEATHER = 14507;
    private final static int ITEM_FROM_RB = 14508;
    //Chance from mobs
    private final static int chance1 = 100;
    //Chance from RB
    private final static int chance2 = 100;
//Item
private final static int FEATHER = 14509;
    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 = "77777-2.htm";
            st.setState(STARTED);
        }
        else if (event.equalsIgnoreCase("sobral"))
        {
            count = player.getInventory().getInventoryItemCount(BLACK_FEATHER,0);
            if (count < 300)
                event = "77777-no.htm";
            else
            {
                st.takeItems(BLACK_FEATHER,300);
                st.set("cond","2");
                event = "77777-4.htm";
            }
        }
        else if (event.equalsIgnoreCase("item_RB"))
        {
            count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB,0);
            if (count < 1)
                event = "77777-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 == 80028)
{
            if (cond == 0)
                htmltext = "77777-1.htm";
            else if (cond == 1)
                htmltext = "77777-3.htm";
            else if (cond == 2)
                htmltext = "77777-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) == 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 Wings(121, "Wings", "quests");
}
}
 
Изменено пользователем DeluxeMD

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


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

возможно в предмете уже есть итем с рб

и инве их не должно быть, чтобы упал еще 1

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


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

там и несколько

иши тот который с ид РБ и удали

и будет дроп всем

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


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

Причем тут папка дроп этот скрипт и так выдает по пати

и в папке дроп я его вообще не ставил

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


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

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

 

 

if (npcId == npcId)

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);
Изменено пользователем DeluxeMD

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


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

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

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);

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


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

 

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);

 

не работает

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


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

Тему можно закрыть исправил сам кому нужен будет вот

 

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);
if (st.getPlayer().getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1)
st.giveItems(ITEM_FROM_RB,1);

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


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

и что это значит ?

Здесь указана проверка на пати. Если не в пати, то ничего не выдает. Если в пати, то выдает указанный итем каждому члену.

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


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

Здесь указана проверка на пати. Если не в пати, то ничего не выдает. Если в пати, то выдает указанный итем каждому члену.

тесть можно просто убрать проверку и все 

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


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

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

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

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

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

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

Войти

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

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

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

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

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