War with Varka Silenos
- ID
- 606
- Название
- War with Varka Silenos
- start_npcs_json
- [31370]
- npc_ids_json
- [31370]
- constants_json
- {"KADUN":31370,"HORN":7186,"MANE":7233,"MIN_LEVEL":74,"MANE_COUNT":100}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
- Источник
- game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/Q00606_BattleAgainstVarkaSilenos.java
NPC квеста
| ID | Название | Старт квеста | Уровень |
|---|---|---|---|
| 31370 | Kadun Zu Ketra | Да | 70 |
Условия уровней: выражения из Java
private static final int MIN_LEVEL = 74; htmltext = (player.getLevel() >= MIN_LEVEL) ? "31370-01.htm" : "31370-02.htm";
Выдача предметов, адены и опыта: выражения из Java
giveItems(player, HORN, 20); giveItems(member, MANE, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[31370-01.htm] Kadun Zu Ketra: We must destroy the Varka Silenos, our ancient rivals! Who will join our cause? "I'll fight the Varka Silenos."
[31370-02.htm] Kadun Zu Ketra: Your courage is admirable, but your abilities are lacking! Come back when you've developed your skills a bit more. (This quest may only be undertaken by a character of level 74 or above.)
[31370-03.htm] Kadun Zu Ketra: Attack the garrison of the Varka Silenos and kill as many of them as possible! Cut off their Shillien Manes and bring them back as proof of your valor! Bring back 100 of them and I'll give you a reward! Tejakar Ketra!
[31370-04.html] Kadun Zu Ketra: My colleague, have you slaughtered our enemies, the warriors of Varka Silenos? Did you hear their pitiful cries of defeat? "I will come back after killing more enemies." "I brought 100 manes for a start." "I want to quit."
[31370-05.html] Kadun Zu Ketra: Wipe out the enemy! Don't let any Varka Silenos survive! Kill them all!
[31370-06.html] Kadun Zu Ketra: The fight must go on! Victory is ours!
[31370-07.html] Kadun Zu Ketra: Excellent! Today's victory will always be remembered! Oh, brave warrior! You'll be well-rewarded for your valor! At one time, this Buffalo horn was only given to the bravest soldiers of our tribe. It's quite valuable! You could trade it for something you really need! "I want to go back to the battlefield." "I have more manes." "I want to quit."
[31370-08.html] Kadun Zu Ketra: Didn't I ask for at least 100 Shillien Manes? Return to the battlefield now!
[31370-09.html] Kadun Zu Ketra: Even the most invincible warrior should take a break once in a while! You've done well! Come back when you're rested!
Исходник условий и наград (Java)
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.Q00606_BattleAgainstVarkaSilenos;
import java.util.HashMap;
import java.util.Map;
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;
/**
* Battle against Varka Silenos (606)
* @author malyelfik
*/
public class Q00606_BattleAgainstVarkaSilenos extends Quest
{
// NPC
private static final int KADUN = 31370;
// Monsters
private static final Map<Integer, Integer> MOBS = new HashMap<>();
static
{
MOBS.put(21350, 500); // Varka Silenos Recruit
MOBS.put(21353, 510); // Varka Silenos Scout
MOBS.put(21354, 522); // Varka Silenos Hunter
MOBS.put(21355, 519); // Varka Silenos Shaman
MOBS.put(21357, 529); // Varka Silenos Priest
MOBS.put(21358, 529); // Varka Silenos Warrior
MOBS.put(21360, 539); // Varka Silenos Medium
MOBS.put(21362, 539); // Varka Silenos Officer
MOBS.put(21364, 558); // Varka Silenos Seer
MOBS.put(21365, 568); // Varka Silenos Great Magus
MOBS.put(21366, 568); // Varka Silenos General
MOBS.put(21368, 568); // Varka Silenos Great Seer
MOBS.put(21369, 664); // Varka's Commander
MOBS.put(21371, 713); // Varka's Head Magus
MOBS.put(21373, 738); // Varka's Prophet
}
// Items
private static final int HORN = 7186;
private static final int MANE = 7233;
// Misc
private static final int MIN_LEVEL = 74;
private static final int MANE_COUNT = 100;
public Q00606_BattleAgainstVarkaSilenos()
{
super(606, "War with Varka Silenos");
addStartNpc(KADUN);
addTalkId(KADUN);
addKillId(MOBS.keySet());
registerQuestItems(MANE);
}
@Override
public String onEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = event;
switch (event)
{
case "31370-03.htm":
{
qs.startQuest();
break;
}
case "31370-06.html":
{
break;
}
case "31370-07.html":
{
if (getQuestItemsCount(player, MANE) < MANE_COUNT)
{
return "31370-08.html";
}
takeItems(player, MANE, MANE_COUNT);
giveItems(player, HORN, 20);
break;
}
case "31370-09.html":
{
qs.exitQuest(true, true);
break;
}
default:
{
htmltext = null;
break;
}
}
return htmltext;
}
@Override
public void onKill(Npc npc, Player killer, boolean isSummon)
{
final Player member = getRandomPartyMember(killer, 1);
if ((member != null) && (getRandom(1000) < MOBS.get(npc.getId())))
{
giveItems(member, MANE, 1);
playSound(member, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.getLevel() >= MIN_LEVEL) ? "31370-01.htm" : "31370-02.htm";
break;
}
case State.STARTED:
{
htmltext = (hasQuestItems(player, MANE)) ? "31370-04.html" : "31370-05.html";
break;
}
}
return htmltext;
}
}