L2-scripts Форум

L2-scripts Форум (http://l2-scripts.ru/forum/index.php)
-   Archive Classic (http://l2-scripts.ru/forum/forumdisplay.php?f=113)
-   -   Дроп квест итема в квесте Шепот грез ч.2 (FIXED) (http://l2-scripts.ru/forum/showthread.php?t=7665)

la2baium 13.05.2017 22:43

Дроп квест итема в квесте Шепот грез ч.2 (FIXED)
 
Предмет Кровь лилимал должен падать с другово нпс

https://l2central.info/classic/%D0%9...B5%D1%81%D1%81
исправленный текст скрипта.

package quests;

import l2s.commons.util.Rnd;
import l2s.gameserver.model.instances.NpcInstance;
import l2s.gameserver.model.quest.Quest;
import l2s.gameserver.model.quest.QuestState;

public class _375_WhisperOfDreams2 extends Quest
{
//NPCs
private static final int VANUTA = 30938;
private static final int CHANCE = 50;

//Quest items
private int K_HORN = 5888;
private int CH_SKULL = 5889;

//Mobs & Drop
private int[] MONSTERS = {20624, 20629};

public _375_WhisperOfDreams2()
{
super(PARTY_NONE, REPEATABLE);
addStartNpc(VANUTA);
addKillId(MONSTERS);
addLevelCheck("30938-2.htm", 60, 74); // Квест имеет четкую границу уровня (оффлайк).
addItemHaveCheck("30938-2.htm", 5887, 1);
addQuestItem(CH_SKULL);
addQuestItem(K_HORN);
}

@Override
public String onEvent(String event, QuestState st, NpcInstance npc)
{
String htmltext = event;
if(event.equalsIgnoreCase("30938-6.htm"))
{
st.setCond(1);
}
return htmltext;
}

@Override
public String onTalk(NpcInstance npc, QuestState st)
{
int npcId = npc.getNpcId();
int cond = st.getCond();
String htmltext = NO_QUEST_DIALOG;
switch (npcId)
{
case VANUTA:
if (cond == 0)
htmltext = "30938-1.htm";
else if (cond == 1)
htmltext = "30938-8.htm";
else if (cond == 2)
{
st.takeItems(CH_SKULL, -1);
st.takeItems(K_HORN, -1);
if(Rnd.chance(1))
st.giveItems(947, 1);
else if(Rnd.get(1, 1000) == 1)
st.giveItems(33808, 1);
else if(Rnd.chance(21))
st.giveItems(49476, 1);
else
st.giveItems(49474, 1);
st.giveItems(57, 9000);
htmltext = "30938-4.htm";
st.finishQuest();
}
break;
}
return htmltext;
}

@Override
public String onKill(NpcInstance npc, QuestState st)
{
if (st.getCond() == 1)
{
if(npc.getNpcId() == 20628)
st.rollAndGive(CH_SKULL, 1, 1, 325, CHANCE);
if(npc.getNpcId() == 20629)
st.rollAndGive(K_HORN, 1, 1, 325, CHANCE);

if (st.getQuestItemsCount(CH_SKULL) >= 325 && st.getQuestItemsCount(K_HORN) >= 325)
st.setCond(2);
}
return null;
}
}

Datapack 14.05.2017 06:46

исправлено спасибо


Часовой пояс GMT +4, время: 01:16.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot