public PedData(int handle, int hash, Vector3 rotation, Vector3 position, PedTasks task, List <Weapon> weapons) { this.Handle = handle; this.Hash = hash; this.Rotation = rotation; this.Position = position; this.Task = task; this.Weapons = weapons; }
public PedData(int handle, int hash, Vector3 rotation, Vector3 position, PedTasks task, List <Weapon> weapons) { Handle = handle; Hash = hash; Rotation = rotation; Position = position; Task = task; Weapons = weapons; }
public static void AddPedData(Ped ped) { PedTasks task = Population.survivorList.Find(a => a.pedEntity == ped).tasks; IEnumerable <WeaponHash> source = from hash in (WeaponHash[])Enum.GetValues(typeof(WeaponHash)) where ped.Weapons.HasWeapon(hash) select hash; WeaponComponent[] componentHashes = (WeaponComponent[])Enum.GetValues(typeof(WeaponComponent)); PedData item = new PedData(ped.Handle, ped.Model.Hash, ped.Rotation, ped.Position, task, source.ToList <WeaponHash>().ConvertAll <UndeadStreets.Weapon>(delegate(WeaponHash hash) { GTA.Weapon weapon = ped.Weapons[hash]; return(new UndeadStreets.Weapon(weapon.Ammo, weapon.Hash, (from h in componentHashes where weapon.IsComponentActive(h) select h).ToArray <WeaponComponent>())); }).ToList <UndeadStreets.Weapon>()); PlayerPedCollection.Add(item); }
public void AddMenuTasks(UIMenu menu) { var tasks = new List <dynamic> { "None", "Wander", "Guard", "Follow", "Leave" }; var newitem = new UIMenuListItem("Task", tasks, 0, "Select a task for your Group member(s)"); menu.AddItem(newitem); menu.OnListChange += (sender, item, index) => { if (item == newitem) { string taskString = item.Items[index].ToString(); if (taskString == "None") { taskApply = PedTasks.None; } else if (taskString == "Wander") { taskApply = PedTasks.Wander; } else if (taskString == "Guard") { taskApply = PedTasks.Guard; } else if (taskString == "Follow") { taskApply = PedTasks.Follow; } else if (taskString == "Leave") { taskApply = PedTasks.Leave; } } }; }
public static void AddPedData(Ped ped) { SurvivorPed survivorPed = Population.survivorList.Find(match: a => a.pedEntity == ped); PedTasks pedTasks = survivorPed.tasks; IEnumerable <WeaponHash> hashes = from hash in (WeaponHash[])Enum.GetValues(typeof(WeaponHash)) where ped.Weapons.HasWeapon(hash) select hash; WeaponComponent[] componentHashes = (WeaponComponent[])Enum.GetValues(typeof(WeaponComponent)); List <Weapon> weapons = hashes.ToList().ConvertAll(delegate(WeaponHash hash) { GTA.Weapon weapon = ped.Weapons[hash]; WeaponComponent[] components = (from h in componentHashes where weapon.IsComponentActive(h) select h).ToArray(); return(new Weapon(weapon.Ammo, weapon.Hash, components)); }).ToList(); PedData pedData = new PedData(ped.Handle, ped.Model.Hash, ped.Rotation, ped.Position, pedTasks, weapons); PlayerPedCollection.Add(pedData); }
public void AddMenuTasks(UIMenu menu) { List <object> list1 = new List <object>(); list1.Add("None"); list1.Add("Wander"); list1.Add("Guard"); list1.Add("Follow"); list1.Add("Leave"); List <object> items = list1; UIMenuListItem newitem = new UIMenuListItem("Task", items, 0, "Select a task for your Group member(s)"); menu.AddItem(newitem); menu.OnListChange += delegate(UIMenu sender, UIMenuListItem item, int index) { if (ReferenceEquals(item, newitem)) { string str = item.Items[index].ToString(); if (str == "None") { this.taskApply = PedTasks.None; } else if (str == "Wander") { this.taskApply = PedTasks.Wander; } else if (str == "Guard") { this.taskApply = PedTasks.Guard; } else if (str == "Follow") { this.taskApply = PedTasks.Follow; } else if (str == "Leave") { this.taskApply = PedTasks.Leave; } } }; }
public static void SetPedTasks(Ped ped, PedTasks task) { ped.Task.ClearAll(); if (task != PedTasks.Follow) { if (task == PedTasks.Guard) { ped.Task.GuardCurrentPosition(); } else if (task == PedTasks.Wander) { ped.Task.WanderAround(ped.Position, 100f); } else if (task == PedTasks.None) { ped.Task.StandStill(-1); } else if (task == PedTasks.Leave) { ped.LeaveGroup(); Blip currentBlip = ped.CurrentBlip; if (currentBlip.Handle != 0) { currentBlip.Remove(); } ped.RelationshipGroup = Relationships.FriendlyGroup; ped.Task.ClearAll(); Blip blip2 = ped.AddBlip(); blip2.Color = BlipColor.Blue; blip2.Scale = 0.65f; blip2.Name = "Friendly"; task = PedTasks.Wander; ped.Task.WanderAround(ped.Position, 100f); } } Population.survivorList.Find(a => a.pedEntity == ped).tasks = task; }
public static void SurvivorGroupSpawn(Vector3 pos, GroupType groupType = 3, int groupSize = -1, PedTasks pedTasks = 1) { if (groupType == GroupType.Random) { int num = RandoMath.CachedRandom.Next(0, 3); if (num == 0) { groupType = GroupType.Friendly; } if (num == 1) { groupType = GroupType.Neutral; } if (num == 2) { groupType = GroupType.Hostile; } } List <Ped> list = new List <Ped>(); PedGroup group = new PedGroup(); if (groupSize == -1) { groupSize = RandoMath.CachedRandom.Next(3, 9); } int num2 = 0; while (true) { if (num2 >= groupSize) { foreach (Ped ped2 in list) { if (group.MemberCount < 1) { group.Add(ped2, true); continue; } group.Add(ped2, false); } group.FormationType = FormationType.Default; foreach (Ped ped3 in group.ToList(true)) { PlayerGroup.SetPedTasks(ped3, pedTasks); } return; } SurvivorPed ped = SurvivorSpawn(pos); if (groupType == GroupType.Friendly) { ped.pedEntity.RelationshipGroup = Relationships.FriendlyGroup; ped.pedEntity.AddBlip(); ped.pedEntity.CurrentBlip.Color = BlipColor.Blue; ped.pedEntity.CurrentBlip.Scale = 0.65f; ped.pedEntity.CurrentBlip.Name = "Friendly"; } else if (groupType == GroupType.Neutral) { ped.pedEntity.RelationshipGroup = Relationships.NeutralGroup; ped.pedEntity.AddBlip(); ped.pedEntity.CurrentBlip.Color = BlipColor.Yellow; ped.pedEntity.CurrentBlip.Scale = 0.65f; ped.pedEntity.CurrentBlip.Name = "Neutral"; } else if (groupType == GroupType.Hostile) { ped.pedEntity.RelationshipGroup = Relationships.HostileGroup; ped.pedEntity.AddBlip(); ped.pedEntity.CurrentBlip.Color = BlipColor.Red; ped.pedEntity.CurrentBlip.Scale = 0.65f; ped.pedEntity.CurrentBlip.Name = "Hostile"; } list.Add(ped.pedEntity); num2++; } }
public static void SurvivorGroupSpawn(Vector3 pos, GroupType groupType = GroupType.Random, int groupSize = -1, PedTasks pedTasks = PedTasks.Wander) { if (groupType == GroupType.Random) { int rndGroupType = RandoMath.CachedRandom.Next(0, 3); if (rndGroupType == 0) { groupType = GroupType.Friendly; } if (rndGroupType == 1) { groupType = GroupType.Neutral; } if (rndGroupType == 2) { groupType = GroupType.Hostile; } } List <Ped> peds = new List <Ped>(); PedGroup group = new PedGroup(); if (groupSize == -1) { groupSize = RandoMath.CachedRandom.Next(3, 9); } for (int i = 0; i < groupSize; i++) { SurvivorPed sPed = SurvivorSpawn(pos); if (groupType == GroupType.Friendly) { sPed.pedEntity.RelationshipGroup = Relationships.FriendlyGroup; sPed.pedEntity.AddBlip(); sPed.pedEntity.CurrentBlip.Color = BlipColor.Blue; sPed.pedEntity.CurrentBlip.Scale = 0.65f; sPed.pedEntity.CurrentBlip.Name = "Friendly"; } else if (groupType == GroupType.Neutral) { sPed.pedEntity.RelationshipGroup = Relationships.NeutralGroup; sPed.pedEntity.AddBlip(); sPed.pedEntity.CurrentBlip.Color = BlipColor.Yellow; sPed.pedEntity.CurrentBlip.Scale = 0.65f; sPed.pedEntity.CurrentBlip.Name = "Neutral"; } else if (groupType == GroupType.Hostile) { sPed.pedEntity.RelationshipGroup = Relationships.HostileGroup; sPed.pedEntity.AddBlip(); sPed.pedEntity.CurrentBlip.Color = BlipColor.Red; sPed.pedEntity.CurrentBlip.Scale = 0.65f; sPed.pedEntity.CurrentBlip.Name = "Hostile"; } peds.Add(sPed.pedEntity); } foreach (Ped ped in peds) { if (group.MemberCount < 1) { group.Add(ped, true); } else { group.Add(ped, false); } } group.FormationType = 0; List <Ped> groupPeds = group.ToList(true); foreach (Ped ped in groupPeds) { PlayerGroup.SetPedTasks(ped, pedTasks); } }