Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Работа над Goddess of Destruction (part 7) (https://forum.zone-game.info/showthread.php?t=38792)

GenCloud 04.08.2015 23:17

Re: Работа над Goddess of Destruction (part 7)
 
Цитата:

Сообщение от Melcor (Сообщение 398286)
структуру копать надо, там шлется нпц-стринг 1802322

с NpcStringId эт дело выяснил уже давно.
структура под данный тип (558):
Код:

            writeD(objectId);
            writeD(hide);
            writeD(0x00);
            writeD(0x00);
            writeS(String.valueOf(increase));
            writeS(String.valueOf(points));
            writeS(String.valueOf(endTime));
            writeS(StringUtils.EMPTY);
            writeS(StringUtils.EMPTY);
            writeD(stringId);


Melcor 05.08.2015 06:47

Re: Работа над Goddess of Destruction (part 7)
 
Цитата:

Сообщение от GenCloud (Сообщение 398287)
sp:
Свернуть ↑Развернуть ↓

вот что приходит на евро
сниф:
Свернуть ↑Развернуть ↓

Gaikotsu 05.08.2015 07:37

Re: Работа над Goddess of Destruction (part 7)
 
Код:

package l2p.gameserver.network.serverpackets;

import l2p.gameserver.model.Player;
import l2p.gameserver.network.serverpackets.components.NpcString;
import l2p.gameserver.network.serverpackets.components.Opcode;

public class ExSendUIEvent extends NpcStringContainer
{
        public static final int STYLE_TIMER_SHOW = 0;
        public static final int STYLE_TIMER_HIDE = 1;
        public static final int STYLE_BALLISTA_CHARGE = 2;
        public static final int STYLE_COUNTER = 3;
        public static final int STYLE_UNK_4 = 4;
        public static final int STYLE_PROGRESS_BAR = 5;
        public static final int STYLE_TEMPERATURE_1 = 6;
        public static final int STYLE_TEMPERATURE_2 = 7;
        public static final int STYLE_UNK_8 = 8;

        public static final int MODE_NONE = -1;
        public static final int MODE_REMAINING = 0;
        public static final int MODE_ELAPSED = 1;

        private int _objectId;
        private int _style;
        private int _mode;
        private int _value1;
        private int _value2;
        private int _sysStringId1;
        private int _sysStringId2;

        public ExSendUIEvent(Player player, int style, int mode, int value1, int value2, String... params)
        {
                this(player, style, mode, value1, value2, 0, 0, NpcString.NONE, params);
        }

        public ExSendUIEvent(Player player, int style, int mode, int value1, int value2, NpcString npcString, String... params)
        {
                this(player, style, mode, value1, value2, 0, 0, npcString, params);
        }

        public ExSendUIEvent(Player player, int style, int mode, int value1, int value2, int sysStringId1, int sysStringId2, NpcString npcString, String... params)
        {
                super(npcString, params);

                _objectId = player != null ? player.getObjectId() : 0;
                _style = style;
                _mode = mode;
                _value1 = value1;
                _value2 = value2;
                _sysStringId1 = sysStringId1;
                _sysStringId2 = sysStringId2;
        }

        @Override
        protected void writeImpl()
        {
                writeEx(Opcode.ExSendUIEvent);
                writeD(_objectId);
                writeD(_style); // ID timer (any style)
                writeD(0x00); // unknown
                writeD(0x00); // unknown
                writeS(String.valueOf(_mode)); // Name indicator

                if (_mode >= 0 && _style < 6)
                {
                        writeS(String.valueOf(_value1 / 60)); // timer starting minute(s)
                        writeS(String.valueOf(_value1 % 60)); // timer starting second(s)
                        writeS(String.valueOf(_value2 / 60)); // timer length minute(s) (timer will disappear 10 seconds before it ends)
                        writeS(String.valueOf(_value2 % 60)); // timer length second(s) (timer will disappear 10 seconds before it ends)
                }
                else
                {
                        writeS(String.valueOf(_value1));
                        writeS(String.valueOf(_value2));
                        writeS(String.valueOf(_sysStringId1));
                        writeS(String.valueOf(_sysStringId2));
                }

                writeElements();
        }
}


smeli 07.08.2015 11:39

Re: Работа над Goddess of Destruction (part 7)
 
привет

у меня такая проблема.
на сервер линдвиор 531 как и на все остальные заходит без проблем

а вот с еритреей беда
ппохоже поменялась логика ключа. заходит раз в 100 раз
я посылаю нулевой ключ в то же время как и во всех крониках до линдвиор531 включительно
помогите с етим явлением

GenCloud 07.08.2015 11:45

Re: Работа над Goddess of Destruction (part 7)
 
Цитата:

Сообщение от smeli (Сообщение 398422)
привет

у меня такая проблема.
на сервер линдвиор 531 как и на все остальные заходит без проблем

а вот с еритреей беда
ппохоже поменялась логика ключа. заходит раз в 100 раз
я посылаю нулевой ключ в то же время как и во всех крониках до линдвиор531 включительно
помогите с етим явлением

Если при входе с мышки или при получении первого пакета RequestServerLogin при нажатии энтер данные для декрипта ключа читаются с позиции 2 в буфере, то при приходе второго пакета еще раз пересчитываются с позиции 36, а вот там видимо уже что-то кривое на тему данных ключа. С Gaikotsu
А если непосредственно в мир, то копать структуру инфо пакетов нужно, либо отключить их и оставить один UI с правильной структурой

smeli 07.08.2015 11:49

Re: Работа над Goddess of Destruction (part 7)
 
спасибо, буду пробовать
пс. гайка - крутой парень, помню его со времён птс

smeli 14.08.2015 17:53

Re: Работа над Goddess of Destruction (part 7)
 
интересный ефект при тестировании (клиент линдвиор):

если поднимать нпц с несуществующий нпцид то обычно вылезает
огромный белый заяц

но с мобом "orc" всё по другому
етот орц по базе птс держит в рукай специальный топорчик
и если моб с несуществующим ид является етим орком
то появляется не заяц а
ЛЕТАЮЩИЙ ТОПОР!!!

единственный минус етого топора - у него нету анимации атаки
он подлетает и начинается урон :)

можно исползовать как кидание топоров
игрок кидает топор в другого игрока
топор подлетает и врезается в мясо противника
начинается урон
пока етот топор невынял :)

Respect 14.08.2015 18:01

Re: Работа над Goddess of Destruction (part 7)
 
Цитата:

Сообщение от smeli (Сообщение 398709)
можно исползовать как кидание топоров
игрок кидает топор в другого игрока
топор подлетает и врезается в мясо противника
начинается урон
пока етот топор невынял :)

:D:D:D:D:D:D:D:D

Influence 14.08.2015 21:30

Re: Работа над Goddess of Destruction (part 7)
 
Цитата:

Сообщение от Respect (Сообщение 398710)
:D:D:D:D:D:D:D:D

Смели как всегда, то пабы, то летающие топоры, только вот не доделает никак :(

smeli 17.08.2015 08:47

Re: Работа над Goddess of Destruction (part 7)
 
Цитата:

Сообщение от Influence (Сообщение 398723)
Смели как всегда, то пабы, то летающие топоры, только вот не доделает никак :(

паб реализован в сборке и был живой в 2010-2012 году для всех 10-20 игроков онлайн
сейчас только в сборке ибо игроков 0, проектов 0

Добавлено через 2 часа 44 минуты
проблема (Eritrea): в окне создания персонажа выбираю рассу, причёстку и всё такое, нажимаю создать и ничего - клиент нешлёт серверу никакого пакета
чего он ждёт?


Текущее время: 20:40. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot