PDA

Просмотр полной версии : Различия в пакетах C4, C5, Интерлюдии


dmitry501
12.10.2007, 11:39
есть у кого информация о различиях в пакетах?
Может есть ссылки на java исходники от интерлюдии?
В частности интересуют пакеты UserInfo и CharInfo.

Shura1oplot
12.10.2007, 11:48
Пакеты в с4. остальные пакеты не отличаются от с5

s03=CharInfo:h(psize)c(ID)d(X)d(Y)d(Z)d(Heading)d( ObjectID)s(Name)d(Race)d(Sex)d(ClassID:Get.ClassID )d(DHair)d(Head:Get.Func01)d(RHand:Get.Func01)d(LH and:Get.Func01)d(Gloves:Get.Func01)d(Chest:Get.Fun c01)d(Legs:Get.Func01)d(Feet:Get.Func01)d(Back:Get .Func01)d(LRHand:Get.Func01)d(Hair:Get.Func01)d(Pv pFlag)d(Karma)d(MSpeed)d(PSpeed)d(PvpFlag)d(Karma) d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flRunSp d)d(flWalkSpd)d(flyRSpd)d(flyWSpd)f(SpdMul)f(ASpdM ul)f(collisRadius)f(collisHeight)d(HairStyle)d(Hai rColor)d(Face)s(Title)d(clanID)d(clanCrest)d(allyI D)d(allyCrest)d(siegeFlag)c(isStand)c(isRun)c(isIn Fight)c(isAlikeDead)c(Invis)c(Mount)c(shop)h(cubic s:For.0001)h(cubID)c(findparty)d(abnEffects)c(Reco mLeft)h(RecomHave)d(classID:Get.ClassID)d(maxCP)d( curCP)c(isMounted)c(Team)d(clanBigCrestId)c(isNobl e)c(isHero)c(isFishing)d(fishX)d(fishY)d(fishZ)d(N ameColor:Get.FCol)c(isRun)d(d)d(PItem)d(PledgeClas s)d(?PledgeColor:Get.FCol)d(TitleColor:Get.FCol)d( Cursed)
s04=UserInfo:h(psize)c(ID)d(X)d(Y)d(Z)d(Heading)d( ObjectID)s(Name)d(Race)d(Sex)d(ClassID:Get.ClassID )d(Level)d(Exp)d(STR)d(DEX)d(CON)d(INT)d(WIT)d(MEN )d(MaxHP)d(CurHP)d(MaxMP)d(CurMP)d(SP)d(CurLoad)d( MaxLoad)d(d)d(DHair)d(Rear)d(Lear)d(Neck)d(RFinger )d(LFinger)d(Head)d(RHand)d(LHand)d(Gloves)d(Chest )d(Legs)d(Feet)d(Back)d(LRHand)d(Hair)d(DHair:Get. Func01)d(Rear:Get.Func01)d(Lear:Get.Func01)d(Neck: Get.Func01)d(RFinger:Get.Func01)d(LFinger:Get.Func 01)d(Head:Get.Func01)d(RHand:Get.Func01)d(LHand:Ge t.Func01)d(Gloves:Get.Func01)d(Chest:Get.Func01)d( Legs:Get.Func01)d(Feet:Get.Func01)d(Back:Get.Func0 1)d(LRHand:Get.Func01)d(Hair:Get.Func01)d(Patk)d(P aspd)d(Pdef)d(evasion)d(accur)d(crithit)d(Matk)d(M aspd)d(Paspd)d(Mdef)d(PvpFlag)d(Karma)d(runSpd)d(w alkSpd)d(swimRSpd)d(swimWSpd)d(flRSpd)d(flWSpd)d(f lyRSpd)d(flyWSpd)f(MoveMul)f(aspdMul)f(collisRadiu s)f(collisHeight)d(HairStyle)d(HairColor:Get.FCol) d(Face)d(AccessLvl)s(Title)d(clanID)d(clanCrestId) d(AllyID)d(AllyCrestId)d(ClanLeader)c(Mount)c(shop )c(DwarfCraft)d(PKkills)d(PVPkills)h(cubics:For.00 01)h(cubID)c(findparty)d(abnEffects)c(c)d(clanPriv il)d(d)d(d)d(d)d(d)d(d)d(d)d(d)h(RecomLeft)h(Recom Have)d(d)h(InventLimit)d(classId:Get.ClassID)d(sEf f)d(maxCP)d(curCP)c(Mount)c(Team)d(clanBigCrestId) c(Noble)c(Hero)c(Fishing)d(fishX)d(fishY)d(fishZ)d (NameColor:Get.FCol)
s13=CharSelectInfo:h(psize)c(ID)d(Count:For.0069)s (Name)d(CharID)s(LoginName)d(SessionID)d(ClanID)d( d)d(Sex)d(Race)d(ClassID:Get.ClassID)d(active)d(X) d(Y)d(Z)f(cur_HP)f(cur_MP)d(SP)d(Exp)d(Level)d(Kar ma)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(Under)d(R ear)d(Lear)d(Neck)d(RFinger)d(LFinger)d(Head)d(RHa nd)d(LHand)d(Gloves)d(Chest)d(Legs)d(Feet)d(Back)d (LRHand)d(Hair)d(Under:Get.Func01)d(Rear:Get.Func0 1)d(Lear:Get.Func01)d(Neck:Get.Func01)d(RFinger:Ge t.Func01)d(LFinger:Get.Func01)d(Head:Get.Func01)d( RHand:Get.Func01)d(LHand:Get.Func01)d(Gloves:Get.F unc01)d(Chest:Get.Func01)d(Legs:Get.Func01)d(Feet: Get.Func01)d(Back:Get.Func01)d(LRHand:Get.Func01)d (Hair:Get.Func01)d(HairStyle)d(HairColor:Get.FCol) d(Face)f(Max_HP)f(Max_MP)d(DELdays)d(ClassID:Get.C lassID)d(autSel)c(EnchEffect)
s15=CharSelected:h(psize)c(ID)s(Name)d(CharID)s(Ti tle)d(SessionID)d(ClanID)d(d)d(Sex)d(Race)d(ClassI D:Get.ClassID)d(active)d(X)d(Y)d(Z)f(Cur_HP)f(Cur_ MP)d(SP)d(EXP)d(Level)d(Karma)d(d)d(INT)d(STR)d(CO N)d(MEN)d(DEX)d(WIT)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d( d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d) d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d( inGameTime)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d )d(d)d(d)d(d)d(d)d(d)
s16=NpcInfo:h(psize)c(ID)d(ObjectID)d(NpcTypeID)d( IsAttackable)d(X)d(Y)d(Z)d(Heading)d(d)d(Maspd)d(P aspd)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(fl RSpd)d(flWSpd)d(FlyRSpd)d(FlyWSpd)f(ProperMul)f(Pa spd)f(CollisRadius)f(CollisHeight)d(RHand)d(d)d(LH and)c(nameabove)c(isRun)c(isInFight)c(isAlikeDead) c(isSummoned)s(Name)s(Title)d(d)d(d)d(karma?)d(abn Effect)d(d)d(d)d(d)d(d)c(c)c(Team)f(collisRadius)f (collisHeight)d(d)
s58=SkillList:h(psize)c(ID)d(ListCount:For.0003)d( isPassive)d(lvl)d(SkillID:Get.Skill)


