Feature - Implemented Major Monster Update

Theraze

Active member
Spent a few hours today looking through monsters.txt to compare it to the monster data in the Wiki looking for updates. Moderate amount of updates... patch file is 84k.

In some cases, the 90% defence came into play. In most cases with the current mafia files, it's using the full (100%) defence value. In some cases it's used the modified (90%) value. When this happened (verified by comparing data page to individual page) and I noticed it, I updated the data file so it would more properly use the 90% defence patch. It's either that, or converting the other 75% of monsters to use 90% of their current defence values.

Updated some monster hp, def, atk, and drop rates.
 

Attachments

  • MonsterUpdate.patch
    84 KB · Views: 38
Last edited:

Theraze

Active member
So on my personal copy, I'm going to use a slightly modified version with a new variable for drops, s for (needs) spading. s means that the rate is unknown. I just basically did a replace "(0)" with "(s1)" to my copy of monsters.txt and put s as a valid letter into the monster database, with an override value of 1% drop rate if not set. This should allow for new drops to be added and used as goals, while we wait for more definite data. And it means that I get to use zlib has_goal to figure out my best location for items even if the drop isn't fully spaded. :)

Patch (included) is in a zip because it exceeds the forum size limit for patch files...

Had to fix some issues with tabs. Should be working now.
 

Attachments

  • UnspadedDropsUpdate.zip
    30.7 KB · Views: 37
Last edited:

Darzil

Developer
Nice. Looks like we're needing spading on drop rates for :

Seal drop rates : Spaded here
Barroom Brawl : Spaded here
Agua Quest drops
Some BRICKO drops
Red Queen's Garden drops
Nemesis quest strips
Nemesis quest volcano island drops
Sewer drops
Normal Hobo drops : Nickel drop is 15%, rest unknown but very low 1%?
Haunted Pantry
Some Sea creature drops - Grouper Groupie, Ice Skate, Roller Skate, Skate Board Member, Urchin Urchin, Water Spider
Uncle Vanya Pixel drops
Hippy drops (Hippy Bongo & Double Barrelled Sling)
Drunk Duck
Battlefield Bosses
Crypt Bosses
Ninja Snowman Weaponmaster (frigid hanky)
Frat Pledge (frilly skirt)
Raging Bull (Boxing Glove)
War Frat Wartender and Elite Wartender (molotov cocktail cocktail, tequila grenade)
War Hippy Sky Captain and Airbourne Commander (Exploding hacky-sack, patchouli oil bomb)

Rest (I think) are from past events.
 

Theraze

Active member
Okay... updated zipped patch in this post for Seal and Brawl drops. Also set all hobo nickels to c15, as that was what normal hobos used.

To use this without the patch (as an override file) just replace all (s1) with (0).
 

Attachments

  • UnspadedDropsUpdate.zip
    30.7 KB · Views: 36
Those updated defense values will be pretty useful. My CCS uses Mafia tracking of HP/attack/defense to decide on the best strategy. Unfortunately Mafia doesn't allow defense to go negative, so missing defense means that Mafia doesn't track deleveling, which confuses my script somewhat.

Now, when will we get support for scaling monsters? :)
 

Theraze

Active member
Okay... attached the 90% defence patch to this, which appears correct based on comparing the monster database and individual monster pages. Should have both that and the unspaded drop modifier.

If you just want the updated monster data, replace (s1) with (0).

Scaling monsters will be after the current monster data is updated... No sense in making my code need every file conflict fixed every time there's a minor update.
 

Attachments

  • UnspadedDropsUpdate.zip
    30.9 KB · Views: 36

Theraze

Active member
Another update... looked through the mobs I fought where the meat spading variable said that the meat drop was impossible. There's still several left where it's questionable, mainly in the Knob Treasury... but at least a few more conform to the Wiki now. This means that the Brigands in the nun quest now have the 800-1200 drop, not 822-1157. Spooky mummies in the forest have 8-15, not 8-13. 7-foot dwarf is 34-48, not 32-51 (that one may need more spading, since it's MORE restrictive...) but anyways... An Apathetic Lizardman can drop meat (17-24), whereas before they had none... The list goes on, but those are the first two that stuck in my head, and then partially through the As of updates.

As before, if you just want the monster data, replace (s1) with (0).
 

Attachments

  • UnspadedDropsUpdate.zip
    30.6 KB · Views: 31

Veracity

Developer
Staff member
This means that the Brigands in the nun quest now have the 800-1200 drop, not 822-1157.
Don't you hate it when people submit whatever garbage they find on the Wiki, regardless of whether it makes sense or not?

I submitted it all in revision 8795.

You had better be right. ;)
 

