ZURSULUS L2

Blood Offering

ID
505
Название
Blood Offering
start_npcs_json
[]
npc_ids_json
[]
constants_json
{}
Статус разбора
metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: ["TOWN_DAWN","TOWN_DUSK","DIM_GK","GK_ZIGGURAT","FESTIVALGUIDE","FESTIVALWITCH","RIFTPOST"]
Источник
game/data/scripts/quests/Q00505_BloodOffering/Q00505_BloodOffering.java

NPC квеста

Записей нет.

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

Явные выражения не найдены; проверьте исходник и диалоги.

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

Явные выражения не найдены; проверьте исходник и диалоги.

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

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

[guide.htm] Ritual Guide: There will be no regrets for your choice. You already have the right to fight for peace in this world. Take out confidence. I have already contacted, as long as you talk to the Rift Guard, the rest will tell you again. May you fight heroically. [riftpost-1.htm] Rift Post: Will send you where you want to go, for this world, I hope to come here again in the future. [riftpost-2.htm] Rift Post: Now the gate of the festival is closed, come again on the day when the competition period restarts. [witch.htm] Miko: Now that you have your mind set, I can't help it. I will gather my strength to send you outside immediately, wait a moment.
Исходник условий и наград (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.Q00505_BloodOffering;

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.QuestState;
import org.l2jmobius.gameserver.mechanics.script.State;
import org.l2jmobius.gameserver.mechanics.sevensigns.SevenSigns;
import org.l2jmobius.gameserver.util.ArrayUtil;

import quests.Q00635_IntoTheDimensionalRift.Q00635_IntoTheDimensionalRift;

/**
 * @author Mobius
 * @note Based on python script
 */
public class Q00505_BloodOffering extends Quest
{
	// NPCs
	// @formatter:off
	private static final int[] TOWN_DAWN = {31078, 31079, 31080, 31081, 31083, 31084, 31082, 31692, 31694, 31997, 31168};
	private static final int[] TOWN_DUSK = {31085, 31086, 31087, 31088, 31090, 31091, 31089, 31693, 31695, 31998, 31169};
	private static final int[] DIM_GK = {31494, 31495, 31496, 31497, 31498, 31499, 31500, 31501, 31502, 31503, 31504, 31505, 31506, 31507};
	private static final int[] GK_ZIGGURAT = {31095, 31096, 31097, 31098, 31099, 31100, 31101, 31102, 31103, 31104, 31105, 31106, 31107, 31108, 31109, 31110, 31114, 31115, 31116, 31117, 31118, 31119, 31120, 31121, 31122, 31123, 31124, 31125};
	private static final int[] FESTIVALGUIDE = {31127, 31128, 31129, 31130, 31131, 31137, 31138, 31139, 31140, 31141};
	private static final int[] FESTIVALWITCH = {31132, 31133, 31134, 31135, 31136, 31142, 31143, 31144, 31145, 31146};
	private static final int[] RIFTPOST = {31488, 31489, 31490, 31491, 31492, 31493};
	// @formatter:on
	
	public Q00505_BloodOffering()
	{
		super(505, "Blood Offering");
		addStartNpc(TOWN_DAWN);
		addTalkId(TOWN_DAWN);
		addStartNpc(TOWN_DUSK);
		addTalkId(TOWN_DUSK);
		addStartNpc(DIM_GK);
		addTalkId(DIM_GK);
		addStartNpc(GK_ZIGGURAT);
		addTalkId(GK_ZIGGURAT);
		addStartNpc(FESTIVALGUIDE);
		addTalkId(FESTIVALGUIDE);
		addStartNpc(FESTIVALWITCH);
		addTalkId(FESTIVALWITCH);
		addStartNpc(RIFTPOST);
		addTalkId(RIFTPOST);
	}
	
	@Override
	public String onTalk(Npc npc, Player player)
	{
		final String htmltext = getNoQuestMsg(player);
		final QuestState qs = getQuestState(player, true);
		if (qs == null)
		{
			return htmltext;
		}
		
		final QuestState qs2 = player.getQuestState(Q00635_IntoTheDimensionalRift.class.getSimpleName());
		final int npcId = npc.getId();
		if (ArrayUtil.contains(FESTIVALGUIDE, npcId))
		{
			player.teleToLocation(-114796, -179334, -6752);
			if (qs2 != null)
			{
				qs2.setState(State.STARTED);
				qs2.setCond(1);
			}
			
			qs.exitQuest(true, true);
			return "guide.htm";
		}
		else if (npcId == 31132)
		{
			player.teleToLocation(-80204, 87056, -5154);
			return "witch.htm";
		}
		else if (npcId == 31133)
		{
			player.teleToLocation(-77198, 87678, -5182);
			return "witch.htm";
		}
		else if (npcId == 31134)
		{
			player.teleToLocation(-76183, 87135, -5179);
			return "witch.htm";
		}
		else if (npcId == 31135)
		{
			player.teleToLocation(-76945, 86602, 5153);
			return "witch.htm";
		}
		else if (npcId == 31136)
		{
			player.teleToLocation(-79970, 85997, -5154);
			return "witch.htm";
		}
		else if (npcId == 31142)
		{
			player.teleToLocation(-79182, 111893, -4898);
			return "witch.htm";
		}
		else if (npcId == 31143)
		{
			player.teleToLocation(-76176, 112505, -4899);
			return "witch.htm";
		}
		else if (npcId == 31144)
		{
			player.teleToLocation(-75198, 111969, -4898);
			return "witch.htm";
		}
		else if (npcId == 31145)
		{
			player.teleToLocation(-75920, 111435, -4900);
			return "witch.htm";
		}
		else if (npcId == 31146)
		{
			player.teleToLocation(-78928, 110825, -4926);
			return "witch.htm";
		}
		else if (ArrayUtil.contains(RIFTPOST, npcId))
		{
			if (!SevenSigns.getInstance().isSealValidationPeriod())
			{
				final int cabal = SevenSigns.getInstance().getPlayerCabal(player.getObjectId());
				if (cabal == SevenSigns.CABAL_DAWN)
				{
					qs.setState(State.STARTED);
					qs.setCond(1);
					qs.getPlayer().teleToLocation(-80157, 111344, -4901);
					if (qs2 != null)
					{
						qs2.unset("cond");
					}
					
					return "riftpost-1.htm";
				}
				else if (cabal == SevenSigns.CABAL_DUSK)
				{
					qs.setState(State.STARTED);
					qs.setCond(1);
					if (qs2 != null)
					{
						qs2.unset("cond");
					}
					
					qs.getPlayer().teleToLocation(-81261, 86531, -5157);
					return "riftpost-1.htm";
				}
				
				return "riftpost-2.htm";
			}
			
			return "riftpost-2.htm";
		}
		
		return htmltext;
	}
}