они же в с5

s03=CharInfo:h(psize)c(ID)d(X)d(Y)d(Z)d(Heading)d( ObjectID)s(Name)d(Race)d(Sex)d(ClassID:Get.ClassID )d(DHair)d(Head:Get.Func01)d(RHand:Get.Func01)d(LH and:Get.Func01)d(Gloves:Get.Func01)d(Chest:Get.Fun c01)d(Legs:Get.Func01)d(Feet:Get.Func01)d(Back:Get .Func01)d(LRHand:Get.Func01)d(Hair:Get.Func01)d(Pv pFlag)d(Karma)d(MSpeed)d(PSpeed)d(PvpFlag)d(Karma) d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flRunSp d)d(flWalkSpd)d(flyRSpd)d(flyWSpd)f(SpdMul)f(ASpdM ul)f(collisRadius)f(collisHeight)d(HairStyle)d(Hai rColor)d(Face)s(Title)d(clanID)d(clanCrest)d(allyI D)d(allyCrest)d(siegeFlag)c(isStand)c(isRun)c(isIn Fight)c(isAlikeDead)c(Invis)c(Mount)c(shop)h(cubic s:For.0001)h(cubID)c(findparty)d(abnEffects)c(Reco mLeft)h(RecomHave)d(classID:Get.ClassID)d(maxCP)d( curCP)c(isMounted)c(Team)d(clanBigCrestId)c(isNobl e)c(isHero)c(isFishing)d(fishX)d(fishY)d(fishZ)d(N ameColor:Get.FCol)c(isRun)d(d)d(PItem)d(PledgeClas s)d(PledgeColor:Get.FCol)d(TitleColor:Get.FCol)d(C ursed)
s04=UserInfo:h(psize)c(ID)d(X)d(Y)d(Z)d(Heading)d( ObjectID)s(Name)d(Race)d(Sex)d(ClassID:Get.ClassID )d(Level)q(Exp)d(STR)d(DEX)d(CON)d(INT)d(WIT)d(MEN )d(MaxHP)d(CurHP)d(MaxMP)d(CurMP)d(SP)d(CurLoad)d( MaxLoad)d(d)d(DHair)d(Rear)d(Lear)d(Neck)d(RFinger )d(LFinger)d(Head)d(RHand)d(LHand)d(Gloves)d(Chest )d(Legs)d(Feet)d(Back)d(LRHand)d(Hair)d(DHair:Get. Func01)d(Rear:Get.Func01)d(Lear:Get.Func01)d(Neck: Get.Func01)d(RFinger:Get.Func01)d(LFinger:Get.Func 01)d(Head:Get.Func01)d(RHand:Get.Func01)d(LHand:Ge t.Func01)d(Gloves:Get.Func01)d(Chest:Get.Func01)d( Legs:Get.Func01)d(Feet:Get.Func01)d(Back:Get.Func0 1)d(LRHand:Get.Func01)d(Hair:Get.Func01)d(Patk)d(P aspd)d(Pdef)d(evasion)d(accur)d(crithit)d(Matk)d(M aspd)d(Paspd)d(Mdef)d(PvpFlag)d(Karma)d(runSpd)d(w alkSpd)d(swimRSpd)d(swimWSpd)d(flRSpd)d(flWSpd)d(f lyRSpd)d(flyWSpd)f(MoveMul)f(aspdMul)f(collisRadiu s)f(collisHeight)d(HairStyle)d(HairColor:Get.FCol) d(Face)d(AccessLvl)s(Title)d(clanID)d(clanCrestId) d(AllyID)d(AllyCrestId)d(ClanLeader)c(Mount)c(shop )c(DwarfCraft)d(PKkills)d(PVPkills)h(cubics:For.00 01)h(cubID)c(findparty)d(abnEffects)c(c)d(clanPriv il)h(RecomLeft)h(RecomHave)d(d)h(InventLimit)d(cla ssId:Get.ClassID)d(sEff)d(maxCP)d(curCP)c(Mount)c( Team)d(clanBigCrestId)c(Noble)c(Hero)c(Fishing)d(f ishX)d(fishY)d(fishZ)d(NameColor:Get.FCol)c(isRun) d(FaceID)d(Face:Get.Func01)d(PledgeClass)d(d)d(Tit leColor:Get.FCol)d(Cursed)
s13=CharSelectInfo:h(psize)c(ID)d(Count:For.0071)s (Name)d(CharID)s(LoginName)d(SessionID)d(ClanID)d( d)d(Sex)d(Race)d(ClassID:Get.ClassID)d(active)d(X) d(Y)d(Z)f(cur_HP)f(cur_MP)d(SP)q(Exp)d(Level)d(Kar ma)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(Under)d(R ear)d(Lear)d(Neck)d(RFinger)d(LFinger)d(Head)d(RHa nd)d(LHand)d(Gloves)d(Chest)d(Legs)d(Feet)d(Back)d (LRHand)d(Hair)d(Under:Get.Func01)d(Rear:Get.Func0 1)d(Lear:Get.Func01)d(Neck:Get.Func01)d(RFinger:Ge t.Func01)d(LFinger:Get.Func01)d(Head:Get.Func01)d( RHand:Get.Func01)d(LHand:Get.Func01)d(Gloves:Get.F unc01)d(Chest:Get.Func01)d(Legs:Get.Func01)d(Feet: Get.Func01)d(Back:Get.Func01)d(LRHand:Get.Func01)d (Hair:Get.Func01)d(HairStyle)d(HairColor:Get.FCol) d(Face)f(Max_HP)f(Max_MP)d(DELdays)d(ClassID:Get.C lassID)d(autSel)c(EnchEffect)d(Face)d(Face:Get.Fun c01)
s15=CharSelected:h(psize)c(ID)s(Name)d(CharID)s(Ti tle)d(SessionID)d(ClanID)d(d)d(Sex)d(Race)d(ClassI D:Get.ClassID)d(active)d(X)d(Y)d(Z)f(Cur_HP)f(Cur_ MP)d(SP)q(EXP)d(Level)d(Karma)d(d)d(INT)d(STR)d(CO N)d(MEN)d(DEX)d(WIT)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d( d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d) d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d( inGameTime)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d)d(d )d(d)d(d)d(d)d(d)d(d)
s16=NpcInfo:h(psize)c(ID)d(ObjectID)d(NpcTypeID)d( IsAttackable)d(X)d(Y)d(Z)d(Heading)d(d)d(Maspd)d(P aspd)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(fl RSpd)d(flWSpd)d(FlyRSpd)d(FlyWSpd)f(ProperMul)f(Pa spd)f(CollisRadius)f(CollisHeight)d(RHand)d(d)d(LH and)c(nameabove)c(isRun)c(isInFight)c(isAlikeDead) c(isSummoned)s(Name)s(Title)d(d)d(d)d(karma?)d(abn Effect)d(d)d(d)d(d)d(d)c(c)c(Team)f(collisRadius)f (collisHeight)d(d)
s58=SkillList:h(psize)c(ID)d(ListCount:For.0004)d( isPassive)d(lvl)d(SkillID:Get.Skill)c(c)

