Exemple #1
0
        public static void WriteGOEntryId()
        {
            GOMgr.LoadAll();

            WriteEnum("GOEntryId", "GameObjects", GOMgr.Entries, false,
                      (entry) => { return(true); },
                      (entry) => {
                return(entry.Name.Trim().Length > 0 ? entry.Name.Trim() : "Unknown");
            },
                      (entry) => {
                var strs = new List <string>();
                strs.Add("Type: " + entry.Type + (entry.IsConsumable ? " (Consumable)" : ""));
                if (entry.LinkedTrap != null)
                {
                    strs.Add("Trap: " + entry.LinkedTrap);
                }
                if (entry.Lock != null)
                {
                    strs.Add("Lock: " + entry.Lock);
                }
                //if (entry.Templates != null && entry.Templates.Count > 0)
                //{
                //    strs.Add("Templates: " + entry.Templates.ToString("; "));
                //}
                return(strs.ToString("\n"));
            },
                      (entry, name) => null,
                      (entry) => { return(entry.Id.ToString()); });
        }
Exemple #2
0
        public static void InitGOs()
        {
            var rethilgoreDoorEntry = GOMgr.GetEntry(GOEntryId.CourtyardDoor);          // rethilgore door

            if (rethilgoreDoorEntry != null)
            {
                rethilgoreDoorEntry.Activated += go =>
                {
                    var instance = go.Map as ShadowfangKeep;
                    if (instance != null && instance.rethilgoreDoor == null)
                    {
                        // set the instance's Door object after the Door spawned
                        instance.rethilgoreDoor = go;
                    }
                };
            }

            var fenrusDoorEntry = GOMgr.GetEntry(GOEntryId.SorcerersGate);              // fenrus door

            if (fenrusDoorEntry != null)
            {
                fenrusDoorEntry.Activated += go =>
                {
                    var instance = go.Map as ShadowfangKeep;
                    if (instance != null && instance.fenrusDoor == null)
                    {
                        // set the instance's Door object after the Door spawned
                        instance.fenrusDoor = go;
                    }
                };
            }
        }
        public static void FixDeathComesGOs()
        {
            var entry = GOMgr.GetEntry(GOEntryId.EyeOfAcherusControlMechanism);

            entry.Used += ControlMechanismUsed;

            entry            = GOMgr.GetEntry(GOEntryId.AbandonedMail);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.SaroniteArrow);
            entry.Activated += NewAvalonSpawnsActivated;

            entry            = GOMgr.GetEntry(GOEntryId.Unknown_269);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_350);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_351);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_352);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_353);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_354);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_359);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_361);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_363);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_364);
            entry.Activated += NewAvalonSpawnsActivated;
            entry            = GOMgr.GetEntry(GOEntryId.Unknown_365);
            entry.Activated += NewAvalonSpawnsActivated;
        }
Exemple #4
0
        /// <summary>
        /// spawns all of our GOs, including {buffs} and doors.
        /// </summary>
        protected override void SpawnGOs()
        {
            base.SpawnGOs();

            GOEntry allianceDoorEntry1 = GOMgr.GetEntry(GOEntryId.Doodad_PortcullisActive04);
            GOEntry allianceDoorEntry2 = GOMgr.GetEntry(GOEntryId.Doodad_PortcullisActive02_2);
            GOEntry allianceDoorEntry3 = GOMgr.GetEntry(GOEntryId.Doodad_PortcullisActive01_2);

            GOEntry hordeDoor1 = GOMgr.GetEntry(GOEntryId.Doodad_RazorfenDoor01);
            GOEntry hordeDoor2 = GOMgr.GetEntry(GOEntryId.Doodad_RazorfenDoor02);

            _allianceDoor1 = allianceDoorEntry1.FirstSpawnEntry.Spawn(this);
            _allianceDoor2 = allianceDoorEntry2.FirstSpawnEntry.Spawn(this);
            _allianceDoor3 = allianceDoorEntry3.FirstSpawnEntry.Spawn(this);

            _hordeDoor1 = hordeDoor1.FirstSpawnEntry.Spawn(this);
            _hordeDoor2 = hordeDoor2.FirstSpawnEntry.Spawn(this);

            // adjust anim progress so the door appears upright right off the bat
            _allianceDoor1.AnimationProgress = 255;
            _allianceDoor2.AnimationProgress = 255;
            _allianceDoor3.AnimationProgress = 255;
            _hordeDoor1.AnimationProgress    = 255;
            _hordeDoor2.AnimationProgress    = 255;

            RegisterPowerupEvents();
        }
        public static void FixGOs()
        {
            var entry = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison);

            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_2);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_3);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_4);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_5);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_6);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_7);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_8);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_9);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_10);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_11);
            entry.Used += SoulPrisonUsed;
            entry       = GOMgr.GetEntry(GOEntryId.AcherusSoulPrison_12);
            entry.Used += SoulPrisonUsed;
        }
