Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Ошибка компиляции L2open 1853
#1
При компиляции вылазят следующие ошибки:
Код:
data\scripts\npc\model\ThomasInstance.java:7: package events.SavingSnowman does not exist
    [javac] import events.SavingSnowman.SavingSnowman;
и
Код:
data\scripts\npc\model\ThomasInstance.java:48: cannot find symbol
    [javac] symbol  : variable SavingSnowman
    [javac] location: class npc.model.ThomasInstance
    [javac]         SavingSnowman.freeSnowman(topdam);

Вот сам файл SavingSnowman:
Код:
package events.SavingSnowman;

import java.util.concurrent.ScheduledFuture;

import l2open.Config;
import l2open.common.ThreadPoolManager;
import l2open.extensions.scripts.Functions;
import l2open.extensions.scripts.ScriptFile;
import l2open.gameserver.Announcements;
import l2open.gameserver.cache.Msg;
import l2open.gameserver.clientpackets.Say2C;
import l2open.gameserver.geodata.GeoEngine;
import l2open.gameserver.idfactory.IdFactory;
import l2open.gameserver.model.L2Character;
import l2open.gameserver.model.L2Drop;
import l2open.gameserver.model.L2ObjectsStorage;
import l2open.gameserver.model.L2Player;
import l2open.gameserver.model.L2Spawn;
import l2open.gameserver.model.L2Summon;
import l2open.gameserver.model.L2Territory;
import l2open.gameserver.model.instances.L2NpcInstance;
import l2open.gameserver.model.items.L2ItemInstance;
import l2open.gameserver.serverpackets.CharMoveToLocation;
import l2open.gameserver.serverpackets.MagicSkillUse;
import l2open.gameserver.serverpackets.RadarControl;
import l2open.gameserver.serverpackets.SystemMessage;
import l2open.gameserver.tables.NpcTable;
import l2open.gameserver.tables.SkillTable;
import l2open.gameserver.tables.TerritoryTable;
import l2open.gameserver.taskmanager.DecayTaskManager;
import l2open.gameserver.templates.L2NpcTemplate;
import l2open.gameserver.xml.ItemTemplates;
import l2open.util.Files;
import l2open.util.GArray;
import l2open.util.Location;
import l2open.util.Rnd;
import l2open.util.Util;

public class SavingSnowman extends Functions implements ScriptFile
{

    private static GArray<L2Spawn> _spawns = new GArray<L2Spawn>();

    private static ScheduledFuture<?> _snowmanShoutTask;
    private static ScheduledFuture<?> _saveTask;
    private static ScheduledFuture<?> _sayTask;
    private static ScheduledFuture<?> _eatTask;

    public static SnowmanState _snowmanState;

    private static L2NpcInstance _snowman;
    private static L2Character _thomas;

    public static enum SnowmanState
    {
        CAPTURED,
        KILLED,
        SAVED;
    }

    private static final int INITIAL_SAVE_DELAY = 10 * 60 * 1000; // 10 мин
    private static final int SAVE_INTERVAL = 60 * 60 * 1000; // 60 мин
    private static final int SNOWMAN_SHOUT_INTERVAL = 1 * 60 * 1000; // 1 мин
    private static final int THOMAS_EAT_DELAY = 10 * 60 * 1000; // 10 мин
    private static final int SATNA_SAY_INTERVAL = 5 * 60 * 1000; // 5 мин
    private static final int EVENT_MANAGER_ID = 13184;
    private static final int CTREE_ID = 13006;
    private static final int EVENT_REWARDER_ID = 13186;
    private static final int SNOWMAN_ID = 13160;
    private static final int THOMAS_ID = 13183;

    // Оружие для обмена купонов
    private static final int WEAPONS[][] = {
            { 20109, 20110, 20111, 20112, 20113, 20114, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122 }, // D
            { 20123, 20124, 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 20135, 20136 }, // C
            { 20137, 20138, 20139, 20140, 20141, 20142, 20143, 20144, 20145, 20146, 20147, 20148, 20149, 20150 }, // B
            { 20151, 20152, 20153, 20154, 20155, 20156, 20157, 20158, 20159, 20160, 20161, 20162, 20163, 20164 }, // A
            { 20165, 20166, 20167, 20168, 20169, 20170, 20171, 20172, 20173, 20174, 20175, 20176, 20177, 20178 } // S
    };