описание из впф-ппц

З.Ы. на счет интерлюдии - самому было бы интересно

dmitry501
12.10.2007, 13:48
Так. UserInfo накопал
s04=UserInfo:h(psize)c(ID)d(X)d(Y)d(Z)d(Heading)d( ObjectID)s(Name)d(Race)d(Sex)d(ClassID:Get.ClassID )d(Level)q(Exp)d(STR)d(DEX)d(CON)d(INT)d(WIT)d(MEN )d(MaxHP)d(CurHP)d(MaxMP)d(CurMP)d(SP)d(CurLoad)d( MaxLoad)d(d)d(DHair)d(Rear)d(Lear)d(Neck)d(RFinger )d(LFinger)d(Head)d(RHand)d(LHand)d(Gloves)d(Chest )d(Legs)d(Feet)d(Back)d(LRHand)d(Hair)d(DHair:Get. Func01)d(Rear:Get.Func01)d(Lear:Get.Func01)d(Neck: Get.Func01)d(RFinger:Get.Func01)d(LFinger:Get.Func 01)d(Head:Get.Func01)d(RHand:Get.Func01)d(LHand:Ge t.Func01)d(Gloves:Get.Func01)d(Chest:Get.Func01)d( Legs:Get.Func01)d(Feet:Get.Func01)d(Back:Get.Func0 1)d(LRHand:Get.Func01)d(Hair:Get.Func01)-(0076)d(Patk)d(Paspd)d(Pdef)d(evasion)d(accur)d(cr ithit)d(Matk)d(Maspd)d(Paspd)d(Mdef)d(PvpFlag)d(Ka rma)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flR Spd)d(flWSpd)d(flyRSpd)d(flyWSpd)f(MoveMul)f(aspdM ul)f(collisRadius)f(collisHeight)d(HairStyle)d(Hai rColor:Get.FCol)d(Face)d(AccessLvl)s(Title)d(clanI D)d(clanCrestId)d(AllyID)d(AllyCrestId)d(ClanLeade r)c(Mount)c(shop)c(DwarfCraft)d(PKkills)d(PVPkills )h(cubics:For.0001)h(cubID)c(findparty)d(abnEffect s)c(c)d(clanPrivil)h(RecomLeft)h(RecomHave)d(d)h(I nventLimit)d(classId:Get.ClassID)d(sEff)d(maxCP)d( curCP)c(Mount)c(Team)d(clanBigCrestId)c(Noble)c(He ro)c(Fishing)d(fishX)d(fishY)d(fishZ)d(NameColor:G et.FCol)c(isRun)d(FaceID)d(Face:Get.Func01)d(Pledg eClass)d(d)d(TitleColor:Get.FCol)d(Cursed)

Shura1oplot
12.10.2007, 21:15
dmitry501, для интерлюдии? или что это?

14.10.2007, 10:44
dmitry501, для интерлюдии? или что это?

Это для С5 у Сауроныча взято но для интерлюди тоже пойдет

Death
14.10.2007, 21:00
dmitry501, для интерлюдии? или что это?

Это для С5 у Сауроныча взято но для интерлюди тоже пойдет

Не подойдет.

NLObP
14.10.2007, 23:34
UserInfo.java из L2j FORTRESS Interlude
public class UserInfo extends ServerBasePacket
{
private static final String _S__04_USERINFO = "[S] 04 UserInfo";
private final L2Player _cha;
private int _runSpd, _walkSpd, _swimRunSpd, _swimWalkSpd, _flRunSpd,
_flWalkSpd, _flyRunSpd, _flyWalkSpd;

/**
* @param _characters
*/
public UserInfo(L2Player cha)
{
_cha = cha;
}

@Override
final void runImpl()
{
float moveMultiplier = _cha.getMovementSpeedMultiplier();
_runSpd = (int) (_cha.getRunSpeed() / moveMultiplier);
_walkSpd = (int) (_cha.getWalkSpeed() / moveMultiplier);
_flRunSpd = _flyRunSpd = _runSpd;
_flWalkSpd = _flyWalkSpd = _walkSpd;
_swimRunSpd = _cha.getSwimSpeed();
_swimWalkSpd = _cha.getSwimSpeed();
}

@Override
final void writeImpl()
{
writeC(0x04);

writeD(_cha.getX());
writeD(_cha.getY());
writeD(_cha.getZ());
writeD(_cha.getHeading());
writeD(_cha.getObjectId());
writeS(_cha.getName());

writeD(_cha.getRace().ordinal());
writeD(_cha.getSex());
writeD(_cha.getBaseClass());
writeD(_cha.getLevel());
writeQ(_cha.getExp());
writeD(_cha.getSTR());
writeD(_cha.getDEX());
writeD(_cha.getCON());
writeD(_cha.getINT());
writeD(_cha.getWIT());
writeD(_cha.getMEN());
writeD(_cha.getMaxHp());
writeD((int) _cha.getCurrentHp());
writeD(_cha.getMaxMp());
writeD((int) _cha.getCurrentMp());
writeD(_cha.getSp());
writeD(_cha.getCurrentLoad());
writeD(_cha.getMaxLoad());
writeD(0x28); // unknown

//writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_UNDER));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_DHAIR));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_REAR));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_LEAR));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_NECK));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_RFINGER));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_LFINGER));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_HEAD));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_RHAND));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_LHAND));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_GLOVES));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_CHEST));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_LEGS));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_FEET));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_BACK));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_LRHAND));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_HAIR));
writeD(_cha.getInventory().getPaperdollObjectId(In ventory.PAPERDOLL_FACE));

//writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_UNDER));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_DHAIR));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_REAR));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_LEAR));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_NECK));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_RFINGER));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_LFINGER));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_HEAD));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_RHAND));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_LHAND));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_GLOVES));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_CHEST));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_LEGS));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_FEET));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_BACK));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_LRHAND));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_HAIR));
writeD(_cha.getInventory().getPaperdollItemId(Inve ntory.PAPERDOLL_FACE));

writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);

writeD(_cha.getPAtk(null));
writeD(_cha.getPAtkSpd());
writeD(_cha.getPDef(null));
writeD(_cha.getEvasionRate(null));
writeD(_cha.getAccuracy());
writeD(_cha.getCriticalHit(null, null));
writeD(_cha.getMAtk(null, null));

writeD(_cha.getMAtkSpd());
writeD(_cha.getPAtkSpd());

writeD(_cha.getMDef(null, null));

writeD(_cha.getPvpFlag()); // 0=white, 1=purple, 2=purpleblink
writeD(_cha.getKarma());

writeD(_runSpd);
writeD(_walkSpd);
writeD(_swimRunSpd); // swimspeed
writeD(_swimWalkSpd); // swimspeed
writeD(_flRunSpd);
writeD(_flWalkSpd);
writeD(_flyRunSpd);
writeD(_flyWalkSpd);
writeF(_cha.getMovementSpeedMultiplier());
writeF(_cha.getAttackSpeedMultiplier());
if(_cha.getMountType() != 0 && _cha.getPet() != null)
{
writeF(_cha.getPet().getTemplate().collisionRadius );
writeF(_cha.getPet().getTemplate().collisionHeight );
}
else
{
writeF(_cha.getBaseTemplate().collisionRadius);
writeF(_cha.getBaseTemplate().collisionHeight);
}

writeD(_cha.getHairStyle());
writeD(_cha.getHairColor());
writeD(_cha.getFace());
writeD(_cha.getPlayerAccess().IsGM || _cha.getPlayerAccess().CanUseGMCommand ? 1 : 0); // builder level активирет в клиенте админские команды

String title = _cha.getTitle();
if(_cha.isInvisible())
title = "Invisible";
if(_cha.isPolymorphed())
title += " - " + NpcTable.getTemplate(_cha.getPolyid()).name;
writeS(title);
writeD(_cha.getClanId());
writeD(_cha.getClanCrestId()); //clan crest
writeD(_cha.getAllyId());
writeD(_cha.getAllyCrestId()); // ally crest id
writeD(_cha.isClanLeader() ? 0x60 : 0); // siege-flags 0x40 - leader rights 0x20 - ??
writeC(_cha.getMountType()); // mount type
writeC(_cha.getPrivateStoreType());
writeC(_cha.getSkillLevel(L2Skill.SKILL_CRYSTALLIZ E) > 0 ? 1 : 0);
writeD(_cha.getPkKills());
writeD(_cha.getPvpKills());

writeH(_cha.getCubics().size());
for(int id : _cha.getCubics().keySet())
writeH(id);

writeC(0x00); //1-find party members

writeD(_cha.getAbnormalEffect());
writeC(0x11);

writeD(_cha.getClanPrivileges());
writeH(_cha.getRecomLeft()); //c2 recommendations remaining
writeH(_cha.getPlayerAccess().IsGM ? 0 : _cha.getRecomHave()); //c2 recommendations received
writeD(0x00);

writeH(_cha.getInventoryLimit());

writeD(_cha.getClassId().getId());
writeD(0x00); // special effects? circles around player...
writeD(_cha.getMaxCp());
writeD((int) _cha.getCurrentCp());

writeC(_cha.isMounted() ? 0 : _cha.getEnchantEffect()); //should check if mounted and not use
writeC(_cha.getTeam()); //team circle around feet 1= Blue, 2 = red
writeD(_cha.getClanCrestLargeId());
writeC(_cha.isNoble() || _cha.isGM() && Config.GM_HERO_AURA ? 1 : 0); //0x01: symbol on char menu ctrl+I
writeC(_cha.isHero() || _cha.isGM() && Config.GM_HERO_AURA ? 1 : 0); //0x01: Hero Aura and symbol

writeC(_cha.isFishing() ? 1 : 0); //Fishing Mode
writeD(_cha.GetFishx()); //fishing x
writeD(_cha.GetFishy()); //fishing y
writeD(_cha.GetFishz()); //fishing z

writeD(_cha.getNameColor());
writeC(_cha.isRunning() ? 0x01 : 0x00); //changes the Speed display on Status Window
writeD(_cha.getPledgeClass()); //C5 ??
writeD(0x00); //C5 ??
writeD(_cha.getTitleColor()); //C5 ??
writeD(0); //C5 ??
if(_cha.isCursedWeaponEquiped())
writeD(CursedWeaponsManager.getInstance().getLevel (_cha.getCursedWeaponEquipedId()));
else
writeD(0x00);

_cha.refreshSavedStats();
}

@Override
public String getType()
{
return _S__04_USERINFO;
}
}

CharInfo.java из L2j FORTRESS Interlude
public class CharInfo extends ServerBasePacket
{
private static final String _S__03_CHARINFO = "[S] 03 CharInfo";
private L2Player _cha;
private Inventory _inv;
private int _mAtkSpd, _pAtkSpd;
private int _runSpd, _walkSpd, _swimRunSpd, _swimWalkSpd, _flRunSpd,
_flWalkSpd;

protected boolean logHandled()
{
return true;
}

/**
* @param _characters
*/
public CharInfo(L2Player cha)
{
_cha = cha;
_inv = cha.getInventory();
_mAtkSpd = _cha.getMAtkSpd();
_pAtkSpd = _cha.getPAtkSpd();
}

@Override
final void runImpl()
{
// no long-running tasks
float moveMultiplier = _cha.getMovementSpeedMultiplier();
_runSpd = (int) (_cha.getRunSpeed() / moveMultiplier);
_walkSpd = (int) (_cha.getWalkSpeed() / moveMultiplier);
_flRunSpd = _runSpd;
_flWalkSpd = _walkSpd;
_swimRunSpd = _cha.getSwimSpeed();
_swimWalkSpd = _cha.getSwimSpeed();
}

@Override
final void writeImpl()
{
if(_cha == null)
return;

if(_cha.isPolymorphed())
{
writeC(0x16);
writeD(_cha.getObjectId());
writeD(_cha.getPolyid() + 1000000); // npctype id
writeD(_cha.getKarma() > 0 ? 1 : 0);
writeD(_cha.getX());
writeD(_cha.getY());
writeD(_cha.getZ());
writeD(_cha.getHeading());
writeD(0x11);
writeD(_mAtkSpd);
writeD(_pAtkSpd);
writeD(_runSpd);
writeD(_walkSpd);
writeD(_swimRunSpd/*0x32*/); // swimspeed
writeD(_swimWalkSpd/*0x32*/); // swimspeed
writeD(_flRunSpd);
writeD(_flWalkSpd);
writeD(0x00); //_flyRunSpd
writeD(0x00); //_flyWalkSpd
writeF(_cha.getMovementSpeedMultiplier());
writeF(_cha.getAttackSpeedMultiplier());
writeF(_cha.getPolyRadius());
writeF(_cha.getPolyHeight());
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _RHAND)); // right hand weapon
writeD(0);
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _LHAND)); // left hand weapon
writeC(1); // name above char 1=true ... ??
writeC(_cha.isRunning() ? 1 : 0);
writeC(_cha.isInCombat() ? 1 : 0);
writeC(_cha.isAlikeDead() ? 1 : 0);
writeC(_cha.isInvisible() ? 1 : 0); // invisible ?? 0=false 1=true 2=summoned (only works if model has a summon animation)
writeS(_cha.getName());
writeS(_cha.getTitle());
writeD(0);
writeD(_cha.getPvpFlag());
writeD(_cha.getKarma()); // hmm karma ??