Exemple #6
0
        public static void RegisterEvents()
        {
            var standEntry = GOMgr.GetEntry(SilverwingFlagStandId) as GOFlagStandEntry;

            standEntry.Side = BattlegroundSide.Alliance;
            var droppedEntry = GOMgr.GetEntry(SilverwingFlagId) as GOFlagDropEntry;

            droppedEntry.Side = BattlegroundSide.Alliance;

            standEntry        = GOMgr.GetEntry(WarsongClanFlagStandId) as GOFlagStandEntry;
            standEntry.Side   = BattlegroundSide.Horde;
            droppedEntry      = GOMgr.GetEntry(WarsongFlagId) as GOFlagDropEntry;
            droppedEntry.Side = BattlegroundSide.Horde;

            // register AreaTrigger capture events
            AreaTrigger hordeFlagAT    = AreaTriggerMgr.GetTrigger(AreaTriggerId.WarsongGulchHordeFlagSpawn);
            AreaTrigger allianceFlagAT = AreaTriggerMgr.GetTrigger(AreaTriggerId.WarsongGulchAllianceFlagSpawn);

            hordeFlagAT.Triggered    += HordeCaptureTriggered;
            allianceFlagAT.Triggered += AllianceCaptureTriggered;

            GOMgr.GetEntry(WarsongClanFlagStandId).Used += HandleFlagStandUsed;
            GOMgr.GetEntry(SilverwingFlagStandId).Used  += HandleFlagStandUsed;

            GOMgr.GetEntry(WarsongFlagId).Used    += HandleDroppedFlagUsed;
            GOMgr.GetEntry(SilverwingFlagId).Used += HandleDroppedFlagUsed;
        }
Exemple #7
0
 private static void OnLoadClicked(GossipConversation convo)
 {
     GOMgr.LoadAllLater();
     NPCMgr.LoadAllLater();
     convo.Character.SendSystemMessage(RealmLangKey.PleaseWait);
     convo.Character.AddUpdateAction(new PeriodicLoadMapTimer(convo));
 }
Exemple #8
0
 private static void OnLoadClicked(GossipConversation convo)
 {
     GOMgr.LoadAllLater();
     NPCMgr.LoadAllLater();
     convo.Character.SendSystemMessage(RealmLangKey.PleaseWait, new object[0]);
     convo.Character.AddUpdateAction((ObjectUpdateTimer) new MapEditorMenu.PeriodicLoadMapTimer(convo));
 }
Exemple #9
0
        protected override void SpawnGOs()
        {
            base.SpawnGOs();
            GOEntry allianceDoorEntry = GOMgr.GetEntry(GOEntryId.ALLIANCEDOOR);
            GOEntry hordeDoorEntry    = GOMgr.GetEntry(GOEntryId.HORDEDOOR);

            _allianceDoor = allianceDoorEntry.FirstSpawnEntry.Spawn(this);
            _hordeDoor    = hordeDoorEntry.FirstSpawnEntry.Spawn(this);
        }
