Перейти к содержанию
Авторизация  
L2Angel

Шанс дропа квест итема

Рекомендуемые сообщения

Помогите разобраться, не влияет на шанс дропа второе число, как написано в комментарии, оно влияет на колличество выпадемого:

//DROPLIST (MOB_ID, CHANCE)
private final static int[][] DROPLIST = {
      {21376, 100}, - даже при значении 100 итем выпадает не каждый раз. Весь код ниже.

package quests;

import l2.commons.util.Rnd;
import l2.gameserver.model.instances.NpcInstance;
import l2.gameserver.model.quest.Quest;
import l2.gameserver.model.quest.QuestState;
import l2.gameserver.scripts.ScriptFile;

public class _617_GatherTheFlames extends Quest implements ScriptFile
{
	//npc
	private final static int VULCAN = 31539;
	private final static int HILDA = 31271;
	//items
	private final static int TORCH = 7264;
	//DROPLIST (MOB_ID, CHANCE)
	private final static int[][] DROPLIST = {
      {21376, 100},
      {21377, 100},
      {21378, 100},
      {21652, 100},
      {21380, 100},
      {21381, 103},
      {21653, 103},
      {21383, 103},
      {21394, 103},
      {21385, 103},
      {21386, 103},
      {21388, 105},
      {21655, 105},
      {21387, 105},
      {21390, 108},
      {21656, 108},
      {21395, 108},
      {21389, 108},
      {21391, 108},
      {21392, 108},
      {21393, 110},
      {21657, 110},
      {21382, 112},
      {21379, 112},
      {21654, 116},
      {21384, 116}};

	public static final int[] Recipes = { 6881, 6883, 6885, 6887, 7580, 6891, 6893, 6895, 6897, 6899 };

	@Override
	public void onLoad()
	{}

	@Override
	public void onReload()
	{}

	@Override
	public void onShutdown()
	{}

	public _617_GatherTheFlames()
	{
		super(true);

		addStartNpc(VULCAN);
		addStartNpc(HILDA);

		for(int[] element : DROPLIST)
			addKillId(element[0]);
	}

	@Override
	public String onEvent(String event, QuestState st, NpcInstance npc)
	{
		String htmltext = event;
		if(event.equalsIgnoreCase("warsmith_vulcan_q0617_03.htm")) //VULCAN
		{
			if(st.getPlayer().getLevel() < 74)
				return "warsmith_vulcan_q0617_02.htm";
			st.setState(STARTED);
			st.playSound(SOUND_ACCEPT);
			st.setCond(1);
		}
		else if(event.equalsIgnoreCase("blacksmith_hilda_q0617_03.htm")) //HILDA
		{
			if(st.getPlayer().getLevel() < 74)
				return "blacksmith_hilda_q0617_02.htm";
			st.setState(STARTED);
			st.playSound(SOUND_ACCEPT);
			st.setCond(1);
		}
		else if(event.equalsIgnoreCase("warsmith_vulcan_q0617_08.htm"))
		{
			st.playSound(SOUND_FINISH);
			st.takeItems(TORCH, -1);
			st.exitCurrentQuest(true);
		}
		else if(event.equalsIgnoreCase("warsmith_vulcan_q0617_07.htm"))
		{
			if(st.getQuestItemsCount(TORCH) < 1000)
				return "warsmith_vulcan_q0617_05.htm";
			st.takeItems(TORCH, 1000);
			st.giveItems(Recipes[Rnd.get(Recipes.length)], 1);
			st.playSound(SOUND_MIDDLE);
		}
		return htmltext;
	}

	@Override
	public String onTalk(NpcInstance npc, QuestState st)
	{
		String htmltext = "noquest";
		int npcId = npc.getNpcId();
		int cond = st.getCond();
		if(npcId == VULCAN)
		{
			if(cond == 0)
			{
				if(st.getPlayer().getLevel() < 74)
				{
					htmltext = "warsmith_vulcan_q0617_02.htm";
					st.exitCurrentQuest(true);
				}
				else
					htmltext = "warsmith_vulcan_q0617_01.htm";
			}
			else
				htmltext = st.getQuestItemsCount(TORCH) < 1000 ? "warsmith_vulcan_q0617_05.htm" : "warsmith_vulcan_q0617_04.htm";
		}
		else if(npcId == HILDA)
			if(cond < 1)
				htmltext = st.getPlayer().getLevel() < 74 ? "blacksmith_hilda_q0617_02.htm" : "blacksmith_hilda_q0617_01.htm";
			else
				htmltext = "blacksmith_hilda_q0617_04.htm";
		return htmltext;
	}

	@Override
	public String onKill(NpcInstance npc, QuestState st)
	{
		for(int[] element : DROPLIST)
			if(npc.getNpcId() == element[0])
			{
				st.rollAndGive(TORCH, 1, element[1]);
				return null;
			}
		return null;
	}
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...