Cyrano's (Quest) Showcase

In order to implement content in-game, you must be a Developer. This is the place for you to introduce yourself, and apply to become a TR Developer.

Moderator: Lead Developers

Locked
cyrano
Developer
Posts: 6
Joined: Thu Jun 07, 2012 10:03 pm

Cyrano's (Quest) Showcase

Post by cyrano »

Congratulations on the recent release of the Sacred East.


I am applying for a position as a quester/scripter. My submission is a Twin Lamps escort quest originally intended for the suspended LGNPC Ald Velothi rewrite. I performed all of the construction set work that includes the writing of dialogue, scripting and world editing.

Galyn Arvel in Ald Velothi is the quest-giver, but the quest is not available until the player has completed the official Twin Lamps quest involving her. Reviewers can add the necessary journal entry through the console: Journal HH_TwinLamps1 100 however they may wish to verify that the quest is not offer prematurely.

Two new NPCs were created for the quest - enabled when the quest is active and disabled at least a day after the quest is completed (successfully or unsuccessfully). One is located in a new interior cell of very modest accommodation. In the fashion of the LGNPC project the principles (Galyn Arvel and Serila Arvel) have additional non-quest related dialogue (some is available only if the player is an active abolitionist).

Galyn Arvel's instructions to the player are very specific. Failure to follow her directive will have disastrous results, and there are a variety of ways the player can bungle this one.

I am not certain how much information about the design of the quest is wanted at this time. It is difficult to measure how well it achieves its objectives if the purpose of the quest is not clear, but I do not know that a 'walkthrough' is wanted. I have included a 'readme' in the archive that will provide a few hints. If more details are required, I am ready to provide them.
Attachments
cyr_TRShowcase.zip
Twin Lamps faction escort quest.
(32.72 KiB) Downloaded 114 times
User avatar
Not
Lead Developer
Posts: 542
Joined: Thu Mar 01, 2012 10:43 pm
Location: Elsewhere

Post by Not »

Greetings, Cyrano! It's nice to see a fellow quester, you can never have enough of them :)

First things first, normally we'd prefer a walkthrough of the quest when you post your showcase, basically detailing the various outcomes and where to start, so that we know what to look for and where to start and thus saves us the trouble of looking. However, that's not really a big deal and you did add a really nice and well written readme file, so it's fine.

Anyways, from what I'm seeing this quest looks promising, and I'll give it a review and have your results back hopefully within an hour or two.

Oh and one more thing, welcome to TR, Cyrano. It's nice to meet you, and I look forward to seeing you helping us with our next release(s) =)
Not another memory

...And so my bad karma gets worse
Why
Lead Developer
Posts: 1654
Joined: Sat Jul 04, 2009 3:18 am
Location: Utrecht

Post by Why »

Welcome, it's very nice to see you want to contribute to our quest-making!

Not is a great quester, so you're in good hands here. If you have any questions feel free to ask them here, and you can always PM me if you need me. You're also welcome to join our IRC anytime to get acquainted, just use the link at the top of the page.
cyrano
Developer
Posts: 6
Joined: Thu Jun 07, 2012 10:03 pm

Post by cyrano »

Thank you both for the warm reception.
Not wrote:First things first, normally we'd prefer a walkthrough of the quest when you post your showcase, basically detailing the various outcomes and where to start, so that we know what to look for and where to start and thus saves us the trouble of looking.
My apologies - I did not see walkthroughs provided when I glanced at other quest showcases, and I must have overlooked that condition when I read the guidelines for submitting work for review. Here I have attached a detailed walkthrough.
Attachments
cyr_TRShowcase_Walkthrough.txt
Quest walkthrough
(4.46 KiB) Downloaded 124 times
User avatar
Not
Lead Developer
Posts: 542
Joined: Thu Mar 01, 2012 10:43 pm
Location: Elsewhere

Post by Not »

Okay, I finished playing the quest and all the various outcomes, and I have to say I am really impressed.

You did an excellent job providing various outcomes depending on the player's decisions. You also did some incredible work with scripts, and aside from a few very minor spelling and grammatical issues here and there, your dialogue is very impressive too.
You gave a very unique background to Galyn and her mother, and I also liked how you as the player, were able to have a conversation with Galyn and pick different choice outcomes. While not part of the quest per se, it is very impressive and shows you take great pride and effort in your work.

A couple things I'd like to mention though, while you did a great job accounting for various outcomes, there is a bug where if you decide to ignore Galyn's advice and go out by the docks or in the day, and if by some miracle the khaajit (can't remember her name) survives the attack (in other words you take the fireball blast) she will have the dialogue as if you had already taken her to Ebonheart, i.e. "thank you for bringing me to this place", meanwhile Galyn refuses to talk to you for killing the hunter. That being said, I really can't hold that against you too well because short of having super human speed (I was using boots of blinding speed coincidentally,) there is no way that she'd survive the attack.
The second thing I'd like to mention is that, when you're having a conversation with Galyn about how she joined the Twin Lamps, you have to remember, she's telling the story to the player, you're not reading it off a script. So certain things such as "Understanding slowly crept over me. 'You are from the Twin Lamps?' I lamely asked. Yes, both of them affirmed. 'And me?' Huran-Lei replied, 'And you too, if you agree to join our struggle.'"
Again, it was an excellent read and you did an outstanding job, but I just want to remind you that you're having an NPC talk, not reading out of a book. But again these are very minor flaws for an otherwise really great and well thought out quest.

If it's not too much trouble, I'd really just like to see one more quest from you, one that is completely independant of LGNPC, and much more linear. It doesn't need to be anywhere near as many outcomes as this one, though if you want to do another huge one like this, that's completely up to you. Also, remember that here at TR, we're all about letting the player decline a quest at first, and then change his mind and come back later. This isn't a requirement for a showcase, but I just want to remind you that we do like to have the ability to change our mind and come back later.

Overall, very nice job, it was an amazing piece of work, and if you could just show that you are capable of creating the small and linear (as you've already shown you're capable of the grand and huge) I'll gladly recommend you for promotion.
Last edited by Not on Sat Jun 09, 2012 4:19 am, edited 1 time in total.
Not another memory

...And so my bad karma gets worse
cyrano
Developer
Posts: 6
Joined: Thu Jun 07, 2012 10:03 pm

Post by cyrano »

Thank you for the quick feedback.

I looked into the quest bug you discovered. By raising the player's speed to 200 and charging Tels Imalen the moment they leave Arvel's shack to close distance I was able to reproduce your results.

In designing the quest I determined that if the player does not follow the instructions Bahnirra needed to die. It was just too problematic to account for all the possible outcomes, so I was pains to make certain she would die in a way that seemed logical. Sadly it looks like there is still a loophole. I will have to study on that awhile.

The other issue you raised may be the result of confusion about the speaker when Galyn Arvel is telling her story about how she became involved with the Twin Lamps. Galyn Arvel is the speaker the entire time, but she quotes herself and her companions of what was said on that occasion. Here is the passage taken from the construction set:
Understanding slowly crept over me. "You are from the Twin Lamps?" I lamely asked. Yes, both of them affirmed. "And me?" Huran-Lei replied, "And you too, if you agree to join our struggle." The Dunmer quickly followed with an apology for their trial of me, but they had to understand how committed I was to the cause before admitting me into the organization. He added, "Few have both the compassion and the courage to perform our work."
In the phrase "crept over me", Galyn Arvel refers to herself, and again in the phrase "I lamely asked."

I think the confusion is a result of two issues:
1) I probably should have Yes in quotes ("Yes", both of them replied)
2) The lack of paragraph formatting made it difficult to recognize who was saying what.

This is what is might look like in a book:
Understanding slowly crept over me. "You are from the Twin Lamps?" I lamely asked.

"Yes", both of them affirmed.

"And me?"

Huran-Lei replied, "And you too, if you agree to join our struggle."

The Dunmer quickly followed with an apology for their trial of me, but they had to understand how committed I was to the cause before admitting me into the organization. He added, "Few have both the compassion and the courage to perform our work."
I will begin work on another quest. I have an idea for a Fighters Guild quest that if approved could be incorporated as an actual Tamriel Rebuild quest. It can be one that the player does not immediately accept. The circumstances of the Twin Lamps quest were unique. It did not make sense that the player could return weeks later to accept. Tels Imalen is not going to be standing around doing nothing all that time.
User avatar
Not
Lead Developer
Posts: 542
Joined: Thu Mar 01, 2012 10:43 pm
Location: Elsewhere

Post by Not »

Well I'm glad you're eager to make another quest. I certainly look forward to seeing what you plan on doing next. And while you are free to make a Fighter's Guild quest, I don't know if we'll actually incorporate that into a Fighter's Guild claim or not, but either way, this is a showcase so it's fine.

To re-address the two issues I had mentioned earlier, I was merely pointing out that I had found that bug, but that I really wouldn't hold it against you because I fully understand how much of a pain it would be to account for every individual detail like that, and overall you did a nice job, so please, don't let that bother you too much, it's not a big deal.

Also, what I meant by reading out of a book was not the paragraph format at all, but that basically, I couldn't see anyone telling a story like that to someone else. For example, if you were telling a friend in real life about that happening, I couldn't imagine someone saying word for word "Understanding slowly crept over me. "You are from the Twin Lamps?" I lamely asked. Yes, both of them affirmed. "And me?" Huran-Lei replied, "And you too, if you agree to join our struggle." The Dunmer quickly followed with an apology for their trial of me, but they had to understand how committed I was to the cause before admitting me into the organization. He added, "Few have both the compassion and the courage to perform our work."