Exemple #10
0
        public static void InitGOs()
        {
            scourgeTransporter = GOMgr.GetEntry(GOEntryId.ScourgeTransporter_3);
            scourgeTransporter.DefaultGossip = new GossipMenu(1,
                                                              new MultiStringGossipMenuItem(DefaultAddonLocalizer.Instance.GetTranslations(AddonMsgKey.NPCTiare),
                                                                                            convo => convo.Speaker.SpellCast.Trigger(SpellId.UpperSpireTeleport, convo.Character))
                                                              );

            iceWall = GOMgr.GetEntry(GOEntryId.IceWall_2);
        }
Exemple #11
0
        /// <summary>
        /// Creates a new GameObject with the given parameters
        /// </summary>
        public static GameObject Create(GOEntryId id, Map map, GOSpawnEntry spawnEntry = null, GOSpawnPoint spawnPoint = null)
        {
            var entry = GOMgr.GetEntry(id);

            if (entry != null)
            {
                return(Create(entry, map, spawnEntry, spawnPoint));
            }
            return(null);
        }
Exemple #12
0
        /// <summary>
        /// Creates the given kind of GameObject with the default Template
        /// </summary>
        public static GameObject Create(GOEntryId id, IWorldLocation location, GOSpawnEntry spawnEntry = null, GOSpawnPoint spawnPoint = null)
        {
            var entry = GOMgr.GetEntry(id);

            if (entry == null)
            {
                return(null);
            }
            return(Create(entry, location, spawnEntry, spawnPoint));
        }
Exemple #13
0
            public override void Process(CmdTrigger <RealmServerCmdArgs> trigger)
            {
                var mod = trigger.Text.NextModifiers();
                var id  = trigger.Text.NextEnum(GOEntryId.End);

                var entry = GOMgr.GetEntry(id, false);

                var target = trigger.Args.Target;
                var map    = target != null ? target.Map : World.Kalimdor;

                if (mod == "c")
                {
                    // spawn closest
                    GOSpawnEntry closest;

                    if (entry != null)
                    {
                        // Entry specified
                        closest = entry.SpawnEntries.GetClosestEntry(target);
                    }
                    else
                    {
                        // no entry, just spawn any nearby Template
                        var templates = GOMgr.GetSpawnPoolTemplatesByMap(map.Id);
                        closest = templates == null ? null : templates.GetClosestEntry(target);
                    }

                    if (closest == null)
                    {
                        trigger.Reply("No valid SpawnEntries found (Entry: {0})", entry);
                    }
                    else
                    {
                        closest.Spawn(map);
                        trigger.Reply("Spawned: " + closest.Entry);
                        if (target != null)
                        {
                            target.TeleportTo(map, closest.Position);
                        }
                    }
                }
                else
                {
                    if (entry != null)
                    {
                        // spawn a new GO
                        var go = entry.Spawn(trigger.Args.Target, trigger.Args.Target);
                        trigger.Reply("Successfully spawned new GO: {0}.", go.Name);
                    }
                    else
                    {
                        trigger.Reply("Invalid GO.");
                    }
                }
            }
Exemple #14
0
        /// <summary>
        /// Creates a normal-looking portal to represent a node in the network
        /// </summary>
        public static WorldObject CreateDefaultPortal(TeleportNode node, Map map, Vector3 pos)
        {
            var teleportMenu = WorldLocationMgr.CreateTeleMenu(node.Destinations);
            var portalEntry  = GOMgr.GetEntry(DefaultPortalGOid);
            var go           = portalEntry.Spawn(map, pos);

            go.State      = GameObjectState.Enabled;
            go.ScaleX     = 1.5f;
            go.GossipMenu = teleportMenu;
            return(go);
        }
Exemple #15
0
        public static void RegisterEvents()
        {
            var consoleEntry = GOMgr.GetEntry(TonkControlConsoleGOEntryId);

            if (consoleEntry == null)
            {
                return;
            }
            consoleEntry.Used      += TonkConsoleUsed;
            consoleEntry.Activated += TonkConsoleActivated;
        }
