Page 2 of 2

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Fri May 04, 2018 6:44 pm
by Nizari
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:

1.10

Code: Select all

6FC62441  |. 8A41 6D        MOV AL,BYTE PTR DS:[ECX+6D]
6FC62444  |. 84C0           TEST AL,AL
6FC62446  |. 0F85 AD000000  JNZ D2Game.6FC624F9
TO

Code: Select all

6FC62441   90               NOP
6FC62442   90               NOP
6FC62443   90               NOP
6FC62444   90               NOP
6FC62445   90               NOP
6FC62446   90               NOP
6FC62447   90               NOP
6FC62448   90               NOP
6FC62449   90               NOP
6FC6244A   90               NOP
6FC6244B   90               NOP
1.13c

Code: Select all

6FCFF4BF   8A48 6D          MOV CL,BYTE PTR DS:[EAX+6D]
6FCFF4C2   84C9             TEST CL,CL
6FCFF4C4   75 5D            JNZ SHORT D2Game.6FCFF523
TO

Code: Select all

6FCFF4BF      90            NOP
6FCFF4C0      90            NOP
6FCFF4C1      90            NOP
6FCFF4C2      90            NOP
6FCFF4C3      90            NOP
6FCFF4C4      90            NOP
6FCFF4C5      90            NOP

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Sat May 05, 2018 8:22 pm
by Truedat775
Very nice work.

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Tue May 08, 2018 12:03 pm
by Darkquake
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.

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Wed May 09, 2018 9:48 am
by Nizari
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)

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Wed May 09, 2018 9:50 am
by jetaman
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?

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Wed May 09, 2018 10:50 am
by Nizari
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 :-|

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Mon May 28, 2018 7:26 pm
by Darkquake
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.

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Fri Jun 01, 2018 2:53 am
by juliocpaes
congratulations for the plugins ! great contribution !

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Tue Sep 25, 2018 2:38 pm
by Kaladann
Wow, incredible addition !

:headbang:

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Thu Oct 11, 2018 5:02 am
by Grimz
jessedazebra wrote:
Fri May 04, 2018 6:27 pm
Thanks for the plugin, these goblins are really entertaining :D
Combined it with Gem Bag plugin, works just fine.

what the hell version of d2 is this...
it looks like d3 lol... so good!!!

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Mon Jan 14, 2019 2:26 am
by ShakaLaka
A big thank you.

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)

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Mon Jan 14, 2019 2:54 am
by Nizari
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

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Thu Jan 24, 2019 4:01 pm
by ShakaLaka
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)

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Sun Jan 27, 2019 12:16 pm
by prawn
I have got all the goblins working as they should! great work Nizari / Jetaman thanks very much

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Tue Jan 29, 2019 9:59 pm
by prawn
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!

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Wed Jan 30, 2019 1:03 am
by Nizari
You have to fill nightmare and hell MonProp fields in the same way as they are done for norm.

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Wed Jan 30, 2019 8:58 pm
by prawn
Thanks -sorry that was simple! Can't believe I missed that !

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Tue Feb 26, 2019 10:54 am
by Tomkomaster
I had some problems with your plugin, as described in this post:
https://d2mods.info/forum/viewtopic.ph ... 52#p497252

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.

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Tue Feb 26, 2019 6:47 pm
by Conqueror
Increase the globin drop with:

1.13c
[D2Game - 0x123DA]

- You just need to change the number 6 (max FF --> 255)

6FC323D7 |. C745 2C 060000>MOV DWORD PTR SS:[EBP+2C], 6

And edit TreasureClasEx.txt http://prntscr.com/mqgvk0 Picks (min -128 max 128)

So, don't use "ghost monsters" to increase drop :mrgreen:

Re: Nizari's & Jetaman's Treasure Goblin Plugin [all versions]

Posted: Tue Feb 26, 2019 8:18 pm
by Nizari
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 ;)