MrWillisTheFetcher's Quest Showcase

Interested in joining? Show off your skills here
Post Reply
-MrWillis-
Forumite
Posts: 6
Joined: Fri Aug 05, 2016 8:31 am

MrWillisTheFetcher's Quest Showcase

Post by -MrWillis- » Sun Aug 11, 2019 7:16 pm

I was told to post my quest showcase here. So here it is:
https://www.nexusmods.com/morrowind/mods/47052

It is pretty basic so I will understand if it is not good enough for the game.

Violet
PT Modder
Posts: 62
Joined: Mon Apr 30, 2018 11:07 am

Post by Violet » Mon Aug 12, 2019 1:01 pm

Looks fun, I don't have time to properly review or playtest it, so I'm mainly just taking a (very) brief look in the CS.

Both under latest rumors:
I must tell you, all this self-righteous Western clamor against slavery is really tiresome. Our right to own slaves is protected by law -- IMPERIAL law. People who free slaves are breaking the law. It's as simple as that.
- This line has two entries, one conditioned in Sadrith Mora and the other in Vivec (all other conditions are the same). One of them is touched by this mod and the other is in vanilla. Did you copy this line and make a copy for Vivec? Or is the one in Vivec simply a dirty entry? Either way, it doesn't seem to fit the theme of the quest afaik so I'd suggest deleting the one with Vivec as a condition.
"These Imperial tax collectors have really started to get on everyone's nerves. Haven't seen the local one in a while, though...not that anyone is complaining."
- This is similarly dirtied, but I'm pretty sure it's an accident. Remember that whenever you make a new line within an existing topic (or move a line within an existing topic), it dirties the lines surrounding it, both above and underneath. Make sure you thoroughly clean those existing lines that you don't intend to touch.

Journal MV_DeadTaxman entries 110, 120, and 130 are all dirtied. Should be cleaned.

Under Kwama Mine:
"Why am I not surprised. You are an absolute buffoon and fetcher. Get out of my sight."
- This uses a Get Dead condition. This is fine for now imo, but in the future remember that giving the could-be-dead creature/NPC an if ( OnDeath == 1 ) -> Set Journal "something" to number is much easier on loading time, this is because if the save file gets big then Get Dead conditions can be a little laggy.

A reviewer can probably come in a bit later and give more indepth feedback, as I'm sure I missed something and I didn't look for typos and such at all, but for now I'd suggest cleaning it with TESAME or other cleaning tools (iirc you can also clean a file with the CS itself, but I'm currently having trouble remembering how to do that). It's a good start and I can't wait to give it a playtest.

User avatar
Texafornian
SHotN Jarl of Questing
Posts: 331
Joined: Thu Sep 15, 2016 9:16 pm

Post by Texafornian » Sat Aug 17, 2019 5:38 pm

Reviewing

User avatar
Texafornian
SHotN Jarl of Questing
Posts: 331
Joined: Thu Sep 15, 2016 9:16 pm

Post by Texafornian » Sat Aug 17, 2019 5:56 pm

Thanks again for submitting a showcase!

Violet nailed the dirty "latest rumors" entries and the GetDeadCount/"Dead" filter issues; however, Journal MV_DeadTaxman entries 110, 120, and 130 are not dirty since they were added by this ESP.

Notes:
- Good use of dialogue choices. In my quick initial check, it looked like the writing was appropriate, interesting, and error-free.
- The entries on either side of the new entry in "latest rumors" are dirty (27440159621703420683 and 19630572326932259)
- To increase the script complexity, please add an OnDeath block to the Kwama Queen's script that sets a journal entry if the player is on the quest (and hasn't finished it!). If the player hasn't started the quest, then the block should instead do one of the following:
* Sets a local variable on Arrille to 1 (he'll need a custom script)
* Sets a new global variable to 1
- The GetDeadCount function and the "Dead" dialogue filter are very slow in larger save files. Please change the "Dead" check in Arrille's "kwama mine" dialogue entry (13586267553136717828) to rely instead on the alternatives mentioned above. You will need two entries, one which check for the journal entry and another which check for the local or global variable.
- Please add two follow-up entries for the "Abaesen-Pulu Egg Mine" topic, one which fires if the player is successful and another which fires if the player failed the quest.
- Journal ID #120 in MW_BittercoastMine looks like it's out of order? This is a minor thing.

I'll review again after you resubmit an ESP.

-MrWillis-
Forumite
Posts: 6
Joined: Fri Aug 05, 2016 8:31 am

Post by -MrWillis- » Sat Aug 17, 2019 6:02 pm

Thanks Tex!

I will do so sometime tomorrow and try to figure out how to script it. Would be using a global variable be more efficient versus a local variable for Arrille?

Violet
PT Modder
Posts: 62
Joined: Mon Apr 30, 2018 11:07 am

Post by Violet » Sat Aug 17, 2019 6:44 pm

Generally, local scripts are better than globals when it comes to performance unless you make sure the global only fires once (at the appropriate time). However, if you plan on keeping it compatible with most other mods, then I'd suggest a global as a lot of the more immersion based mods tend to add/edit scripts for vanilla npcs.

So in this case a short global (that is, not attached to an object or npc) script that is blocked off with a DoOnce variable would likely be the better of the two options.

So the script in question would need to only fire if the DoOnce variable is 0 (doesn't have to be "DoOnce", you can make the variable anything), if the Journal isn't at the appropriate stage (in this case, the quest hasn't started, so it'd be GetJournalIndex == 0), AND if OnDeath Kwama Queen. Then set a second variable to 1 (the one Arielle's dialogue will use as a filter), and set the DoOnce variable to 1 to avoid the script from firing every frame.

That's just one method though, there are other ways to get the desired outcome. The main thing to remember is that local variables can't be messed with if the NPC that has the variable hasn't been loaded yet, which is why it's either set a new global variable (within its global script) or give Arrielle a new script that does his own filtering if you killed the Queen before the quest starts. Which ever you prefer, though again for mod compatibility reasons I'd suggest the global option.

Post Reply

Return to “Modder Showcase”