Exemple #16
0
        public static void WriteAllQuests()
        {
            Tools.StartRealm();
            QuestMgr.LoadAll();
            ItemMgr.LoadAll();
            NPCMgr.LoadNPCDefs();
            GOMgr.LoadAll();
            AreaTriggerMgr.Initialize();

            WriteQuests("Quests", null);
        }
Exemple #17
0
        public static void InitGOs()
        {
            _ulduarTeleport = GOMgr.GetEntry(GOEntryId.UlduarTeleporter);

            _ulduarTeleport.DefaultGossip = new GossipMenu(1,
                                                           new MultiStringGossipMenuItem(DefaultAddonLocalizer.Instance.GetTranslations(AddonMsgKey.NPCTiare),
                                                                                         convo => convo.Speaker.SpellCast.Trigger(SpellId.AntechamberTeleport, convo.Character))
                                                           );

            __doodadUlIniverseGlobe01 = GOMgr.GetEntry(GOEntryId.Doodad_UL_UniverseGlobe01);
        }
Exemple #18
0
        private static void DeSpawnEvent(WorldEvent worldEvent)
        {
            foreach (var worldEventNPC in worldEvent.NPCSpawns)
            {
                var spawnEntry = NPCMgr.GetSpawnEntry(worldEventNPC.Guid);
                var map        = spawnEntry.Map;

                //if the map is null then this saves us some work
                //since the map wont spawn any inactive events when
                //it is created
                if (map == null)
                {
                    continue;
                }

                if (worldEventNPC.Spawn)
                {
                    map.RemoveNPCSpawnPool(spawnEntry.PoolTemplate);
                }
                else
                {
                    foreach (var point in spawnEntry.SpawnPoints.ToArray())
                    {
                        point.Respawn();
                    }
                }
            }

            foreach (var worldEventGO in worldEvent.GOSpawns)
            {
                var spawnEntry = GOMgr.GetSpawnEntry(worldEventGO.Guid);
                var map        = spawnEntry.Map;

                //if the map is null then this saves us some work
                //since the map wont spawn any inactive events when
                //it is created
                if (map == null)
                {
                    continue;
                }

                if (worldEventGO.Spawn)
                {
                    map.RemoveGOSpawnPool(spawnEntry.PoolTemplate);
                }
                else
                {
                    foreach (var point in spawnEntry.SpawnPoints.ToArray())
                    {
                        point.Respawn();
                    }
                }
            }
        }
Exemple #19
0
        /// <summary>Creates a new GameObject with the given parameters</summary>
        public static GameObject Create(GOEntryId id, Map map, GOSpawnEntry spawnEntry = null,
                                        GOSpawnPoint spawnPoint = null)
        {
            GOEntry entry = GOMgr.GetEntry(id, true);

            if (entry != null)
            {
                return(GameObject.Create(entry, map, spawnEntry, spawnPoint));
            }
            return((GameObject)null);
        }
Exemple #20
0
        protected override void AddSpawns()
        {
            neutralBannerSpawn = GOMgr.GetEntry(GOEntryId.BlacksmithBanner_2).FirstSpawnEntry;
            neutralAuraSpawn   = GOMgr.GetEntry(GOEntryId.NeutralBannerAura).SpawnEntries[(int)ArathiBases.Blacksmith];

            allianceBannerSpawn = GOMgr.GetEntry(GOEntryId.AllianceBanner_10).SpawnEntries[(int)ArathiBases.Blacksmith];
            allianceAuraSpawn   = GOMgr.GetEntry(GOEntryId.AllianceBannerAura).SpawnEntries[(int)ArathiBases.Blacksmith];

            hordeBannerSpawn = GOMgr.GetEntry(GOEntryId.HordeBanner_10).SpawnEntries[(int)ArathiBases.Blacksmith];
            hordeAuraSpawn   = GOMgr.GetEntry(GOEntryId.HordeBannerAura).SpawnEntries[(int)ArathiBases.Blacksmith];

            allianceAttackBannerSpawn = GOMgr.GetEntry(GOEntryId.ContestedBanner_26).SpawnEntries[(int)ArathiBases.Blacksmith];
            hordeAttackBannerSpawn    = GOMgr.GetEntry(GOEntryId.ContestedBanner_25).SpawnEntries[(int)ArathiBases.Blacksmith];
        }
