//////////////////////////////////////////////////////////////////////////////////////////////////////////// // Pet related item inventory movement //////////////////////////////////////////////////////////////////////////////////////////////////////////// public static byte[] MoveItemPet(int itemid, byte f_slot, byte t_slot, CLGameServer.WorldMgr.pet_obj o, short info, string action) { PacketWriter Writer = new PacketWriter(); Writer.Create(OperationCode.SERVER_ITEM_MOVE); switch (action) { case "MOVE_TO_PET": case "MOVE_FROM_PET": Writer.Byte(1); Writer.Byte(o.Slots); Writer.DWord(itemid); Writer.Byte(f_slot); Writer.Byte(t_slot); break; case "MOVE_INSIDE_PET": Writer.Byte(1); Writer.Byte(0x10); Writer.DWord(itemid); Writer.Byte(f_slot); Writer.Byte(t_slot); Writer.Word(info); break; } return(Writer.GetBytes()); }
/////////////////////////////////////////////////////////////////////////// // Despawn Pet /////////////////////////////////////////////////////////////////////////// public static byte[] PetSpawn(int petid, byte type, CLGameServer.WorldMgr.pet_obj o) { PacketWriter Writer = new PacketWriter(); Writer.Create(OperationCode.SERVER_PLAYER_SPAWN_PET); //Select Opcode Writer.DWord(petid); //Pet ID switch (type) { case 1: //Despawn pet Writer.Byte(1); break; case 2: //Rename pet respawn Writer.Byte(5); Writer.Text(o.Petname); break; case 3: //Attack pet respawn for exp info Writer.Byte(3); //Static Writer.LWord(o.exp); //New exp Writer.DWord(o.OwnerID); //Owner id break; } return(Writer.GetBytes()); }
public static byte[] Pet_Information(int id, int model, int hp, int charid, CLGameServer.WorldMgr.pet_obj o) { PacketWriter Writer = new PacketWriter(); Writer.Create(OperationCode.SERVER_PET_INFORMATION); //Select opcode Writer.DWord(id); //Horse ID Writer.DWord(model); //Horse Model Writer.DWord(hp); //Horse HP Writer.DWord(hp); //Horse SEC HP Writer.Byte(0); //Static byte ? return(Writer.GetBytes()); }
/////////////////////////////////////////////////////////////////////////// // Grab pet information packet /////////////////////////////////////////////////////////////////////////// public static byte[] Pet_Information_grab(CLGameServer.WorldMgr.pet_obj o, byte slot) { PacketWriter Writer = new PacketWriter(); Writer.Create(OperationCode.SERVER_PET_INFORMATION); try { ////////////////////////////////////////////////////////////////////////////////////// // Grabpet structure ////////////////////////////////////////////////////////////////////////////////////// Writer.DWord(o.UniqueID); //Unique ID Writer.DWord(o.Model); //Pet Model Writer.DWord(0x00006D); //Settings Writer.DWord(0x00006D); //Settings Writer.DWord(0x000047); //Settings 0x47 grab pet active 0 disabled if (o.Petname != "No name") //############### { Writer.Text(o.Petname); // Name region } else // { Writer.Word(0); //############### } Writer.Byte(o.Slots); //Slots count inventory pet ////////////////////////////////////////////////////////////////////////////////////// // Grabpet item inventory ////////////////////////////////////////////////////////////////////////////////////// DB ms = new DB("SELECT * FROM char_items WHERE owner='" + o.OwnerID + "' AND pet_storage_id='" + o.UniqueID + "'"); Writer.Byte(ms.Count()); using (System.Data.SqlClient.SqlDataReader reader = ms.Read()) { while (reader.Read()) { Item.AddItemPacket(Writer, reader.GetByte(5), reader.GetInt32(2), reader.GetByte(4), reader.GetInt16(6), reader.GetInt32(7), reader.GetInt32(0), reader.GetInt32(9), reader.GetInt32(30)); } } ms.Close(); ////////////////////////////////////////////////////////////////////////////////////// // Other ////////////////////////////////////////////////////////////////////////////////////// Writer.DWord(o.OwnerID); //Character ID Writer.Byte(slot); //Slot location of the pet ////////////////////////////////////////////////////////////////////////////////////// } catch (Exception ex) { Log.Exception(ex); } return(Writer.GetBytes()); }