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;
            }
        }
Ejemplo n.º 2
0
        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");
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 /// <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));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Read Data And Set It On This Class
 /// </summary>
 public virtual bool UpdateData()
 {
     return(BaseAddress != UIntPtr.Zero && Ems.ReadClass(this, BaseAddress));
 }
Ejemplo n.º 6
0
        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);
        }