Exemple #21
0
        public static void FixGOs()
        {
            GOEntry allianceDoorEntry = GOMgr.GetEntry(GOEntryId.ALLIANCEDOOR);
            GOEntry hordeDoorEntry    = GOMgr.GetEntry(GOEntryId.HORDEDOOR);

            allianceDoorEntry.FirstSpawnEntry.State = GameObjectState.Enabled;
            allianceDoorEntry.Flags |= GameObjectFlags.DoesNotDespawn | GameObjectFlags.InUse;
            allianceDoorEntry.FirstSpawnEntry.AutoSpawns = false;

            hordeDoorEntry.FirstSpawnEntry.State = GameObjectState.Enabled;
            hordeDoorEntry.Flags |= GameObjectFlags.DoesNotDespawn | GameObjectFlags.InUse;
            hordeDoorEntry.FirstSpawnEntry.AutoSpawns = false;

            GOEntry bersekerBuffEntry = GOMgr.GetEntry(GOEntryId.BerserkBuff_6);
            GOEntry foodBuffEntry     = GOMgr.GetEntry(GOEntryId.FoodBuff_5);
            GOEntry speedBuffEntry    = GOMgr.GetEntry(GOEntryId.SpeedBuff_3);

            GOEntry allianceAttackFlagEntry  = GOMgr.GetEntry(GOEntryId.ContestedBanner_26);
            GOEntry hordeControlledFlagEntry = GOMgr.GetEntry(GOEntryId.HordeBanner_10);

            GOEntry hordeAttackFlagEntry        = GOMgr.GetEntry(GOEntryId.ContestedBanner_25);
            GOEntry allianceControlledFlagEntry = GOMgr.GetEntry(GOEntryId.AllianceBanner_10);

            GOEntry farmBannerEntry       = GOMgr.GetEntry(GOEntryId.FarmBanner_2);
            GOEntry mineBannerEntry       = GOMgr.GetEntry(GOEntryId.MineBanner_2);
            GOEntry lumbermillBannerEntry = GOMgr.GetEntry(GOEntryId.LumberMillBanner_2);
            GOEntry stablesBannerEntry    = GOMgr.GetEntry(GOEntryId.StableBanner_2);
            GOEntry blacksmithBannerEntry = GOMgr.GetEntry(GOEntryId.BlacksmithBanner_2);

            GOEntry neutralBannerAuraEntry  = GOMgr.GetEntry(GOEntryId.NeutralBannerAura);
            GOEntry hordeBannerAuraEntry    = GOMgr.GetEntry(GOEntryId.HordeBannerAura);
            GOEntry allianceBannerAuraEntry = GOMgr.GetEntry(GOEntryId.AllianceBannerAura);

            farmBannerEntry.FirstSpawnEntry.AutoSpawns       = false;
            mineBannerEntry.FirstSpawnEntry.AutoSpawns       = false;
            lumbermillBannerEntry.FirstSpawnEntry.AutoSpawns = false;
            stablesBannerEntry.FirstSpawnEntry.AutoSpawns    = false;
            blacksmithBannerEntry.FirstSpawnEntry.AutoSpawns = false;

            allianceAttackFlagEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns     = false);
            allianceControlledFlagEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns = false);
            hordeAttackFlagEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns        = false);
            hordeControlledFlagEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns    = false);

            neutralBannerAuraEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns  = false);
            hordeBannerAuraEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns    = false);
            allianceBannerAuraEntry.SpawnEntries.ForEach(spawn => spawn.AutoSpawns = false);
        }
