private void CreateServices(ServiceType type) { switch (type) { case ServiceType.Ems: "Creating EMS".AddLog(); if (Fiskey111Common.Rand.RandomNumber(2, 3) == 1) { _emstransport = true; } _ems = new Ems(CsiCreator.Victim.Ped, _dispEmsTo, null, _emstransport); _ems.Dispatch(); GameFiber.Sleep(1500); var d = new Dialog(ConversationCreator.DialogLineCreator(ConversationCreator.ConversationType.Ems, _ems.PedDriver), CsiCreator.Victim.Ped.LeftPosition); d.AddPed(0, Game.LocalPlayer.Character); d.AddPed(1, _ems.PedWorker); d.DistanceToStop = 3f; _ems.Dialogue = d; _emsData = new ReportData(ReportData.Service.EMS, _ems.PedDriver, d.Dialogue); _rDataList.Add(_emsData); _ems.VehicleDrivingSpeed = 9f; _ems.VehDrivingFlags = VehicleDrivingFlags.Emergency; break; case ServiceType.Coroner: "Creating Coroner".AddLog(); _coroner = new Coroner(CsiCreator.Victim.Ped, _dispCoronerTo, null); GameFiber.Sleep(0500); _coroner.ModelPedDriver = "s_m_m_scientist_01"; _coroner.ModelPedWorker = "s_m_m_scientist_01"; _coroner.ModelVehicle = Settings.Settings.CoronerModel(); _coroner.Dispatch(); GameFiber.Sleep(1500); _coroner.PedDriver.RandomizeVariation(); _coroner.PedWorker.RandomizeVariation(); var c = new Dialog(ConversationCreator.DialogLineCreator(ConversationCreator.ConversationType.Coroner, _coroner.PedWorker), CsiCreator.Victim.Ped.LeftPosition); c.AddPed(0, Game.LocalPlayer.Character); c.AddPed(1, _coroner.PedWorker); c.DistanceToStop = 3f; _coroner.Dialogue = c; _corData = new ReportData(ReportData.Service.Coroner, _coroner.PedWorker, c.Dialogue); _rDataList.Add(_corData); break; } }
public override string ToString() { switch (Type) { case PropertyType.Null: return("null"); case PropertyType.Calculated: return("calculated"); case PropertyType.Bool: return(Bool.ToString()); case PropertyType.String: return("string: " + StringHandle.ToString()); case PropertyType.MultiValue: return("multi: " + MultiValueHandle.ToString()); case PropertyType.Enum: return("enum: " + Enum.ToString()); case PropertyType.Color: return("color: " + Color.ToString()); case PropertyType.Integer: return(Integer.ToString() + " (integer)"); case PropertyType.Fractional: return(Fractional.ToString() + " (fractional)"); case PropertyType.Percentage: return(Percentage.ToString() + "%"); case PropertyType.AbsLength: return(Points.ToString() + "pt (" + Inches.ToString() + "in, " + Millimeters.ToString() + "mm) (abs)"); case PropertyType.RelLength: return(Points.ToString() + "pt (" + Inches.ToString() + "in, " + Millimeters.ToString() + "mm) (rel)"); case PropertyType.HtmlFontUnits: return(HtmlFontUnits.ToString() + " (html font units)"); case PropertyType.RelHtmlFontUnits: return(RelativeHtmlFontUnits.ToString() + " (relative html font units)"); case PropertyType.Multiple: return(Integer.ToString() + "*"); case PropertyType.Pixels: return(Pixels.ToString() + "px"); case PropertyType.Ems: return(Ems.ToString() + "em"); case PropertyType.Exs: return(Exs.ToString() + "ex"); case PropertyType.Milliseconds: return(Milliseconds.ToString() + "ms"); case PropertyType.kHz: return(kHz.ToString() + "kHz"); case PropertyType.Degrees: return(Degrees.ToString() + "deg"); } return("unknown value type"); }
private bool Read() { if (Ems == null) { throw new NullReferenceException($"Ems is null, Are u miss calling 'UpdateReader` Or Set 'MainEms' !!"); } if (!Ems.ReadClass(this, BaseAddress)) { return(false); } int count = ReadInfo.UseMaxAsReadCount ? Max : Count; if (count > MaxCountTArrayCanCarry) { return(false); } // TODO: Change This Logic try { if (count <= 0) { return(false); } if (Items.Count > count) { Items.RemoveRange(count, Items.Count - count); } else if (Items.Count < count) { Enumerable.Range(Items.Count, count).ToList().ForEach(num => { var instance = (T)Activator.CreateInstance(typeof(T), Ems, (UIntPtr)0x0); Items.Add(instance); }); } } catch { return(false); } return(true); }
/// <summary> /// Set Data On This Class (Doesn't Call ReadMemory Callback) <para /> /// Be Careful When Using This Function /// </summary> /// <param name="fullClassBytes">Full <see cref="ExternalClass"/> Bytes</param> public virtual bool UpdateData(byte[] fullClassBytes) { return(BaseAddress != UIntPtr.Zero && Ems.ReadClass(this, BaseAddress, fullClassBytes)); }
/// <summary> /// Read Data And Set It On This Class /// </summary> public virtual bool UpdateData() { return(BaseAddress != UIntPtr.Zero && Ems.ReadClass(this, BaseAddress)); }
public override bool UpdateData() { // Read Array (Base and Size) if (!Read()) { return(false); } int counter = 0; int itemSize = ReadInfo.IsPointerToData ? (Ems.Is64BitGame ? 8 : 4) : _itemSize; itemSize += ReadInfo.BadSizeAfterEveryItem; // Get TArray Data Ems.ReadBytes(Data, (uint)(Items.Count * itemSize), out byte[] tArrayData); var bytes = new List <byte>(tArrayData); int offset = 0; foreach (T item in Items) { UIntPtr itemAddress; if (ReadInfo.IsPointerToData) { // Get Item Address (Pointer Value (aka Pointed Address)) itemAddress = Ems.Is64BitGame ? (UIntPtr)BitConverter.ToUInt64(tArrayData, offset) : (UIntPtr)BitConverter.ToUInt32(tArrayData, offset); } else { itemAddress = this.BaseAddress + offset; } // Update current item item.UpdateAddress(itemAddress); // Set Data if (ReadInfo.IsPointerToData) { item.UpdateData(); } else { item.UpdateData(bytes.GetRange(offset, itemSize).ToArray()); } // Move Offset offset += itemSize; if (DelayInfo.Delay == 0) { continue; } counter++; if (counter < DelayInfo.DelayEvery) { continue; } Thread.Sleep(DelayInfo.Delay); counter = 0; } return(true); }