Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 7)
How adapt that that code?

Bonux Написал:
Код:
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);
    }
}
Ответ
hi to all fast question, what is wrong in the structure i cant se the pet from other player. Thanks

Код:
writeC(0xFE);
        writeH(0x15E);
        writeD(_summon.getObjectId());
        writeC(_spawnAnimation); // // 0=teleported 1=default 2=summoned
        writeH(37); // mask_bits_37
        writeB(_masks);
        
        // Block 1
        writeC(_initSize);
        
        if (containsMask(NpcInfoType.ATTACKABLE))
        {
            writeC(_summon.isAutoAttackable(_attacker) ? 0x01 : 0x00);
        }
        if (containsMask(NpcInfoType.UNKNOWN1))
        {
            writeD(0x00); // unknown
        }
        if (containsMask(NpcInfoType.TITLE))
        {
            writeS(_title);
        }
        
        // Block 2
        writeH(_blockSize);
        if (containsMask(NpcInfoType.ID))
        {
            writeD(_summon.getTemplate().displayId + 1000000);
        }
        if (containsMask(NpcInfoType.POSITION))
        {
            writeD(_summon.getX());
            writeD(_summon.getY());
            writeD(_summon.getZ());
        }
        if (containsMask(NpcInfoType.HEADING))
        {
            writeD(_summon.getHeading());
        }
        if (containsMask(NpcInfoType.UNKNOWN2))
        {
            writeD(0x00); // Unknown
        }
        if (containsMask(NpcInfoType.ATK_CAST_SPEED))
        {
            writeD(_summon.getPAtkSpd());
            writeD(_summon.getMAtkSpd());
        }
        if (containsMask(NpcInfoType.SPEED_MULTIPLIER))
        {
            writeF((float) _summon.getMovementSpeedMultiplier());
            writeF(_summon.getAttackSpeedMultiplier());
        }
        if (containsMask(NpcInfoType.EQUIPPED))
        {
            writeD(0x00);
            writeD(0x00); // Armor id?
            writeD(0x00);
        }
        if (containsMask(NpcInfoType.ALIVE))
        {
            writeC(_summon.isDead() ? 0x00 : 0x01);
        }
        if (containsMask(NpcInfoType.RUNNING))
        {
            writeC(_summon.isRunning() ? 0x01 : 0x00);
        }
        if (containsMask(NpcInfoType.SWIM_OR_FLY))
        {
            writeC(_summon.isInZone(ZoneType.water) ? 0x01 : _summon.isFlying() ? 0x02 : 0x00);
        }
        if (containsMask(NpcInfoType.TEAM))
        {
            writeC(_summon.getTeam().ordinal());
        }
        if (containsMask(NpcInfoType.ENCHANT))
        {
            writeD(_summon.getActiveWeaponInstance().getEnchantLevel());
        }
        if (containsMask(NpcInfoType.FLYING))
        {
            writeD(_summon.isFlying() ? 0x01 : 00);
        }
        if (containsMask(NpcInfoType.CLONE))
        {
            writeD(0x00); // Player ObjectId with Decoy
        }
        if (containsMask(NpcInfoType.UNKNOWN8))
        {
            // No visual effect
            writeD(0x00); // Unknown
        }
        if (containsMask(NpcInfoType.DISPLAY_EFFECT))
        {
            writeD(0x00);
        }
        if (containsMask(NpcInfoType.TRANSFORMATION))
        {
            writeD(0x00); // Transformation ID
        }
        if (containsMask(NpcInfoType.CURRENT_HP))
        {
            writeD((int) _summon.getCurrentHp());
        }
        if (containsMask(NpcInfoType.CURRENT_MP))
        {
            writeD((int) _summon.getCurrentMp());
        }
        if (containsMask(NpcInfoType.MAX_HP))
        {
            writeD(_summon.getMaxHp());
        }
        if (containsMask(NpcInfoType.MAX_MP))
        {
            writeD(_summon.getMaxMp());
        }
        if (containsMask(NpcInfoType.UNKNOWN11))
        {
            writeC(0x00); // 2 - do some animation on spawn
        }
        if (containsMask(NpcInfoType.UNKNOWN12))
        {
            writeD(0x00);
            writeD(0x00);
        }
        if (containsMask(NpcInfoType.NAME))
        {
            writeS(_summon.getName());
        }
        if (containsMask(NpcInfoType.NAME_NPCSTRINGID))
        {
            writeD(-1); // NPCStringId for name
        }
        if (containsMask(NpcInfoType.TITLE_NPCSTRINGID))
        {
            writeD(-1); // NPCStringId for title
        }
        if (containsMask(NpcInfoType.PVP_FLAG))
        {
            writeC(_summon.getPvpFlag()); // PVP flag
        }
        if (containsMask(NpcInfoType.NAME_COLOR))
        {
            writeD(0x00); // Name color
        }
        if (containsMask(NpcInfoType.CLAN))
        {
            writeD(_clanId);
            writeD(_clanCrest);
            writeD(_clanLargeCrest);
            writeD(_allyId);
            writeD(_allyCrest);
        }
        
        if (containsMask(NpcInfoType.VISUAL_STATE))
        {
            writeC(_statusMask);
        }
        
        if (_aveList != null)
        {
            writeH(_aveList.size());
            
            for (int i : _aveList)
            {
                writeH(i);
            }
        }
        else
        {
            writeH(0x00);
        }
    }
Ответ
I find my fault and solved :aplause::aplause::aplause:
Ответ
Кто нибудь мне может объснить почему при посылке пакета loginOk (0x03) выбивает на
[Изображение: m3llMKHL0Wk.jpg]
а должно показывать пользовательское соглашение
Ответ
krisadr Написал:Кто нибудь мне может объснить почему при посылке пакета loginOk (0x03) выбивает на
[Изображение: m3llMKHL0Wk.jpg]
а должно показывать пользовательское соглашение

1 проверь патч
2 проверь опкоды
3 проверь версию протокола ( Underground это 28 )

тут патч норм
Ответ
ребят привет, поделитесь плиз пропатченой папкой систем под последний клиент руоффа
Ответ
VenomRaider Написал:ребят привет, поделитесь плиз пропатченой папкой систем под последний клиент руоффа
Пропатченой? после обновления защиты чтоли?
Ответ
Underground:

Патченные от 26.02.16 (28 протокол):
US: https://yadi.sk/d/C4Qrz5IppZKDU
RU: https://yadi.sk/d/gt6IaAtXpZKHX

Не патченные последние от 10.06.16 (28 протокол):
US: https://yadi.sk/d/1N7UuDkgswuHd
RU: https://yadi.sk/d/jVU5Y6kQswuHw

P.S. L2.exe используется от Smart-Guard. За как-бы "вирусы" ответственности не несуWink
Ответ
Дамы и Господа, кто поможет с кусочком маленького кода?=)))
в общем то, пилил линягу на C# с нуля, был протокол 530, сейчас решил перейти на Ertheia, соответственно, в связи с переходом не могу догнать, сильно не пинайтесь за офтоп плиз... но,
как строчки:
WriteB
WriteS
в C# переписать на новый лад? :ah:
WriteString

вернее, интересен последний кусочек - _buf.putChar(ch);
Ответ
silvermain, да да, с нуля.
1
Код:
var b = "seniorcsharper";
            var ar = b.ToCharArray();
            var mstream = new MemoryStream();
            using (var bw = new BinaryWriter(mstream, UnicodeEncoding.Unicode))
            {
                bw.Write((short)ar.Length);
                bw.Write(ar);
            }
Ответ


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

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


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