Цитата:
Сообщение от 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";
}
}