Beispiel #1
0
        private async Task OnTick()
        {
            foreach (var vehicle in World.GetAllVehicles())
            {
                var handle = vehicle.Handle;
                if (IsSpotlightEnabled(handle))
                {
                    var door                  = API.GetEntityBoneIndexByName(handle, "door_dside_f");
                    var coords                = API.GetWorldPositionOfEntityBone(handle, door);
                    var doorCoords            = API.GetWorldPositionOfEntityBone(handle, door);
                    var carHeadingVector      = (Vector2)API.GetEntityForwardVector(handle);
                    var carHeadingVectorAngle = AngleConverter(Convert.ToDouble(carHeadingVector.X), Convert.ToDouble(carHeadingVector.Y));

                    SetSpotlightDefaultsIfNull(handle);

                    var finalVector = new Vector3(
                        new Vector2(
                            Convert.ToSingle(Math.Cos((carHeadingVectorAngle + API.DecorGetFloat(handle, DECOR_NAME_XY)) / 57.2957795131)),
                            Convert.ToSingle(Math.Sin((carHeadingVectorAngle + API.DecorGetFloat(handle, DECOR_NAME_XY)) / 57.2957795131))
                            ),
                        API.DecorGetFloat(handle, DECOR_NAME_Z)
                        );

                    API.DrawSpotLight(coords.X, doorCoords.Y, coords.Z + 0.35f, finalVector.X, finalVector.Y, finalVector.Z, 221, 221, 221, 70.0f, API.DecorGetFloat(handle, DECOR_NAME_BRIGHTNESS), 4.3f, 15.0f, 28.6f);
                }
            }
            await Task.FromResult(0);
        }
Beispiel #2
0
        private async Task OnTick()
        {
            int playerVehicle = API.GetVehiclePedIsIn(API.GetPlayerPed(-1), false);

            foreach (var vehicle in World.GetAllVehicles())
            {
                var handle = vehicle.Handle;
                if (IsSpotlightEnabled(handle))
                {
                    string  baseBone          = GetBaseBone(handle);
                    Vector3 baseCoords        = GetBaseCoordinates(handle, baseBone);
                    Vector3 directionalCoords = GetDirectionalCoordinates(handle, baseBone);

                    SetSpotlightDefaultsIfNull(handle);
                    if (handle == playerVehicle)
                    {
                        DrawSpotlightLabel(true);
                    }

                    API.DrawSpotLight(
                        baseCoords.X, baseCoords.Y, baseCoords.Z,
                        directionalCoords.X, directionalCoords.Y, directionalCoords.Z,
                        221, 221, 221,
                        VehicleHasRotatableTargetBone(handle) ? 200f : 70f, // rotatable spotlights have longer max reach
                        API.DecorGetFloat(handle, DECOR_NAME_BRIGHTNESS),
                        4.3f,
                        15.0f,
                        28.6f
                        );
                }
            }
            await Task.FromResult(0);
        }