Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 7)
Amadeo Написал:Hi, anybody have working the (PM, whisp, TELL)

[Изображение: image.png]

i try to do it working but nothing. Im using this in the Say2 Packet

Код:
    protected final void writeImpl()
    {
        writeC(0x4A);
        writeD(_objectId);
        writeD(_type.ordinal());
        switch (_type)
        {
            case SYSTEM_MESSAGE:
                writeD(_sysString.getId());
                writeD(_systemMsg.getId());
                break;
            
            case TELL:
                writeS(_charName);
                writeElements();
                writeC(_mask);
                writeC(_charLevel);
                break;
            
            default:
                writeS(_charName);
                writeElements();
                break;
        }
    }

try puting a value in the writes
Код:
writeC(_mask);
writeC(_charLevel);
but its the same all in red and level 1 any help; thanks

Код:
// Flags
    private static final int IS_FRIEND = 1 << 0;
    private static final int IS_CLAN_MEMBER = 1 << 1;
    private static final int IS_MENTEE_OR_MENTOR = 1 << 2;
    private static final int IS_ALLIANCE_MEMBER = 1 << 3;
    private static final int IS_GM = 1 << 4;

    private ChatType _type;
    private SysString _sysString;
    private SystemMsg _systemMsg;

    private int _objectId;
    private String _charName;
    private int _mask;
    private int _charLevel = -1;

    public SayPacket2(int objectId, ChatType type, SysString st, SystemMsg sm)
    {
        super(NpcString.NONE);
        _objectId = objectId;
        _type = type;
        _sysString = st;
        _systemMsg = sm;
    }

    public SayPacket2(int objectId, ChatType type, String charName, String text)
    {
        this(objectId, type, charName, NpcString.NONE, text);
    }

    public SayPacket2(int objectId, ChatType type, String charName, NpcString npcString, String... params)
    {
        super(npcString, params);
        _objectId = objectId;
        _type = type;
        _charName = charName;
    }

    public void setCharName(String name)
    {
        _charName = name;
    }

    public void setSenderInfo(Player sender, Player receiver)
    {
        _charLevel = sender.getLevel();

        if(receiver.getFriendList().contains(sender.getObjectId()))
            _mask |= IS_FRIEND;

        if(receiver.getClanId() > 0 && receiver.getClanId() == sender.getClanId())
            _mask |= IS_CLAN_MEMBER;

        if(receiver.getMenteeList().getMentor() == sender.getObjectId() || sender.getMenteeList().getMentor() == receiver.getObjectId())
            _mask |= IS_MENTEE_OR_MENTOR;

        if(receiver.getAllyId() > 0 && receiver.getAllyId() == sender.getAllyId())
            _mask |= IS_ALLIANCE_MEMBER;

        // Does not shows level
        if(sender.isGM())
            _mask |= IS_GM;
    }

    @Override
    protected final void writeImpl()
    {
        writeD(_objectId);
        writeD(_type.ordinal());
        switch(_type)
        {
            case SYSTEM_MESSAGE:
                writeD(_sysString.getId());
                writeD(_systemMsg.getId());
                break;
            case TELL:
                writeS(_charName);
                writeElements();
                writeC(_mask);
                if((_mask & IS_GM) == 0)
                    writeC(_charLevel);
                break;
            default:
                writeS(_charName);
                writeElements();
                break;
        }
    }

And change NpcStringContainer from:
Код:
    private final NpcString _npcString;
    private final String[] _parameters = new String[5];

    protected NpcStringContainer(NpcString npcString, String... arg)
    {
        _npcString = npcString;
        System.arraycopy(arg, 0, _parameters, 0, arg.length);
    }

    protected void writeElements()
    {
        writeD(_npcString.getId());
        for(String st : _parameters)
            writeS(st);
    }

to:
Код:
    private final NpcString _npcString;
    private final String[] _parameters;

    protected NpcStringContainer(NpcString npcString, String... arg)
    {
        _npcString = npcString;
        _parameters = arg;
    }

    protected void writeElements()
    {
        writeD(_npcString.getId());
        for(String st : _parameters)
            writeS(st);
    }
Ответ
Thanks to your answers i see a fail in my packet and another fail in my own lines, it works thanks thanks thanks
Ответ
Bonux Написал:
Код:
// Flags
    private static final int IS_FRIEND = 1 << 0;
    private static final int IS_CLAN_MEMBER = 1 << 1;
    private static final int IS_MENTEE_OR_MENTOR = 1 << 2;
    private static final int IS_ALLIANCE_MEMBER = 1 << 3;
    private static final int IS_GM = 1 << 4;

    private ChatType _type;
    private SysString _sysString;
    private SystemMsg _systemMsg;

    private int _objectId;
    private String _charName;
    private int _mask;
    private int _charLevel = -1;

    public SayPacket2(int objectId, ChatType type, SysString st, SystemMsg sm)
    {
        super(NpcString.NONE);
        _objectId = objectId;
        _type = type;
        _sysString = st;
        _systemMsg = sm;
    }

    public SayPacket2(int objectId, ChatType type, String charName, String text)
    {
        this(objectId, type, charName, NpcString.NONE, text);
    }

    public SayPacket2(int objectId, ChatType type, String charName, NpcString npcString, String... params)
    {
        super(npcString, params);
        _objectId = objectId;
        _type = type;
        _charName = charName;
    }

    public void setCharName(String name)
    {
        _charName = name;
    }

    public void setSenderInfo(Player sender, Player receiver)
    {
        _charLevel = sender.getLevel();

        if(receiver.getFriendList().contains(sender.getObjectId()))
            _mask |= IS_FRIEND;

        if(receiver.getClanId() > 0 && receiver.getClanId() == sender.getClanId())
            _mask |= IS_CLAN_MEMBER;

        if(receiver.getMenteeList().getMentor() == sender.getObjectId() || sender.getMenteeList().getMentor() == receiver.getObjectId())
            _mask |= IS_MENTEE_OR_MENTOR;

        if(receiver.getAllyId() > 0 && receiver.getAllyId() == sender.getAllyId())
            _mask |= IS_ALLIANCE_MEMBER;

        // Does not shows level
        if(sender.isGM())
            _mask |= IS_GM;
    }

    @Override
    protected final void writeImpl()
    {
        writeD(_objectId);
        writeD(_type.ordinal());
        switch(_type)
        {
            case SYSTEM_MESSAGE:
                writeD(_sysString.getId());
                writeD(_systemMsg.getId());
                break;
            case TELL:
                writeS(_charName);
                writeElements();
                writeC(_mask);
                if((_mask & IS_GM) == 0)
                    writeC(_charLevel);
                break;
            default:
                writeS(_charName);
                writeElements();
                break;
        }
    }

