I'd Rather Be Collecting Fairy Breath
- ID
- 659
- Название
- I'd Rather Be Collecting Fairy Breath
- start_npcs_json
- [30634]
- npc_ids_json
- [21023,21024,21025,30634]
- constants_json
- {"GALATEA":30634,"SOBBING_WIND":21023,"BABBLING_WIND":21024,"GIGGLING_WIND":21025,"FAIRY_BREATH":8286}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
- Источник
- game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/Q00659_IdRatherBeCollectingFairyBreath.java
NPC квеста
| ID | Название | Старт квеста | Уровень |
|---|---|---|---|
| 21023 | Sobbing Wind | Нет | 26 |
| 21024 | Babbling Wind | Нет | 27 |
| 21025 | Giggling Wind | Нет | 28 |
| 30634 | Galatea | Да | 70 |
Условия уровней: выражения из Java
htmltext = (player.getLevel() < 26) ? "30634-01.htm" : "30634-02.htm";
Выдача предметов, адены и опыта: выражения из Java
giveAdena(player, count * 50, true); giveAdena(player, (count * 50) + 5365, true); giveItems(player, FAIRY_BREATH, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[30634-01.htm] High Summoner Galatea: Long ago, Gludio was consumed in the Burning War when the forces of the Ivory Tower confronted the bastard demon Beleth. Beleth's evil permanently scarred the land, leaving nothing but desolation and waste. I've been researching ways to restore Gludio to its former beauty. I'm sorry, but you don't look enough experienced for that task. (This quest may only be undertaken by a character of level 26 and above.)
[30634-02.htm] High Summoner Galatea: Long ago, Gludio was consumed in the Burning War when the forces of the Ivory Tower confronted the bastard demon Beleth. Beleth's evil permanently scarred the land, leaving nothing but desolation and waste. I've been researching ways to restore Gludio to its former beauty. Will you help me? "I'll do it."
[30634-03.htm] High Summoner Galatea: Oh, thank you! My investigation is finally going somewhere! It seems to me that there's a connection between the devastation in southern Gludio and the Sylphs... you know, those insane Wind Spirits in Windy Hill... Unfortunately, that's as far as I've gotten with my research. Could you bring me Sylph Breath from those pesky vermin in Windy Hill? Hunt the Sobbing Wind, Babbling Wind and Giggling Wind and then find what is known as the Container of Sylph Breath and bring those to me. The breath of a Sylph is quite an odd thing I know... but you'll know what I'm talking about when you there...
[30634-04.htm] High Summoner Galatea: Unfortunately, that's as far as I've gotten with my research. Could you bring me Sylph Breath from those pesky vermin in Windy Hill? Hunt the Sobbing Wind, Babbling Wind and Giggling Wind and then find what is known as the Container of Sylph Breath and bring those to me. The breath of a Sylph is quite an odd thing I know... but you'll know what I'm talking about when you there...
[30634-05.htm] High Summoner Galatea: Wonderful! You've brought me some Sylph Breath! The more I have, the better! "Here's the bottle."
[30634-06.htm] High Summoner Galatea: Your help has been invaluable to my research! Unfortunately, the job isn't finished yet. Would you consider staying on and continuing to help me for a while? "I'll do it." Quit
[30634-07.htm] High Summoner Galatea: Wonderful! Continue to hunt the Sobbing Wind, Babbling Wind and Giggling Wind, find what is known as the Container of Sylph Breath and bring those to me.
[30634-08.htm] High Summoner Galatea: A quitter, eh? Goodbye.
Исходник условий и наград (Java)
/*
* Copyright (c) 2013 L2jMobius
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package quests.Q00659_IdRatherBeCollectingFairyBreath;
import org.l2jmobius.gameserver.entity.actor.Npc;
import org.l2jmobius.gameserver.entity.actor.Player;
import org.l2jmobius.gameserver.mechanics.script.Quest;
import org.l2jmobius.gameserver.mechanics.script.QuestSound;
import org.l2jmobius.gameserver.mechanics.script.QuestState;
import org.l2jmobius.gameserver.mechanics.script.State;
public class Q00659_IdRatherBeCollectingFairyBreath extends Quest
{
// NPCs
private static final int GALATEA = 30634;
// Monsters
private static final int SOBBING_WIND = 21023;
private static final int BABBLING_WIND = 21024;
private static final int GIGGLING_WIND = 21025;
// Item
private static final int FAIRY_BREATH = 8286;
public Q00659_IdRatherBeCollectingFairyBreath()
{
super(659, "I'd Rather Be Collecting Fairy Breath");
registerQuestItems(FAIRY_BREATH);
addStartNpc(GALATEA);
addTalkId(GALATEA);
addKillId(GIGGLING_WIND, BABBLING_WIND, SOBBING_WIND);
}
@Override
public String onEvent(String event, Npc npc, Player player)
{
String htmltext = event;
final QuestState st = getQuestState(player, false);
if (st == null)
{
return htmltext;
}
switch (event)
{
case "30634-03.htm":
{
st.startQuest();
break;
}
case "30634-06.htm":
{
final int count = getQuestItemsCount(player, FAIRY_BREATH);
if (count > 0)
{
takeItems(player, FAIRY_BREATH, count);
if (count < 10)
{
giveAdena(player, count * 50, true);
}
else
{
giveAdena(player, (count * 50) + 5365, true);
}
}
break;
}
case "30634-08.htm":
{
st.exitQuest(true);
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);
switch (st.getState())
{
case State.CREATED:
{
htmltext = (player.getLevel() < 26) ? "30634-01.htm" : "30634-02.htm";
break;
}
case State.STARTED:
{
htmltext = (!hasQuestItems(player, FAIRY_BREATH)) ? "30634-04.htm" : "30634-05.htm";
break;
}
}
return htmltext;
}
@Override
public void onKill(Npc npc, Player player, boolean isPet)
{
final QuestState st = getQuestState(player, false);
if ((st == null) || !st.isStarted())
{
return;
}
if (getRandom(10) < 9)
{
giveItems(player, FAIRY_BREATH, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
}