    private static boolean _active = false;

    public void onLoad()
    {
        if(isActive())
        {
            _active = true;
            spawnEventManagers();
            _log.info("Loaded Event: SavingSnowman [state: activated]");
            _saveTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SaveTask(), INITIAL_SAVE_DELAY, SAVE_INTERVAL);
            _sayTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SayTask(), SATNA_SAY_INTERVAL, SATNA_SAY_INTERVAL);
            _snowmanState = SnowmanState.SAVED;
        }
        else
            _log.info("Loaded Event: SavingSnowman [state: deactivated]");
    }

    /**
     * Читает статус эвента из базы.
     * @return
     */
    private static boolean isActive()
    {
        return IsActive("SavingSnowman");
    }

    /**
    * Запускает эвент
    */
    public void startEvent()
    {
        L2Player player = (L2Player) getSelf();
        if(!player.getPlayerAccess().IsEventGm)
            return;

        if(SetActive("SavingSnowman", true))
        {
            spawnEventManagers();
            _log.info("Event 'SavingSnowman' started.");
            Announcements.getInstance().announceByCustomMessage("scripts.events.SavingSnowman.AnnounceEventStarted", null);
            if(_saveTask == null)
                _saveTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SaveTask(), INITIAL_SAVE_DELAY, SAVE_INTERVAL);
            if(_sayTask == null)
                _sayTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new SayTask(), SATNA_SAY_INTERVAL, SATNA_SAY_INTERVAL);
            _snowmanState = SnowmanState.SAVED;
        }
        else
            player.sendMessage("Event 'SavingSnowman' already started.");

        _active = true;

        show(Files.read("data/html/admin/events.htm", player), player);
    }

    /**
    * Останавливает эвент
    */
    public void stopEvent()
    {
        L2Player player = (L2Player) getSelf();
        if(!player.getPlayerAccess().IsEventGm)
            return;
        if(SetActive("SavingSnowman", false))
        {
            unSpawnEventManagers();
            if(_snowman != null)
                _snowman.deleteMe();
            if(_thomas != null)
                _thomas.deleteMe();
            _log.info("Event 'SavingSnowman' stopped.");
            Announcements.getInstance().announceByCustomMessage("scripts.events.SavingSnowman.AnnounceEventStoped", null);
            if(_saveTask != null)
            {
                _saveTask.cancel(true);
                _saveTask = null;
            }
            if(_sayTask != null)
            {
                _sayTask.cancel(true);
                _sayTask = null;
            }
            if(_eatTask != null)
            {
                _eatTask.cancel(true);
                _eatTask = null;
            }
            _snowmanState = SnowmanState.SAVED;
        }
        else
            player.sendMessage("Event 'SavingSnowman' not started.");

        _active = false;

        show(Files.read("data/html/admin/events.htm", player), player);
    }

    /**
     * Спавнит эвент менеджеров и рядом ёлки
     */
    private void spawnEventManagers()
    {
        final int EVENT_MANAGERS[][] = { { 81921, 148921, -3467, 16384 }, { 146405, 28360, -2269, 49648 },
                { 19319, 144919, -3103, 31135 }, { -82805, 149890, -3129, 16384 }, { -12347, 122549, -3104, 16384 },
                { 110642, 220165, -3655, 61898 }, { 116619, 75463, -2721, 20881 }, { 85513, 16014, -3668, 23681 },
                { 81999, 53793, -1496, 61621 }, { 148159, -55484, -2734, 44315 }, { 44185, -48502, -797, 27479 },
                { 86899, -143229, -1293, 8192 } };

        final int CTREES[][] = { { 81961, 148921, -3467, 0 }, { 146445, 28360, -2269, 0 }, { 19319, 144959, -3103, 0 },
                { -82845, 149890, -3129, 0 }, { -12387, 122549, -3104, 0 }, { 110602, 220165, -3655, 0 },
                { 116659, 75463, -2721, 0 }, { 85553, 16014, -3668, 0 }, { 81999, 53743, -1496, 0 },
                { 148199, -55484, -2734, 0 }, { 44185, -48542, -797, 0 }, { 86859, -143229, -1293, 0 } };

        SpawnNPCs(EVENT_MANAGER_ID, EVENT_MANAGERS, _spawns);
        SpawnNPCs(CTREE_ID, CTREES, _spawns);
    }

    /**
     * Удаляет спавн эвент менеджеров
     */
    private void unSpawnEventManagers()
    {
        deSpawnNPCs(_spawns);
    }

    public void onReload()
    {
        unSpawnEventManagers();
        if(_saveTask != null)
            _saveTask.cancel(true);
        if(_sayTask != null)
            _sayTask.cancel(true);
        _snowmanState = SnowmanState.SAVED;
    }

    public void onShutdown()
    {
        unSpawnEventManagers();
    }

    /**
     * Обработчик смерти мобов
     */
    public static void OnDie(L2Character cha, L2Character killer)
    {
        if(_active && killer != null)
        {
            L2Player pKiller = killer.getPlayer();
            if(pKiller != null && SimpleCheckDrop(cha, killer) && (pKiller.isGM() || Rnd.get(1000) < Config.EVENT_SAVING_SNOWMAN_REWARDER_CHANCE))
            {
                GArray<L2Player> players = new GArray<L2Player>();
                if(pKiller.isInParty())
                    players = pKiller.getParty().getPartyMembers();
                else
                    players.add(pKiller);

                spawnRewarder(players.get(Rnd.get(players.size())));
            }
        }
    }

    public static void spawnRewarder(L2Player rewarded)
    {
        // Два санты рядом не должно быть
        for(L2NpcInstance npc : rewarded.getAroundNpc(1500, 300))
            if(npc.getNpcId() == EVENT_REWARDER_ID)
                return;

        // Санта появляется в зоне прямой видимости
        Location spawnLoc = Location.getAroundPosition(rewarded, rewarded, 300, 400, 10);
        for(int i = 0; i < 20 && !GeoEngine.canSeeCoord(rewarded, spawnLoc.x, spawnLoc.y, spawnLoc.z, false); i++)
            spawnLoc = Location.getAroundPosition(rewarded, rewarded, 300, 400, 10);

        // Спауним
        L2NpcTemplate template = NpcTable.getTemplate(EVENT_REWARDER_ID);
        if(template == null)
        {
            _log.info("WARNING! events.SavingSnowman.spawnRewarder template is null for npc: " + EVENT_REWARDER_ID);
            Thread.dumpStack();
            return;
        }

        L2NpcInstance rewarder = new L2NpcInstance(IdFactory.getInstance().getNextId(), template);
        rewarder.setXYZInvisible(spawnLoc);
        rewarder.setHeading((int) (Math.atan2(spawnLoc.y - rewarded.getY(), spawnLoc.x - rewarded.getX()) * L2Character.HEADINGS_IN_PI) + 32768); // Лицом к игроку
        rewarder.spawnMe();

        Functions.npcSayCustomMessage(rewarder, "scripts.events.SavingSnowman.RewarderPhrase1");

        Location targetLoc = Location.getAroundPosition(rewarded, rewarded, 40, 50, 10);
        rewarder.setSpawnedLoc(targetLoc);
        rewarder.broadcastPacket(new CharMoveToLocation(rewarder.getObjectId(), rewarder.getLoc(), targetLoc));

        executeTask("events.SavingSnowman.SavingSnowman", "reward", new Object[] { rewarder, rewarded }, 5000);
    }

    public static void reward(L2NpcInstance rewarder, L2Player rewarded)
    {
        if(!_active || rewarder == null || rewarded == null)
            return;
        Functions.npcSayCustomMessage(rewarder, "scripts.events.SavingSnowman.RewarderPhrase2", rewarded.getName());
        Functions.addItem(rewarded, 14616, 1); // Gift from Santa Claus
        executeTask("events.SavingSnowman.SavingSnowman", "removeRewarder", new Object[] { rewarder }, 5000);
    }

    public static void removeRewarder(L2NpcInstance rewarder)
    {
        if(!_active || rewarder == null)
            return;

        Functions.npcSayCustomMessage(rewarder, "scripts.events.SavingSnowman.RewarderPhrase3");

        Location loc = rewarder.getSpawnedLoc();

        double radian = Util.convertHeadingToRadian(rewarder.getHeading());
        int x = loc.x - (int) (Math.sin(radian) * 300);
        int y = loc.y + (int) (Math.cos(radian) * 300);
        int z = loc.z;

        rewarder.broadcastPacket(new CharMoveToLocation(rewarder.getObjectId(), loc, new Location(x, y, z)));

        executeTask("events.SavingSnowman.SavingSnowman", "unspawnRewarder", new Object[] { rewarder }, 2000);
    }

    public static void unspawnRewarder(L2NpcInstance rewarder)
    {
        if(!_active || rewarder == null)
            return;
        rewarder.decayMe();
        rewarder.deleteMe();
    }

    public void buff()
    {
        L2Player player = (L2Player) getSelf();
        if(!_active || player.isActionsDisabled() || player.isSitting() || player.getLastNpc() == null || player.getLastNpc().getDistance(player) > 300)
            return;

        if(!player.isQuestContinuationPossible(true))
            return;

        if(_snowmanState != SnowmanState.SAVED)
        {
            show(Files.read("data/html/default/13184-3.htm", player), player);
            return;
        }

        player.broadcastPacket(new MagicSkillUse(player, player, 23017, 1, 0, 0));
        player.altOnMagicUseTimer(player, SkillTable.getInstance().getInfo(23017, 1));

        L2Summon pet = player.getPet();
        if(pet != null)
        {
            pet.broadcastPacket(new MagicSkillUse(pet, pet, 23017, 1, 0, 0));
            pet.altOnMagicUseTimer(pet, SkillTable.getInstance().getInfo(23017, 1));
        }
    }

    public void locateSnowman()
    {
        L2Player player = (L2Player) getSelf();
        if(!_active || player.isActionsDisabled() || player.isSitting() || player.getLastNpc() == null || player.getLastNpc().getDistance(player) > 300)
            return;

        if(_snowman != null)
        {
            // Убираем и ставим флажок на карте и стрелку на компасе
            player.sendPacket(new RadarControl(2, 2, _snowman.getLoc()), new RadarControl(0, 1, _snowman.getLoc()));
            player.sendPacket(new SystemMessage(SystemMessage.S2_S1).addZoneName(_snowman.getLoc()).addString("Ищите Снеговика в "));
        }
        else
            player.sendPacket(Msg.YOUR_TARGET_CANNOT_BE_FOUND);
    }

    public void coupon(String[] var)
    {
        L2Player player = (L2Player) getSelf();
        if(!_active || player.isActionsDisabled() || player.isSitting() || player.getLastNpc() == null || player.getLastNpc().getDistance(player) > 300)
            return;

        if(!player.isQuestContinuationPossible(true))
            return;

        if(getItemCount(player, 20107) < 1)
        {
            player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_REQUIRED_ITEMS);
            return;
        }

        int num = Integer.parseInt(var[0]);
        if(num < 0 || num > 13)
            return;

        int expertise = Math.min(player.expertiseIndex, 5);
        expertise = Math.max(expertise, 1);
        expertise--;

        removeItem(player, 20107, 1);

        int item_id = WEAPONS[expertise][num];
        int enchant = Rnd.get(4, 16);
        L2ItemInstance item = ItemTemplates.getInstance().createItem(item_id);
        item.setEnchantLevel(enchant);
        player.getInventory().addItem(item);
        player.sendPacket(SystemMessage.obtainItems(item_id, 1, enchant));
    }

    public void lotery()
    {
        L2Player player = (L2Player) getSelf();
        if(!_active || player.isActionsDisabled() || player.isSitting() || player.getLastNpc() == null || player.getLastNpc().getDistance(player) > 300)
            return;

        if(!player.isQuestContinuationPossible(true))
            return;

        if(getItemCount(player, 57) < Config.EVENT_SAVING_SNOWMAN_LOTERY_PRICE)
        {
            player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
            return;
        }

        removeItem(player, 57, Config.EVENT_SAVING_SNOWMAN_LOTERY_PRICE);

        double chance = Rnd.get(L2Drop.MAX_CHANCE);

        // Special Christmas Tree            30%
        if(chance < 300000)
            addItem(player, 5561, 1);
        // Christmas Red Sock                18%
        else if(chance < 480000)
            addItem(player, 14612, 1);
        // Santa Claus' Weapon Exchange Ticket - 12 Hour Expiration Period      15%
        else if(chance < 630000)
            addItem(player, 20107, 1);
        // Gift from Santa Claus             5%
        else if(chance < 680000)
            addItem(player, 14616, 1);
        // Rudolph's Nose                    5%
        else if(chance < 730000 && getItemCount(player, 14611) == 0)
            addItem(player, 14611, 1);
        // Santa's Hat                       5%
        else if(chance < 780000 && getItemCount(player, 7836) == 0)
            addItem(player, 7836, 1);
        // Santa's Antlers                   5%
        else if(chance < 830000 && getItemCount(player, 8936) == 0)
            addItem(player, 8936, 1);
        // Agathion Seal Bracelet - Rudolph (постоянный предмет)                5%
        else if(chance < 880000 && getItemCount(player, 10606) == 0)
            addItem(player, 10606, 1);
        // Agathion Seal Bracelet: Rudolph - 30 дней со скилом на виталити      5%
        else if(chance < 930000 && getItemCount(player, 20094) == 0)
            addItem(player, 20094, 1);
        // Chest of Experience (Event)       3%
        else if(chance < 960000)
            addItem(player, 20575, 1);
        // Призрачные аксессуары             2.5%
        else if(chance < 985000)
            addItem(player, Rnd.get(9177, 9204), 1);
        // BOSE или BRES                     1.2%
        else if(chance < 997000)
            addItem(player, Rnd.get(9156, 9157), 1);
        // 14 lvl cry                        0.2%
        else if(chance < 999000)
        {
            player.altUseSkill(SkillTable.getInstance().getInfo(21006, 1), player);
            addItem(player, Rnd.get(9570, 9572), 1);
        }
        // 15 lvl cry                        0.1%
        else if(chance <= 1000000)
        {
            player.altUseSkill(SkillTable.getInstance().getInfo(21006, 1), player);
            addItem(player, Rnd.get(10480, 10482), 1);
        }
    }

    public String DialogAppend_13184(Integer val)
    {
        if(val != 0)
            return "";

        return " (" + Util.formatAdena(Config.EVENT_SAVING_SNOWMAN_LOTERY_PRICE) + " adena)";
    }

    public static void OnPlayerEnter(L2Player player)
    {
        if(_active)
            Announcements.getInstance().announceToPlayerByCustomMessage(player, "scripts.events.SavingSnowman.AnnounceEventStarted", null);
    }

    private static Location getRandomSpawnPoint()
    {
        GArray<Integer> locIds = new GArray<Integer>();
        for(int locId : TerritoryTable.getInstance().getLocations().keySet())
            locIds.add(locId);
        L2Territory terr = TerritoryTable.getInstance().getLocation(locIds.get(Rnd.get(locIds.size())));
        return new Location(terr.getRandomPoint());
    }

    // Индюк захватывает снеговика
    public void captureSnowman()
    {
        Location spawnPoint = getRandomSpawnPoint();

        for(L2Player player : L2ObjectsStorage.getAllPlayersForIterate())
        {
            Announcements.getInstance().announceToPlayerByCustomMessage(player, "scripts.events.SavingSnowman.AnnounceSnowmanCaptured", null, Say2C.CRITICAL_ANNOUNCEMENT);
            player.sendPacket(new SystemMessage(SystemMessage.S2_S1).addZoneName(spawnPoint).addString("Ищите Снеговика в "));
            // Убираем и ставим флажок на карте и стрелку на компасе
            player.sendPacket(new RadarControl(2, 2, spawnPoint), new RadarControl(0, 1, spawnPoint));
        }

        // Спауним снеговика
        L2NpcTemplate template = NpcTable.getTemplate(SNOWMAN_ID);
        if(template == null)
        {
            _log.info("WARNING! events.SavingSnowman.captureSnowman template is null for npc: " + SNOWMAN_ID);
            Thread.dumpStack();
            return;
        }

        try
        {
            L2Spawn sp = new L2Spawn(template);
            sp.setLoc(spawnPoint);
            sp.setAmount(1);
            sp.setRespawnDelay(0);
            _snowman = sp.doSpawn(true);
        }
        catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }

        if(_snowman == null)
            return;

        // Спауним Томаса
        template = NpcTable.getTemplate(THOMAS_ID);
        if(template == null)
        {
            _log.info("WARNING! events.SavingSnowman.captureSnowman template is null for npc: " + THOMAS_ID);
            Thread.dumpStack();
            return;
        }

        Location pos = GeoEngine.findPointToStay(_snowman.getX(), _snowman.getY(), _snowman.getZ(), 100, 120, _snowman.getReflection().getGeoIndex());

        try
        {
            L2Spawn sp = new L2Spawn(template);
            sp.setLoc(pos);
            sp.setAmount(1);
            sp.setRespawnDelay(0);
            _thomas = sp.doSpawn(true);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

        if(_thomas == null)
            return;

        _snowmanState = SnowmanState.CAPTURED;

        // Если по каким-то причинам таск существует, останавливаем его
        if(_snowmanShoutTask != null)
        {
            _snowmanShoutTask.cancel(true);
            _snowmanShoutTask = null;
        }
        _snowmanShoutTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new ShoutTask(), 1, SNOWMAN_SHOUT_INTERVAL);

        if(_eatTask != null)
        {
            _eatTask.cancel(true);
            _eatTask = null;
        }
        _eatTask = executeTask("events.SavingSnowman.SavingSnowman", "eatSnowman", new Object[0], THOMAS_EAT_DELAY);
    }

    // Индюк захавывает снеговика
    public static void eatSnowman()
    {
        if(_snowman == null || _thomas == null)
            return;

        for(L2Player player : L2ObjectsStorage.getAllPlayersForIterate())
            Announcements.getInstance().announceToPlayerByCustomMessage(player, "scripts.events.SavingSnowman.AnnounceSnowmanKilled", null, Say2C.CRITICAL_ANNOUNCEMENT);

        _snowmanState = SnowmanState.KILLED;

        if(_snowmanShoutTask != null)
        {
            _snowmanShoutTask.cancel(true);
            _snowmanShoutTask = null;
        }

        _snowman.deleteMe();
        _thomas.deleteMe();
    }

    // Индюк умер, освобождаем снеговика
    public static void freeSnowman(L2Character topDamager)
    {
        if(_snowman == null || topDamager == null || !topDamager.isPlayable())
            return;

        for(L2Player player : L2ObjectsStorage.getAllPlayersForIterate())
            Announcements.getInstance().announceToPlayerByCustomMessage(player, "scripts.events.SavingSnowman.AnnounceSnowmanSaved", null, Say2C.CRITICAL_ANNOUNCEMENT);

        _snowmanState = SnowmanState.SAVED;

        if(_snowmanShoutTask != null)
        {
            _snowmanShoutTask.cancel(true);
            _snowmanShoutTask = null;
        }
        if(_eatTask != null)
        {
            _eatTask.cancel(true);
            _eatTask = null;
        }

        L2Player player = topDamager.getPlayer();
        Functions.npcSayCustomMessage(_snowman, "scripts.events.SavingSnowman.SnowmanSayTnx", player.getName());
        addItem(player, 20034, 3); // Revita-Pop
        addItem(player, 20338, 1); // Rune of Experience Points 50%    10 Hour Expiration Period
        addItem(player, 20344, 1); // Rune of SP 50% 10 Hour Expiration Period

        DecayTaskManager.getInstance().addDecayTask(_snowman);
    }

    public class SayTask implements Runnable
    {
        public void run()
        {
            if(!_active)
                return;

            for(L2Spawn s : _spawns)
                if(s.getNpcId() == EVENT_MANAGER_ID)
                    Functions.npcSayCustomMessage(s.getLastSpawn(), "scripts.events.SavingSnowman.SantaSay");
        }
    }

    public class ShoutTask implements Runnable
    {
        public void run()
        {
            if(!_active || _snowman == null || _snowmanState != SnowmanState.CAPTURED)
                return;

            Functions.npcShoutCustomMessage(_snowman, "scripts.events.SavingSnowman.SnowmanShout");
        }
    }

    public class SaveTask implements Runnable
    {
        public void run()
        {
            if(!_active || _snowmanState == SnowmanState.CAPTURED)
                return;

            captureSnowman();
        }
    }
}

и ThomasInstance:
Код:
package npc.model;

import l2open.gameserver.model.L2Character;
import l2open.gameserver.model.L2Skill;
import l2open.gameserver.model.instances.L2MonsterInstance;
import l2open.gameserver.templates.L2NpcTemplate;
import events.SavingSnowman.SavingSnowman;

/**
* Данный инстанс используется мобом Thomas D. Turkey в эвенте Saving Snowman
* @author SYS
*/
public class ThomasInstance extends L2MonsterInstance
{
    public ThomasInstance(int objectId, L2NpcTemplate template)
    {
        super(objectId, template);
    }

    @Override
    public void reduceCurrentHp(double i, L2Character attacker, L2Skill skill, boolean awake, boolean standUp, boolean directHp, boolean canReflect)
    {
        i = 10;
        if(attacker.getActiveWeaponInstance() != null)
            switch(attacker.getActiveWeaponInstance().getItemId())
            {
                // Хроно оружие наносит больший урон
                case 4202: // Chrono Cithara
                case 5133: // Chrono Unitus
                case 5817: // Chrono Campana
                case 7058: // Chrono Darbuka
                case 8350: // Chrono Maracas
                    i = 100;
                    break;
                default:
                    i = 10;
            }

        super.reduceCurrentHp(i, attacker, skill, awake, standUp, directHp, canReflect);
    }