writeH(_cha.getAbnormalEffect()); // C2
writeH(0x00); // C2
writeD(0); // C2
writeD(0); // C2
writeD(0); // C2
writeD(0); // C2
writeC(0); // C2
}
else
{
writeC(0x03);
writeD(_cha.getX());
writeD(_cha.getY());
writeD(_cha.getZ());
writeD(_cha.getHeading());
writeD(_cha.getObjectId());

writeS(_cha.getName());
writeD(_cha.getBaseTemplate().race.ordinal());
writeD(_cha.getSex());
writeD(_cha.getBaseClass());

writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _DHAIR));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _HEAD));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _RHAND));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _LHAND));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _GLOVES));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _CHEST));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _LEGS));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _FEET));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _BACK));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _LRHAND));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _HAIR));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL _FACE));

writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);

writeD(_cha.getPvpFlag());
writeD(_cha.getKarma());

writeD(_mAtkSpd);
writeD(_pAtkSpd);

writeD(_cha.getPvpFlag());
writeD(_cha.getKarma());

writeD(_runSpd);
writeD(_walkSpd);
writeD(_swimRunSpd/* 0x32 */); // swimspeed
writeD(_swimWalkSpd/* 0x32 */); // swimspeed
writeD(_flRunSpd);
writeD(_flWalkSpd);
writeD(0x00); //_flyRunSpd
writeD(0x00); //_flyWalkSpd
writeF(_cha.getMovementSpeedMultiplier()); // _cha.getProperMultiplier()
writeF(_cha.getAttackSpeedMultiplier()); // _cha.getAttackSpeedMultiplier()
writeF(_cha.getBaseTemplate().collisionRadius);
writeF(_cha.getBaseTemplate().collisionHeight);

writeD(_cha.getHairStyle());
writeD(_cha.getHairColor());
writeD(_cha.getFace());

writeS(_cha.getTitle());
writeD(_cha.getClanId());
writeD(_cha.getClanCrestId());
writeD(_cha.getAllyId());
writeD(_cha.getAllyCrestId());

writeD(0x00); // new in rev 417 siege-flags

writeC(_cha.isSitting() ? 0 : 1); // standing = 1 sitting = 0
writeC(_cha.isRunning() ? 1 : 0); // running = 1 walking = 0
writeC(_cha.isInCombat() ? 1 : 0);
writeC(_cha.isAlikeDead() ? 1 : 0);

writeC(_cha.isInvisible() ? 1 : 0); // invisible = 1 visible =0
writeC(_cha.getMountType()); // 1 on strider 2 on wyfern 0 no mount
writeC(_cha.getPrivateStoreType()); // 1 - sellshop

writeH(_cha.getCubics().size());
for(int id : _cha.getCubics().keySet())
writeH(id);

writeC(0x00); // find party members

writeD(_cha.getAbnormalEffect());

writeC(_cha.getRecomLeft());
writeH(_cha.getPlayerAccess().IsGM ? 0 : _cha.getRecomHave());
writeD(_cha.getClassId().getId());

