Рейтинг темы:
  • 2 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 6)
В чем может быть проблема начал делать линдвиор с хф но не работает телепорт хоть убейся пакет shuttle vanicle добавил teleporttolocation исправил exteleportactive добавил
1) ExTeleportToLocationActivate - триггер пустышка, опкод 0xFE, 0x154
2) TeleportToLocation - опкод 0x22
Структура:

writeD(_targetId);
writeD(_loc.x + Config.CLIENT_X_SHIFT);
writeD(_loc.y + Config.CLIENT_Y_SHIFT);
writeD(_loc.z + Config.CLIENT_Z_SHIFT);
writeD(_isValidation() ? 0x00 ? 0x01);
writeD(_loc.h);
writeD(0);
TonsFun Написал:1) ExTeleportToLocationActivate - триггер пустышка, опкод 0xFE, 0x154
2) TeleportToLocation - опкод 0x22
Структура:

writeD(_targetId);
writeD(_loc.x + Config.CLIENT_X_SHIFT);
writeD(_loc.y + Config.CLIENT_Y_SHIFT);
writeD(_loc.z + Config.CLIENT_Z_SHIFT);
writeD(_isValidation() ? 0x00 ? 0x01);
writeD(_loc.h);
writeD(0);
спасибо , так и делал персонаж застревает в абнормал состоянии не понятном выйти из игры нельзя
Amaranthe Написал:спасибо , так и делал персонаж застревает в абнормал состоянии не понятном выйти из игры нельзя

включаем дебаг в среде ИДЕ и ставим логгеры. а возможно просто UI пакет не правильно составлен, и не выдает вам инфу о телепортации персонажа Smile
логеры ставить ыы UI разобран давно и проверен , эффект тот же застревает чар
А поменяй порядок отправки пакетов. То есть, допустим, сначала ExTTLA, потом TTL. Или наоборот
Amaranthe Написал:спасибо , так и делал персонаж застревает в абнормал состоянии не понятном выйти из игры нельзя

попробуй вот такSmile

я встречался с такой проблемой только когда апал таути до глори, если не ошибаюсь там когда тп делаешь экран темнеет и все ступор.

З.Ы если не понял, или что-то не то вякнул поправьте.

Код:
public class TeleportToLocation extends L2GameServerPacket
{
    private int _targetId;
    private Location _loc;

    public TeleportToLocation(GameObject cha, Location loc)
    {
        _targetId = cha.getObjectId();
        _loc = loc;
    }

    public TeleportToLocation(GameObject cha, int x, int y, int z)
    {
        _targetId = cha.getObjectId();
        _loc = new Location(x, y, z, cha.getHeading());
    }

    @Override
    protected final void writeImpl()
    {
        writeC(0x22);
        writeD(_targetId);
        writeD(_loc.x);
        writeD(_loc.y);
        writeD(_loc.z + Config.CLIENT_Z_SHIFT);
        writeD(0x00);
        writeD(_loc.h);
        writeD(0x00);
    }
}

public class ExTeleportToLocationActivate extends L2GameServerPacket
{
    @Override
    protected final void writeImpl()
    {
        writeEx(0x154);
    }
}
DXVSI Написал:попробуй вот такSmile

я встречался с такой проблемой только когда апал таути до глори, если не ошибаюсь там когда тп делаешь экран темнеет и все ступор.

З.Ы если не понял, или что-то не то вякнул поправьте.

Код:
public class TeleportToLocation extends L2GameServerPacket
{
    private int _targetId;
    private Location _loc;

    public TeleportToLocation(GameObject cha, Location loc)
    {
        _targetId = cha.getObjectId();
        _loc = loc;
    }

    public TeleportToLocation(GameObject cha, int x, int y, int z)
    {
        _targetId = cha.getObjectId();
        _loc = new Location(x, y, z, cha.getHeading());
    }

    @Override
    protected final void writeImpl()
    {
        writeC(0x22);
        writeD(_targetId);
        writeD(_loc.x);
        writeD(_loc.y);
        writeD(_loc.z + Config.CLIENT_Z_SHIFT);
        writeD(0x00);
        writeD(_loc.h);
        writeD(0x00);
    }
}

public class ExTeleportToLocationActivate extends L2GameServerPacket
{
    @Override
    protected final void writeImpl()
    {
        writeEx(0x154);
    }
}
Структуры от других не чем не отличаются , а помнится что я выще писал что так оно и стоит . Кстати , да проблема в этом ступор(
Amaranthe Написал:Структуры от других не чем не отличаются , а помнится что я выще писал что так оно и стоит . Кстати , да проблема в этом ступор(

а в классе Creature методе teleToLocation всё добавил?

если нет то вот сделай так

Код:
public void teleToLocation(int x, int y, int z, Reflection r)
    {
        if(!isTeleporting.compareAndSet(false, true)){ return; }
        if(isFakeDeath())
        {
            breakFakeDeath();
        }
        abortCast(true, false);
        if(!isLockedTarget())
        {
            setTarget(null);
        }
        stopMove();
        if(!isBoat() && !isFlying() && !World.isWater(new Location(x, y, z), r))
        {
            z = GeoEngine.getHeight(x, y, z, r.getGeoIndex());
        }
        if(isPlayer())
        {
            Player player = (Player) this;
            player.getListeners().onTeleport(x, y, z, r);
            decayMe();
            setXYZ(x, y, z);
            setReflection(r);
            player.setLastClientPosition(null);
            player.setLastServerPosition(null);
            player.sendPacket(new TeleportToLocation(player, x, y, z));
            player.sendPacket(new ExTeleportToLocationActivate());
        }
        else
        {
            setXYZ(x, y, z);
            setReflection(r);
            broadcastPacket(new TeleportToLocation(this, x, y, z));
            broadcastPacket(new ExTeleportToLocationActivate());
            onTeleported();
        }
    }
DXVSI Написал:а в классе Creature методе teleToLocation всё добавил?

если нет то вот сделай так

Код:
public void teleToLocation(int x, int y, int z, Reflection r)
    {
        if(!isTeleporting.compareAndSet(false, true)){ return; }
        if(isFakeDeath())
        {
            breakFakeDeath();
        }
        abortCast(true, false);
        if(!isLockedTarget())
        {
            setTarget(null);
        }
        stopMove();
        if(!isBoat() && !isFlying() && !World.isWater(new Location(x, y, z), r))
        {
            z = GeoEngine.getHeight(x, y, z, r.getGeoIndex());
        }
        if(isPlayer())
        {
            Player player = (Player) this;
            player.getListeners().onTeleport(x, y, z, r);
            decayMe();
            setXYZ(x, y, z);
            setReflection(r);
            player.setLastClientPosition(null);
            player.setLastServerPosition(null);
            player.sendPacket(new TeleportToLocation(player, x, y, z));
            player.sendPacket(new ExTeleportToLocationActivate());
        }
        else
        {
            setXYZ(x, y, z);
            setReflection(r);
            broadcastPacket(new TeleportToLocation(this, x, y, z));
            broadcastPacket(new ExTeleportToLocationActivate());
            onTeleported();
        }
    }
Спасибо за упорство , проблема заключалась в локации неправильной...


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Работа над Goddess of Destruction (part 7) n3k0nation 459 174,298 03-21-2022, 04:21 PM
Последний пост: TieLay
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,380 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,302 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 59,013 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,622 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 1,964 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,385 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,349 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа с мультиселлом Evencelance 11 2,446 09-19-2014, 12:43 PM
Последний пост: Evencelance
  Работа над Goddess of Destruction (part 5) Ozzy 980 339,181 10-09-2013, 09:13 AM
Последний пост: Ashe

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


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