private void InitializeScript() => Task.Run(async() =>
        {
            if (!InExecution)
            {
                return;
            }

            await InitializeCheck();

            if (IsNeedScript)
            {
                ActionQueue          = new ConcurrentQueue <IAction>();
                List <Table> Entries = lua_manager.GetFunction(State).ToList();

                if (Entries == null)
                {
                    return;
                }

                if (Account.State != Enums.AccountState.FIGHTING)
                {
                    foreach (Table entrie in Entries)
                    {
                        if (entrie["map"] == null)
                        {
                            continue;
                        }

                        if (!Account.Character.IsOnMap(entrie["map"].ToString()))
                        {
                            continue;
                        }

                        Process(entrie);
                        ProcessTags();
                        break;
                    }

                    var delayHumain = new Random().Next(1, 6500);
                    await Task.Delay(delayHumain);

                    await ProcessDequeueAction();
                }
            }
            if (Account.State == Enums.AccountState.IDLE && !IsNeedScript)
            {
                var delayHumain = new Random().Next(1, 300);
                await Task.Delay(delayHumain);
                if (ActionQueue.Count > 0)
                {
                    await ProcessDequeueAction();
                }
            }



            InitializeScript();
        });