public string GetLeastFavoriteGangName() { int maxKills = int.MinValue; PedType leastFavGang = PedType.PLAYER1; for (PedType g = PedType.GANG1; g <= PedType.GANG9; g = (PedType)((int)g + 1)) { int kills = Stats.PedsKilledOfThisType[(int)g]; if (kills > maxKills) { maxKills = kills; leastFavGang = g; } } return(leastFavGang switch { PedType.GANG1 => Gxt.TheText["MAIN"]["ST_GNG1"], PedType.GANG2 => Gxt.TheText["MAIN"]["ST_GNG2"], PedType.GANG3 => Gxt.TheText["MAIN"]["ST_GNG3"], PedType.GANG4 => Gxt.TheText["MAIN"]["ST_GNG4"], PedType.GANG5 => Gxt.TheText["MAIN"]["ST_GNG5"], PedType.GANG6 => Gxt.TheText["MAIN"]["ST_GNG6"], PedType.GANG7 => Gxt.TheText["MAIN"]["ST_GNG7"], PedType.GANG8 => Gxt.TheText["MAIN"]["ST_GNG8"], PedType.GANG9 => Gxt.TheText["MAIN"]["ST_GNG9"], _ => null, });
public static PedHandle CreatePed(PedType type, PedHash model, Vector3 pos, float heading) { switch (RequestModel(model)) { case AssetStatus.Invalid: return(PedHandle.ModelInvalid); case AssetStatus.Loading: return(PedHandle.ModelLoading); default: return(Call <PedHandle>(CREATE_PED, type, model, pos.X, pos.Y, pos.Z, heading, false, true)); } }
public static PedHandle CreatePedInsideVehicle(VehicleHandle veh, PedType type, ModelHash model, VehicleSeat seat) { switch (RequestModel(model)) { case AssetStatus.Invalid: return(PedHandle.ModelInvalid); case AssetStatus.Loading: return(PedHandle.ModelLoading); default: return(Call <PedHandle>(CREATE_PED_INSIDE_VEHICLE, veh, type, model, seat, true, true)); } }
public static async Task <Ped> CreatePed(Model model, PedType pedType, Vector3 pos, float heading = 0f, bool networked = true) { if (API.IsModelAPed((uint)model.Hash)) { model.Request(); while (!model.IsLoaded) { await BaseScript.Delay(1); } Ped ped = new Ped(API.CreatePed((int)pedType, (uint)model.Hash, pos.X, pos.Y, pos.Z, heading, networked, false)); model.MarkAsNoLongerNeeded(); return(ped); } return(null); }
public static bool TryCreatePed(PedType type, PedHash model, Vector3 pos, float heading, out PedHandle ped) { if (!IsValid(model)) { ped = PedHandle.ModelInvalid; return(false); } if (!IsLoaded(model)) { ped = PedHandle.ModelLoading; RequestModel(model); return(false); } ped = Call <PedHandle>(CREATE_PED, type, model, pos.X, pos.Y, pos.Z, heading, false, true); return(true); }
public PedData(Ped ped, PedType type, bool isImportant = false, bool isPerp = false, string bruiseLoc = null, string markLoc = null, string cutLoc = null, Traces traces = Traces.Blood, bool socialMedia = false) { Type = type; Exists = true; Persona p = Functions.GetPersonaForPed(ped); Name = p.FullName; Dob = p.BirthDay; Gender = ExtensionMethods.GetGender(ped); if (type == PedType.VictimFamily) { if (Gender == ExtensionMethods.Gender.Male) { Relationship = "Father"; } else { Relationship = "Mother"; } Model = ped.Model.Name; } else if (type == PedType.Suspect) { IsPerp = isPerp; Model = ped.Model.Name; var models = Rage.Model.VehicleModels.Where(c => c.IsCar && !c.IsBigVehicle && !c.IsBike && !c.IsEmergencyVehicle).ToList(); VehModel = models[Rand.RandomNumber(models.Count)].Name; } else if (type == PedType.Victim) { IsImportant = isImportant; BruiseLocation = bruiseLoc; MarkLocation = markLoc; CutLocation = cutLoc; Traces = traces; SocialMedia = socialMedia; } else if (type == PedType.Witness1 || type == PedType.Witness2) { IsImportant = isImportant; } }
private static void StartScenario(Ped ped, PedType type) { try { if (ped.Exists()) { GameFiber.StartNew(delegate { ("Starting scenario for " + type.ToString()).AddLog(); string scenario = ""; switch (type) { case PedType.Cop: var o1 = CanimationList[MathHelper.GetRandomInteger(CanimationList.Count - 1)]; ("Cop animation assigned: " + o1.FirstAnimation).AddLog(); switch (o1.Name) { case "clipboard": scenario = "WORLD_HUMAN_CLIPBOARD"; break; case "sec": scenario = "WORLD_HUMAN_SECURITY_SHINE_TORCH"; break; case "guard": scenario = "WORLD_HUMAN_GUARD_STAND"; break; default: scenario = "WORLD_HUMAN_COP_IDLES"; break; } break; case PedType.Ambient: var p1 = PanimationList[MathHelper.GetRandomInteger(PanimationList.Count() - 1)]; ("Animation assigned: " + p1.FirstAnimation).AddLog(); if (p1.Name == "mobile") { scenario = Rand.RandomNumber(1, 3) == 1 ? "WORLD_HUMAN_MOBILE_FILM_SHOCKING" : "WORLD_HUMAN_STAND_MOBILE"; } else { scenario = "WORLD_HUMAN_PAPARAZZI"; } break; } while (true) { if (!ped.Exists() || ped.IsDead) { break; } ped.Task_Scenario(scenario); while (NativeFunction.Natives.IS_PED_USING_ANY_SCENARIO <bool>(ped)) { GameFiber.Yield(); } GameFiber.Yield(); } }); } } catch (Exception ex) { ex.ToString().AddLog(true); } }
public static PedHandle CreatePedInsideVehicle(VehicleHandle veh, PedType type, PedHash model, VehicleSeat seat) => CreatePedInsideVehicle(veh, type, (ModelHash)model, seat);
public static Ped SpawnPedOfType(PedType pedType, Vector3 pedPosition) { var ped = pedType.SpawnPed(pedPosition); int[] variation; int[] props; switch (PropStage) { case 0: //bare head props = null; break; case 1: //helmet props = pedType.GetHelmetProps(); break; case 2: //face shield props = pedType.GetFaceShieldProps(); break; case 3: //hearing protection props = pedType.GetHearingProtectionProps(); break; default: props = null; break; } switch (VariationStage) { case 0: //bare chest variation = pedType.GetBareChestVariation(); break; case 1: //hvv chest variation = pedType.GetHighVisibilityVestVariation(); break; default: variation = null; break; } Log.Debug($"Spawned ped of type {pedType.TypeName} with model {ped.Model.Name}."); if (props == null) { Log.Debug("No props for this ped"); } else { Log.Debug("Setting random props for ped: " + string.Join(",", props)); var propTextures = ped.GetPropTextureVariations(props[0], props[1]); var textureId = Random.Next(0, propTextures); ped.SetPropIndex((PropComponentIds)props[0], props[1], textureId); } if (variation == null) { Log.Debug("No variation for this ped"); } else { Log.Debug("Setting random props for ped: " + string.Join(",", variation)); var variationTextures = ped.GetTextureVariationCount(variation[0], variation[1]); var textureId = Random.Next(0, variationTextures); ped.SetVariation(variation[0], variation[1], textureId); } return(ped); }
public static Ped SpawnNewPed(Vector3 pedPosition) { /*var typeIndex = Random.Next(0, PedType.PedTypes.Length); * var pedType = PedType.PedTypes[typeIndex]; * * pedType = PedType.PedTypes[5];*/ PedType[] propPicks; PedType[] variationPicks; switch (PropStage) { case 0: //bare head propPicks = PedType.PedTypes; break; case 1: //helmet propPicks = HelmetTypes; break; case 2: //face shield propPicks = FaceShieldTypes; break; case 3: //hearing protection propPicks = HearingProtectionTypes; break; default: propPicks = new PedType[] { }; break; } switch (VariationStage) { case 0: //bare chest variationPicks = BareChestTypes; break; case 1: //hvv chest variationPicks = HvvTypes; break; default: variationPicks = new PedType[] { }; break; } var intersection = propPicks.Intersect(variationPicks); var pedType = intersection.RandomElement(); var spawnedPed = SpawnPedOfType(pedType, pedPosition); PropStage = (PropStage + 1) % 4; VariationStage = (VariationStage + 1) % 2; return(spawnedPed); }
public static PedType GetPedType(this Ped ped) { return(PedType.FromModel(ped.Model)); }