Item by Npc ID - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 15.03.2011, 23:24   #1
Аватар для krisadr
Пользователь

Автор темы (Топик Стартер) Item by Npc ID

Нужно было реализовать проверку на ид монстра в таргете при использовании предмета, т.к в XML указания ID НПС ничего не произошло...
Код:
<skill id="2905" levels="1" name="Growth Accelerator">
  <set name="itemConsumeId" val="14832"/>
  <set name="itemConsumeCount" val="1"/>
  <set name="target" val="TARGET_ONE" />
  <set name="skillType" val="DEBUFF" />
  <set name="isDebuff" val="true" />
  <set name="operateType" val="OP_ACTIVE" />
  <set name="hitTime" val="4000" />
  <set name="staticHitTime" val="true" />
  <set name="reuseDelay" val="2000" />
  <cond msgId="113" addName="1">
    <and>
        <not>
             <target mindistance="200" />
        </not>
    <target npcId="18793,18794,18795,18796,18797,18798" />
    </and>
  </cond>
</skill>
Решил создать хандлер

Код:
package handlers.itemhandlers;

import com.l2dc.gameserver.datatables.SkillTable;
import com.l2dc.gameserver.handler.IItemHandler;
import com.l2dc.gameserver.model.L2ItemInstance;
import com.l2dc.gameserver.model.L2Object;
import com.l2dc.gameserver.model.actor.L2Character;
import com.l2dc.gameserver.model.actor.L2Npc;
import com.l2dc.gameserver.model.actor.L2Playable;
import com.l2dc.gameserver.model.actor.instance.L2ChestInstance;
import com.l2dc.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2dc.gameserver.model.actor.instance.L2PcInstance;
import com.l2dc.gameserver.network.SystemMessageId;
import com.l2dc.gameserver.network.serverpackets.ActionFailed;

/**
 * @author z00m
 */

public class UseItemByNpcId implements IItemHandler
{
	private static final int GROW_ACCELERATOR = 14832;
	private static final int[] _cocoons = { 18793, 18794, 18795, 18796, 18797, 18798 };

	public void useItem(L2Playable playable, L2ItemInstance item) 
	{
	    if (playable == null || item == null || !(playable instanceof L2PcInstance))
				return;
		L2PcInstance activeChar = (L2PcInstance) playable;
		int itemId = item.getItemId();
		L2Object tgt = playable.getTarget();
		L2Npc target = (L2Npc)tgt;
		if (tgt instanceof L2PcInstance || tgt instanceof L2MonsterInstance || tgt instanceof L2ChestInstance || ((L2Character)tgt).isRaid())
		{
			playable.sendPacket(SystemMessageId.INCORRECT_TARGET);
			playable.sendPacket(ActionFailed.STATIC_PACKET);
			return;
		}
		for(int c : _cocoons)
		{
			if (itemId == GROW_ACCELERATOR && target.getNpcId() == c)
			{
				activeChar.useMagic(SkillTable.getInstance().getInfo(2905, 1), false, false);
			}
		}
	}
}
Теперь хоть и при том если в таргете находится моб\сундук или прочая ерис (не НПС) пишет что неправильная цель...
А когда в таргете нужное НПС с нужным ID ничего не происходит... следовательно target.getNpcId() не отображает ID НПС в таргете... (да простят меня за тафтологию). Отсюда вопрос, какую процедуру прописать, чтобы отображало ID NPC в таргете именно НПС, так как эти долбаные коканы не должны быть монстрами.


PS. с меня спасибки
krisadr вне форума Ответить с цитированием
Непрочитано 16.03.2011, 04:22   #2
Аватар для Gaikotsu
Герой

По умолчанию Re: Item by Npc ID

а почему бы не сделать типа так
Код:
	<skill id="2905" levels="1" name="Growth Accelerator">
		<set name="itemConsumeId" val="14832" />
		<set name="itemConsumeCount" val="1" />
		<set name="target" val="TARGET_ONE" />
		<set name="skillType" val="DEBUFF" />
		<set name="operateType" val="OP_ACTIVE" />
		<set name="isReuseDelayPermanent" val="true" />
		<cond msg="Skill cannot be used due to unsuitable terms">
			<or>
				<target mobId="18793" />
				<target mobId="18794" />
				<target mobId="18795" />
				<target mobId="18796" />
				<target mobId="18797" />
				<target mobId="18798" />
			</or>
		</cond>
		<for />
	</skill>
Gaikotsu вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 16.03.2011, 22:14   #3
Аватар для krisadr
Пользователь

Автор темы (Топик Стартер) Re: Item by Npc ID

спасибо за старания, но это тоже не пашет... видать чет там с таргетами недописали...
krisadr вне форума Ответить с цитированием
Непрочитано 17.03.2011, 00:27   #4
Изгнанные

По умолчанию Re: Item by Npc ID

я не особо шарю в ява(практически вобще не шарю=), но может так:

if (itemId == GROW_ACCELERATOR && target.getNpcId(ИД_НПС) == c)


P.S. надо учить яву)))
flashboom777 вне форума Ответить с цитированием
Непрочитано 17.03.2011, 00:44   #5
Аватар для Ozzy
Администратор

По умолчанию Re: Item by Npc ID

Цитата:
Сообщение от flashboom777 Посмотреть сообщение
я не особо шарю в ява(практически вобще не шарю=), но может так:

if (itemId == GROW_ACCELERATOR && target.getNpcId(ИД_НПС) == c)


P.S. надо учить яву)))
Нет, не так
Ozzy вне форума Ответить с цитированием
Непрочитано 17.03.2011, 18:08   #6
Аватар для krisadr
Пользователь

Автор темы (Топик Стартер) Re: Item by Npc ID

Цитата:
Сообщение от Ozzy Посмотреть сообщение
Нет, не так
ози порадовал))) нет не так, а как сказать наверно забыл ^^
krisadr вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
No item handler registered for item ID XXXX. SunnyX Lineage II 2 24.12.2010 00:17
New Item(создание своих item'ов) Eminem Lineage II 1 06.11.2010 16:23
Item Name UFODriverr Игровой клиент 10 18.10.2010 17:24
Структура Item.edf для 2.2.3 MMd Документация 0 24.12.2009 20:00
Не отображает кол-во Item'ов krisadr Lineage II 2 20.08.2009 13:32


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 02:15. Часовой пояс GMT +3.

Вверх