public static void RegisterAllAreas(Assembly[] assemblies)
        {
            if (assemblies == null)
            {
                throw new ArgumentNullException(nameof(assemblies));
            }

            AreaRegistration.RegisterAllAreas();

            IEnumerable <Type> areas = TypeAttributeHelper.GetTypesChildOf <AreaRegistration>(assemblies);

            foreach (Type area in areas)
            {
                AreaRegistration areaRegistration = AreaTable.AddArea(area);

                string ns = area.Namespace;
                if (string.IsNullOrEmpty(ns))
                {
                    continue;
                }

                IEnumerable <Type> controllersInArea = TypeAttributeHelper.GetTypesChildOf <Controller>(assemblies)
                                                       .Where(t => t.Namespace != null && t.Namespace.StartsWith(ns, StringComparison.OrdinalIgnoreCase));
                controllersInArea.ToList()
                .ForEach(t => AreaTable.RegisterController(t.FullName, areaRegistration.AreaName));
            }
        }
 public static bool TryGetAreaByID(uint id, out AreaTable areaTable)
 {
     if (AreaTable.TryGetValue(id, out areaTable))
     {
         return(true);
     }
     return(false);
 }
Exemple #3
0
 public void Intialize()
 {
     superArea = AreaTable.GetSuperArea(val);
     if (superArea == null)
     {
         superArea = new AreaSuper(val);
         AreaTable.Add(superArea);
     }
 }
Exemple #4
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            string areaName = AreaTable.GetAreaForController(filterContext.Controller.GetType().FullName);

            if (areaName != null)
            {
                filterContext.RouteData.DataTokens["area"] = areaName;
            }
        }
Exemple #5
0
 public static string GetAreaNameForID(string id)
 {
     DataRow[] rows = AreaTable.Select(COL_AREA_OBJECTNAME + "='" + id + "'");
     if (rows.Length > 0)
     {
         return(Convert.ToString(rows[0][COL_AREA_NAME]));
     }
     else
     {
         return(id);
     }
 }
Exemple #6
0
        public static void Initialize()
        {
            nextPlayerGuid = CharacterTable.getNextGuid();
            nextPlayerGuid++;
            nextItemGuid = InventoryItemTable.getNextGuid();
            nextItemGuid++;
            nextGuildId = GuildTable.getNextGuid();
            nextGuildId++;
            nextMountId = MountTable.getNextGuid();
            nextMountId++;
            nextSpeakingId = SpeakingTable.getNextGuid();
            nextSpeakingId++;
            SpellTable.Load();
            ExpFloorTable.Load();
            MonsterTable.Load();
            ItemTemplateTable.Load();
            ItemTemplateTable.LoadItemActions();
            ItemSetTable.Load();
            DropTable.Load();
            TitleTable.Load();
            IObjectTemplateTable.Load();
            AreaTable.Load();
            AreaSubTable.Load();
            MapTable.Load();
            MapTable.LoadActions();
            CellActionTable.Load();
            MobGroupFixTable.Load();
            BreedTable.Load();
            NpcTemplateTable.Load();
            NpcTemplateTable.LoadPlaces();
            NpcQuestionTable.Load();
            NpcReplyTable.Load();
            ShopNpcTable.Initialize();
            GuildTable.Load();
            CharactersGuildTable.Load();
            TaxCollectorTable.Load();
            PrismeTable.Load();
            BidHouseTable.Load();
            BidHouseTable.LoadItems();
            MountParkTable.Load();
            StaticMountTable.Load();
            MountTable.Load();//TODO Dynamic load of Character mount
            ZaapTable.Load();
            ZaapiTable.Load();

            var Timer = new System.Timers.Timer(1000 * 60 * 25);

            Timer.Elapsed += delegate(object sender, ElapsedEventArgs e)
            {
                Save();
            };
            Timer.Start();
        }
        public static bool TryGetAreaByParentAreaNumber(uint areaNumber, out AreaTable areaTable)
        {
            areaTable = null;
            try
            {
                areaTable = AreaTable.Values.First(v => v.ParentAreaNum == areaNumber);
                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
            }

            return(false);
        }
