ZURSULUS L2

Wrath of Verdure

ID
267
Название
Wrath of Verdure
start_npcs_json
[31853]
npc_ids_json
[]
constants_json
{"GOBLIN_CLUB":1335,"SILVERY_LEAF":1340}
Статус разбора
metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
Источник
game/data/scripts/quests/Q00267_WrathOfVerdure/Q00267_WrathOfVerdure.java

NPC квеста

Записей нет.

Условия уровней: выражения из Java

else if (player.getLevel() < 4)

Выдача предметов, адены и опыта: выражения из Java

rewardItems(player, SILVERY_LEAF, count);
giveAdena(player, 600, true);
giveItems(player, GOBLIN_CLUB, 1);

Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.

Тексты квеста

[31853-00.htm] Treant Bremec: ... ... Green woods.forest.trees.most.precious.life.Mother Tree.child.my.brother ... ... ... ... But.you.not.Mother Tree.child.cannot.understand.forest.order.cannot.help ... ... . (This quest may only be undertaken by an Elven character.) [31853-01.htm] Treant Bremec: ... ... Green woods.forest.trees.most.precious.life.Mother Tree.child.my.brothers ... ... ... ... Misty Mountain.Orc.even they.no harm.trees.know.wrath.of forest ... ... ... ... First.seeing.goblin.stupid.fearless.children.tree.cut.branch.burn.tree.uproot ... ... ... ... Maxor.Treant.brothers.death of.our race.sad.angry.foolish.goblin.stomp ... ... (This quest may only be undertaken by a character of level 4 and above.) [31853-02.htm] Treant Bremec: ... ... Green woods.forest.trees.most.precious.life.Mother Tree.child.my.brother ... ... ... ... Misty Mountain.Orc.even they.no harm.trees.know.wrath.of forest ... ... ... ... Foreign.new. ... ...goblin.stupid.fearless.children.tree.cut.branch.burn.tree.uproot ... ... ... ... Maxor Treant.brothers.death of.our race.sad.angry ... ...goblin.punish ... ... But ...goblin.many.number.run away.hide.away.from.Maxor Treant.fury.run.hide ... ... ... ... You.help. ... ...goblin.forest.destroyer.ruthless.invader.you.punish.avenge.teach.forest.order ... ... Say you will help [31853-03.htm] Treant Bremec: ... ... You.us.help.green woods.forest.brothers.thank.rejoice ... ... ... ... Goblin.eradiacate.goblin.hold.weapon.dead.branch.brothers'.bodies.bring.back ... ... ... ... Keep.promise.I.Bremec.Treant.green woods.protector.valuable.gift.of forest.give ... ... [31853-04.htm] Treant Bremec: ... ... Goblin.forest.destroyer.ruthless.invader.you.punish.teach.forest.order ... ... Say you will quit Say you will continue [31853-05.htm] Treant Bremec: ... ... Goblin.forest.destroyer.ruthless.invader.you.punish.avenge.teach.forest.order ... ... ... ... Goblin.weapon.dead.tree branch.brothers'.bodies.you.bring ... ... ... ... Promise.keep.I.Bremec.protector of.green woods.valuable.gift.of forest.give ... ... ... ... You.bring.goblin.weapon.dead.branch.I.give.one of.my.gifts.for.each ... ... ... ... Not.finished.goblin.punish.avenge.eradicate.teach.forest.order ... ... Say you will quit Say you will continue [31853-06.htm] Treant Bremec: ... ... Forest.brothers.thank you.teach.foolish.goblins.forest.lesson.fury of.green woods ... ... [31853-07.htm] Treant Bremec: ... ... Forest.anger.brothers'.fury.not.end yet ... ... ... ... Continue.punish.goblin.invader.eradicate.avenge.teach.forest.order ... ...
Исходник условий и наград (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.Q00267_WrathOfVerdure;

import org.l2jmobius.gameserver.config.GeneralConfig;
import org.l2jmobius.gameserver.entity.actor.Npc;
import org.l2jmobius.gameserver.entity.actor.Player;
import org.l2jmobius.gameserver.entity.actor.enums.creature.Race;
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 Q00267_WrathOfVerdure extends Quest
{
	// Items
	private static final int GOBLIN_CLUB = 1335;
	
	// Reward
	private static final int SILVERY_LEAF = 1340;
	
	public Q00267_WrathOfVerdure()
	{
		super(267, "Wrath of Verdure");
		registerQuestItems(GOBLIN_CLUB);
		addStartNpc(31853); // Bremec
		addTalkId(31853);
		addKillId(20325); // Goblin
	}
	
	@Override
	public String onEvent(String event, Npc npc, Player player)
	{
		String htmltext = event;
		final QuestState st = getQuestState(player, false);
		if (st == null)
		{
			return htmltext;
		}
		
		if (event.equals("31853-03.htm"))
		{
			st.startQuest();
		}
		else if (event.equals("31853-06.htm"))
		{
			st.exitQuest(true, true);
		}
		
		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:
			{
				if (player.getRace() != Race.ELF)
				{
					htmltext = "31853-00.htm";
				}
				else if (player.getLevel() < 4)
				{
					htmltext = "31853-01.htm";
				}
				else
				{
					htmltext = "31853-02.htm";
				}
				break;
			}
			case State.STARTED:
			{
				final int count = getQuestItemsCount(player, GOBLIN_CLUB);
				if (count > 0)
				{
					htmltext = "31853-05.htm";
					takeItems(player, GOBLIN_CLUB, -1);
					rewardItems(player, SILVERY_LEAF, count);
					if (!GeneralConfig.ALT_VILLAGES_REPEATABLE_QUEST_REWARD && (count >= 10))
					{
						giveAdena(player, 600, true);
					}
				}
				else
				{
					htmltext = "31853-04.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, GOBLIN_CLUB, 1);
			playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
		}
	}
}