The-Alpha-Project / alpha-core

0.5.3 experimental emulator written in Python.
GNU General Public License v3.0
254 stars 76 forks source link

TODO: Despawn NPCs with high NPC entry #313

Closed Daribon closed 2 years ago

Daribon commented 2 years ago

There are vast amount of NPC entries at high entry that should not be spawned in alpha.

When it comes to totems there are several NPC entries that does not exist in 0.5.3 spell dbc: image image However the spell could have been added after the npc getting created. Since not even Stoneskin totem has in the 0.5.3 dbc, but rank 1 npc has entry 5873

Last NPC totem entries that has spells in dbc: image

heidisql_F2KzUY4zlE heidisql_0ljcvM1ZFc Between 5,9k and 6,1k tons of totems added not available in 0.5.3 but probably in 0.5.4.

fevrier2004-01 Alyssa Blaye has entry 5665 and the image is from 0.5.4, fishing in UC slime wasn't possible until 0.5.4.

EarlyEnchanting Vance Undergloom has entry 5695 and the image is from 0.5.3.

unindel_wow55 From 0.5.3. Winifred Kerwin has entry 5703. Image dated 2003-12-14. The summoned NPCs exist as well at just a bit higher entry: image

image Up to entry 5700 100% confirmed for being in alpha. Guardian of blizzard is located at entry 5764, NPC was used to prevent players from entering unfinished locations. I've only been able to find images of Guardian of Blizzard from 0.5.4 and above. Image from 0.5.4: shot8 heidisql_1T9gjGSqlt Guardian of Blizzard has entries above and below it which are from either WC or Barrens, fitting the 0.5.4 theme of Tri-Horde push (Troll, Orc, Tauren). Going into broadcast text and looking at the text that Guardian of Blizzard uses one can see that its broadcast text entry is located almost right next to last entry for Undercity broadcast texts: EmEditor_GMBj0jEiCx The very last entry next to Guardian of Blizzard text "%s whispers to $N the secret to opening his strongbox." is used by unknown NPC. Might be unused text used for the Apothecary Keever event, which the entry next to it belongs to.

However we can dig even deeper than this. What are the last displayids used in 0.5.3? explorer_EYzWLZAipV What displayid of those are used by an NPC with high NPC entry. Answer is displayid 4179. The displayid 4179 is used by NPC entry 5759. heidisql_RS9q7jUF6O The NPC entry next to 5759 uses a displayid not available in 0.5.3 and is located in kalimdor, fitting for 0.5.4. Following entries are from WC, also fitting for 0.5.4 Tri-horde push.

The last NPC entry in the 0.5.3 client should be 5759.

image Entry 6706 flight master in Nijhels point, the location has a gryphon stand in 0.5.3 but is very very unfinished. Nijhels point didn't receive its final look until 0.10.0.3892, with only a bridge and the location being retextured between 0.5.3 and 0.10.0. Nijhels point does not exist in TaxiNodes.dbc for 0.5.3, which means it was never any location where you could use flight path in 0.5.3. Nijhels flight path was added in 0.6.0. firefox_fJQsSoZVM8 Entry 6726, flight master in Shadowprey Village, that village doesn't even exist in alpha. Shadowprey Village was added in 0.10.0.3892. If Shadowprey Village didn't exist then why does this entry exist at such a low entry? Because the NPC wasn't spawned in Shadowprey Village, it used to be spawned in Ghost Walker Post in 0.6.0, when the flight path was added, from TaxiNodes.dbc 0.6.0: firefox_djI2ATNkbL

firefox_3P2lEr8Xss Last entry of flight master NPC in the 0.5.3 which has a node in taxipathnodes.dbc is 4407 Teloren in Stonetalon Peak. Not a single flightmaster entry after 4407 has any node in taxipathnodes. The first flight master NPC entry that shows up after 4407 is 6026, Breyk, flightmaster in Swamp of Sorrows. The first time Swamp of Sorrows shows up in taxipathnode is 0.5.5, which means that it was either added in 0.5.4 or 0.5.5 (since we do not have the 0.5.4 we cannot check).

Then there is this: image It continues with other entires with a few entries later down too. With innkeepers come you guessed it, Spirit healer: image

Ghost spirit healer were added in patch 0.6. The tons of innkeepers getting added starting with 6,7k entry? Because hearthstones got added in 0.6. firefox_5yK3zFTT91

heidisql_791z5asyBr 7k entries almost instantly start with winterspring NPCs, a zone completely unfinished in alpha.

heidisql_YrdtxcH9ws Undercity entries are at around 4,5k and knowing that it UC was added in 0.4 we can build on top of that. heidisql_vbPacYLnUh Knowing that ironforge wasn't finished a month prior to human push 0.5 (and might not even been finished in human push) it too is reflected in NPC entries, around Ironforge entries are at around early 5k.

heidisql_mLd2Ilu69Z heidisql_tbY03zDklo 7314, TEST battlemaster and a bunch of racial mounts added between at around 7,6k. Racial mounts was added in 0.7.0 and battlegrounds was announced in 0.7.0, however it was not available on the beta. image image

Patch 0.8 added auction house. image And the auctioneer NPCs appear about 1k entries above known what is presumed to be 0.7.0 entries.

It appears that blizz added about 500 NPC entries per patch.

heidisql_agbSboXvr0 Entry 10919, Shatterspear Troll in Shatterspear village. The entire village didn't exist until 0.10.0.3892.

CG6dT1TUkAAVJkN Onyxia, entry 10184 was first spawned on August 12, 2004. It is possible that the entry was created earlier but considering raid content was rushed most likely not much earlier.

heidisql_SyQR7OmZox Sylvanas wasn't added until at least 0.9.0+ and her entry is 10181. WoWScrnShot_052004_222822 Image from 20-05-2004 still does not have her spawned. 62 First image with Sylvanas showing uses a placeholder model and is from patch 0.9.0, or above (due to talent icon being 0.9.0+.

Starting NPCs in Eversong Woods in TBC are at around entry 15k. Those entries were added sometime between early 2005 and blizzcon 2005 (october 2005) Molten Core entries start at about 12k, which was developed at very end before wow launch. Meanwhile last entry of vanilla is 18k. It is therefor extremely unlikely that entries above 10k should exist in 0.5.3.

TL;DR only entries up to 5700 are 100% confirmed have existed during 0.5.3.

Describe what needs to be implemented or enhanced

Despawn all entries above 10k UPDATE spawns_creatures SET ignored = 1 WHERE spawn_entry1 > 10000;

I do not recommend going lower yet, due to the large amount of NPCs that get despawned. It has to be researched more before going lower and double checked that no entries that possibly should be in alpha, do not get despawned.

Expected end result Clears up NPC spawns that should clearly not be in alpha. Considering only entries above 10k is despawned thus far, not much should change. Thus far I've only seen silithus completely despawn, which is expected, considering how it was unfinished even at release.

Daribon commented 2 years ago

I've done tons of digging today and from my research, the last NPC entry used in the 0.5.3 should be 5759. The findings are documented under the part which begins with Guardian of Blizzard. Everything else in the issue should be regarded as information backing up my theory.

If you wanna test it, run the following SQL query: UPDATE `spawns_creatures` SET `ignored` = 1 WHERE `spawn_entry1` > 5759;

GrenderG commented 2 years ago

Amazing research. :+1: