Dialogue Proposals

4 posts / 0 new
Last post
Evil Eye's picture
Evil Eye
Senior DeveloperAsset ReviewerInterior DeveloperQuest Developer
Joined:
2016-01-21 18:33
Last seen:
1 hour 17 min ago

Cross Project NPC Locals

This one's kinda annoying due to the amount of scripts to update, but I propose we introduce the T_NPC local (or some such) which would function something like the TR_Map and Sky_Hold variables. Every NPC script added by PT or TR would contain the line short T_NPC (note: no actual value, just the default 0) which could then be used to filter cross provincial dialogue.

The motivation for this being that Cyrodiil and Skyrim both have a need to filter out certain voice lines ("I could kill that guar...") but the effort currently needs to be duplicated. This way the current set of dialogue changes could be moved into T_D and given the filter Local T_NPC = 0, Not Local TR_Map >= 0. This has the additional benefit of shrinking the province ESMs which is beneficial as we know there to be some size limit above which the CS will no longer be able to handle them.

In addition to T_NPC, I suggest the addition of T_NoLore which could either replace Sky_NoLore and Cyr_NoLore or complement them. (The latter might be useful for a border NPC needing some dialogue from both provinces... maybe. Replacing probably makes more sense.)

With both these new locals in hand, it would be possible to move generic cross provincial dialogue into T_D. I imagine this would mainly be the gameplay hints present in "little advice" and "little secret".

These locals would also make it possible to make some of the more generic voicelines added by Tribunal and Bloodmoon available across all provinces.

Move TR over to the same dialogue system P:C and SHotN use

Where every NPC has the vanilla NoLore local and therefore doesn't use vanilla dialogue (excepting poorly filtered lines which can hopefully mostly be pawned off to PfP). In TR's case this is far less desirable because a lot of the vanilla dialogue is applicable to the entire province and would have to be copied into TR_Mainland, however the continued annoyance of coming across Vvardenfell centric responses on the mainland would be gone.

This is the follow up to what I mentioned on Discord about Scout and Savant dialogue being "weird" at present. (i.e. Savants know about all Vvardenfell locations but only about mainland locations in their own section of the (TR_)map.)

Gnomey's picture
Gnomey
Asset DeveloperWriterExterior DeveloperInterior Developer
Joined:
2015-08-10 20:50
Last seen:
6 days 22 hours ago

This seems like a good proposal to me. Definitely an unpleasant prospect on the TR side of things, but it does seem necessary. I won't be getting around to trying things out anytime soon, but as discussed on Discord I think a first step is to sort out the vanilla lines affected by nolore to figure out which we need to duplicate, which we need to make modified versions of, and which we can just not reimplement.

That will be a lot of lines to work through, and I'm not sure what the best approach to getting them organized is. I'll probably be doing a bit more musing on this and organizing out dialogue in general on Discord.

Rakanishu's picture
Rakanishu
Quest Developer
Joined:
2016-09-15 23:12
Last seen:
1 month 1 week ago

I think we should add all of the new generic/fallback "my trade" entries as well.  The changes take no time at all if we use G7's tes3conv program.  For example, here's a tested workflow for SHOTN:

  • Modify one of the scripts in T_D to include a "short T_Local_NPC" declaration as well as "short T_Local_NoLore" (necessary to prevent dropped dialogue filters)
  • Use tes3conv to convert Sky_Main.esp to JSON
  • Find+replace "\r\nshort Sky_Hold" with "\r\nshort T_Local_NPC\r\nshort Sky_Hold" (adds a T_Local_NPC declaration to all NPC scripts)
  • Find+replace "Sky_NoLore" with "T_Local_NoLore" (replaces all instances of Sky_NoLore with T_Local_NoLore in scripts and dialogue filters)
  • Use tes3conv to convert the JSON file back to an ESP
  • Load the ESP in the CS, "Recompile All" scripts, and save
  • Clean any dirtied vanilla scripts
Evil Eye's picture
Evil Eye
Senior DeveloperAsset ReviewerInterior DeveloperQuest Developer
Joined:
2016-01-21 18:33
Last seen:
1 hour 17 min ago

Find+replace "\r\nshort Sky_Hold" with "\r\nshort T_Local_NPC\r\nshort Sky_Hold" (adds a T_Local_NPC declaration to all NPC scripts)

One thing to note is that this will break (vanilla) saves whereas adding the new local at the bottom of the list shouldn't. Dunno if that's something to be concerned about though.