Exemple #8
0
        public static bool TryGetByAreaNumber(uint areaNumber, out AreaTable areaTable)
        {
            areaTable = null;
            try
            {
                areaTable = AreaTable.Values.First(v => v.AreaNumber == areaNumber);
                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(false);
        }
Exemple #9
0
 public static void LoadPoIsEditorFiles()
 {
     try
     {
         DbcStores.InitFiles();
         AreaPoi.LoadData();
         AreaTable.LoadData();
         DungeonMap.LoadData();
         Map.LoadData();
         WorldMapArea.LoadData();
         WorldMapOverlay.LoadData();
     }
     catch (System.Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Exemple #10
0
        public static void ProcessPacket(WorldClient Client, string Packet)
        {
            switch (Packet[1])
            {
            case 'W':
                ConquestHandler.ProcessConquestGepositionRequest(Client, Packet);
                break;

            case 'I':
                ConquestHandler.ProcessConquestDefenseRequest(Client, Packet);
                break;

            case 'B':
                float porc  = AreaSubTable.getWorldBalance(Client.Character.Alignement);
                float porcN = (float)Math.Round((double)Client.Character.Level / 2.5F + 1.0D);
                Client.Send(new ConquestBonusMessage(porc + "," + porc + "," + porc + ";" + porcN + "," + porcN + "," + porcN + ";" + porc + "," + porc + "," + porc));
                break;

            case 'b':
                Client.Send(new ConquestBalanceMessage(AreaSubTable.getWorldBalance(Client.Character.Alignement) + ";" + AreaTable.getAreaBalance(Client.Character.myMap.subArea.area, Client.Character.Alignement)));
                break;

            case 'F':
                ConquestHandler.ProcessConquestJoinDefenseRequest(Client, Packet);
                break;
            }
        }
Exemple #11
0
        /// <summary>
        /// Sauvegarde les changements effectués.
        /// </summary>
        public static bool Save()
        {
            try
            {
                lock (mySyncSave)
                {
                    long StartTime = Environment.TickCount;
                    Logger.Info("World saving ...");

                    // Execution des requetes
                    lock (mySaveQueue)
                        while (mySaveQueue.Count != 0)
                        {
                            mySaveQueue.Dequeue()();
                        }

                    lock (GuildTable.Cache)
                        foreach (var Guild in GuildTable.Cache.Values)
                        {
                            Guild.SaveChanges();
                            GuildTable.Update(Guild);
                        }

                    lock (CharacterTable.myCharacterById)
                        foreach (var Character in CharacterTable.myCharacterById.Values.Where(x => x.myInitialized))
                        {
                            CharacterTable.Update(Character);
                        }

                    lock (SpeakingTable.Cache)
                        foreach (var Speaking in SpeakingTable.Cache.Values)
                        {
                            SpeakingTable.Add(Speaking);
                        }

                    lock (AreaTable.Cache)
                        foreach (var area in AreaTable.Cache.Values)
                        {
                            AreaTable.Update(area);
                        }

                    lock (AreaSubTable.Cache)
                        foreach (var subarea in AreaSubTable.Cache.Values)
                        {
                            AreaSubTable.Save(subarea);
                        }

                    lock (BidHouseTable.Cache)
                    {
                        var BHI = new List <BidHouseItem>();
                        foreach (var BH in BidHouseTable.Cache.Values)
                        {
                            BHI.AddRange(BH.getAllEntry());
                        }
                        BidHouseTable.Update(BHI);
                    }

                    Logger.Info("World saved in " + (Environment.TickCount - StartTime) + "ms");

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Logger.Error("DatabaseEntities::Save() " + ex.ToString());

                return(false);
            }
        }
Exemple #12
0
 public void Intialize()
 {
     area = AreaTable.Get(areaID);
 }