Показать сообщение отдельно
Непрочитано 31.05.2011, 03:30   #229
Пользователь

По умолчанию Re: Работа над Godess of Destruction (part 2)

Еще раз всем привет. Подскажите, где я ошибаюсь.

PHP код:
package com.l2jserver.gameserver.network.clientpackets;

import com.l2jserver.gameserver.network.serverpackets.ExIsCharNameCreatable;

public class 
RequestCharacterNameCreatable extends L2GameClientPacket 

    protected 
String _name
     
    @
Override 
    
protected void readImpl() 
    { 
        
_name readS(); 
    } 

    @
Override 
    
protected void runImpl() 
    { 
        
sendPacket(new ExIsCharNameCreatable()); 
    } 
    
    @
Override 
    
public String getType() 
    { 
        return 
"[С] D0:B0 RequestCharacterNameCreatable".intern(); 
    } 

PHP код:
package com.l2jserver.gameserver.network.serverpackets;

public class 
ExIsCharNameCreatable extends L2GameServerPacket 
{
    @
Override 
    
protected void writeImpl()
    { 
        
writeC(0xfe); 
        
writeH(0x10f); 
        
writeD(0x01);    
    } 

    @
Override 
    
public String getType() 
    { 
        return 
"[S] FE:10F ExIsCharNameCreatable".intern(); 
    } 

CharSelectionInfo
PHP код:
protected final void writeImpl()
    {
        
writeC(0x09);
        
int size = (_characterPackages.length);
        
writeD(size);
        
        
// Can prevent players from creating new characters (if 0); (if 1, the client will ask if chars may be created (0x13) Response: (0x0D) )
        
writeD(0x07);
        
writeC(0x00);
        
        
long lastAccess 0L;
        
        if (
_activeId == -1)
        {
            for (
int i 0sizei++)
            {
                if (
lastAccess _characterPackages[i].getLastAccess())
                {
                    
lastAccess _characterPackages[i].getLastAccess();
                    
_activeId i;
                }
            }
        }
        
        for (
int i 0sizei++)
        {
            
CharSelectInfoPackage charInfoPackage _characterPackages[i];
            
writeS(charInfoPackage.getName());
            
writeD(charInfoPackage.getCharId());
            
writeS(_loginName);
            
writeD(_sessionId);
            
writeD(charInfoPackage.getClanId());
            
writeD(0x00); // ??
            
writeD(charInfoPackage.getSex());
            
writeD(charInfoPackage.getRace());
            if (
charInfoPackage.getClassId() == charInfoPackage.getBaseClassId())
                
writeD(charInfoPackage.getClassId());
            else
                
writeD(charInfoPackage.getBaseClassId());
            
writeD(0x01); // active ??
            
writeD(charInfoPackage.getX()); // x
            
writeD(charInfoPackage.getY()); // y
            
writeD(charInfoPackage.getZ()); // z
            
writeF(charInfoPackage.getCurrentHp()); // hp cur
            
writeF(charInfoPackage.getCurrentMp()); // mp cur
            
writeD(charInfoPackage.getSp());
            
writeQ(charInfoPackage.getExp());
            
writeF((float)(charInfoPackage.getExp() - Experience.LEVEL[charInfoPackage.getLevel()]) / (Experience.LEVEL[charInfoPackage.getLevel() + 1] - Experience.LEVEL[charInfoPackage.getLevel()])); // High Five exp %
            
writeD(charInfoPackage.getLevel());
            
writeD(charInfoPackage.getKarma()); // karma
            
writeD(charInfoPackage.getPkKills());
            
writeD(charInfoPackage.getPvPKills());
            
writeD(0x00);
            
writeD(0x00);
            
writeD(0x00);
            
writeD(0x00);
            
writeD(0x00);
            
writeD(0x00);
            
writeD(0x00);
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_REAR));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_NECK));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RFINGER));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LFINGER));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_CLOAK));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
            
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_BELT));
            
writeD(charInfoPackage.getHairStyle());
            
writeD(charInfoPackage.getHairColor());
            
writeD(charInfoPackage.getFace());
            
writeF(charInfoPackage.getMaxHp()); // hp max
            
writeF(charInfoPackage.getMaxMp()); // mp max
            
long deleteTime charInfoPackage.getDeleteTimer();
            
int deletedays 0;
            if (
deleteTime 0)
                
deletedays = (int)((deleteTime-System.currentTimeMillis())/1000);
            
writeD(deletedays); // days left before
            // delete .. if != 0
            // then char is inactive
            
writeD(charInfoPackage.getClassId());
            if (
== _activeId)
                
writeD(0x01);
            else
                
writeD(0x00); //c3 auto-select char
            
            
writeC(charInfoPackage.getEnchantEffect() > 127 127 charInfoPackage.getEnchantEffect());
            
writeH(0);
            
writeH(0);
            
//writeD(charInfoPackage.getAugmentationId());

            
            //writeD(charInfoPackage.getTransformId()); // Used to display Transformations
            
writeD(0x00); // Currently on retail when you are on character select you don't see your transformation.
            
            // Freya by Vistall:
            
writeD(0); // npdid - 16024    Tame Tiny Baby Kookaburra        A9E89C
            
writeD(0); // level
            
writeD(0); // ?
            
writeD(0); // food? - 1200
            
writeF(0); // max Hp
            
writeF(0); // cur Hp
            
            // High Five by Vistall:
            
writeD(charInfoPackage.getVitalityPoints());    // H5 Vitality
        
}
    } 
В L2GamePacketHandler зарегистрировал RequestCharacterNameCreatable как B0 в In_Game.
PS. завал на работе( Прихожу домой и смотрю в один и тот же код и немогу понять где ошибаюсь.
Paka вне форума