public void Load(ByteBuffer buff) { //ct2.2: 0C D5 5B 30 4F A6 95 0F 00 01 00 00 00 86 F2 01 00 54 68 FF FF 30 F2 FF FF 00 00 00 00 00 00 00 00 4D 01 00 00 16 01 00 00 AF 00 00 00 2C 00 00 00 AF 00 00 00 2C 00 00 00 AF 00 00 00 2C 00 00 00 AF 00 00 00 2C 00 00 00 9A 99 99 99 99 99 F1 3F 81 43 A8 52 B3 07 F0 3F 00 00 00 00 00 00 30 40 00 00 00 00 00 00 43 40 C8 09 00 00 00 00 00 00 06 1B 00 00 01 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 40 00 00 00 00 00 00 43 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //int offset = 1; //13 March 2013 //packet parser: cddddddddddddddddddffffdddcccccdhdsddddddddccffddddccddddddddchcdhchd(d) ID = buff.ReadUInt32(); NPCID = buff.ReadUInt32(); isAttackable = buff.ReadUInt32(); X = buff.ReadInt32(); Y = buff.ReadInt32(); Z = buff.ReadInt32(); Dest_X = X; Dest_Y = Y; Dest_Z = Z; Heading = buff.ReadInt32(); buff.ReadUInt32(); MatkSpeed = buff.ReadUInt32(); PatkSpeed = buff.ReadUInt32(); RunSpeed = buff.ReadUInt32(); WalkSpeed = buff.ReadUInt32(); SwimRunSpeed = buff.ReadUInt32(); SwimWalkSpeed = buff.ReadUInt32(); flRunSpeed = buff.ReadUInt32(); flWalkSpeed = buff.ReadUInt32(); FlyRunSpeed = buff.ReadUInt32(); FlyWalkSpeed = buff.ReadUInt32(); MoveSpeedMult = System.Convert.ToSingle(buff.ReadDouble()); AttackSpeedMult = System.Convert.ToSingle(buff.ReadDouble()); CollisionRadius = System.Convert.ToSingle(buff.ReadDouble()); CollisionHeight = System.Convert.ToSingle(buff.ReadDouble()); RHand = buff.ReadUInt32(); LRHand = buff.ReadUInt32(); LHand = buff.ReadUInt32(); NameShows = buff.ReadByte(); isRunning = buff.ReadByte(); isInCombat = buff.ReadByte(); isAlikeDead = buff.ReadByte(); buff.ReadByte(); isInvisible = 0; buff.ReadUInt32(); //FF FF FF FF Name = buff.ReadString(); //00 00 buff.ReadUInt32(); //FF FF FF FF /* * Name = buff.ReadString();//Name * if (Name.Length == 0) * { * Name = Util.GetNPCName(NPCID); * } * * buff.ReadUInt32(); //FF FF FF FF */ if (Name.Length == 0) { Name = Util.GetNPCName(NPCID); } Title = buff.ReadString(); //try and get the title for npcs (mobs, not summons) if (Title.Length == 0) { Title = Util.GetNPCTitle(NPCID); } //if that failed, we get the NPC's master's title... mobs get their name as their title, o well if (Title.Length == 0) { Title = Name; } //Globals.l2net_home.Add_Text("nametemp: " + nametemp + "Name: " + Name + "Title: " + Title, Globals.Red, TextType.ALL); //GD OK SummonedNameColor = buff.ReadUInt32();//0 = normal, 1 = summoned name color PvPFlag = buff.ReadUInt32(); Karma = buff.ReadInt32(); AbnormalEffects = buff.ReadUInt32(); buff.ReadUInt32(); //clan ID?? buff.ReadUInt32(); //crest ID?? buff.ReadUInt32(); //clan ID buff.ReadUInt32(); //crest ID buff.ReadByte(); //isflying TeamCircle = buff.ReadByte(); buff.ReadDouble(); // col height buff.ReadDouble(); // col rad buff.ReadUInt32(); // 00 00 00 00 buff.ReadUInt32(); // 00 00 00 00 buff.ReadInt32(); // 00 00 00 00 buff.ReadInt32(); // 00 00 00 00 // buff.ReadInt32(); // 00 00 00 00 isTargetable = buff.ReadByte(); // 01 showName = buff.ReadByte(); // 01 if (isTargetable == 0 || showName == 0) { GameData.badmobs_ignored += 1; } ExtendedEffects = buff.ReadUInt32(); // 00 00 00 00 buff.ReadInt32(); // roacknow buff.ReadInt32(); // rock now - cur hp buff.ReadInt32(); // rock now - max hp buff.ReadInt32(); // rock now - cur mp buff.ReadInt32(); // rock now - max m buff.ReadInt32(); // rock now - cur cp buff.ReadInt32(); // rock now - max cp buff.ReadByte(); //00 buff.ReadInt16(); //00 00 buff.ReadByte(); buff.ReadInt32(); buff.ReadInt16(); buff.ReadByte(); buff.ReadInt16(); int abn_count = buff.ReadInt32(); if (abn_count >= 30) { #if DEBUG Globals.l2net_home.Add_Text("More than 30 abnormal effects, probably an error... Count: " + abn_count, Globals.Yellow, TextType.BOT); #endif abn_count = 10; } //Globals.l2net_home.Add_Text("count " + abn_count, Globals.Yellow, TextType.BOT); AbnEffects.Clear(); for (uint i = 0; i < (uint)abn_count; i++) { uint tmpabneff = buff.ReadUInt32(); //Globals.l2net_home.Add_Text("Adding abnormal vfx to npc : " + tmpabneff.ToString("X2") + " to : " + Name, Globals.Yellow, TextType.BOT); AbnEffects.Add(tmpabneff); } }
public void LoadEX(ByteBuffer buff) { /*FE * 66 01 * * 03 46 10 48 //id * * 00 25 00 ED //NPCID? * * BE 4E A2 0C * 07 00 00 00 * 00 00 00 00 * 38 00 40 C6 * 0F 00 * * B0 43 00 00 //x * 80 97 02 00 //y * 58 F2 FF FF //z * 24 3F 00 00 8E 01 00 00 2B 01 00 00 00 00 80 3F 97 08 8A 3F 01 01 00 00 00 00 00 00 00 00 00 14 39 00 00 14 39 00 00 0C 00 00 */ /* ----------------------------------------------------- * --- from adifenix :P * FE 66 01 * D8 F1 A0 4E id * 00 // 1 - update (smal pck) or animaion.. / 0 - normal pck * 25 00 //? * ED BE 4E A2 //? * 0C //? * 07 01 00 00 //? * 00 00 00 00 //? * 38 00 //? * 2C 9C 0F 00 typeid * 7C D5 FE FF x * DF 72 02 00 y * 48 F3 FF FF z * AD 54 00 00 // cast ata sped ? * 4E 01 00 00 //atta sped ? * 17 01 00 00 // ..? * 00 00 //? * 80 3F // max? * 24 97 // cur? * 80 3F // max ? * 01 00 // cur? * 00 00 00 00 //? * 00 00 00 00 //? * 00 //?? * 41 02 00 00 -- if im not wrong ... if u chnage the last 02(in alot of cases there is 0c) to 00 then u cant see title (naughty boys and girls at ti :P) * after some tests .. * it look like now alot of thngs deppends on l2 files .. ex showing hp bar * i tested it using same packed (guard of city) and just changed the typeid to mob one and hp bar apeared .. * ------------------------------------------------ * // thats how i would parse it */ ID = buff.ReadUInt32(); int update = buff.ReadByte(); if (update == 0) // aka normal "fresh" data { buff.ReadInt16(); buff.ReadInt32(); buff.ReadByte(); buff.ReadInt32(); buff.ReadInt32(); buff.ReadInt16(); NPCID = buff.ReadUInt32(); Name = Util.GetNPCName(NPCID); Title = Util.GetNPCTitle(NPCID); X = buff.ReadInt32(); Y = buff.ReadInt32(); Z = buff.ReadInt32(); Dest_X = X; Dest_Y = Y; Dest_Z = Z; buff.ReadUInt32(); //?? buff.ReadUInt32(); //8E 01 00 00 buff.ReadUInt32(); //2B 01 00 00 buff.ReadUInt16(); //00 00 buff.ReadUInt32(); //80 3F 97 08 buff.ReadUInt16(); //8A 3F buff.ReadByte(); //01 buff.ReadByte(); //01 buff.ReadByte(); //00 buff.ReadUInt32(); //00 00 00 00 buff.ReadUInt32(); //00 00 00 00 Cur_HP = buff.ReadUInt32(); //14 39 00 00 Max_HP = buff.ReadUInt32(); //14 39 00 00 NameShows = buff.ReadByte(); // if 0 = hide name .. buff.ReadByte(); //00 buff.ReadByte(); //00 } }