Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 7)
parrx Написал:Да вот что то не фига все равно остаются квадраты малевича Sad
Странно, у меня такого нет...
[Изображение: image.png]

Могу лишь сказать, что ветки заточки отсылает пакет ExEnchantSkillInfo.

Добавлено через 3 часа 18 минут
Warencense Написал:Так считывай его как 2х2 байта.Тут как с аугментом: отправлять и принимать как 2х2 байта намного проще, нежели по 4 байта с фиг знает каким значением. А клиенту как-то пофиг, 1х4 или 2х2, так как все равно эти все значения собираются в кучу и нигде не указывается тип данных. То есть считывается каждый байт, а уже затем уже идет распределение по нжуным типам.
В данном случае это имеет значение. Если так не сделать - клиент не сможет отобразить этот скилл, если он заточен.
Собсно уже во всем разобрался.
Ответ
elastic Написал:Могу лишь сказать, что ветки заточки отсылает пакет ExEnchantSkillInfo.

Да это то понятно)) А можете скинуть Ваш ExEnchantSkillInfo и RequestExEnchantSkill? Smile
Ответ
parrx Написал:Да это то понятно)) А можете скинуть Ваш ExEnchantSkillInfo и RequestExEnchantSkill? Smile

Код:
package l2s.gameserver.network.l2.s2c;

import java.util.ArrayList;
import java.util.List;

import l2s.gameserver.data.xml.holder.SkillHolder;
import l2s.gameserver.model.Skill;
import l2s.gameserver.utils.SkillUtils;

public class ExEnchantSkillInfoPacket extends L2GameServerPacket
{
    private List<Integer> _routes;

    private int _id, _level, _canAdd, canDecrease;

    public ExEnchantSkillInfoPacket(int id, int level)
    {
        _routes = new ArrayList<Integer>();
        _id = id;
        _level = level;

        // skill already enchanted?
        if(SkillUtils.isEnchantedSkill(_level))
        {
            // get detail for next level
            int skillLevel = SkillUtils.getSkillLevelFromMask(_level);
            int subSkillLevel = SkillUtils.getSubSkillLevelFromMask(_level) + 1;
            int skillLevelMask = SkillUtils.getSkillLevelMask(skillLevel, subSkillLevel);
            Skill skill = SkillHolder.getInstance().getSkill(_id, skillLevelMask);
            // if it exists add it
            if(skill != null)
            {
                addEnchantSkillDetail(skill.getLevel());
                _canAdd = 1;
            }

            for(Skill temp : SkillUtils.getSkillsForChangeEnchant(_id, _level))
                addEnchantSkillDetail(temp.getLevel());
        }
        else
        {
            // not already enchanted
            for(Skill temp : SkillUtils.getSkillsForFirstEnchant(_id, _level))
            {
                addEnchantSkillDetail(temp.getLevel());
                _canAdd = 1;
            }
        }
    }

    public void addEnchantSkillDetail(int level)
    {
        _routes.add(level);
    }

    @Override
    protected void writeImpl()
    {
        writeD(_id);
        writeD(_level);
        writeD(_canAdd); // can add enchant
        writeD(canDecrease); // can decrease enchant

        writeD(_routes.size());
        for(Integer route : _routes)
            writeD(route);
    }
}
Ответ
Цитата:
>>> Packet Dump: 0c
93 11 10 48 //object id
00 25 00
ff fc fc ff fc //masks
07 01 00 00 00 00 00 00 //initial block
8d 00 //block2 size

e2 90 0f 00 //npcid
fa c3 fe ff //x
eb ad 03 00 //y
c0 f1 ff ff //z
78 76 00 00 //heading
00 00 00 00 //unknown

4d 01 00 00
16 01 00 00
cd cc 8c 3f
9b 3d 80 3f

7d 10 00 00 //weapon
00 00 00 00 //armor
00 00 00 00 //shield
00 01 00 00 //alive, running, swimming, team

00 00 00 00 //enchant
00 00 00 00 //flying
00 00 00 00 //clone
00 00 00 00 //unknown8
00 00 00 00 //display effect
00 00 00 00 //transformation

00 00 00 00 //current hp
00 00 00 00 //current mp
00 00 00 00 //max hp
00 00 00 00 //max mp
00 //unknown11
00 00 00 00
00 00 00 00 //unknown 12
00 00 //name
ff ff ff ff name npcstring id
ff ff ff ff titlenpcstring id
00 //pvp flag
00 00 00 00 //color

//clan
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00


00 //visual state
04 00 //abnormals count
00 00
00 00
00 00
00 00


вот мой дамп нпц пакета, разметил даже что где, непоявляется визуально нпц
где проблема
Ответ
Bonux, Спасибо огромное)
Ответ
просветите пожалуйста какая маска какое значение имеет у нпц
а то с нпц инфой напряг невероятный
и проблема в масках
Ответ
smeli Написал:просветите пожалуйста какая маска какое значение имеет у нпц
а то с нпц инфой напряг невероятный
и проблема в масках

