Jump to content

Dialog / Script Help


Elerneron

Recommended Posts

Posted

Okay, I'm working on a new mod, and I need to only display certain dialog options if a specific follower that is not involved in the conversation is in the party. Is there a way to do this? My eyes are bleeding trying to find out how this is done.

Posted

Flag the dialog with the getinsamecell as the companion you need to be there. It'll only trigger if they're with you then.

Posted

Flag the dialog with the getinsamecell as the companion you need to be there. It'll only trigger if they're with you then.

 

Thank you. I tried that earlier, but was having trouble finding my target references. It would be so much easier if they just let me type them in.

 

New Question: Is there a way to use IsModLoaded to refrence an NPC in a mod without making that mod a master of my mod? I know Halstrom is doing something like that with Willow. How would I go about that?

 

Posted

Flag the dialog with the getinsamecell as the companion you need to be there. It'll only trigger if they're with you then.

 

Thank you. I tried that earlier' date=' but was having trouble finding my target references. It would be so much easier if they just let me type them in.

 

New Question: Is there a way to use IsModLoaded to refrence an NPC in a mod without making that mod a master of my mod? I know Halstrom is doing something like that with Willow. How would I go about that?

 

[/quote']

Here...

 

 

Posted

You need to use IsModLoaded, GetModIndex, and BuildRef.

 

Sexout.esm does this for the breezes bodysuits. All the mods using MCM use it to check if MCM is loaded and kickstart it.

 

scn MyQuestScript

ref SomeNPC
int idx

Begin GameMode
 ; Set your ref
 if (GetGameLoaded || GetGameRestarted)
   if (IsModLoaded "some mod.esp")
     set idx to GetModIndex "some mod.esp"
     set SomeNPC to BuildRef idx 012345
   else
     ; clear it out in case they deactivate the mod, invalidating your ref
     set SomeNPC to 0
   endif
 endif
End

 

You'll need to change '012345' to the actual Form ID of the NPC you want to reference, not counting the first two digits (which are the mod index).

 

If the Form ID is 012233

1. chop off the 01, to get 2233

2. convert 2233 from hex to dec (8755)

3. put 8755 above.

 

Then you can use SomeNPC in your quest script. If you want to use it elsewhere, you can do comparisons and stuff, but if you want to call functions on it you'll need a local variable.

 

This won't work:

if MyQuest.SomeNPC.IsInCell ....

 

So you have to do this

ref LocalRef
set LocalRef to MyQuest.SomeNPC
if LocalRef.IsInCell ...

 

 

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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