Цитата:
Сообщение от mar4ello24
да наверно разобрался, шяс буду пробовать компилить, небыло добавленно рефлект для фринтеззи от стрел
Добавлено через 2 часа 30 минут
не неполучилось, да в ядре есть сами стрелы, но не стреляют
Добавлено через 4 часа 54 минуты
собственно вот сам код:
Код:
public class BreakingArrow implements IItemHandler
{
private static final int[] ITEM_IDS =
{
8192
};
// private static final int INTERACTION_DISTANCE = 500; // Ненавижу ворнинги!!!
public void useItem(L2PlayableInstance playable, L2ItemInstance item)
{
int itemId = item.getItemId();
if(!(playable instanceof L2PcInstance))
return;
L2PcInstance activeChar = (L2PcInstance) playable;
L2Object target = activeChar.getTarget();
if(!(target instanceof L2GrandBossInstance) || target == null)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
L2GrandBossInstance Frintezza = (L2GrandBossInstance) target;
if(!activeChar.isInsideRadius(Frintezza, 500, false, false))
{
activeChar.sendMessage("The purpose is inaccessible");
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if(itemId == 8192 && Frintezza.getObjectId() == 29045)
{
Frintezza.broadcastPacket(new SocialAction(Frintezza.getObjectId(), 2));
playable.destroyItem("Consume", item.getObjectId(), 1, null, false);
}
}
public int[] getItemIds()
{
return ITEM_IDS;
}
}
в итеминстанце тоже есть где ешё должно быть, может кто посмотрет как у вас устреонно, буду благодарен
скомпилил фрозенов, проверил и тут тоже не работает,( какие исходы взять что бы реализовать то?
|
Ну начнем с того, что скрипт у тебя запускается и этому свидетельствует это условие, значит все по идее не так уж и плохо.
if(!activeChar.isInsideRadius(Frintezza, 500, false, false))
{
activeChar.sendMessage("The purpose is inaccessible");
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
То есть, если ты находишся от фринтезы не в радиусе 500, тебе вылетает месаг.
Следующая проверка как видишь
if(itemId == 8192 && Frintezza.getObjectId() == 29045)
{
Frintezza.broadcastPacket(new SocialAction(Frintezza.getObjectId(), 2));
playable.destroyItem("Consume", item.getObjectId(), 1, null, false);
}
SocialAction(Frintezza.getObjectId(), 2)); Смотри, что делает это действие в AI фринтезы. Может лажа какая то. И вообще ID твоей фринтезы 29045?