And change NpcStringContainer from:
Код:
    private final NpcString _npcString;
    private final String[] _parameters = new String[5];

    protected NpcStringContainer(NpcString npcString, String... arg)
    {
        _npcString = npcString;
        System.arraycopy(arg, 0, _parameters, 0, arg.length);
    }

    protected void writeElements()
    {
        writeD(_npcString.getId());
        for(String st : _parameters)
            writeS(st);
    }

to:
Код:
    private final NpcString _npcString;
    private final String[] _parameters;

    protected NpcStringContainer(NpcString npcString, String... arg)
    {
        _npcString = npcString;
        _parameters = arg;
    }

    protected void writeElements()
    {
        writeD(_npcString.getId());
        for(String st : _parameters)
            writeS(st);
    }

thx for your help Bonux, but i need added that line setSenderInfo in other script?
Ответ
nache Написал:thx for your help Bonux, but i need added that line setSenderInfo in other script?

In Say2C client packet where chat type: TELL
Ответ
i added that line in 269
Цитата:cs.setSenderInfo(activeChar, receiver);
receiver.sendPacket(cs);
cs = new SayPacket2(activeChar.getObjectId(), _type, "->" + receiver.getName(), _text);
activeChar.sendPacket(cs);

is corrected?
Ответ
nache Написал:i added that line in 269

is corrected?

And after: [cs = new SayPacket2(activeChar.getObjectId(), _type, "->" + receiver.getName(), _text);]

add cs.setSenderInfo(activeChar, receiver);
Ответ
is work thx very much Bonux ^^
Ответ
Ищу инфу по инстансу Зал Предсказаний (id 255)

Это инстанс из квеста на 3 освобождение у атреек (85 уровень)
собственно говоря ищу координаты телепорта туда и что за мобы там должны быть, их имена.
Ответ
Gaikotsu Написал:Ищу инфу по инстансу Зал Предсказаний (id 255)

Это инстанс из квеста на 3 освобождение у атреек (85 уровень)
собственно говоря ищу координаты телепорта туда и что за мобы там должны быть, их имена.

Код:
<!DOCTYPE list SYSTEM "instances.dtd">
<!--AUTHOR: Bonux-->
<list>
    <!--Wind's of Fate: Choices-->
    <instance id="255" name="Chamber of Prophecies" maxChannels="20" collapseIfEmpty="1" timelimit="30" dispelBuffs="false" respawn="60">
        <level min="85" max="200"/>
        <return loc="-78696 251000 -2998"/>
        <teleport loc="-88504 186552 -10476"/>
        <remove itemId="0" count="0" necessary="false"/>
        <give itemId="0" count="0"/>
        <quest id="10753"/>
        <reuse resetReuse="* * * * *" setUponEntry="true" sharedReuseGroup="0"/>
        <geodata map="17_23"/>
        <spawns>
            <group name="q10753_16_instance_halter_1" spawned="true"/>
            <group name="q10753_16_instance_halter_2" spawned="false"/>
            <group name="q10753_16_instance_grail" spawned="false"/>
            <group name="q10753_16_instance_wizard" spawned="false"/>
            <group name="wof_room1" spawned="false"/>
            <group name="wof_room2" spawned="false"/>
            <group name="wof_room2_1" spawned="false"/>
            <group name="wof_room3" spawned="false"/>
            <group name="wof_room3_2" spawned="false"/>
            <group name="wof_room4" spawned="false"/>
        </spawns>
        <doors>
            <door id="17230101" opened="false"/>
            <door id="17230102" opened="false"/>
            <door id="17230103" opened="false"/>
            <door id="17230104" opened="false"/>
        </doors>
    </instance>
</list>
Ответ
какой пакет отвечает за разговоры нпц голосом в лавках типа "мои товары самые лутшие в мире"
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,836 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,481 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 63,592 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,871 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 2,300 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,664 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,535 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа над Goddess of Destruction (part 6) Ashe 1,274 500,351 07-11-2015, 08:00 PM
Последний пост: n3k0nation
  Работа с мультиселлом Evencelance 11 2,953 09-19-2014, 12:43 PM
Последний пост: Evencelance
  Работа над Goddess of Destruction (part 5) Ozzy 980 358,772 10-09-2013, 09:13 AM
Последний пост: Ashe

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


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