Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
востановление после релогина из инстанса.
#1
Ответ
#2
Посмотри на примере феникса, там есть такое.
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ
#3
Ответ
#4
Я обычно использую для этого getPlayerWorld, зачем изобретать костыли.

Код:
if (inst == 1)//Первый инстанс Гильдии Зинии
        {
            InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
            if (world != null && world.templateId == 140)
            {
                player.teleToLocation(-23749, -8959, -5384);
                player.setInstanceId(world.instanceId);
                return;
            }
            world = new JiniaWorld();
            world.instanceId = InstanceManager.getInstance().createDynamicInstance(null);
            world.templateId = 140;
            final Instance instance = InstanceManager.getInstance().getInstance(world.instanceId);
            final int time = 3600000;
            instance.setDuration(time);
            instance.setEmptyDestroyTime(10);
            final int[] returnLoc = {113832, -109263, -847};
            instance.setSpawnLoc(returnLoc);
            InstanceManager.getInstance().addWorld(world);
            instance.setName("Jinia Guild Hideout");
            addSpawn(jinia, -24040, -8969, -5360, 0, false, 0, false, world.instanceId);
            addSpawn(Legionnaire, -23993, -9069, -5384, 0, false, 0, false, world.instanceId);
            addSpawn(BattalionLeader, -23993, -8845, -5384, 0, false, 0, false, world.instanceId);
            player.teleToLocation(-23749, -8959, -5384);
            player.setInstanceId(world.instanceId);
        }
Ответ
#5
в LogOut.java добавил:
Код:
protected void runImpl()
    {
        InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
        if(world != null){
            _log.info("Player relogging in instancezone and teleporting in town.");
            final Instance instance = _instancesMap.get(world.instanceId);
            [color=Red]instance.teleportFromInstanceAfterReLogin(player);[/color]
            return;
        }
в Instance.java:
Код:
    public void teleportFromInstanceAfterReLogin(L2PcInstance player)
    {
        player.teleToLocation(111409, 219364, -3545);
    }
в итоге при попытки выйти из игры НЕЗАВИСИМО от того создан ли для персонажа инстанс или нет. ничего не происходит, а в логах серва вижу следующее..
[Изображение: btb.jpg]

PS. ссылку на Instance зделал для того, что там хранятся переменные из ***.xml и потом бы я их вставил в координаты телепорта, но т.к полезли ошибки я решил просто поставить цифры player.teleToLocation(111409, 219364, -3545); здесь и проверить вообще ссылается ли туда либо ошибку выдает, оказывается второе. Вопрос - как исправить?
PSS Там где выдает ошибку - выделил красным.:_smile_:
Ответ
#6
Код:
final Instance instance = _instancesMap.get(world.instanceId);
[B]if(instance!=null)[/B]
    instance.teleportFromInstanceAfterReLogin(player);
Ответ
#7
изобретатели велосипедаBig Grin

в лыже все давно реализовано в EnterWorld
Код:
int instanceId = InstanceManager.getInstance().getPlayerInstance(activeChar.getObjectId());
if (instanceId > 0)
    InstanceManager.getInstance().getInstance(instanceId).removePlayer(activeChar.getObjectId());
скачай последние исходники и возьми код...

в твоем случае подход не очень неверный, так как тебе прийдется тыкать проверку в Logout, RequestRestart и L2GameClient(крит клиента, дисконект)
Ответ
#8
конечно это не то что я имел ввиду, но тоже неплохо. Да и к стати эта функция на серве уже была - просто как то упустил.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  После замены порта висит клиент TFH 3 1,376 03-27-2022, 06:45 AM
Последний пост: Nab
  Не пропадает опыт после смерти игрока Magican 1 1,196 04-07-2020, 06:41 PM
Последний пост: Magican
  Нет агра мобов после респа Kagaku 0 895 03-30-2020, 06:54 PM
Последний пост: Kagaku
  Удаляется скилл после рестарта перса ntking 2 1,638 09-10-2018, 04:47 PM
Последний пост: ntking
  Черный экран, звук есть, после выбора персонажа. Taurus2790 19 5,332 07-12-2016, 11:45 PM
Последний пост: L2scripts-Guard
  Не запускается сервер после переноса значений стат с более старой сборки project1994 4 1,564 07-10-2016, 01:05 PM
Последний пост: Emperor
  Клановое вх пустое после рестарта.. TFH 4 1,467 10-09-2015, 10:38 PM
Последний пост: Daan Raven
  перенос аукциона\осад после рестарта HiredKiller 4 1,543 09-05-2015, 08:42 AM
Последний пост: HiredKiller
  Не могу убрать хиро свечение после удаление статуса Dementor 14 4,218 05-20-2015, 06:40 PM
Последний пост: Dementor
  Потеря после смерти [Shoot] 20 3,959 05-10-2015, 02:02 AM
Последний пост: Donatte

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


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