Making the Harvest Grounds Safe
- ID
- 661
- Название
- Making the Harvest Grounds Safe
- start_npcs_json
- [30210]
- npc_ids_json
- [21095,21096,21097,30210]
- constants_json
- {"NORMAN":30210,"GIANT_POISON_BEE":21095,"CLOUDY_BEAST":21096,"YOUNG_ARANEID":21097,"STING_OF_GIANT_POISON_BEE":8283,"CLOUDY_GEM":8284,"TALON_OF_YOUNG_ARANEID":8285,"ADENA":57}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
- Источник
- game/data/scripts/quests/Q00661_MakingTheHarvestGroundsSafe/Q00661_MakingTheHarvestGroundsSafe.java
NPC квеста
| ID | Название | Старт квеста | Уровень |
|---|---|---|---|
| 21095 | Giant Poison Bee | Нет | 21 |
| 21096 | Cloudy Beast | Нет | 22 |
| 21097 | Young Araneid | Нет | 23 |
| 30210 | Norman | Да | 70 |
Условия уровней: выражения из Java
htmltext = (player.getLevel() < 21) ? "30210-01a.htm" : "30210-01.htm";
Выдача предметов, адены и опыта: выражения из Java
rewardItems(player, ADENA, sum); giveItems(player, npc.getId() - 12812, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[30210-01.htm] Warehouse Keeper Norman: We of the Iron Gate Guild are currently participating in various reconstruction works to restore Gludio Territory from the devastation of war... We've obtained permission from the Lord to start a construction project in this area. We've been having problems with monsters rampaging through the Fellmere Harvesting Grounds that produce our construction materials, so we're not making much progress... Other factors have led to a shortage of resources in the manor. The Lord is seeking adventurers to help us solve this problem... Will you help us rebuild Gludio Territory? "I'll help you."
[30210-01a.htm] Warehouse Keeper Norman: Our guild, the Iron Gate, is involved with various reconstruction efforts to restore Gludio Territory from the devastation of war. We've gotten the Lord's permission to begin reconstruction in the area... But monsters have begun appearing in the Fellmere Harvesting Grounds where we get many of our important construction materials... Other factors have led to a shortage of resources in the manor. The Lord if seeking adventurer's help. When you have enough power, we could use your help! (This quest may only be undertaken by a character of level 21 and above.)
[30210-02.htm] Warehouse Keeper Norman: Excellent! Go to the Fellmere Harvesting Grounds and defeat the Giant Poison Bee, Cloudy Beast and Young Araneid that are impeding our work. And don't forget to bring me proof of your kills... Good luck!
[30210-03.htm] Warehouse Keeper Norman: Oh, you're back so soon? The Lord wants the reconstruction effort started as soon as possible... We really need your help! Can you prove that you're valuable enough for the reconstruction effort? "Here's the proof"
[30210-04.htm] Warehouse Keeper Norman: Here is the reward for your hard work... The reward is provided by the Iron Gate Guild and the Gludio Territory Reconstruction Fund... What! It's not enough? Then kill some more monsters and bring me the proofs! "I'll keep working for you." "I quit."
[30210-05.htm] Warehouse Keeper Norman: Oh, how was it? The Lord wants us to proceed with the reconstruction project as soon as possible... We must have your help! Go to the Fellmere Harvesting Grounds quickly and bring me the evidence that you eliminated those nasty, vile monsters.
[30210-06.htm] Warehouse Keeper Normam: Hmmm, perhaps you have a better source for making Adena... Or are you just going on to more exciting adventures? Please remember us, the Iron Gate Guild that strives to reconstruct Gludio Territory. Good luck!
[30210-07.htm] Warehouse Keeper Norman: Thank you! We'll engrave your name on the cornerstone of a building when we begin the reconstruction! Go to Fellmere Harvesting Grounds quickly and bring me the evidence that you've eliminated those monsters.
Исходник условий и наград (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.Q00661_MakingTheHarvestGroundsSafe;
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 Q00661_MakingTheHarvestGroundsSafe extends Quest
{
// NPC
private static final int NORMAN = 30210;
// Monsters
private static final int GIANT_POISON_BEE = 21095;
private static final int CLOUDY_BEAST = 21096;
private static final int YOUNG_ARANEID = 21097;
// Items
private static final int STING_OF_GIANT_POISON_BEE = 8283;
private static final int CLOUDY_GEM = 8284;
private static final int TALON_OF_YOUNG_ARANEID = 8285;
// Reward
private static final int ADENA = 57;
public Q00661_MakingTheHarvestGroundsSafe()
{
super(661, "Making the Harvest Grounds Safe");
registerQuestItems(STING_OF_GIANT_POISON_BEE, CLOUDY_GEM, TALON_OF_YOUNG_ARANEID);
addStartNpc(NORMAN);
addTalkId(NORMAN);
addKillId(GIANT_POISON_BEE, CLOUDY_BEAST, YOUNG_ARANEID);
}
@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 "30210-02.htm":
{
st.startQuest();
break;
}
case "30210-04.htm":
{
final int item1 = getQuestItemsCount(player, STING_OF_GIANT_POISON_BEE);
final int item2 = getQuestItemsCount(player, CLOUDY_GEM);
final int item3 = getQuestItemsCount(player, TALON_OF_YOUNG_ARANEID);
int sum = 0;
sum = (item1 * 57) + (item2 * 56) + (item3 * 60);
if ((item1 + item2 + item3) >= 10)
{
sum += 2871;
}
takeItems(player, STING_OF_GIANT_POISON_BEE, item1);
takeItems(player, CLOUDY_GEM, item2);
takeItems(player, TALON_OF_YOUNG_ARANEID, item3);
rewardItems(player, ADENA, sum);
break;
}
case "30210-06.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() < 21) ? "30210-01a.htm" : "30210-01.htm";
break;
}
case State.STARTED:
{
htmltext = (hasAtLeastOneQuestItem(player, STING_OF_GIANT_POISON_BEE, CLOUDY_GEM, TALON_OF_YOUNG_ARANEID)) ? "30210-03.htm" : "30210-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 (getRandomBoolean())
{
giveItems(player, npc.getId() - 12812, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
}