Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Телепорт админа в рефлекшин(инст)
#1
Вообщем помню что еще 20736(феникс эпилог) при помощи команды телепорта к чару гм переносился в том числе и в инст. с этим чаром. Сейчас местами работаю над исходниками ребят из л2опен у них такого реализовано не было (т.е. гм-а телепортирует в координаты к чару, но не присваивает ему рефлекшин). Вот вопрос где править чтобы все таки гм-а телепортировало и в нужный рефлекшин?
Ответ
#2
В командах AdminTeleport, где получение координат таргета получаем его рефлекшен и ставим его при телепорте гма.
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ
#3
перекинул полностью хандлер adminteleport c исходников 20736 на исходники опенов (хотя по коду там бегло просмотрев не заметил отличий) компильнул - результат тот же - рефлекшин не присваивает.
Ответ
#4
А как на счёт скинуть кусок кода, где идёт отправка гм к персу?
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ
#5
Код:
    private void teleportToCharacter(L2Player activeChar, L2Object target)
    {
        if(target == null)
        {
            return;
        }
        activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
        activeChar.teleToLocation(target.getLoc().changeZ(25), target.getReflection().getId());
        activeChar.sendMessage("You have teleported to " + target);
    }

Он наверно за это Smile

Весь трейс идёт до:

Код:
    public void teleToLocation(int x, int y, int z, long ref)
    {
        if(isFakeDeath())
        {
            breakFakeDeath();
        }
        if(isTeleporting() || inObserverMode())
        {
            return;
        }
        abortCast(true);
        if(isPlayable())
        {
            clearHateList(true);
        }
        if(!isVehicle() && !isFlying() && !L2World.isWater(new Location(x, y, z)))
        {
            z = GeoEngine.getHeight(x, y, z, getReflection().getGeoIndex());
        }
        if(isPlayer() && DimensionalRiftManager.getInstance().checkIfInRiftZone(getLoc(), true))
        {
            L2Player player = (L2Player) this;
            if(player.isInParty() && player.getParty().isInDimensionalRift())
            {
                Location newCoords = DimensionalRiftManager.getInstance().getRoom(0, 0).getTeleportCoords();
                x = newCoords.x;
                y = newCoords.y;
                z = newCoords.z;
                player.getParty().getDimensionalRift().usedTeleport(player);
            }
        }
        setTarget(null);
        if(isPlayer())
        {
            L2Player player = (L2Player) this;
            if(player.isLogoutStarted())
            {
                return;
            }
            setIsTeleporting(true);
            decayMe();
            setXYZInvisible(x, y, z);
            if(ref != getReflection().getId())
            {
                setReflection(ref);
            }
            // Нужно РїСЂРё телепорте СЃ более высокой точки РЅР° более РЅРёР·РєСѓСЋ, иначе наносится вред РѕС‚ "падения"
            setLastClientPosition(null);
            setLastServerPosition(null);
            player.sendPacket(new TeleportToLocation(player, x, y, z));
        }
        else
        {
            setXYZ(x, y, z);
            broadcastPacket(new TeleportToLocation(this, x, y, z));
        }
    }
Ответ
#6
private void teleportToCharacter(L2Player activeChar, L2Object target)
{
if(target == null)
return;

activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
activeChar.teleToLocation(target.getLoc().changeZ(25), target.getReflection().getId());

activeChar.sendMessage("You have teleported to " + target);
}
Ответ
#7
Продебаж данный код:
Код:
            if(ref != getReflection().getId())
            {
                setReflection(ref);
            }
Выясни, присваивается ли вообще рефлект. Посмотри что навояли по ним опены, если что - перепиши Wink
Ответ
#8
вообщем весь указаный Килроем код присутствует(L2Character) но рефлекшин так и не определяет. Кстати есть еще команда //getref - так вот она определяет чара находящегося в инсте (скорее всего рефлекшин 1) как находящегося в релекшин 0.
Ответ
#9
Munhgauzen;159369 Написал:вообщем весь указаный Килроем код присутствует(L2Character) но рефлекшин так и не определяет. Кстати есть еще команда //getref - так вот она определяет чара находящегося в инсте (скорее всего рефлекшин 1) как находящегося в релекшин 0.
Ну следовательно копай в саму систему рефлектов (что они там намутили, видно лишь им самим...).
P.S рефл. ID инста == ИД указанному инсту Wink (instance.xml)
0 - мир, 1 - иной, 2 и т.д использовались у фениксов для с2-х лок (если память не изменяет)
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Рандомный телепорт gaaf 9 3,183 02-04-2014, 06:37 AM
Последний пост: WoWan-SM
  Нельзя выдать админа/гма LastStand 10 2,407 12-06-2013, 03:18 PM
Последний пост: LastStand
  где хранится телепорт лист bybs 3 1,460 11-19-2012, 01:20 PM
Последний пост: [STIGMATED]
  Телепорт в Comunuty Board NightWar 4 1,483 08-27-2012, 02:59 PM
Последний пост: Ashe
  Телепорт при атаке. phozik1 5 2,751 12-20-2011, 01:21 PM
Последний пост: phozik1
  Скрипт Оффлайн телепорт для сайта МВ!) Evil-Soft 5 3,834 07-01-2009, 10:55 PM
Последний пост: kolya_ch
  Нормальный Телепорт qweqweqwe 1 2,364 06-04-2009, 02:15 PM
Последний пост: kostetr

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


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