Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Breaking arrow (https://forum.zone-game.info/showthread.php?t=21006)

mar4ello24 03.07.2012 10:49

Breaking arrow
 
Добрый день, в очередной раз обрашаюсь к вам за помошю;) перекинул аи фринтеззи себе в сборку, брал из фрозенов. всё настроил отличнно работает, но не работают стрелы, тоесть те которыми успокаивают фринтеззу, если отхожу на растояние по дальше пишет в чат The purpose is inaccessible на сколько понимаю ето типо слишком далеко от цели нахожусь, если подхожу поближе нажимая на итем воопше ничего не пишет и непроисходет. может у кого была такая проблема, буду благодарен за любую идею в решении проблемы

gorodetskiy 03.07.2012 13:40

Re: Breaking arrow
 
ковыряй сами итемы

mazillka 03.07.2012 15:37

Re: Breaking arrow
 
Цитата:

Сообщение от mar4ello24 (Сообщение 200799)
Добрый день, в очередной раз обрашаюсь к вам за помошю;) перекинул аи фринтеззи себе в сборку, брал из фрозенов. всё настроил отличнно работает, но не работают стрелы, тоесть те которыми успокаивают фринтеззу, если отхожу на растояние по дальше пишет в чат The purpose is inaccessible на сколько понимаю ето типо слишком далеко от цели нахожусь, если подхожу поближе нажимая на итем воопше ничего не пишет и непроисходет. может у кого была такая проблема, буду благодарен за любую идею в решении проблемы

а в итемхандлерах стрела прописана?

mar4ello24 03.07.2012 17:42

Re: Breaking arrow
 
да наверно разобрался, шяс буду пробовать компилить, небыло добавленно рефлект для фринтеззи от стрел

Добавлено через 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;
        }
}

в итеминстанце тоже есть где ешё должно быть, может кто посмотрет как у вас устреонно, буду благодарен

скомпилил фрозенов, проверил и тут тоже не работает,( какие исходы взять что бы реализовать то?

mar4ello24 04.07.2012 22:48

Re: Breaking arrow
 
Up может кто проверял на фрозенах ети стрелы отпишите плз, я уже не знаю что делать все исходы перелопатил

IwantPOJL 05.07.2012 17:42

Re: Breaking arrow
 
Цитата:

Сообщение от mar4ello24 (Сообщение 200976)
да наверно разобрался, шяс буду пробовать компилить, небыло добавленно рефлект для фринтеззи от стрел

Добавлено через 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?

DiagoD 05.07.2012 17:51

Re: Breaking arrow
 
Цитата:

Сообщение от mar4ello24 (Сообщение 200976)
да наверно разобрался, шяс буду пробовать компилить, небыло добавленно рефлект для фринтеззи от стрел

Добавлено через 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(itemId == 8192 && Frintezza.getObjectId() == 29045)
вы берете ИДобьекта и сравниваете с ИД НПСа...
getObjectId замените на getNpcId и тогда будет все хорошо)

IwantPOJL 05.07.2012 19:15

Re: Breaking arrow
 
пусть будет всем хорошо :)

mar4ello24 05.07.2012 20:13

Re: Breaking arrow
 
ааа ну мужик:+25 Duals: , use итема идёт, шяс буду крутить скилл и ефект выстрела:) спасибо тебе огромное выручил


Текущее время: 06:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot