Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Проблема со скриптом
#1
Доброго времени суток.
Исправьте пожалуйста скрипт.

Первоначально он был такой
Код:
package items;

import javolution.util.FastMap;

import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser;
import scripts.items.ItemHandler;
import scripts.items.ItemHandler;
import scripts.items.IItemHandler;

public class DonateScrolls implements IItemHandler
{
    private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS");
    private static int[] ITEM_IDS = null;
    
    public DonateScrolls()
    {
        /**шаблон
        **SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) });
        **/
        SCROLLS.put(4355, new Integer[] { 1204, 2, 2036, 1, 0 });
        SCROLLS.put(4356, new Integer[] { 269, 1, 2036, 1, 0 });
        
        //
        Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[SCROLLS.size()]);
        ITEM_IDS = toIntArray(tmp_ids);
        tmp_ids = null;
        ItemHandler.getInstance().registerItemHandler(this);
    }

    public static void main (String... arguments )
    {
        new DonateScrolls();
    }

    public void useItem(L2PlayableInstance playable, L2ItemInstance item)
       {
        if (!playable.isPlayer())
            return;

        L2PcInstance player = (L2PcInstance) playable;
        if (player.isAllSkillsDisabled())
        {
            player.sendActionFailed();
            return;
        }

        if (player.isInOlympiadMode())
        {
            player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT);
            player.sendActionFailed();
            return;
        }

        Integer[] data = SCROLLS.get(item.getItemId());
        if(data != null)
        {
            player.stopSkillEffects(data[0]);
            SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player);
            player.broadcastPacket(new MagicSkillUser(player, player, data[2], 1, data[3], 0));
            if (data[4] == 1)
                player.destroyItem("Consume", item.getObjectId(), 1, null, false);
        }
       }

    private int[] toIntArray(Integer[] arr)
    {
        int[] ret = new int[arr.length];
        int i = 0;
        for (Integer e : arr)  
            ret[i++] = e.intValue();
        return ret;
    }

    public int[] getItemIds()
    {
        return ITEM_IDS;
    }
}

после "метода тыка" хД
он стал таким)
Код:
package items;

import javolution.util.FastMap;

import com.l2emu.gameserver.datatables.SkillTable;
import l2emu.gameserver.cache.Static;
import l2emu.gameserver.model.L2ItemInstance;
import l2emu.gameserver.model.actor.instance.L2PcInstance;
import l2emu.gameserver.model.actor.instance.L2PlayableInstance;
import l2emu.gameserver.network.serverpackets.MagicSkillUser;
import scripts.items.ItemHandler;
import scripts.items.ItemHandler;
import scripts.items.IItemHandler;

public class DonateScrolls implements IItemHandler
{
    private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS");
    private static int[] ITEM_IDS = null;
    
    public DonateScrolls()
    {
        /**шаблон
        **SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) });
        **/
        SCROLLS.put(250009, new Integer[] { 1363, 1, 2036, 1, 0 });
        
        //
        Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[SCROLLS.size()]);
        ITEM_IDS = toIntArray(tmp_ids);
        tmp_ids = null;
        ItemHandler.getInstance().registerItemHandler(this);
    }

    public static void main (String... arguments )
    {
        new DonateScrolls();
    }

    public void useItem(L2PlayableInstance playable, L2ItemInstance item)
       {
        if (!playable.isPlayer())
            return;

        L2PcInstance player = (L2PcInstance) playable;
        if (player.isAllSkillsDisabled())
        {
            player.sendActionFailed();
            return;
        }

        if (player.isInOlympiadMode())
        {
            player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT);
            player.sendActionFailed();
            return;
        }

        Integer[] data = SCROLLS.get(item.getItemId());
        if(data != null)
        {
            player.stopSkillEffects(data[0]);
            SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player);
            player.broadcastPacket(new MagicSkillUser(player, player, data[2], 1, data[3], 0));
            if (data[4] == 1)
                player.destroyItem("Consume", item.getObjectId(), 1, null, false);
        }
       }

    private int[] toIntArray(Integer[] arr)
    {
        int[] ret = new int[arr.length];
        int i = 0;
        for (Integer e : arr)  
            ret[i++] = e.intValue();
        return ret;
    }

    public int[] getItemIds()
    {
        return ITEM_IDS;
    }
}

помогите закончить, у меня дальше не выходит(((
исходники от emu.

Вот ошибки которые пишет ГС (я знаю что он показывает строчки в которых ошибки, но я не знаю как их исправить)

Код:
1. ERROR in \DonateScrolls.java (at line 9)
        import com.l2emu.gameserver.model.actor.instance.L2PlayableInstance;
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The import com.l2emu.gameserver.model.actor.instance.L2PlayableInstance cannot b
e resolved
----------
2. ERROR in \DonateScrolls.java (at line 10)
        import com.l2emu.gameserver.network.serverpackets.MagicSkillUser;
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The import com.l2emu.gameserver.network.serverpackets.MagicSkillUser cannot be r
esolved
----------
3. ERROR in \DonateScrolls.java (at line 11)
        import scripts.items.ItemHandler;
               ^^^^^^^^^^^^^
The import scripts.items cannot be resolved
----------
4. ERROR in \DonateScrolls.java (at line 12)
        import scripts.items.ItemHandler;
               ^^^^^^^^^^^^^
The import scripts.items cannot be resolved
----------
5. ERROR in \DonateScrolls.java (at line 13)
        import scripts.items.IItemHandler;
               ^^^^^^^^^^^^^
The import scripts.items cannot be resolved
----------
6. ERROR in \DonateScrolls.java (at line 15)
        public class DonateScrolls implements ItemHandler
                                              ^^^^^^^^^^^
ItemHandler cannot be resolved to a type
----------
7. ERROR in \DonateScrolls.java (at line 17)
        private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<I
nteger, Integer[]>().shared("DonateScrolls.SCROLLS");

                     ^^^^^^
The method shared(String) is undefined for the type FastMap<Integer,Integer[]>
----------
8. ERROR in \DonateScrolls.java (at line 31)
        ItemHandler.getInstance().registerItemHandler(this);
        ^^^^^^^^^^^
ItemHandler cannot be resolved
----------
9. ERROR in \DonateScrolls.java (at line 39)
        public void useItem(L2PlayableInstance playable, L2ItemInstance item)
                            ^^^^^^^^^^^^^^^^^^
L2PlayableInstance cannot be resolved to a type
----------
10. ERROR in \DonateScrolls.java (at line 47)
        player.sendActionFailed();
               ^^^^^^^^^^^^^^^^
The method sendActionFailed() is undefined for the type L2PcInstance
----------
11. ERROR in \DonateScrolls.java (at line 53)
        player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVE
NT);
                          ^^^^^^
Static cannot be resolved
----------
12. ERROR in \DonateScrolls.java (at line 54)
        player.sendActionFailed();
               ^^^^^^^^^^^^^^^^
The method sendActionFailed() is undefined for the type L2PcInstance
----------
13. ERROR in \DonateScrolls.java (at line 63)
        player.broadcastPacket(new MagicSkillUser(player, player, data[2], 1, da
ta[3], 0));
                                   ^^^^^^^^^^^^^^
MagicSkillUser cannot be resolved to a type
----------
13 problems (13 errors)ItemHandler cannot be resolved to a type
The import com.l2emu.gameserver.model.actor.instance.L2PlayableInstance cannot b
e resolved
The import com.l2emu.gameserver.network.serverpackets.MagicSkillUser cannot be r
esolved
The import scripts.items cannot be resolved
The import scripts.items cannot be resolved
The import scripts.items cannot be resolved
L2PlayableInstance cannot be resolved to a type
The method shared(java.lang.String) is undefined for the type javolution.util.Fa
stMap<java.lang.Integer,java.lang.Integer[]>
ItemHandler cannot be resolved
The method sendActionFailed() is undefined for the type com.l2emu.gameserver.mod
el.actor.instance.L2PcInstance
Static cannot be resolved
The method sendActionFailed() is undefined for the type com.l2emu.gameserver.mod
el.actor.instance.L2PcInstance
MagicSkillUser cannot be resolved to a type
19:35:51 [WARNING] Failed executing script: C:\server\gameserver\data\scripts\it
ems\DonateScrolls.java. See DonateScrolls.java.error.log for details.

з.ы. может у кого то найдётся какойто мануальчик??
спс за внимание.

а и ещё, забыл, ГС создаёт файлик "DonateScrolls.java.error.log"
в котором пишется
Код:
Error on: C:\server\gameserver\data\scripts\items\DonateScrolls.java.error.log
Line: -1 - Column: -1

compilation failed
Ответ
#2
Нужно проверить все импорты (их нет / у них отличается содержание)

Например:
"The method sendActionFailed() is undefined for the type L2PcInstance" - найти в L2PcInstance аналог sendActionFailed.

"The import scripts.items cannot be resolved" - scripts.items назвается иначе\находится в другом месте.
Ответ
#3
именно, и еще не делать таких ошибок
Код:
import [color=Red]com.l2emu[/color].gameserver.datatables.SkillTable;
import [color=RoyalBlue]l2emu[/color].gameserver.cache.Static;
Ответ
#4
По порядку расскажу где и что править.

1. Импорт не верный.*
2. Импорт не верный*
3. Импорт не верный*
4. Импорт не верный*
5. Импорт не верный*
6. Относится к номеру 4, нет импорта нету обработки класса.
7. Параметр shared не поддерживается.**
8. Относится к номеру 4, нет импорта нету обработки класса.
9. Относится к номеру 1, нет импорта нету обработки класса.
10. метода sendActionFailed не существует.**
11. Место Static, может быть Msg ; SystemMassage?
12. относится к 10.
13. Относится к номеру 2, нет импорта нету обработки класса.

Надеюсь помог, с наступающим.

*Проверьте где находятся данные классы и укажите верный путь до них.
**Проверьте наличие данных методов, либо по примерам укажите правильный метод по аналогии (с сборки на сборку такие методы могу меняться, название метода лишь набор букв - не более)
Ответ
#5
7. дожно быть ...shared(true) или shared() в зависимости от версии библиотеки javolution
Ответ
#6
Поддерживаю в новых фенях так оно и было.
Ответ
#7
Проблема решилась, большое спасибо iqman-у.
Smile
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Проблема с квестами "Письма Кекропуса" Metallurg1985 0 561 11-05-2023, 07:01 PM
Последний пост: Metallurg1985
  Проблема с баферами Mor9k400 4 1,935 09-10-2018, 09:08 PM
Последний пост: Mor9k400
  Проблема с созданием персонажа Trufan 3 1,948 08-18-2016, 01:26 PM
Последний пост: Gaikotsu
  Проблема с custom jscripts. Сборка pw ESCfromReality 2 2,005 08-14-2016, 04:05 PM
Последний пост: KID
  Проблема с компилом Nez 2 1,747 08-04-2016, 04:08 PM
Последний пост: Nez
  Проблема с квестом взросление дракончика nemoruss 3 1,815 01-29-2016, 01:35 AM
Последний пост: nemoruss
  Проблема с квестом Elrokian Hunter's Proof Goffa 1 1,498 01-26-2016, 12:04 PM
Последний пост: GenCloud
  Проблема с лучниками vanyahunter123 3 1,715 12-13-2015, 09:15 AM
Последний пост: HiredKiller
  Проблема с скриптом DroNik 1 1,378 08-10-2015, 12:20 AM
Последний пост: Mosinnik
  Помогите со скриптом Mazahacka 0 1,143 07-29-2015, 10:26 PM
Последний пост: Mazahacka

Перейти к форуму:


Пользователи, просматривающие эту тему: 5 Гость(ей)