the check point is not   changing 
	
		
	
	
	
	
		
Youtube Video
			
			
		C#:
	
	using GTANetworkAPI;
using System.Collections.Generic;
using System;
using NeptuneEvo.GUI;
using NeptuneEvo.Core;
using Redage.SDK;
using NeptuneEvo.Handles;
using NeptuneEvo.Functions;
namespace NeptuneEvo.Jobs
{
    class Window_wash : Script
    {
        private static int checkpointPayment = 35;
        private static nLog Log = new nLog("Window_wash");
        [ServerEvent(Event.ResourceStart)]
        public void Event_ResourceStart()
        {
            try
            {
                NAPI.Blip.CreateBlip(727, new Vector3(104.326126, -657.7652, 43.972385), 1.0f, 46, Main.StringToU16("window washer"), 255, 0, true, 0, 0); // Blip on the tickets
                NAPI.TextLabel.CreateTextLabel(Main.StringToU16("~ b ~ click e to change"), new Vector3(104.326126, -657.7652, 45.972385), 30f, 0.4f, 0, new Color(255, 255, 255), true , 0);
                NAPI.Marker.CreateMarker(1, new Vector3(104.326126, -657.7652, 43.972385) - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 1, new Color(255, 255, 255, 220));
                CustomColShape.CreateCylinderColShape(new Vector3(104.326126, -657.7652, 44.972385), 1, 2, 0, ColShapeEnums.WishWork);
                int i = 0;
                foreach (var Check in Checkpoints)
                {
                    CustomColShape.CreateCylinderColShape(Check.Position, 1, 2, 0, ColShapeEnums.WishPoint, i);
                    i++;
                }
            }
            catch (Exception e) { Log.Write("ResourceStart: " + e.Message, nLog.Type.Error); }
        }
        [Interaction(ColShapeEnums.WishWork)]
        public static void StartWorkDay(ExtPlayer player)
        {
            var characterData = player.CharacterData;
            if (player.GetData<bool>("ON_WORK"))
            {
                Customization.ApplyCharacter(player);
                player.SetData("ON_WORK", false);
                Trigger.ClientEvent(player, "deleteCheckpoint", 15);
                Trigger.ClientEvent(player, "deleteWorkBlip");
                Notify.Send(player, NotifyType.Info, NotifyPosition.BottomCenter, $"You finished the working day", 3000);
                //player.SetData("PAYMENT", 0);
                return;
            }
            else
            {
                //Customization.ClearClothes(player, player.CharacterData.Gender);
                if (characterData.Gender)
                {
                    player.SetClothes(3, 73, 0);
                    player.SetClothes(4, 36, 0);
                    player.SetClothes(6, 1, 0);
                    player.SetClothes(8, 59, 1);
                    player.SetClothes(11, 226, 0);
                }
                else
                {
                    player.SetClothes(3, 84, 0);
                    player.SetClothes(4, 35, 0);
                    player.SetClothes(6, 3, 0);
                    player.SetClothes(8, 36, 1);
                    player.SetClothes(11, 236, 0);
                }
                var check = WorkManager.rnd.Next(0, Checkpoints.Count - 1);
                player.SetData("WORKCHECK", check);
                Trigger.ClientEvent(player, "createCheckpoint", 15, 1, Checkpoints[check].Position, 1, 0, 255, 0, 0);
                Trigger.ClientEvent(player, "createWorkBlip", Checkpoints[check].Position);
                player.SetData("ON_WORK", true);
                Notify.Send(player, NotifyType.Info, NotifyPosition.BottomCenter, "You started a working day", 3000);
                return;
            }
        }
        private static List<Checkpoint> Checkpoints = new List<Checkpoint>()
        {
            new Checkpoint(new Vector3(118.79017, -665.9643, 45.95625), -23.639816),
            new Checkpoint(new Vector3(120.634315, -666.58014, 45.95625), -13.292203),
            new Checkpoint(new Vector3(123.69086, -667.0914, 45.95625), -10.438878),
            new Checkpoint(new Vector3(125.65409, -667.5952, 45.95625), -18.94156),
            new Checkpoint(new Vector3(127.787415, -668.02423, 45.95625), 5.300281),
            new Checkpoint(new Vector3(129.86328, -668.0992, 45.95625), -5.734886),
            new Checkpoint(new Vector3(132.90869, -667.81537, 45.95625), 9.259414),
            new Checkpoint(new Vector3(135.12962, -667.6574, 45.95625), 13.831611),
            new Checkpoint(new Vector3(137.04741, -667.1292, 45.95625), 4.458023),
            new Checkpoint(new Vector3(139.12645, -666.399, 45.95625), 28.539438),
            new Checkpoint(new Vector3(142.0683, -665.10046, 45.95625), 35.420662),
            new Checkpoint(new Vector3(143.71693, -664.05273, 45.95625), 35.128452),
            new Checkpoint(new Vector3(145.49014, -662.7563, 45.957424), 38.062004),
            new Checkpoint(new Vector3(147.13977, -661.38904, 45.957424), 47.911137),
            new Checkpoint(new Vector3(149.31818, -658.7838, 45.957424), 53.2683),
            new Checkpoint(new Vector3(150.45244, -657.344, 45.957424), 52.1052),
            new Checkpoint(new Vector3(151.51332, -655.6005, 45.957424), 63.713326),
            new Checkpoint(new Vector3(152.44742, -653.6454, 45.957424), 64.83632),
            new Checkpoint(new Vector3(154.05508, -650.7865, 45.95644), 64.58994),
            new Checkpoint(new Vector3(154.72044, -648.9613, 45.956432), 69.93563),
            new Checkpoint(new Vector3(155.54778, -646.9794, 45.95634), 65.82181),
            new Checkpoint(new Vector3(156.22055, -644.84045, 45.956444), 67.78704),
            new Checkpoint(new Vector3(157.21472, -642.3772, 45.956345), 62.802315),
            new Checkpoint(new Vector3(157.92592, -640.4476, 45.956326), 68.49178),
        };
        public static List<uint> WIndow_washObjects = new List<uint>
        {
            NAPI.Util.GetHashKey("prop_sponge_01"),
        };
        [Interaction(ColShapeEnums.WishPoint)]
        private static void PlayerEnterCheckpoint(ExtPlayer player, int colID)
        {
            try
            {
                //if (player != null) return;
                if (!player.GetData<bool>("ON_WORK") || colID != player.GetData<int>("WORKCHECK")) return;
                if (Checkpoints[colID].Position.DistanceTo(player.Position) > 3) return;
                var payment = checkpointPayment;
                MoneySystem.Wallet.Change(player, payment);
                GameLog.Money($"server", $"player({player.CharacterData.UUID})", payment, $"Window_washCheck");
                NAPI.Entity.SetEntityPosition(player, Checkpoints[colID].Position + new Vector3(0, 0, 1.2));
                NAPI.Entity.SetEntityRotation(player, new Vector3(0, 0, Checkpoints[colID].Heading));
                Main.OnAntiAnim(player);
                BasicSync.AttachObjectToPlayer(player, NAPI.Util.GetHashKey("prop_sponge_01"), 57005, new Vector3(0.15, 0.02, 0), new Vector3(0, 90, 0));
                player.PlayAnimation("amb@world_human_maid_clean@base", "base", 39);
                player.SetData("WORKCHECK", -1);
                NAPI.Task.Run(() => {
                    try
                    {
                        if (player != null)
                        {
                            player.StopAnimation();
                            Main.OffAntiAnim(player);
                            var nextCheck = WorkManager.rnd.Next(0, Checkpoints.Count - 1);
                            while (nextCheck == colID) nextCheck = WorkManager.rnd.Next(0, Checkpoints.Count - 1);
                            player.SetData("WORKCHECK", nextCheck);
                            BasicSync.DetachObject(player);
                            Trigger.ClientEvent(player, "createCheckpoint", 15, 1, Checkpoints[nextCheck].Position, 1, 0, 255, 0, 0);
                            Trigger.ClientEvent(player, "createWorkBlip", Checkpoints[nextCheck].Position);
                        }
                    }
                    catch { }
                }, 4000);
            }
            catch (Exception e) { Log.Write("PlayerEnterCheckpoint: " + e.Message, nLog.Type.Error); }
        }
        internal class Checkpoint
        {
            public Vector3 Position { get; }
            public double Heading { get; }
            public Checkpoint(Vector3 pos, double rot)
            {
                Position = pos;
                Heading = rot;
            }
        }
    }
}