Jump to content

SmallerTalk version 1.2.6 - updated 2-3-13


Recommended Posts

Tested the latest SmallerTalk. I like the new random dialog.

 

I wonder' date=' is there a way to close the dialog with keyboard shortcut, like ESC button or B button in XBOX360 controller in Skyrim? Many times I accidentally opened the SmallerTalk dialog, a keyboard shortcut to close the dialog will be very helpful.

 

Btw, FNV have a very bad keyboard shortcut. In some menu you need to press E to close it, and the other is X. I think E is the best, easy to reach by the finger.

[/quote']

 

There is no shortcut to close the dialogue but you can open the console and type "cam" which is the shorthand command for the longer console command "closeallmenus". Documentation here.

Link to comment

Is there a way to show up the dialog from a keyboard shortcut?

 

Like using Z button to show the dialog' date=' instead of waiting for couple of seconds, for example.

[/quote']

 

The original SmallerTalk worked that way but that method proved unworkable. The way SmallerTalk works is by waiting long enough for Goodbye flagged GREETING topics to be spoken and then the dialogue to end and then having the NPC approach and do a StartConversation with the SmallerTalkGreeting topic. The delay is a necessity to allow this to happen. You can shorten the delay using the MCM options to as little as 1 second or as much as 10 seconds. The default of 3 seconds was chosen specifically because it allows the GREETING the npc plays to actually complete (though some of them last to closer to 4 seconds). Unfortunately there is simply no way to determine if an NPC is speaking a Goodbye flagged topic and responding to that in script. There are only three solutions to this problem. The first is to do what SmallTalk does, which is to override the Goodbye flags of vanilla dialogue making it a VERY large esp containing a huge portion of all vanilla dialogue as overrides. The second solution, used by SmallerTalk, is to let the Goodbye flagged GREETING play out and then start a new topic specifically using StartConversation. The second solution requires there be a delay long enough to let the original GREETING to play out (though not including the sound file, the delay can be as short as only 1 second). The third solution would be to override the activate event and respond accordingly and this solution is the least stable and, when tried, proved also unworkable.

Link to comment

is there a way to bypass smallertalk? scenario: I want to activate an npc to use an on activate perk' date=' is there a way via scripting, etc. (not sneaking) to prevent smallertalk from making the npc initiate dialog afterwards?

[/quote']

 

There's an MCM option to disable SmallerTalk. Uncheck "Enable SmallerTalk".

Link to comment

I think he wants to force-disable it when talking to that NPC for all users so it doesn't show up regardless of their SmallerTalk settings.

If it's desired for an NPC to block SmallerTalk from another mod' date=' all that is required is a quest running on that NPC that checks for the presence of the SmallerTalkDialogueToken "SmallerTalkDialogueToken" [ARMO:xx007AA3'] and removes it. The script has up to the user's current SmallerTalk delay to remove it before it does the StartConversation.

Link to comment

If it's desired for an NPC to block SmallerTalk from another mod' date=' all that is required is a quest running on that NPC that checks for the presence of the SmallerTalkDialogueToken "SmallerTalkDialogueToken" [ARMO:xx007AA3'] and removes it. The script has up to the user's current SmallerTalk delay to remove it before it does the StartConversation.

 

Wouldn't the onadd portions of the dialogue and resetai token scripts have already run by then? right now I have edited smallertalk with a new faction, SmallerTalkIgnoreFaction and a check in the smallertalk quest script along with the getdead checks to ignore npcs in that faction.

Link to comment

If it's desired for an NPC to block SmallerTalk from another mod' date=' all that is required is a quest running on that NPC that checks for the presence of the SmallerTalkDialogueToken "SmallerTalkDialogueToken" [ARMO:xx007AA3'] and removes it. The script has up to the user's current SmallerTalk delay to remove it before it does the StartConversation.

 

Wouldn't the onadd portions of the dialogue and resetai token scripts have already run by then? right now I have edited smallertalk with a new faction, SmallerTalkIgnoreFaction and a check in the smallertalk quest script along with the getdead checks to ignore npcs in that faction.

 

No they wouldn't have run by then, they simply start a timer that waits for the delay to run out (for dialogue) or 5 minutes (resetai). You would have plenty of time to remove the tokens. It's a simple matter to have any dialogue run a removeitem command on the dialogue end script or run a script attached to the npc that checks for the token in inventory and removes it if necessary.

Link to comment

If you did that you would either have to buildref or have SmallerTalk as a master. Perhaps adding the Ignore FormID list in SmallerTalk so other mods can add to it via script is the best method.

 

They'd have to master or buildref SmallerTalk to use the formid list too... but I'll add the functionality in anyway. Couldn't hurt.

Link to comment

Right' date=' but they'd have to do it in a dialog script, and I don't know about anyone else but I don't like doing anything in dialog scripts unless absolutely necessary. [i']Especially[/i] if/then checks, like this would require.

 

I'm going to add both so both options are available. A faction and a formid list.

Link to comment

Right' date=' but they'd have to do it in a dialog script, and I don't know about anyone else but I don't like doing anything in dialog scripts unless absolutely necessary. [i']Especially[/i] if/then checks, like this would require.

 

I'm going to add both so both options are available. A faction and a formid list.

 

Awesome thanks :)

Link to comment

Release v1.2.5

 

Adds the ability to have NPCs be ignored by SmallerTalk. You have two options... place them in SmallerTalkIgnoreList, a formid list, or place them in SmallerTalkIgnoreFaction, a faction, at Rank 0. The SmallerTalkScript will then ignore the NPC and not give them a token.

Link to comment

working with the ignore faction and flist is going great for me, with those additions might it be a good idea to place a download link for smallertalk with ESM flag to the OP? Not that it is hard to set, just that I'm sure someone out there would have trouble doing it, and If I'm not mistaken it is required to use the new ignore options.

Link to comment
Also' date=' there are two ways of getting references to another mod, for this purpose.

 

One is to make the other mod a "master" -- this forces the game to crash if your mod is installed and the other mod is not. The other mod also should appear earlier on load order than your mod (but I do not remember what bad things can happen if you fail to do this).

 

Another approach is to use FOSE's GetModIndex and BuildRef. This is how MCM works, and here is some typical code:

 


       if GetGameRestarted
               if IsModLoaded "The Mod Configuration Menu.esp"
                       set iMaster to GetModIndex "The ModConfiguration Menu.esp"
                       set rList to BuildRef iMaster 2790
                       ListAddForm rList SCEStokenMISC
               endif
       endif

 

Here, you have to work with numbers instead of dragging and dropping in GECK. The formid numbers are hexidecimal 8 digit numbers, where the first two digits depend on the mod's load order. Those are the digits you get from GetModIndex. The last six digits (of the armor's id, from the other mod) you have to convert from hexadecimal to decimal and that becomes the second argument to BuildRef.

[/quote']More examples of this can be found in various places such as the main SexoutStore script.

Link to comment

working with the ignore faction and flist is going great for me' date=' with those additions might it be a good idea to place a download link for smallertalk with ESM flag to the OP? Not that it is hard to set, just that I'm sure someone out there would have trouble doing it, and If I'm not mistaken it is required to use the new ignore options.

[/quote']

 

An esp doesn't have to be an esm to be used as a master. Likely need an esm version to edit your esp mastered to SmallerTalk in the GECK though. TBH, I wouldn't define SmallerTalk as a master. I'd simply use IsModLoaded/GetModIndex/BuildRef and dynamically add your NPCs to the FormID list SmallerTalkIgnoreList. Something like so:

 

Begin GameMode
   int intIndex
   ref refList
   if (GetGameLoaded || GetGameRestarted)
       if IsModLoaded "SmallerTalk.esp"
           set intIndex to GetModIndex "SmallerTalk.esp"
           set refList to BuildRef intIndex 37282
           if refList
               AddFormToFormlist refList YourNPCRef
           endif
       endif
   endif
End

 

EDIT: see what happens when you don't click the link to the next page of responses... oops, already answered :P

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use