Показать сообщение отдельно
Непрочитано 10.03.2014, 16:26   #7
Аватар для SoFace
Участник

По умолчанию Re: Donate Shop на Lucera

Цитата:
Сообщение от labrador116 Посмотреть сообщение
А пример можно какой либо?
Эм..)
Написал небольшой скрипт Обменника на скорую руку.
З.Ы. - Скрипт под aCis. Но тут показаны все основные моменты.
Код:
package l2s.gameserver.scripts.custom;

import l2s.gameserver.model.actor.L2Npc;
import l2s.gameserver.model.actor.instance.L2PcInstance;
import l2s.gameserver.model.quest.Quest;
import l2s.gameserver.model.quest.QuestState;
import l2s.gameserver.network.serverpackets.InventoryUpdate;

/**
 * @author SoFace
 */
public class Exchanger extends Quest
{
	private static final int Exchanger = 31228; // ID NPC'а.
	
	private static String html_base = "data/html/mods/Exchanger/Exchanger"; // Путь до диалогов.
	
	// Обмениваемый предмет:
	private static final int exchange_itemId = 57;
	private static final int exchange_countItems = 50000;
	
	// Получаемый предмет::
	private static final int receive_itemId = 4037;
	private static final int receive_countItems = 1;
	
	public Exchanger(int questId, String name, String descr)
	{
		super(questId, name, descr);
		
		addStartNpc(Exchanger);
		addFirstTalkId(Exchanger);
		addTalkId(Exchanger);
	}
	
	@Override
	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
	{
		QuestState st = player.getQuestState(getName());
		
		if (event.equals("exchange"))
		{
			st.takeItems(exchange_itemId, exchange_countItems);
			st.giveItems(receive_itemId, receive_countItems);
			InventoryUpdate iu = new InventoryUpdate();
			player.sendPacket(iu);
			return html_base + "-Success.htm";
		}
		
		return html_base + ".html";
	}
	
	@Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
	{
		if (player.getQuestState(getName()) == null)
			newQuestState(player);
		
		// Различные проверки.
		else if (player.isInCombat() || player.getPvpFlag() == 1 || player.getKarma() != 0 || player.isDead())
			return html_base + "-NoTalk.htm";
		
		return html_base + ".htm";
	}
}
SoFace вне форума Ответить с цитированием