Exemple #22
0
            public override void Process(CmdTrigger <RealmServerCmdArgs> trigger)
            {
                string  str    = trigger.Text.NextModifiers();
                GOEntry entry  = GOMgr.GetEntry(trigger.Text.NextEnum(GOEntryId.End), false);
                Unit    target = trigger.Args.Target;
                Map     map    = target != null ? target.Map : World.Kalimdor;

                if (str == "c")
                {
                    GOSpawnEntry goSpawnEntry;
                    if (entry != null)
                    {
                        goSpawnEntry = entry.SpawnEntries.GetClosestEntry(target);
                    }
                    else
                    {
                        List <GOSpawnPoolTemplate> poolTemplatesByMap = GOMgr.GetSpawnPoolTemplatesByMap(map.Id);
                        goSpawnEntry = poolTemplatesByMap == null
              ? null
              : poolTemplatesByMap.GetClosestEntry(target);
                    }

                    if (goSpawnEntry == null)
                    {
                        trigger.Reply("No valid SpawnEntries found (Entry: {0})", (object)entry);
                    }
                    else
                    {
                        goSpawnEntry.Spawn(map);
                        trigger.Reply("Spawned: " + goSpawnEntry.Entry);
                        if (target == null)
                        {
                            return;
                        }
                        target.TeleportTo(map, goSpawnEntry.Position);
                    }
                }
                else if (entry != null)
                {
                    GameObject gameObject = entry.Spawn(trigger.Args.Target, trigger.Args.Target);
                    trigger.Reply("Successfully spawned new GO: {0}.", (object)gameObject.Name);
                }
                else
                {
                    trigger.Reply("Invalid GO.");
                }
            }
        public static void InitGOs()
        {
            var cathedralDoorEntry = GOMgr.GetEntry(GOEntryId.HighInquisitorsDoor);

            if (cathedralDoorEntry != null)
            {
                cathedralDoorEntry.Activated += go =>
                {
                    var instance = go.Map as ScarletMonastery;
                    if (instance != null && instance.cathedralDoor == null)
                    {
                        // set the instance's Door object after the Door spawned
                        instance.cathedralDoor = go;
                    }
                };
            }
        }
Exemple #24
0
        private static void DeSpawnEvent(WorldEvent worldEvent)
        {
            foreach (WorldEventNPC npcSpawn in worldEvent.NPCSpawns)
            {
                NPCSpawnEntry spawnEntry = NPCMgr.GetSpawnEntry(npcSpawn.Guid);
                Map           map        = spawnEntry.Map;
                if (map != null)
                {
                    if (npcSpawn.Spawn)
                    {
                        map.RemoveNPCSpawnPool(spawnEntry.PoolTemplate);
                    }
                    else
                    {
                        foreach (SpawnPoint <NPCSpawnPoolTemplate, NPCSpawnEntry, NPC, NPCSpawnPoint, NPCSpawnPool>
                                 spawnPoint in spawnEntry.SpawnPoints.ToArray())
                        {
                            spawnPoint.Respawn();
                        }
                    }
                }
            }

            foreach (WorldEventGameObject goSpawn in worldEvent.GOSpawns)
            {
                GOSpawnEntry spawnEntry = GOMgr.GetSpawnEntry(goSpawn.Guid);
                Map          map        = spawnEntry.Map;
                if (map != null)
                {
                    if (goSpawn.Spawn)
                    {
                        map.RemoveGOSpawnPool(spawnEntry.PoolTemplate);
                    }
                    else
                    {
                        foreach (SpawnPoint <GOSpawnPoolTemplate, GOSpawnEntry, GameObject, GOSpawnPoint, GOSpawnPool>
                                 spawnPoint in spawnEntry.SpawnPoints.ToArray())
                        {
                            spawnPoint.Respawn();
                        }
                    }
                }
            }
        }