writeD(_cha.getMaxCp());
writeD((int) _cha.getCurrentCp());
writeC(_cha.isMounted() ? 0 : _cha.getEnchantEffect());

writeC(_cha.getTeam()); // team circle around feet 1= Blue, 2 = red
writeD(_cha.getClanCrestLargeId());
writeC(_cha.isNoble() ? 1 : 0); // 0x01: symbol on char menu ctrl+I
writeC(_cha.isHero() || _cha.isGM() && Config.GM_HERO_AURA ? 1 : 0); // 0x01: Hero Aura

writeC(_cha.isFishing() ? 1 : 0);
writeD(_cha.GetFishx());
writeD(_cha.GetFishy());
writeD(_cha.GetFishz());

writeD(_cha.getNameColor());

// New C5
writeD(_cha.isRunning() ? 0x01 : 0x00); //changes the Speed display on Status Window
writeD(_cha.getPledgeClass());
writeD(0x00); //C5 ??
writeD(_cha.getTitleColor());
writeD(0x00); //C5 ??
if(_cha.isCursedWeaponEquiped())
writeD(CursedWeaponsManager.getInstance().getLevel (_cha.getCursedWeaponEquipedId()));
else
writeD(0x00);
}
}

@Override
public String getType()
{
return _S__03_CHARINFO + ": " + _cha;
}
}

15.10.2007, 09:48
Ссылочку на весь сервер если можно

NLObP
15.10.2007, 13:20
Ссылочку на весь сервер если можно
http://trac.balancer.ru/svn/l2j/trunk/ (http://trac.balancer.ru/svn/l2j/trunk/)

dmitry501
15.10.2007, 13:39
Всем спасибо, я уже все нашел, тему можно закрывать.

p.s. Для абисса делал скриптик, тамошние админы извращаются. Протокол 747, шифруют как в С4, UserInfo, CharInfo как в C4, CharSelected как в IL. До этого в 746 SkillList, UseInfo, CharInfo было все из IL. Непонятно, то ли они к совместимости с волкером для С4 стремятся? :)

4egvar
16.10.2007, 05:18
Протокол 747, шифруют как в С4, UserInfo, CharInfo как в C4, CharSelected как в IL. До этого в 746 SkillList, UseInfo, CharInfo было все из IL
А что в крипте можно задат ьспособ шифровки/расшифровки каждой команды?

или ты исходники ковырял?

или ты имееш ввиду просто что разные ворматы команд? :)

кстати про абис:
dmitry501 = 501 = GCT ? :)

dmitry501
16.10.2007, 09:22
Протокол 747, шифруют как в С4, UserInfo, CharInfo как в C4, CharSelected как в IL. До этого в 746 SkillList, UseInfo, CharInfo было все из IL
А что в крипте можно задат ьспособ шифровки/расшифровки каждой команды?

или ты исходники ковырял?

или ты имееш ввиду просто что разные ворматы команд? :)

кстати про абис:
dmitry501 = 501 = GCT ? :)
Читай
Протокол 747.
Шифруют все как в С4.
формат пакетов UserInfo, CharInfo как в C4, CharSelected как в IL. До этого в 746 SkillList, UseInfo, CharInfo было все из IL

dmitry501 = 501 = GCT ? :)
нет