I'm glad to see it works well.
In case some of you would need to prevent the goblins spawning as champions or unique monsters on nightmare and hell, here is a fix of boss pick for D2Game in 1.10 and 1.13c versions, it will make levels.txt choose a boss from umon fields on all difficulties:
Hi just want to give some feedback on what I think are bugs.
1. Goblins that aren't killed and escape leave behind a "filled space" of sorts. Completely un-passable empty space. The work around for this go to town and wait a little and it despawns.
2. Goblins that spawn in packs with auras will have an active aura even after escape while in the "filled space" form. Same work around as bug 1.
3. Goblins minions that spawn as part of a pack will leash indefinitely and will never escape while not in close proximity of the boss or the bosses filled space.
Obviously not making them boss packs will get around the aura's and leashing bug. But if anyone wants to use it with boss packs it can be a problem.
They are absolutely not meant to spawn as bosses or champions for obvious logical reasons, to make it happen, a modder has to fix levels.txt boss pickup table with code edits posted in here by me as a small bonus. However, if someone decides to spawn them as bosses anyway, then it is not of my concern if some bugs exists, thus I do ignore 2. and 3 (anyway, filling the goblin's noaura column in monstats.txt could be a fix for 2.)
About 1. - unfortunately thats how the game works, after the escape goblin still exists for a while (on another layer) before it gets completly erased. Erasure takes place once you are 2-3 screens away from it and/or after entering a different map level (i.e. cave)
Maybe we can ask Kingpin and Ogodei to code new goblin-specific AI and behaviour for Dreamlands. This way we can fix all bugs and allow them to be bosses. What do you think?
In my personal opinion there is not much sense in spawning goblin as a boss. It is a non fighting monster, allowing him to have affixes such as extra strong or mana burn wouldn't make any sense.
I can imagine someone may want that to happen. However, the fact it can spawn as boss/champion is a bug in the first place. Following this, I wouldn't call someting a "bug to be fixed" while it is a consequence of something that is not supposed to happen.
New AI could be requested, but dreamlands would limit the full goblin version to 1.10 only. One of the main concepts of this plugin was to avoid all code edits at all cost to make it available for everyone on every game version
So... noob question. I'm playing on 1.13c and I open D2Game.dll in OllyDbg that's fine. When I go to find addresses for mentioned to fix the spawn bug all of my addresses are way bigger. Swapping to absolute addresses doesn't do it either. Do I need to add an offset to the addresses somehow?
Edit a month later. For those of you like me who tried to find answers only to be greated with dead links or completly missing pages. You can actually make this change with any hex editor thanks to having the exact hex values.
If I understand it correctly: The pauses can't be made longer without them dissapearing faster, and the disappearing is completly random? After a little bit of testing, one Rune Hoarder escaped almost instantly without me changing the AI.
Edit: After some testing, Adding additional monsters to a map with low sparsePopulate seem to lower the monster density. Can someone confirm or contradict? My test was a comparison of the two:
NumMon = 1 and mon1 = zombie1
vs
NumMon = 10 and mon1-10 = zombie1, gildedbaron1, gildedbaron1, gelatinoussirebig1, gemhoarder1, treasuregoblin1, gildedbaron1, gildedbaron1, gildedbaron1, gildedbaron1 (or something similar)
The dissapearance ratio is controllable to a degree, as you can set the percentage chance of this to happen. However, it's still just a percentage chance, an RNG. Think of it this way: if you toss a gaming cube, you have only ~16,66% chances to hit 6, but it doesn't mean you won't succed on a first try or won't succed after 20 tries.
Yes, monsters using sparse populate are counted normally in the map density. To understand why this happen, you need to know exactly what sparse populate does: it decreases the chance of monster being spawned on a tile, while still counting it among the monsters that are choosen to spawn on a map
Thats what I was scared of. Made a few more tests to be sure, counted the number of monsters in a specific area of Blood Moor.
Testing hidden as small font because most people do not want to read it anyway. Counting 1 ||| nummon = 1, mon1 = zombie ||| Number of monsters counted: 23, 26, 20-22 (2 were on the edge of my chosen area) |||average = 23,3333
Counting 2 ||| nummon = 5, mon = zombie, and the 4 different Goblins with SparsePopulate = 5, 1, 5, 5 (Sparsepopulate should have been 1, but since goblins didn't matter this didn't matter as well) ||| "Rarity" value was supposed to be the same for both, zombies and goblins. Instead, i made an error and the Rarity of Zombies was 1 while the Rarity of Goblins was 2. ||| Number of monsters counted: 1, 5, 2, 5, 2, 0, 0 (+1 Goblin), 3, 1, 0, 5 (finally again!) (+2 Goblins), 2 (+2 Goblins) ||| average = 2,1666 ||| The expectation was 1/9 of 23,333 = 2.5926 (1/9 = Number of Zombie Entries * Zombie Rarity / Number of all Entries * Corresponding Rarities)
Counting 3 ||| nummon = 5, same as above, but with Goblin Rarity = 1 instead of 2 (therefore now same as zombie Rarity) ||| Number of monsters counted: 3 (+1 Goblin), 6, 2, 6 (+2 Goblins), 5-6, 5 (+1 Goblin) ||| average = 4,5833 ||| The expectation was 1/5 of 23,333 = 4,6666
So it worked as expected, adjusting MonDen shouldn't be too hard to keep it close to the original. I hope MonDen has no quirks.
Conlusion: If you have 5 monsters in one area, and add 4 Goblins to it, the MonDen needs to be theoretically increased by a factor of 9/5 7/5 (if the rarity of the monster is 2 and the rarity of the goblin is 1), if the density is supposed to stay the same. NumMon needs to be increased from 3 or whatever the value was, to 9. If the original value was 3, it results in no longer only 3 different kind of monsters be chosen for the level. Which might be an unwanted effect, but I don't think there is a workaround for that. Some of it was tested and some of it was my conclusion but without explicit testing.
Edit: I've got a new question. Is it possible to make the goblin attackable during his escape (animation)? I have not worked with monster animations before, and after searching through .cof (Coffee CofEditor), skills.txt, and other .txt files I have not found the thing that makes him untargetable. I'm kinda not expecting this to work because the sequence has two parts (escape/ invisibility), but since I don't even know how to make him attackable during the whole sequence, maybe there is something else I don't know about.
(On a side note: skills.txt in "Do it yourself - All goblins separated" seems broken; and the get hit/ waiting animation of Gelantinous & Gem Hoarder were not transparent here, but it was easy fixible with the Coffee CofEditor. I don't know if Gem Hoarder is supposed to be transparent or not)
Not sure about this - maybe I have looked at too many goblins but for some reason when any type of goblin spawns in nightmare or hell they are not using state 184 so they get the animation error.In normal they are fine. Any help appreciated cheers!
In short, they have too long names for their Skills.txt and missiles.txt entries. A very simple fix is just to abbreviate the goblin skill and missile names (of course modifying the srvmissile and cltmissile column in skills.txt too), to something like from GildedBaronDeathExtraGoldDropMaker1 to GBDeathExtraGoldDropMaker1, and it fixes the problem.
Nice info for 1.13c users, however, the plugin uses ghost monsters as an alternative to ce, because it's means to be fully compatible with any game version without any ce issues
Just wish the readme was a bit more detailed, or maybe someone could be a legend and make a video tutorial on how to install this to an existing mod Please : ) ^^