Exemple #25
0
#pragma warning restore 0649

        #endregion

        protected WSGFaction(WarsongGulch instance,
                             SpellId flagSpell,
                             SpellId flagDropSpell,
                             SpellId flagDropDebuff,
                             SpellId flagCarrierDebuffSpellId,
                             GOEntryId flagStand,
                             GOEntryId flagDropId)
        {
            Instance                = instance;
            _flagSpell              = SpellHandler.Get(flagSpell);
            _flagDropSpell          = SpellHandler.Get(flagDropSpell);
            _flagDropDebuff         = SpellHandler.Get(flagDropDebuff);
            _flagCarrierDebuffSpell = SpellHandler.Get(flagCarrierDebuffSpellId);
            FlagStandEntry          = GOMgr.GetEntry(flagStand);
            DroppedFlagEntry        = GOMgr.GetEntry(flagDropId);

            _flagRespawnTime = WarsongGulch.FlagRespawnTimeMillis;
            Score            = 0;
        }
Exemple #26
0
        public static void RegisterEvents()
        {
            var blastenheimer5000Elwynn   = GOMgr.GetEntry(Blastenheimer5000ElwynnId) as GOGooberEntry;
            var blastenheimer5000Terokkar = GOMgr.GetEntry(Blastenheimer5000TerokkarId) as GOGooberEntry;
            var blastenheimer5000Mulgore  = GOMgr.GetEntry(Blastenheimer5000MulgoreId) as GOGooberEntry;

            if (blastenheimer5000Elwynn != null)
            {
                blastenheimer5000Elwynn.Used += Blastenheimer5000Used;
            }
            if (blastenheimer5000Terokkar != null)
            {
                blastenheimer5000Terokkar.Used += Blastenheimer5000Used;
            }
            if (blastenheimer5000Mulgore != null)
            {
                blastenheimer5000Mulgore.Used += Blastenheimer5000Used;
            }
        }
Exemple #27
0
 public override void Process(CmdTrigger <RealmServerCmdArgs> trigger)
 {
     if (GOMgr.Loaded)
     {
         trigger.Reply("GO definitions have already been loaded.");
     }
     else
     {
         ServerApp <WCell.RealmServer.RealmServer> .IOQueue.AddMessage((Action)(() =>
         {
             trigger.Reply("Loading GOs...");
             GOMgr.LoadAll();
             if (Map.AutoSpawnMaps)
             {
                 MapCommand.MapSpawnCommand.SpawnAllMaps(trigger);
             }
             trigger.Reply("Done.");
         }));
     }
 }
Exemple #28
0
        /// <summary>Finalize this GOSpawnEntry</summary>
        /// <param name="addToPool">If set to false, will not try to add it to any pool (recommended for custom GOSpawnEntry that share a pool)</param>
        public override void FinalizeDataHolder(bool addToPool)
        {
            if (Entry == null)
            {
                Entry = GOMgr.GetEntry(EntryId, false);
                if (Entry == null)
                {
                    ContentMgr.OnInvalidDBData("{0} had an invalid EntryId.", (object)this);
                    return;
                }
            }

            if (Scale == 0.0)
            {
                Scale = 1f;
            }
            if (EntryId == GOEntryId.Loot)
            {
                EntryId = (GOEntryId)EntryIdRaw;
            }
            else
            {
                EntryIdRaw = (uint)EntryId;
            }
            if (Rotations == null)
            {
                Rotations = new float[4];
            }
            base.FinalizeDataHolder(addToPool);
            if (MapId == MapId.End || MapId == MapId.None)
            {
                return;
            }
            Entry.SpawnEntries.Add(this);
            ArrayUtil.Set(ref GOMgr.SpawnEntries, SpawnId, this);
            if (!addToPool)
            {
                return;
            }
            AddToPoolTemplate();
        }
Exemple #29
0
        /*
         * /// <summary>
         * /// Converts the log-file in the given file (within the <c>LogFolder</c>)
         * /// to a human-readable file within the <c>LogOutputFolder</c>.
         * /// </summary>
         * /// <param name="filename">The name of the file within the LogFolder to be converter</param>
         * /// <param name="converter">The Converter-method, either <c>KSnifferLogConverter.ConvertLog</c> or <c>SniffzitLogConverter.ConvertLog</c></param>
         * public static void ConvertLog(string filename, Action<string, string> converter)
         * {
         *      Directory.CreateDirectory(ToolConfig.LogFolder);
         *      Directory.CreateDirectory(ToolConfig.LogOutputFolder);
         *
         *      var inputFile = Path.Combine(ToolConfig.LogFolder, filename);
         *      Console.WriteLine("Converting log-file: " + new FileInfo(inputFile).FullName);
         *
         *      DebugUtil.Init();
         *
         *      var outFile = Path.Combine(ToolConfig.LogOutputFolder, filename);
         *      if (!outFile.EndsWith(".txt"))
         *      {
         *              outFile += ".txt";
         *      }
         *      converter(inputFile, outFile);
         * }
         *
         * [Tool]
         * public static void ConvertKSnifferLogSingleLine(string filename)
         * {
         *      Directory.CreateDirectory(ToolConfig.LogFolder);
         *      Directory.CreateDirectory(ToolConfig.LogOutputFolder);
         *
         *      var inputFile = Path.Combine(ToolConfig.LogFolder, filename);
         *      Console.Write("Converting log-file: " + new FileInfo(inputFile).FullName + " ...");
         *
         *      DebugUtil.Init();
         *
         *      var outFile = Path.Combine(ToolConfig.LogOutputFolder, filename);
         *      if (!outFile.EndsWith(".txt"))
         *      {
         *              outFile += ".txt";
         *      }
         *
         *      KSnifferLogConverter.ConvertLog(inputFile, outFile, true);
         *      Console.WriteLine("Done. - Output has been written to: " + new FileInfo(outFile).FullName);
         *      //Console.WriteLine();
         * }*/

        public static void Startup()
        {
            Utility.Measure("Load all", 1, () =>
            {
                ItemMgr.LoadAll();
                NPCMgr.LoadNPCDefs();
                GOMgr.LoadAll();
                QuestMgr.LoadAll();
            });


            Utility.Measure("Basic startup sequence", 1, () =>
            {
                RealmServ.Instance.Start();

                Utility.Measure("Load all", 1, () =>
                {
                    ItemMgr.LoadAll();
                    NPCMgr.LoadNPCDefs();
                    GOMgr.LoadAll();
                    QuestMgr.LoadAll();
                });

                Map.AutoSpawnMaps = true;
                var easternKD     = World.GetNonInstancedMap(MapId.EasternKingdoms);
                var kalimdor      = World.GetNonInstancedMap(MapId.Kalimdor);
                var outlands      = World.GetNonInstancedMap(MapId.Outland);
                Utility.Measure("Spawning Main Maps", 1, () =>
                {
                    //easternKD.Start();
                    //kalimdor.Start();
                });


                GC.Collect();
                Console.WriteLine("Total memory usage with fully spawned world: {0}", GC.GetTotalMemory(true));
            });
        }
Exemple #30
0
        public override void Apply()
        {
            var goId    = (GOEntryId)Effect.MiscValue;
            var goEntry = GOMgr.GetEntry(goId);
            var caster  = m_cast.CasterUnit;

            if (goEntry != null)
            {
                if (Cast.TargetLoc.X != 0)
                {
                    var worldLocation = new WorldLocation(caster.Map, Cast.TargetLoc);
                    go = goEntry.Spawn(worldLocation);
                }
                else
                {
                    go = goEntry.Spawn(caster, null);
                }

                go.State       = GameObjectState.Enabled;
                go.Orientation = caster.Orientation;
                go.ScaleX      = 1;
            }
        }