public void AddClone(ushort cloneid)
public SafeDictionary<uint, Entity> MyClones = new SafeDictionary<uint, Entity>(); public bool IsClone = false; public void AddClone(ushort cloneid) { #region SpawnPacket(10014) var Entity = new Entity(EntityFlag.Entity, true); Entity.MonsterInfo = new MonsterInformation(); MonsterInformation.MonsterInformations.TryGetValue(9003, out Entity.MonsterInfo); Entity.Owner = Owner; Entity.MonsterInfo.Owner = Entity; Entity.IsClone = true; Entity._Name = "ShadowClone"; Entity.clan = Name; Entity.SpawnPacket = new byte[8 + _Names + _Name.Length + 36]; Array.Copy(SpawnPacket, Entity.SpawnPacket, Entity.SpawnPacket.Length); WriteStringList(new List<string>() { "ShadowClone", "", "", Name, "" }, _Names, Entity.SpawnPacket); Entity.Mesh = Mesh; Entity.Hitpoints = 1; Entity.UID = Owner.Map.CloneCounter.Next; Entity.GuildID = Entity.GuildRank = Entity.Action = 0; Entity.CountryID = Enums.CountryID.Default; Entity.StatusFlag = Entity.StatusFlag2 = Entity.StatusFlag3 = Entity.StatusFlag4 = 0; Writer.Write((uint)0, Game.ConquerStructures.Equipment.Steed, Entity.SpawnPacket); Writer.Write((uint)0, Game.ConquerStructures.Equipment.SteedPlus, Entity.SpawnPacket); Writer.Write((uint)0, Game.ConquerStructures.Equipment.SteedColor, Entity.SpawnPacket); Writer.Write((uint)0, Game.ConquerStructures.Equipment.MountArmor, Entity.SpawnPacket); Writer.Write((uint)0, Game.ConquerStructures.Equipment.Wing, Entity.SpawnPacket); Writer.Write((uint)0, Game.ConquerStructures.Equipment.WingPlus, Entity.SpawnPacket); Entity.FlowerRank = 0; Entity.NobilityRank = ConquerStructures.NobilityRank.Serf; Entity.Class = Entity.FirstRebornClass = Entity.SecondRebornClass = Entity.JiangTalent = Entity.SubClassesActive = Entity.Reborn = Entity.Level = Entity.ServerID = 0; Writer.Write((byte)2, 271, Entity.SpawnPacket); Writer.Write(cloneid, 272, Entity.SpawnPacket); Entity.OwnerUID = UID; Entity.JiangActive = false; Writer.Write((uint)0, 178, Entity.SpawnPacket); Writer.Write((uint)0, 182, Entity.SpawnPacket); Writer.Write((uint)0, 186, Entity.SpawnPacket); Writer.Write((uint)0, _UnionExploits, Entity.SpawnPacket); Writer.Write((uint)0, _UnionID, Entity.SpawnPacket); Writer.Write((uint)0, _UnionRank, Entity.SpawnPacket); Writer.Write((uint)0, _UnionType, Entity.SpawnPacket); Writer.Write((uint)0, _MyTitle, Entity.SpawnPacket); Writer.Write((uint)0, _MyTitleScore, Entity.SpawnPacket); Writer.Write((uint)0, _MyWing, Entity.SpawnPacket); Entity.MinAttack = MinAttack; Entity.MaxAttack = Entity.MagicAttack = Math.Max(MinAttack, MaxAttack); Entity.Appearance = Appearance; Entity.MapID = Owner.Map.ID; Entity.SendUpdates = true; #endregion SpawnPacket(10014) #region Pet(2035) MsgPetInfo pet = new MsgPetInfo(); pet.UID = Entity.UID; pet.PetID = cloneid; pet.PetType = 2; pet.Mesh = Mesh; pet.AttackRange = (byte)AttackRange; pet.X = X; pet.Y = Y; pet.Name = "ShadowClone"; Owner.Send(pet); #endregion Pet(2035) MyClones.Add(Entity.UID, Entity); Owner.SendScreen(Entity.SpawnPacket, true); Owner.SendScreenSpawn(Entity, true); #region Data(10010) Data data = new Data(true); data.UID = Entity.UID; data.Facing = Entity.Facing; data.ID = Data.AddEntity; data.wParam1 = Entity.X; data.wParam2 = Entity.Y; Owner.Send(data); #endregion Data(10010)