Пакет то остался прежним на оффе. У лыжи вроде нпц инфо более менее разобрали, так что глянуть не проблема.
На евро обычный пакет от нпц

Код:
0C C3 3F 10 48 00 25 00 ED BE 4E A2 0C 07 00 00 00 00 00 00 00 38 00 C0 CC 0F 00 E0 46 01 00 30 38 02 00 B8 F2 FF FF 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3F 97 08 8A 3F 01 01 00 00 00 00 00 00 00 00 00 84 10 00 00 84 10 00 00 0C 00 00

зы и абсолютно полный пакет со всеми масками на оффе не получится, там есть флаги отвечающие за клонов, которые на обычном нпц ну никак не могут быть.
Ответ
прорвало Smile теперь показывает
но всё равно что то не так

например снята маска equiped
а орк у меня с топором - показывают без топора
если маску вернуть - непоказаывает вообще

значит у меня маски расставлены неправильно

Код:
//0
static BYTE NPC_MASK1_ID[2]={0x80, 4};
static BYTE NPC_MASK1_ATTACKABLE[2]={0x40, 1};
static BYTE NPC_MASK1_UNKNOWN1[2]={0x20, 4};
static BYTE NPC_MASK1_NAME[2]={0x10, 2};
static BYTE NPC_MASK1_POSITION[2]={0x08, 12};
static BYTE NPC_MASK1_HEADING[2]={0x04, 4};
//static BYTE NPC_MASK1_UNKNOWN2[2]={0x02, 4};
static BYTE NPC_MASK1_UNKNOWN2[2]={0, 0}; //removed
static BYTE NPC_MASK1_ATK_CAST_SPEED[2]={0x01, 8};
    
// 1
static BYTE NPC_MASK2_SPEED_MULTIPLIER[2]={0x80, 2 * 4};
//static BYTE NPC_MASK2_EQUIPPED[2]={0x40, (3 * 4)};
static BYTE NPC_MASK2_EQUIPPED[2]={0, 0}; //removed

static BYTE NPC_MASK2_ALIVE[2]={0x20, 1};
static BYTE NPC_MASK2_RUNNING[2]={0x10, 1};
static BYTE NPC_MASK2_SWIM_OR_FLY[2]={0x08, 1};
static BYTE NPC_MASK2_TEAM[2]={0x04, 1};
static BYTE NPC_MASK2_1[2]={0x02, 0};
static BYTE NPC_MASK2_2[2]={0, 0}; //not used

    // 2

//static BYTE NPC_MASK3_ENCHANT[2]={0x80, 4};
//static BYTE NPC_MASK3_FLYING[2]={0x40, 4};
//static BYTE NPC_MASK3_CLONE[2]={0x20, 4};
//static BYTE NPC_MASK3_FORM[2]={0x10, 4};
static BYTE NPC_MASK3_DISPLAY_EFFECT[2]={0x08, 4};
static BYTE NPC_MASK3_TRANSFORMATION[2]={0x04, 4};
static BYTE NPC_MASK3_1[2]={0x02, 0};
static BYTE NPC_MASK3_2[2]={0x01, 0};


    // 3
static BYTE NPC_MASK4_CURRENT_HP[2]={0x80, 4};
//static BYTE NPC_MASK4_CURRENT_MP[2]={0x40, 4};
static BYTE NPC_MASK4_MAX_HP[2]={0x20, 4};
//static BYTE NPC_MASK4_MAX_MP[2]={0x10, 4};
//static BYTE NPC_MASK4_DECOY_TYPE[2]={0x08, 1};
//static BYTE NPC_MASK4_FOLLOW_OBJECT[2]={0x04, (2 * 4)};
static BYTE NPC_MASK4_TITLE[2]={0x02, 2};
//static BYTE NPC_MASK4_NAME_NPCSTRINGID[2]={0x01, 4}; //those really not needed
    
    // 4
//static BYTE NPC_MASK5_TITLE_NPCSTRINGID[2]={0x80, 4}; //those really not needed
static BYTE NPC_MASK5_PVP_FLAG[2]={0x40, 1};
//static BYTE NPC_MASK5_NAME_COLOR[2]={0x20, 4};
//static BYTE NPC_MASK5_CLAN[2]={0x10, (5 * 4)};
static BYTE NPC_MASK5_ABNORMALS[2]={0x08, 5*2}; //(5*2)};
static BYTE NPC_MASK5_VISUAL_STATE[2]={0x04, 1};


и что ето за маски такие????

static BYTE NPC_MASK3_1[2]={0x02, 0};
static BYTE NPC_MASK3_2[2]={0x01, 0};

static BYTE NPC_MASK2_1[2]={0x02, 0};
static BYTE NPC_MASK2_2[2]={0x01, 0};
Ответ
Господа спецы, Dev mode у кого нибудь имеется под актуальную Корею? Защиту сцуки снова усилили.
Ответ
прошу расшифровки массок нпц, в какои, из 5 байтов какие маски где стоят
Ответ


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

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


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