    @Override
    public void doDie(L2Character killer)
    {
        L2Character topdam = getTopDamager(getAggroList());
        if(topdam == null)
            topdam = killer;
        SavingSnowman.freeSnowman(topdam);
        super.doDie(killer);
    }

    @Override
    public boolean canChampion()
    {
        return false;
    }
}

Просматриваю файлы через Еклипс все импорты видит но при компиле эти ерроры.
#2
День добрый форумчане...
Вопрос такого характера: Запускаю сервер, стартует и грузиться хорошо, но в середине загрузки выскакивает вот такое чудо.


Смотреть здесь

Люди добрые кто знает как исправить сие зло помогите пожалуйста.
P.S Наличие исходников имеется.
#3
нет нпц 91107
Пусть в горле ложка застрянет у того кто писал систему вступления в клан. © Mifesto
#4
Вывод: нужно покупать сборку у разработчиков. Тема закрыта.


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Ошибка запуска гейм сервера Kensiro 1 1,715 01-23-2018, 04:41 PM
Последний пост: PROGRAMMATOR
  Решение ошибка в алт+б за оплату Valent 1 1,703 04-29-2017, 10:57 PM
Последний пост: zGoSu
  Ошибка Nez 0 1,294 08-06-2016, 04:43 AM
Последний пост: Nez
  Ошибки при компиляции Snork28 4 2,361 06-02-2016, 02:58 PM
Последний пост: Snork28
  Ошибка в логах игрового сервера KateKate7912 6 1,736 10-13-2015, 07:52 AM
Последний пост: KateKate7912
  Ошибки при компиляции, как можно исправить ? knaif 6 1,996 03-31-2015, 07:08 PM
Последний пост: helly
  Ошибка при изменении файла в l2fileedit loodgieter 1 4,448 01-06-2015, 05:46 PM
Последний пост: SmileForMe
  Ошибка (Баффер) Snowball1 0 1,041 01-03-2015, 07:01 AM
Последний пост: Snowball1
  Ошибка при компилировании GOODPower 18 5,343 04-07-2014, 01:27 PM
Последний пост: WoWan-SM
  питонская ошибка Walker 2 1,414 03-12-2014, 11:11 AM
Последний пост: Walker

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


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