Winterbay

Active member
Don't you hate it when people submit whatever garbage they find on the Wiki, regardless of whether it makes sense or not?

I submitted it all in revision 8795.

You had better be right. ;)

Does this include the change from 0 to s1? (my farm script needs to know)
 

Theraze

Active member
Does, because s1 is causing errors. Time to look at the diffs and see what's being odd.

Edit: Apparently my brain erases right parenthesis using nothing more than the power of my mind. Or maybe something else. 10 right parenthesis were removed. Attached a patch adding them back to the bug report regarding them.
 
Last edited:

Winterbay

Active member
It should be pointed out that the type for things needign spading is "s" and not "s1". This confused me since my farmscript kept failing even after I changed it...
 

Theraze

Active member
Sort of. 's' is the letter designating an unspaded item, much as 'p' is the letter designating a pickpocket-only item, or 'c' is the letter designating a conditional item where pickpocket will never work. It does still have a chance to drop though, which is currently set to 1.

That being said, if you're checking a single character, then no, you should not give it two characters and say that you're looking for both of them together. It'll never happen.
 

Winterbay

Active member
The drop type that gets reported back from item_drops_array($monster) is "s" which is what I was referring to.
For example:
Code:
foreach index, rec in item_drops_array($monster[C. H. U. M.])
{
	print(rec.drop);
	print(rec.rate);
	print(rec.type);
	print("");
}

gives
Code:
bottle of sewage schnapps
1
s

C.H.U.M. lantern
1
s

C.H.U.M. knife
1
s

sewer nuggets
1
s

C.H.U.M. chum
40
p

Returned: void
 

Theraze

Active member
Yeah... I was just disagreeing that s1 was the type. Don't think I ever said that. :)

The full drop value is s1... if you're comparing it to before, it actually didn't have ANY drop type on the unspaded drops... they were an untyped/normal drop with 0% drop rate. Now it's an unspaded drop with 1% drop rate.

So yes, if you're checking for type, you'd check for the unspaded type now, instead of checking for 0% drop rate.
 

Winterbay

Active member
It might've been me being confused but since the type before was 0 (in the same code example) and you stated that "if you want it the way it was change s1 to 0" I interpreted that as if the new type was s1 and not s :)
 

Theraze

Active member
Actually, the type wasn't 0... the type was blank. :) Though if it's doing a file_to_map, it'll probably just pull the first character, which would be 0... or if it's doing it as a forced check, it may come up as

And if you want an alias to print out the array easier (and just want to see it, don't care about using it), just do:
alias showdrops => ash item_drops_array(to_monster("%%"))

> alias showdrops => ash item_drops_array(to_monster("%%"))

String successfully aliased.
showdrops => ash item_drops_array(to_monster("%%"))

> showdrops bean counter

Returned: aggregate {item drop; int rate; string type;} [5]
0 => record {item drop; int rate; string type;}
drop => hill of beans
rate => 15
type =>
1 => record {item drop; int rate; string type;}
drop => meat stack
rate => 15
type =>
2 => record {item drop; int rate; string type;}
drop => Knob Goblin visor
rate => 5
type =>
3 => record {item drop; int rate; string type;}
drop => stolen office supplies
rate => 10
type =>
4 => record {item drop; int rate; string type;}
drop => bundle of receipts
rate => 0
type => b

As you can see from the bean counter, the only item with a 'type' he has is the bounty bundle of receipts. All the others have a blank type... that's what the unspaded items had before, and just like the bundle of receipts, it had a 0% drop rate. Just without a type. :D

What I was saying to tweak was the drop rate. The former drop information was an untyped 0% drop, found in the file as (0). I changed it to an unspaded 1% drop, found in the file as (s1). Any 'typed' drops have a letter, like (c5) or (p3) or something like that. If no letter, no type. :)
 

Winterbay

Active member
Actually there was a type 0 and a type blank before. At least my switch-statement had the cases b,0,c,p,n and "" meaning that the blank was different from the 0 type.
 

Theraze

Active member
Odd. Well, showing the items with 0s by using the item_drops_array command always displayed the type as blank. No clue what your switch statement runs though, and if it's actually using the proper types. :)
 
Top