It just sounds weird coming from someone who's actually telling a story. I'd actually expect it to be a little bit more realistic such as something like "they both told me they were from the Twin Lamps, and as shocked as I was, they offered to let me in, because they admired my courage." (probably would word it a little bit better but I hope you get what I'm saying.)
Again though, I'd like to reiterate; you had an amazing quest that was very big, and those were really the only two flaws that I felt were worth mentioning. The dialogue and writing itself were quite impressive. You're writing is amazing, and we could definitely use more dialogue writers (we're going to have to NPC Almalexia, which will be a very huge task.) Honestly, don't worry about that too much, it really wasn't that big a deal at all.

And finally, I can't wait to see your next quest, if it's anything at all like the first, I can guarantee you'll fit in just fine here. :)
Not another memory

...And so my bad karma gets worse
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

One of the best escort quests I've ever seen; and even the eternal "Background" reply didn't seem that long ingame. If all of LGNPC was like this...

Gripes:

I don't know if the "Background" reply is your writing or someone else's from LGNPC (it doesn't have much to do with the quest), but sometimes I see words put in the mouth of a player that I wouldn't have expected coming out of my mouth:

Choice "A good omen - your actions appeared to have the blessings of the gods." 8
Choice "A Dunmer bowing before a Khajiit - can there be greater proof of compassion?" 13
Choice "Oh, no! The slave dropped something?" 19


I know we are doing that too, on occasion; I think a good rule of thumb is that if you give this kind of choices, you should also give the player a more cynical alternative ("A Dunmer bowing before a Khajiit - and to think that I was almost about to believe your story...")

I believe you could switch the "if ( currentDay == Day )" block with the "if ( daysElapsed >= 7 )" block in script lgnpc_av_GalynTimer (because the only way how daysElapsed can suddenly become >= 7 is by having currentDay != Day. But it's a drop in the ocean, of course.

I assume that Galyn Arvel's greeting "So tell me, %PCName. How was your journey to Ebonheart?" is supposed to link to the "journey to Ebonheart" topic, but there is no reply, neither before nor after I kill Tels Imalen. (By the way, I assume he IS supposed to attack me after I return from a successful slave rescue; but he is probably not assumed to shoot a fireball at a non-existing Bahnirra?)

Minor typo: "the Arvel's shack" should be "the Arvels' shack". Also: "not prepared to received company".

The possibility of killing the slave hunter before he is able to one-shot Bahnirra is very much real. Usually there is a flora_tree_wg_02 or an ex_de_docks_ends between his spell and Bahnirra. I wasn't able to have him kill Bahnirra on several tries. AI is just THAT stupid. Maybe he should startcombat Bahnirra rather than the player, and then the player when she is dead. But you should definitely account for the possibility that she survives.
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

Cyrano, are you still there and/or interested in contributing? While I was not very clear at that in my posts, I think it should be said that your showcase is great and I would recommend you for promotion once you have fixed the gripes I mentioned and I've taken a final look at your file!

And no, we are not currently as full of questers as we wish to be, particularly as it comes to writing lots of dialogue in a lore-friendly way. You'll be much appreciated!
cyrano
Developer
Posts: 6
Joined: Thu Jun 07, 2012 10:03 pm

Cyrano's (Quest) Showcase

Post by cyrano »

I apologize for my long absence. I have had no time this past fall to address the concerns raised by reviewers.

@Not:

At last I do see your point about Galyn Arvel's speech. It appears that I slipped out of first person into more of third-person narrative style. I have reworked the two relevant passages. I left a couple quotes that seemed appropriate, but for the most part she paraphrases the conversation.

@arvisrend:

Thank you for your supportive review.

One of the reasons the 'interminable' background may not have felt so long is that it is broken up with actual player responses instead of merely a 'Continue' at the end of each segment. It makes the player feel a part of a conversation rather than the helpless victim of a soliloquy. At least that was my view when I wrote a series of stories for the bard Felvos Droryn in the Foreign Quarter. It was not my intent to create different branches that the topic could follow. Rather I offered polite interjections that reassure the speaker that their companion is actually paying attention - sort of what people do in real life. I can appreciate that not everyone would respond the same way - certainly a player roleplaying a selfish 'spotted owl' is going to feel like words are being forced in his/her mouth. I will remind you that dialogue is available only if the player is a member of the Twin Lamps, so one might assume a little more sympathetic listener. There is also the civil falsehood - we may feign interest or support in the interest of being polite. This I applied liberally with Felvos Droryn's stories. In fact, in his case the player knows he is lying. The bard tells stories about the player's own adventures - but in the first person (in other words he makes himself the hero of the stories). Felvos Droryn does not realize he is in the presence of the actual protagonist of 'his' tales. I allow the player to amuse him/herself with replies that test the limits, but do not betray the truth. However, at least once per story I give the player the opportunity to challenge Felvos Droryn's veracity, with the only consequence that the story ends and he will never relate another to the player. It is for that reason most of us offer the civil falsehood to preserve the peace and ultimately get what we want. Certainly there are people who want nothing more than to offend others without any fear of reprisal. Such players would happily belittle and even slaughter entire towns of NPCs. I am not of a humor to accommodate them. After all, isn't that what the internet is for? ;) If they want to be antisocial they can troll online forums and chat rooms. However I have taken your point, and introduced one opportunity for the player to be mean-spirited. The player's reward is to abruptly terminate the topic and prevent its reintroduction.

With regard to the script, there are a number of ways to structure the code to achieve the same result. I can imagine that Tamriel Rebuilt may have some scripting conventions. Certainly it is easier to interpret scripts of similar function if that are written in the same way. I have my own conventions that I use, but I am perfectly willing to adapt to whatever Tamriel Rebuilt requires. My reason for having the StopScript above the currentDay check is to be certain the former processed in a timely fashion. (Otherwise it would have to process in one frame and I have read reports from other modders that does not always happen.)

I fixed the typos you identified and a couple others that eluded us all.

On to the greater concern: the possibility that Bahnirra survives the encounter with the slave hunter. It does not make sense for Tels Imalen to attack the slave he has been hired to recapture. The slave is intended to be collateral damage from the fireball - an easy way for the player to fail the quest. Instead I have created a parallel journal structure that allows the player to complete the quest (deliver Bahnirra to the Argonian Mission) even if the player kills Tels Imalen. Galyn Arvel is not very happy about the matter and Im-Kilaya gently reproaches the player, but there is no longer a contradiction between what happened in-game and how the circumstances are described by the NPCs. As for the problem with the topic 'journey to Ebonheart', that may have been a consequence of the broken quest-line - I honestly can't say now since I have added additional dialogue entries to accommodate the new path. However, I can assure you that the topic is available now whether the player completes the quest as intended or not.

I have not started work on the second quest yet. I think I should review the existing quests written for Tamriel Rebuilt so I have a better understanding of what is wanted.
Attachments
cyr_TRShowcase_1_10.zip
Twin Lamps escort quest
(34.91 KiB) Downloaded 105 times
Last edited by cyrano on Sun Jan 06, 2013 8:04 pm, edited 1 time in total.
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Re: Cyrano's (Quest) Showcase

Post by arvisrend »

Wow, thanks for returning to this! I haven't looked at your new file yet, but some comments on your post:
cyrano wrote:One of the reasons the 'interminable' background may not have felt so long is that it is broken up with actual player responses instead of merely a 'Continue' at the end of each segment. It makes the player feel a part of a conversation rather than the helpless victim of a soliloquy. At least that was my view when I wrote a series of stories for the bard Felvos Droryn in the Foreign Quarter. It was not my intent to create different branches that the topic could follow. Rather I offered polite interjections that reassure the speaker that their companion is actually paying attention - sort of what people do in real life. I can appreciate that not everyone would respond the same way - certainly a player roleplaying a selfish 'spotted owl' is going to feel like words are being forced in his/her mouth. I will remind you that dialogue is available only if the player is a member of the Twin Lamps, so one might assume a little more sympathetic listener. There is also the civil falsehood - we may feign interest or support in the interest of being polite. [...]
What I was objecting to was that the response options were way too explicitly supportive. You should offer some alternative, not necessarily cynical. A simple "Hmm, what then?" or "Okay" type response, rather than actively trying to show emotion. It doesn't matter if the response leads to the same continuation as the supportive one; the important thing is that the player can continue the dialogue without actively taking the side the quester wants him to take.

And yes, a Twin Lamp member (an outlander, of all things) can call bullshit on hearing that a Dunmer bowed in front of a slave. Chaotic good != gullible good.
cyrano wrote:With regard to the script, there are a number of ways to structure the code to achieve the same result. I can imagine that Tamriel Rebuilt may have some scripting conventions. Certainly it is easier to interpret scripts of similar function if that are written in the same way. I have my own conventions that I use, but I am perfectly willing to adapt to whatever Tamriel Rebuilt requires. My reason for having the StopScript above the currentDay check is to be certain the former processed in a timely fashion. (Otherwise it would have to process in one frame and I have read reports from other modders that does not always happen).
This isn't a matter of convention, it's a matter of optimization. Global scripts should be as optimized as possible, since they run all the time (in this case, the 7 days Galyn takes to talk to the player again), not just when you're in some specific cell. I. e., you're (potentially) slowing down not just your quest but the rest of the game as well, so you should try to do it wisely. In this concrete case, of course, it's not very important because it doesn't take long to compare a local variable with the constant 7. But we had other global scripts that used to mess with the framerate.

What are the reports you have read which contradict this? I'm interested because I tend to hear about new scripting quirks every week or so, but I think that everything that would cause an issue with my version of the script would also cause it with yours.

Incidentally, if you want to focus on the dialogue, feel free to focus on the dialogue, as scripting is no longer our bottleneck. We are opening pure NPCing claims lately (i. e., you get a town with exteriors and interiors done but no inhabitants; you have to do the pathgrids and create the NPCs and dialogue; questing isn't part of the claim). You'd have to frequent our channel or at least read some topics on the forum for us to be sure that you're getting the lore right. Of course, we still have quest claims, too.
cyrano wrote:On to the greater concern: the possibility that Bahnirra survives the encounter with the slave hunter. It does not make sense for Tels Imalen to attack the slave he has been hired to recapture. The slave is intended to be collateral damage from the fireball - an easy way for the player to fail the quest. Instead I have created a parallel journal structure that allows the player to complete the quest (deliver Bahnirra to the Argonian Mission) even if the player kills Tels Imalen. Galyn Arvel is not very happy about the matter and Im-Kilaya gently reproaches the player, but there is no longer a contradiction between what happened in-game and how the circumstances are described by the NPCs. As for the problem with the topic 'journey to Ebonheart', that may have been a problem with the broke quest-line - I honestly can't say now since I have added additional dialogue entries to accommodate the new path. However, I can assure you that the topic is available now whether the player completes the quest as intended or not.

I have not started work on the second quest yet. I think I should review the existing quests written for Tamriel Rebuilt so I have a better understanding of what is wanted.
I haven't looked at your new file, but from what you wrote it sounds like you've dealt with it fine.

What is wanted: NPCing and quests (see above). Be careful with looking at the existing quests; not all of them are good examples, particularly as far as lore and realism go... But of course it won't hurt if you want to build upon our work. Just make sure not to lower your quality standards to the ones we had years ago when we wrote the quests for Helnim and surroundings ;) Before you start implementing anything, let us know what you have in mind.

Keep up the good work!
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Re: Cyrano's (Quest) Showcase

Post by arvisrend »

User recommended for promotion as a quester, despite of numerous small and one serious bug.

This is not a detailed review as I would do with a quest claim (I'm leaving out boring stuff like checking that you haven't mixed up different quest stages), but I think it's enough to assess your skills.

You added a global called em_toddteen; just in case, please keep in mind that all globals should start with "TR_" in our actual claims (and I'd suggest they better start with "LGNPC_" in yours, because the initials "em" aren't exactly rare; IIRC one of our modders has them). What is the em_toddteen variable for, anyway?

An interioring gripe: the cellar has a fireplace, a wooden roof and no smokestack. You're not doing an interior showcase, so it's fine; just keep in mind that the fireplace doesn't work here (you are going to release this with some LGNPC update, I assume?).

I had something weird happen to me: I brought the slave to Ebonheart along Galyn's suggestion, completely peacefully, but then when I returned to Ald Velothi the slavehunter attacked me. So far nothing's wrong, but then I talk to Galyn Arvel about "journey to Ebonheart" and she tells me that "The slavehunter left town". True, he left town for Oblivion with my help, but surely this isn't what she means...

I'd expected a kind of compensation either from Galyn or from Im-Kalaya, even with a disclaimer that Twin Lamps don't normally work for money, but this was a rather complex and long task and travel does cost money. Better some semi-useful token of gratitude than just money; sc_radiyasicymask + sc_mageweal?

Be careful with these lines in script lgnpc_av_bahnirrascript:

Code: Select all

if ( ( GetPCCell "Ald Velothi, Ienas Arvel's Cellar" ) == 1 )
	set "lgnpc_av_tels_imalen".bahnirraTraveling to 0
	if ( ( GetDeadCount "lgnpc_av_tels_imalen" ) >= 1 )
		Disable
	endif
elseif ( ( GetPCCell "Ald Velothi, Ienas Arvel's Shack" ) == 1 )
	set "lgnpc_av_tels_imalen".bahnirraTraveling to 0
	if ( ( GetDeadCount "lgnpc_av_tels_imalen" ) >= 1 )
		Disable
	endif
They lead to the weird consequence that if I leave the shack with Bahnirra, then kill the slavehunter, then return to the shack, she just disappears. When I talk to Galyn then, I get an illogical journal entry ("[...] and urged me to make hast to Ebonheart with Bahnirra"). I think that, once the player has accepted this quest, Bahnirra shouldn't be disabled until it is completed, even if the player does stuff wrong.

Same script, different part:

Code: Select all

	if ( distanceCheck == 0 )
		if ( ( GetRace "Khajiit" ) == 1 )
			say "Vo\K\F\Flw_KF004.mp3" "Hey! Wait for me!"
		endif
		set distanceCheck to 1
	endif
Given that the script is for one single NPC, why do you check for race?

One more thing, again in script lgnpc_av_bahnirrascript:

Code: Select all

if ( doOnce == 1 )
	if ( ( GetJournalIndex "lgnpc_av_Galyn" ) == 20 ) ; let us not be too clever
		set doOnce to 2
		Enable
	endif
endif

if ( doOnce == 0 )
	set doOnce to 1
	Disable
endif
(You could have used elseif for the "if ( doOnce == 0 )", by the way.) This code has the consequence that if you accept the quest, then kill the slavehunter, then go into the cellar, the slave is disabled (unless you have already visited the cellar before killing the slavehunter). Not very logical given that Galyn has just told you about a slave being in her cellar. This is probably nontrivial to fix; you'd somehow make Bahnirra not follow the player in this case rather than disabling her.

Nice idea with lgnpc_av_FireScript, but as I said, the fireplace shouldn't be there. Use it on lanterns.

You should comment your scripts better. You do have some comments, but more would be good (and less cryptic: I still don't understand what you mean by "; let us not be too clever"). One thing you should definitely put in the comments is an explanation of Galyn's Hello values (what each of them means). Normally I'd say these should be in the script on Galyn, but since there is none, the lgnpc_av_GalynTimer script is probably the best place.

Do keep in mind that "if ( GetHealth < 1 )" isn't a bulletproof way to check for an NPC's death. An NPC can die at positive health when a restore-health effect is active on him (this is a well reproducable bug). In the case of Tels Imalen, this is made unlikely by the fact that he has no restore or absorb health spells or enchantments. In the case of Bahnirra, this is a more serious issue because the player might be trying to heal her in a fight. The OnDeath function (despite its pecularities explained in MSFD) is a lot more reliable than GetHealth as it comes to finding out whether an NPC is dying; just do make sure that the script doesn't "return" before it is executed in the frame when the respective NPC dies (because it only stays 1 for that single frame, and even then it is set to 0 once it has been read once).

I normally don't review dialogue but yours is more than good enough for recommendation. Just my comments:

I see you did improve some of the choices in Galyn's dialogue. Very nice! You might add a more neutral version of "So you have a partner in your mother-in-law, that is very fortunate" as well, and a neutral (not supporting, not ridiculing) one for "A Dunmer bowing before a Khajiit" (I now see I should have proposed this some months earlier). Oh, and a neutral equivalent to "I will be very careful - Bahnirra will come to no harm while she is under my protection" along the lines of "Thanks for the warnings. I will try.". (My character isn't as self-confident as yours.)

Journal stage 45 and many other places: we use "--" for dashes, not a single "-".

Journal stage 70: "slavehunter's" or "slavehunters'", but surely not "slavehunters".

Journal stage 85: comma missing here, I believe.

Journal stage 140: "know that" -> "know if"?

I think "To not attempt to move" should be "Do not attempt to move" (in the "journey to Ebonheart" topic).

Maybe "the hazards presented by the wilderness" should be "the hazards of the wilderness" to sound less book-ish.

Dialogue "someone in particular":
ONAM: Actor:galyn arvel
NAME: Response:
It is her children for whom I am most concerned. They are exposed to her hateful notions every day. Their father is a fisherman and is not often at home - no mystery there. Without interaction with children of other races they have only their mother's ugly views to guide them. There may be some hope for the youngest boy Indrisin, but the other two - I worry that their opinions are already fixed.
Forgive me, but this sounds a little out of character for anyone in Morrowind. I think even the Twin Lamps don't necessarily think children of different races should "interact". Recall that abolitionism was a far cry from anti-apartheid in American history. Try to not overstate the "opinions", "views" and "notions" either; abolitionists in Morrowind should be happy enough if someone's not an active slaver, even if his "views" are that everyone whose ancestors haven't lived in Morrowind for 10 generations is scum.

The "someone in particular" reply about Vireveri Darethran should be conditioned on her state of mind; I think it's roughly equivalent to some particular Dagoth (Dagoth Draven, I think) being dead.

Little bug: "you will more responsible" should be "you will be more responsible".

Replace "it" by "is" in "I believe this stranger is a slavehunter that tracked Bahnirra to Ald Velothi and it now looking for those who would assist her in her escape."

Not a bug, but something that would simplify your work next time:
Record: INFO "31606239591599858" (Topic:travel together) Flags:0x0000 ()
INAM: ID:31606239591599858
PNAM: Prev_ID:34083139125395180
NNAM: Next_ID:162641418228940682
DATA: Disposition:0 Rank:None Sex:None PC_Rank:None
ONAM: Actor:lgnpc_av_bahnirra
NAME: Response: Yes, %Name tries to keep up with strong %PCClass.
*SCVR: Index:0 Type:(Function) Function:(Choice) Comparison:(=) Name:
INTV: Compare_Value:1
*SCVR: Index:1 Type:(Journal) Function:(Journal_Type) Comparison:(=) Name:lgnpc_av_Galyn
INTV: Compare_Value:40
*SCVR: Index:3 Type:(Global) Function:(Global) Comparison:(>=) Name:GameHour
FLTV: Result_Value:6.00
*SCVR: Index:4 Type:(Global) Function:(Global) Comparison:(<) Name:GameHour
FLTV: Result_Value:20.00
BNAM: Result: ; LGNPC Ald Velothi
set followingPlayer to 1
set bahnirraAbandoned to 0
SetSpeed 100
SetAcrobatics 100
AIFollow player 0 0 0 0
Journal "lgnpc_av_Galyn" 45

Record: INFO "162641418228940682" (Topic:travel together) Flags:0x0000 ()
INAM: ID:162641418228940682
PNAM: Prev_ID:31606239591599858
NNAM: Next_ID:77148948167325242
DATA: Disposition:0 Rank:None Sex:None PC_Rank:None
ONAM: Actor:lgnpc_av_bahnirra
NAME: Response: Yes, %Name tries to keep up with strong %PCClass.
*SCVR: Index:0 Type:(Function) Function:(Choice) Comparison:(=) Name:
INTV: Compare_Value:1
*SCVR: Index:1 Type:(Journal) Function:(Journal_Type) Comparison:(=) Name:lgnpc_av_Galyn
INTV: Compare_Value:40
BNAM: Result: ; LGNPC Ald Velothi
set followingPlayer to 1
set bahnirraAbandoned to 0
SetSpeed 100
SetAcrobatics 100
AIFollow player 0 0 0 0
Journal "lgnpc_av_Galyn" 50
It appears that these two responses differ only in the results and the conditions. If so, you can combine them to one, since you can use if-clauses in the result script. And that's the better solution because any fixes or updates would need to be made on one response only rather than on two.

This "Morrowind lore" response:
Galyn wrote:Slavery has been an aspect of Dunmer life for so long that many are oblivious to its injustice. The coming of the Empire has raised peoples' awareness, but the abolishment of slavery is long overdue.
sounds a bit too much like a politician reading off a speech. Shouldn't be hard to fix though; try less gerund.

More on the same topic:
Galyn wrote:Many do not think of the Dunmer as a seafaring race, but Morrowind has long maritime traditions. Certainly my trade developed alongside advancements in boat construction and seamanship. With the eastern and western halves of Morrowind separated by the Inner Sea the only way to truly unite the province was through sea travel.
I don't think Vvardenfell is the eastern (or the western) half of Morrowind. Check with a map or with our files (once you can access them). Again, this reply might be a bit too encyclopedic.

With your dialogue style, you might be particularly good at mages, politicians and savants. Just saying. Not that you shouldn't try anyone else...

"Some the best fishing" should be "Some of the best fishing"?

"a few fisherman" should be "a few fishermen"?

I don't see what you were trying to achieve by adding "Madura Seran" replies for General Darius (he isn't even in Ald Velothi), but they break the Imperial Legion questline by being placed above the quest-relevant ones. This is the single serious bug in your showcase and I'd very much like it to not happen again. (That said, bugs like this are easy to spot during review.)

I think the replies to this topic you gave to Abassel mess with the Imperial Legion quest as well. The responses by NPCs who actually live in Ald Velothi are OK in the sense of not breaking any quests, but they are missing some conditions; you want to condition at least some of them to Madura Seran's death!

Replace "they" by "then" in "and they the subsequent death of my son"?

"Things have starting" should be "Things have started"?

I think there should be a comma after "%PCName" in "%PCName I am so happy to see you".

Serila Arvel's reply "Be careful, %PCName - it is still light outside." is conditioned only on a quest stage. This means that if I get the slave to follow me while it is still light, but then wait for the sun to set (without leaving the shack), she still answers "Be careful, %PCName - it is still light outside." You either should change the conditioning, or set the quest stage to 50 from 45 when it becomes night.

Another comma missing in "Good morning to you %PCName."

Serilla tells: "I am originally from a village east of Vorarchen Hall along the Ulabeat Coast." Vorarchen Hall is called Verarchen in TR, and I don't think the Ulabeat Coast has this name (though I do think we should give it a name). The place is called "TR_4-38-Red Verarchen" in our Heartland map, and there is no village east of that (unless you mean southeast). You might end up NPCing that town rather soon. I assume that if you give the whole town combined just as much dialogue as you gave Galyn, we'd already consider the claim finished...

Missing "am" in "But I not just the mother of a lost son".

One typo and one missing word in "but I insisted that there be a shine to provide for the nourishment one's soul".

Come on; a poor fisherwoman doesn't talk like this:
Galyn wrote:It is wrong to think that you can characterize all Dunmer with a few broad generalities just as it is wrong to form preconceptions about any race. We Dunmer have our selfless heroes of sterling character as well as greedy rogues preying on the innocent and helpless. We may have a distinctive appearance - our skin and eye color - but it is what you cannot see that distinguishes one Dunmer from another.
Compare with Serila's response, which is fine and very appropriate in style.

I assume "a weaken Argonian" is really "a weakened Argonian"?

Altogether, a well-done mod, despite the bugs. You definitely have the skills both to script and to write dialogue. As I already said, keep in mind that we usually require NPCs to have much less dialogue than you gave them (we even use the word "LGNPCing" for giving everyone in a town detailed life stories; this isn't something we usually do). And please don't edit other quests in your claims. This is not only avoid the "Madura Seran" bug that you introduced in your showcase, but also to account for the fact that the Mainland file can change between the moment you started your claim and the moment it is getting merged into the Mainland; some of your edits might be no longer compatible by the latter moment.

I'm happy to see you in the team (soon)!

-----------------------------------------------------------------------------------------------------------

Since I don't know where else to put these, here are a couple bugs I noticed in LGNPC looong ago but, seeing that Pax Redoran (which is where most of them come from) hasn't changed since then, might still be there:

11/21/2010 (16:45) LGNPC*** *** ondi00000000 Khuul, Thongar's Tradehouse 4485 4353 13730 "dialogue topic LATEST RUMORS typo. 'Molar Amur'"

LGNPC: Typo "force" (should be "forced") in quest JO_TVGeel stage 60.

11/28/2010 (14:03) LGNPC_PaxRedoran_v1_20.esp 6/30/2008 (22:00) *** in_mud_rock_07 Chil'a Grotto 2628 9036 -914 "typo in GREETING of Geel: 'as bad forcing' should be 'as bad as forcing'"

11/28/2010 (18:14) LGNPC*** *** in_velothismall_hall_01 Molag Mar, Waistworks -768 128 -1088 "typo in topic GELEPHOR: 'depts' should be 'debts'"

12/7/2010 (21:58) LGNPC*** *** tauryon00000000 Ald-ruhn (-2,6) -14321 55784 2347 "In the very last part of his long dialogue response to topic REJOIN THE MAGES GUILD, there is a lowercase 'l' that should be a capital 'I'."

And then this weird text duplication: http://i.imgur.com/NRf5L.jpg

Sorry if you have nothing to do with these...
Why
Lead Developer
Posts: 1654
Joined: Sat Jul 04, 2009 3:18 am
Location: Utrecht

Post by Why »

Arvisrend, I edited out your super-secret link to our internal development files, but thanks for doing this review. ;)

Congrats cyrano! I added you to the AI/Quests usergroup, and an admin should be along shortly to give you that fancy TR Modder tag. Feel free to ask any questions you have here, and please don't hesitate to join us on IRC (click the "TR Chat" button at the top of the page), it's a great place to discuss quests. I'll make sure to put up some fresh quest (design) claims for your enjoyment tomorrow!
cyrano
Developer
Posts: 6
Joined: Thu Jun 07, 2012 10:03 pm

Post by cyrano »

@arvisrend:

Thank you for the detailed report. I am a bit mortified that there were still so many errors. At this time I am not confident that I am capable of the level of work required for Tamriel Rebuilt, but hopefully I can make amends with my second quest. I will work more carefully and take more time to check my submission for errors.


From your previous post:
This isn't a matter of convention, it's a matter of optimization. Global scripts should be as optimized as possible, since they run all the time (in this case, the 7 days Galyn takes to talk to the player again), not just when you're in some specific cell. I. e., you're (potentially) slowing down not just your quest but the rest of the game as well, so you should try to do it wisely. In this concrete case, of course, it's not very important because it doesn't take long to compare a local variable with the constant 7. But we had other global scripts that used to mess with the framerate.
It was not clear from what you originally wrote that your concern was about making the script more efficient. Generally I am mindful of efficiency when writing scripts. It may be a matter of circumstances whether a slightly more efficient script that may have to run an extra day or two before it terminates is more welcome than the existing form of the script. Much better (if you believe in the integrity of DaysPassed) would be to attach a local script to a hidden activator in Ald Velothi. I used to have a local script merely check the calendar in such cases, but the Morrowind Code Patch renumbered the months so that practice became unreliable.
What are the reports you have read which contradict this? I'm interested because I tend to hear about new scripting quirks every week or so, but I think that everything that would cause an issue with my version of the script would also cause it with yours.
It has been many months since I have read such a report so I doubt I could find it again. I am not convinced it is true since I know from my own work I do not always recognize what is causing a problem, but that does not mean it has not happened. Therefore I felt it was worth the very small cost of script efficiency (checking a constant) to know it would work as intended.


And now to your most recent post:
You added a global called em_toddteen; just in case, please keep in mind that all globals should start with "TR_" in our actual claims (and I'd suggest they better start with "LGNPC_" in yours, because the initials "em" aren't exactly rare; IIRC one of our modders has them). What is the em_toddteen variable for, anyway?
em_toddteen is a global variable introduced by Children of Morrowind and set by that mod to 1. Other mods declaring that variable may check its value to know if the player is also running CoM. In this case, Galyn Arvel has some entries under the topic 'someone in particular' that would make better sense if there are children in the player's game. Those entries are filtered for em_toddteen = 1 and are available only if the player has loaded CoM.

I do not know if Tamriel Rebuilt has any intention of providing such report (I do not know of a mod that adds children to the mainland or if there is any intention to do so). The entry was not written with Tamriel Rebuilt's interests in mind. This appears to be another instance of me offering more than what is wanted, and in the future I will not take such liberties.
An interioring gripe: the cellar has a fireplace, a wooden roof and no smokestack. You're not doing an interior showcase, so it's fine; just keep in mind that the fireplace doesn't work here (you are going to release this with some LGNPC update, I assume?).
You are more discerning than the average player, but fair enough. After all they have been through already I am certain the escaped slaves hiding there can endure a cold cellar. No, this is no longer intended for release as an LGNPC mod.
I had something weird happen to me: I brought the slave to Ebonheart along Galyn's suggestion, completely peacefully, but then when I returned to Ald Velothi the slavehunter attacked me. So far nothing's wrong, but then I talk to Galyn Arvel about "journey to Ebonheart" and she tells me that "The slavehunter left town". True, he left town for Oblivion with my help, but surely this isn't what she means...
That should not have happened. Tels Imalen is scripted to disable after the player returns from Ebonheart and it worked for me when tested. I do include checks for day and cell change (the later from preventing Tels Imalen from disappearing before the player). These might be broken if the player returns to Ald Velothi via the console. If you could confirm that you returned on a different day then the quest started and walked to Ald Velothi (or coc'ed to an interior cell before entering the cell of Ald Velothi), then I will investigate the problem. If it is the result of console cheats, then I need to know if this is the sort of player behavior that Tamriel Rebuilt needs to accommodate before I try to create a solution.
They lead to the weird consequence that if I leave the shack with Bahnirra, then kill the slavehunter, then return to the shack, she just disappears. When I talk to Galyn then, I get an illogical journal entry ("[...] and urged me to make hast to Ebonheart with Bahnirra"). I think that, once the player has accepted this quest, Bahnirra shouldn't be disabled until it is completed, even if the player does stuff wrong.]
[and later...]
You should comment your scripts better. You do have some comments, but more would be good (and less cryptic: I still don't understand what you mean by "; let us not be too clever").
I was well aware that the player could return under such circumstances (I even wrote a couple greetings for Bahnirra to prevent her from interacting with the player). It was messy trying to juggle all of the possible combinations of ways the player could approach the quest incorrectly, and I made a judgment about how much time should be spent accounting for behavior that seems to be about intentionally breaking the quest. "let us not be too clever" was the note I made for myself when I decided it might introduce different problems not to disable Bahnirra.

This of course is my view and my modding philosophy. I will provide whatever Tamriel Rebuilt requires. Certainly a less complicated quest would be more appropriate if we want to be certain it is bomb-proof.
Given that the script is for one single NPC, why do you check for race?
That is the result of cutting and pasting from the official slave script. Certainly the check could be removed, but I cannot see that any measurable performance improvement will result from it.
One thing you should definitely put in the comments is an explanation of Galyn's Hello values (what each of them means). Normally I'd say these should be in the script on Galyn, but since there is none, the lgnpc_av_GalynTimer script is probably the best place.
I can provide detailed comments, although some lines of code seem self-explanatory. Since Hello is usually used by the LGNPC project as a dialogue filter to determine if the NPC has spoken to the player previously. It is also used as a filter for LGNPC NoLore. Our members are perfectly familiar with its cases so it is not documented unless its use is expanded (as in the case with Galyn Arvel to deal with both her not speaking with the player after failing the quest as well as the 'background' issue. The script lgnpc_av_GalynTimer does identify the meaning of the Hello states of the former through comments. However your point is well taken. Now that I know my scripts and dialogue filters have a wider audience I will be more transparent about their function.
Do keep in mind that "if ( GetHealth < 1 )" isn't a bulletproof way to check for an NPC's death. An NPC can die at positive health when a restore-health effect is active on him (this is a well reproducable bug). In the case of Tels Imalen, this is made unlikely by the fact that he has no restore or absorb health spells or enchantments. In the case of Bahnirra, this is a more serious issue because the player might be trying to heal her in a fight. The OnDeath function (despite its pecularities explained in MSFD) is a lot more reliable than GetHealth as it comes to finding out whether an NPC is dying; just do make sure that the script doesn't "return" before it is executed in the frame when the respective NPC dies (because it only stays 1 for that single frame, and even then it is set to 0 once it has been read once).
I am well aware of the problem with GetHealth. I assume you are not referring to Bahnirra's scripted death should she suffers the slighted wound. I know some use a check on the health ratio, but that too is subject to the same restoration effect bug when it is checked at low values. I will look at OnDeath more closely.
Forgive me, but this sounds a little out of character for anyone in Morrowind. I think even the Twin Lamps don't necessarily think children of different races should "interact".
It was not my intent to make Galyn Arvel an advocate for the full integration of Vvardenfell. She is merely observing that with no view or experience other than their mother's the children of Fevila Bethrano cannot be expected to be tolerant of other races. Perhaps she should say it just that plainly, but sometimes eloquence and the text buffer get in the way.
Recall that abolitionism was a far cry from anti-apartheid in American history. Try to not overstate the "opinions", "views" and "notions" either; abolitionists in Morrowind should be happy enough if someone's not an active slaver, even if his "views" are that everyone whose ancestors haven't lived in Morrowind for 10 generations is scum.
It may be as you describe, that there can be no instance of an idealistic (Dunmer?) abolitionist in the whole of Morrowind. I do not study lore as closely as some. If you have evidence of this fact I would welcome it. Additionally this may be the result of writing for the LGNPC project. Players loading our mods expect NPCs to have some fresh views - if they are all of the same mind, then Bethesda's generic dialogue should be sufficient or at the most we should paraphrase it to make it less tedious. But perhaps in the interest of generating some memorable interactions with NPCs we sometimes cross the line of what some regard as credible.


Thank you for reporting all of the typos you discovered.
It appears that these two responses differ only in the results and the conditions. If so, you can combine them to one, since you can use if-clauses in the result script. And that's the better solution because any fixes or updates would need to be made on one response only rather than on two.
I admit to being a little inconsistent about using conditionals in dialogue results. Sometimes I will when it is otherwise too complicated. It feels a little more reliable to me to have separate entries to assure it will work as intended, but that may be an unnecessary concern.
I don't think Vvardenfell is the eastern (or the western) half of Morrowind. Check with a map or with our files (once you can access them).
Galyn Arvel is referring to the east and western portions of mainland Morrowind, not Vvardenfell.
Again, this reply might be a bit too encyclopedic.
Perhaps, but we (LGNPC) are sometimes at pains to come up with unique dialogue for our NPCs. Moreover it is characteristic of Bethesda's generic dialogue where NPCs indiscriminately offer detailed facts about life in Vvardenfell. It may be pedantic, but at least is a response that is consistent with her life experiences. I can keep it bland for Tamriel Rebuilt.
I don't see what you were trying to achieve by adding "Madura Seran" replies for General Darius (he isn't even in Ald Velothi), but they break the Imperial Legion questline by being placed above the quest-relevant ones. This is the single serious bug in your showcase and I'd very much like it to not happen again. (That said, bugs like this are easy to spot during review.)

I think the replies to this topic you gave to Abassel mess with the Imperial Legion quest as well. The responses by NPCs who actually live in Ald Velothi are OK in the sense of not breaking any quests, but they are missing some conditions; you want to condition at least some of them to Madura Seran's death!
Those dialogue entries are relics that I did not notice when cleaning the mod for this showcase. The original LGNPC Ald Velothi broke this official quest. I made a quick fix of the matter at the time, but in the intended update decided to expand the quest properly. It required new entries for General Darius and Abassel Asserbassalit that were filtered for the new journal crated for the LGNPC quest. These entries were set apart from the other residents' dialogue on the topic and therefore overlooked. When the quest's journal was cleaned the new entries for General Darius and Abassel Asserbassalit lost the filtering that would have prevented the official quest from being broken. So yes it is a serious flaw, but it was the result of careless cleaning not misguided intent.

Since I don't know where else to put these, here are a couple bugs I noticed in LGNPC looong ago but, seeing that Pax Redoran (which is where most of them come from) hasn't changed since then, might still be there:
Thank you for these. I will check our current edit to see which of these errors still exist and address them.
User avatar
Bloodthirsty Crustacean
Developer Emeritus
Posts: 3869
Joined: Fri Feb 02, 2007 7:30 pm
Location: Elsewhere

Post by Bloodthirsty Crustacean »

Cyrano, just wanted to say that it's a real pleasure to have you on the team. I've long been a massive fan of LGNPC. :)
a man builds a city
with
Banks and Cathedrals
a man melts the sand so he
can see the world outside


"They destroyed Morrowind? Fiddlesticks! Now we're going to have to rebuild it again!"
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

cyrano wrote:@arvisrend:

Thank you for the detailed report. I am a bit mortified that there were still so many errors.
The errors aren't a big issue; they can be fixed (most often very quickly). It's the quality of the work that matters.
cyrano wrote:It was not clear from what you originally wrote that your concern was about making the script more efficient. Generally I am mindful of efficiency when writing scripts. It may be a matter of circumstances whether a slightly more efficient script that may have to run an extra day or two before it terminates is more welcome than the existing form of the script. Much better (if you believe in the integrity of DaysPassed) would be to attach a local script to a hidden activator in Ald Velothi. I used to have a local script merely check the calendar in such cases, but the Morrowind Code Patch renumbered the months so that practice became unreliable.
Ah, I see what you mean. My version of the script waits for exactly one more day than yours. Then again you could have switched 7 for 6 and that'd be fine again.
cyrano wrote:em_toddteen is a global variable introduced by Children of Morrowind and set by that mod to 1. Other mods declaring that variable may check its value to know if the player is also running CoM. In this case, Galyn Arvel has some entries under the topic 'someone in particular' that would make better sense if there are children in the player's game. Those entries are filtered for em_toddteen = 1 and are available only if the player has loaded CoM.
Ah, so em = Emma. I don't know if we are to put such stuff in our Mainland file or leave it to compatibility plugins. Better leave it out in your claims, given that you already are writing A LOT more dialogue than needed by our standards.
cyrano wrote:You are more discerning than the average player, but fair enough. After all they have been through already I am certain the escaped slaves hiding there can endure a cold cellar. No, this is no longer intended for release as an LGNPC mod.
A pity since it's a nice quest once those bugs are fixed.
cyrano wrote:
I had something weird happen to me: I brought the slave to Ebonheart along Galyn's suggestion, completely peacefully, but then when I returned to Ald Velothi the slavehunter attacked me. So far nothing's wrong, but then I talk to Galyn Arvel about "journey to Ebonheart" and she tells me that "The slavehunter left town". True, he left town for Oblivion with my help, but surely this isn't what she means...
That should not have happened. Tels Imalen is scripted to disable after the player returns from Ebonheart and it worked for me when tested. I do include checks for day and cell change (the later from preventing Tels Imalen from disappearing before the player). These might be broken if the player returns to Ald Velothi via the console. If you could confirm that you returned on a different day then the quest started and walked to Ald Velothi (or coc'ed to an interior cell before entering the cell of Ald Velothi), then I will investigate the problem. If it is the result of console cheats, then I need to know if this is the sort of player behavior that Tamriel Rebuilt needs to accommodate before I try to create a solution.
I think I did use the console, and if that's what caused it, you don't have to fix it (we don't accomodate for console gameplay indeed, but most of us use it to review claims). Seems it should work fine if the console isn't used (at least if CellChanged records arrival by Mark/Recall).

Good work then!
cyrano wrote:I was well aware that the player could return under such circumstances (I even wrote a couple greetings for Bahnirra to prevent her from interacting with the player). It was messy trying to juggle all of the possible combinations of ways the player could approach the quest incorrectly, and I made a judgment about how much time should be spent accounting for behavior that seems to be about intentionally breaking the quest. "let us not be too clever" was the note I made for myself when I decided it might introduce different problems not to disable Bahnirra.
Oh, I still think it would be easier not to disable her.
cyrano wrote:That is the result of cutting and pasting from the official slave script. Certainly the check could be removed, but I cannot see that any measurable performance improvement will result from it.
Yes, I'm fine with it as long as I know where this weirdness comes from.
cyrano wrote:Since Hello is usually used by the LGNPC project as a dialogue filter to determine if the NPC has spoken to the player previously. It is also used as a filter for LGNPC NoLore. Our members are perfectly familiar with its cases so it is not documented unless its use is expanded (as in the case with Galyn Arvel to deal with both her not speaking with the player after failing the quest as well as the 'background' issue. The script lgnpc_av_GalynTimer does identify the meaning of the Hello states of the former through comments. However your point is well taken. Now that I know my scripts and dialogue filters have a wider audience I will be more transparent about their function.
Yes, you should explain what their values mean in TR at least.
cyrano wrote:I assume you are not referring to Bahnirra's scripted death should she suffers the slighted wound.
I thought the scripted death only happened during the fight with the slavehunter. I am talking about fighting on the way to Ebonheart.
cyrano wrote:It was not my intent to make Galyn Arvel an advocate for the full integration of Vvardenfell. She is merely observing that with no view or experience other than their mother's the children of Fevila Bethrano cannot be expected to be tolerant of other races. Perhaps she should say it just that plainly, but sometimes eloquence and the text buffer get in the way.
TBH I'm mostly extrapolating since there is very little Twin Lamps dialogue in vanilla. But I can't imagine them leading a battle for the minds when there are slaves to help across the land. Particular NPCs can have different opinions, but suggesting that Dunmer children should interact with children of other races is lunacy in Third Era Morrowind. You are not painting Galyn as a lunatic.
cyrano wrote:I admit to being a little inconsistent about using conditionals in dialogue results. Sometimes I will when it is otherwise too complicated. It feels a little more reliable to me to have separate entries to assure it will work as intended, but that may be an unnecessary concern.
I think that indeed is an unnecessary concern.
cyrano wrote:Galyn Arvel is referring to the east and western portions of mainland Morrowind, not Vvardenfell.
Ah!
cyrano wrote:Perhaps, but we (LGNPC) are sometimes at pains to come up with unique dialogue for our NPCs. Moreover it is characteristic of Bethesda's generic dialogue where NPCs indiscriminately offer detailed facts about life in Vvardenfell. It may be pedantic, but at least is a response that is consistent with her life experiences. I can keep it bland for Tamriel Rebuilt.
Yes, just try not to surpass Bethesda at this kind of writing. Mages, savants, nobles, all these kinds of NPCs can speak as long-winded as you wish; but this is a poor fisherwoman.
cyrano wrote:Those dialogue entries are relics that I did not notice when cleaning the mod for this showcase.
Ah. Don't be too worried then; you aren't going to be working from LGNPC files in our mod anyway.

One final remark about generic (= not quest-specific) dialogue at TR: A look at some of our newer places (Necrom, Sailen, Meralag) should show you how much dialogue we expect an NPCer to write. Typically every NPC has a few lines of unique replies ("Background", "my trade", possibly greetings), normally without "continue"s. Topics like "little secret", "little advice" and "latest rumors" are usually shared by several NPCs in the same town (conditioned on race or faction), although occasionally there can be specific replies for specific people. The "Specific place" and "services" topics, as well as town-name topics, normally only have a few replies per town, although you can write more if you want (just don't make them too long, please). If your generic dialogue is much more copious than this, players will be confused, thinking that the NPCs want to offer them quests but they are failing certain condition checks. Moreover, it looks weird if one town is LGNPCed and another isn't. I assume that if you really want to write novels, you should look into our literature department (we have not had any new books for years). Why is going to post some guidelines for generic dialogue soon; you definitely should look into them, if only to know how much less work you'll need to do here than in LGNPC.

One thing about quests, too: Our quests usually start from greetings, not (or not only) from "latest rumors" or "background" or "my trade" topics, except for a few cases where realism requires that the NPCs who need your help would never dare to talk to you. I'm saying this because I know that LGNPC has several quests that can only be started from "latest rumors"; your quest was fine in that regard.

Last but not least: Welcome to the team, cyrano!
User avatar
Bloodthirsty Crustacean
Developer Emeritus
Posts: 3869
Joined: Fri Feb 02, 2007 7:30 pm
Location: Elsewhere

Post by Bloodthirsty Crustacean »

arvisrend wrote:One thing about quests, too: Our quests usually start from greetings
To be completely pedantic, they start from topics that are hotlinked from greetings, rather than actually giving the player a new quest and journal entry just for having spoken to someone without knowing what they were getting in to. But I think that's what Arvis means, anyway.
a man builds a city
with
Banks and Cathedrals
a man melts the sand so he
can see the world outside


"They destroyed Morrowind? Fiddlesticks! Now we're going to have to rebuild it again!"
Locked