Jump to content

SmallerTalk version 1.2.6 - updated 2-3-13


Recommended Posts

Thanks for the quick replies.

 

@astymma can I assume this could be used in a quest script to provide a persistent variable reference to the list? i.e. somequest.refList

 

Persistent for the current session, yes. the AddFormToFormList lines aren't needed in the exact place my example gave. They could, as you're asking, be used later using a quest variable as the reference. The IsModLoaded/getmodIndex/BuildRef calls *should* be used like the example. Since AddFormToFormlist doesn't reliably persist through a save and load, I would also place any AddFormToFormlist calls *also* in a GetGameLoaded/GetGameRestarted if/endif block. Not 100% sure if using ListAddForm works reliably through a save/load but it's an option instead of AddFormToFormlist.

Link to comment

Thanks for the quick replies.

 

@astymma can I assume this could be used in a quest script to provide a persistent variable reference to the list? i.e. somequest.refList

 

Persistent for the current session' date=' yes. the AddFormToFormList lines aren't needed in the exact place my example gave. They could, as you're asking, be used later using a quest variable as the reference. The IsModLoaded/getmodIndex/BuildRef calls *should* be used like the example. Since AddFormToFormlist doesn't reliably persist through a save and load, I would also place any AddFormToFormlist calls *also* in a GetGameLoaded/GetGameRestarted if/endif block. Not 100% sure if using ListAddForm works reliably through a save/load but it's an option instead of AddFormToFormlist.

[/quote']

 

thanks, working great for adding to / removing from faction and removing tokens, I'll probably avoid the formlist for now since the faction does what I need it to.

Link to comment

Thanks for the quick replies.

 

@astymma can I assume this could be used in a quest script to provide a persistent variable reference to the list? i.e. somequest.refList

 

Persistent for the current session' date=' yes. the AddFormToFormList lines aren't needed in the exact place my example gave. They could, as you're asking, be used later using a quest variable as the reference. The IsModLoaded/getmodIndex/BuildRef calls *should* be used like the example. Since AddFormToFormlist doesn't reliably persist through a save and load, I would also place any AddFormToFormlist calls *also* in a GetGameLoaded/GetGameRestarted if/endif block. Not 100% sure if using ListAddForm works reliably through a save/load but it's an option instead of AddFormToFormlist.

[/quote']

 

Well, ListAddForm is reliably NOT SAVED. AddFormToFormList "should" save.

Link to comment

Found this if anyone sucks at math stuffs like me.

 

http://www.statman.info/conversions/hexadecimal.html

 

Well windows comes with a program called "calc". Just click start menu, click run, type in calc. Click the Hex radio button and type in the Hex value from the refid. Once you have it typed in, click the Dec radio button to convert to decimal. If you can't see those radio buttons, click the view menu and choose "scientific".

Link to comment

Found this if anyone sucks at math stuffs like me.

 

http://www.statman.info/conversions/hexadecimal.html

 

Well windows comes with a program called "calc". Just click start menu' date=' click run, type in calc. Click the Hex radio button and type in the Hex value from the refid. Once you have it typed in, click the Dec radio button to convert to decimal. If you can't see those radio buttons, click the view menu and choose "scientific".

[/quote']

 

I just looked, its actually "Programmer" to get the hexidecimal conversions.

Link to comment

Found this if anyone sucks at math stuffs like me.

 

http://www.statman.info/conversions/hexadecimal.html

 

Well windows comes with a program called "calc". Just click start menu' date=' click run, type in calc. Click the Hex radio button and type in the Hex value from the refid. Once you have it typed in, click the Dec radio button to convert to decimal. If you can't see those radio buttons, click the view menu and choose "scientific".

[/quote']

 

I just looked, its actually "Programmer" to get the hexidecimal conversions.

 

Ahh that must have changed after windows xp (yes, I'm a curmudgeon).

Link to comment
  • 3 weeks later...
  • 4 weeks later...

I hate to be a "that" guy but I'm having an issue. After a sex action, I'm getting an infinite loop of the post-sex dialogue. This is after I had installed V1.2.6. from an earlier version. I have tried deactivating smaller talk from the MCM as well as deleting/reinstalling the .esp. Has anyone seen this manifested before?

Link to comment

SmallerTalk only deals with allowing the player to being a conversation with NPCs that would be otherwise unable to do so. The issue you are having is not related to SmallerTalk and is most likely related to the plugin that is providing the dialogue.

Link to comment
  • 2 weeks later...

Thank you for the mod' date=' I had a question to the developer.

 

Would it be possible to disable this entirely for companions, as a toggle?

[/quote']

 

It would probably be possible to disable it for known companions but not for ALL companions in a generic sense. The problem arises in there not being a reliable way to determine who is a companion or not.

 

The simplest method would be for you to open the console and click on the companion you want to exclude and then type:

addtofaction xx0091A1 0

Instead of the xx in the above, use the load order of SmallerTalk.esp. That will add that companion NPC to the SmallerTalkIgnoreFaction and the NPC will then be ignored by SmallerTalk.

Link to comment

So the faction is used instead of the FormList?

if yes, this would explain why adding to the FormList didn't work for me.

 

Edit:

Nope, not working either.

	if ( GetGameLoaded || GetGameRestarted == 1 )
	NBdTestMannequinF.SetActorsAi 0
	PrintToConsole "Nervous Breakdown: Starting..."
	if ( isModLoaded "Sexout.esm" == 1 )
		PrintToConsole "   Sexout found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModIndex "Sexout.esm"
		Set modL To BuildRef modi 53734
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	if ( isModLoaded "SexoutCommonResources.esm" == 1 )
		PrintToConsole "   SexoutCommonResources found -> adding Mannequin to SLActorDataIsSterile..."
		Set modi To GetModIndex "SexoutCommonResources.esm"
		Set modL To BuildRef modi 122324
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	if ( isModLoaded "SexoutSlavery.esm" == 1 )
		PrintToConsole "   SexoutSlavery found -> adding Mannequin to CantBeEnslavedList..."
		Set modi To GetModIndex "SexoutSlavery.esm"
		Set modL To BuildRef modi 41315
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	if ( isModLoaded "SexoutLegion.esm" == 1 )
		PrintToConsole "   SexoutLegion found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModIndex "SexoutLegion.esm"
		Set modL To BuildRef modi 156200
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	if ( isModLoaded "SmallerTalk.esp" == 1 )
		PrintToConsole "   SmallerTalk found -> adding Mannequin to IgnoreList..."
		Set modi To GetModIndex "SmallerTalk.esp"
		Set modL To BuildRef modi 37282
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
		PrintToConsole "   SmallerTalk found -> adding Mannequin to IgnoreFaction..."
		Set modL To BuildRef modi 37281
		AddToFaction modL 0
	Endif
	if ( isModLoaded "SexoutBrutalRapers.esp" == 1 )
		PrintToConsole "   SexoutBrutalRapers found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModIndex "SexoutBrutalRapers.esp"
		Set modL To BuildRef modi 37282
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	if ( isModLoaded "SexoutFiends.esp" == 1 )
		PrintToConsole "   SexoutFiends found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModIndex "SexoutFiends.esp"
		Set modL To BuildRef modi 155465
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	if ( isModLoaded "SexoutKhans.esp" == 1 )
		PrintToConsole "   SexoutKhans found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModIndex "SexoutKhans.esp"
		Set modL To BuildRef modi 155465
		Set modC To ListGetCount modL
		Set modC To modC - 1
		ListAddForm modL NBdTestMannequinF modC
	Endif
	PrintToConsole "Nervous Breakdown: Done."
Endif

Something wrong with my script?

 

Excluding from BrutalRapers works just fine, as noone tries to mate with the mannequin anymore.

The script didn't break, as after this GameMode-block follows the code for controlling the Mannequin.

And this still works ... over and over with Smallertalk interrupting the final positioning, after the inventory trade window is closed.

 

 

Edit2:

Exchanged every "Set modC To modC - 1" line with the following:

			if ( modC > 0 )
			Set modC To modC - 1
		Else
			Set modC To 0
		Endif

in case the list is empty. Still no success. Help, please. :(

 

 

Edit3: Nvm. Fixed the problem by including another timed animation stage.

Must have overread something, as i didn't know that SmallerTalk has an included timeout that needs to be reached before the forced dialogue takes place. Well done. Even tho i might run into a problem if people set SmallerTalk activation over 3s in MCM (in case this controls the timeour as well). :/ Anyone an idea how to prevent this or how to solve the earlier problem, as the new animation stage seems to be one animation to much.

Link to comment

You can use either the Faction or the FormList. Your addtofaction calls aren't being made on any reference.

 

You're calling:

AddToFaction modL 0

and need to call:

ActorREF.AddToFaction modL 0

 

The timer SmallerTalk works on is on the token handed to the actor. If the actor is in the FormList and/or Faction, they don't even receive the token.

Link to comment
You can use either the Faction or the FormList. Your addtofaction calls aren't being made on any reference.

Atm this script run's on the ActorREF' date=' so i didn't set it for the AddToFaction function.

Will move the whole mod support into a quests script later, after i made it read a Formlist instead of hardcoding the mod's into the script.

 

The timer SmallerTalk works on is on the token handed to the actor. If the actor is in the FormList and/or Faction, they don't even receive the token.

The old problem still remain. Added the mannequin to the SmallerTalk formlist only and removed the 6th animation step from the mannequin -> SmallTalk pops up. :(

Same script, just without the AddToFaction lines.

Link to comment
You can use either the Faction or the FormList. Your addtofaction calls aren't being made on any reference.

Atm this script run's on the ActorREF' date=' so i didn't set it for the AddToFaction function.

Will move the whole mod support into a quests script later, after i made it read a Formlist instead of hardcoding the mod's into the script.

 

The timer SmallerTalk works on is on the token handed to the actor. If the actor is in the FormList and/or Faction, they don't even receive the token.

The old problem still remain. Added the mannequin to the SmallerTalk formlist only and removed the 6th animation step from the mannequin -> SmallTalk pops up. :(

Same script, just without the AddToFaction lines.

 

If you are having trouble with the formlist and/or the faction and you're sure you are actually adding (my advice, be explicit and never implicit as you did above) your reference to them... you likely have an issue from using a temporary reference.

 

SmallerTalk checks before adding the token for the following (with refTarget being = to GetCrosshairRef when the user presses the activation key):

if ListGetFormIndex SmallerTalkIgnoreList refTarget >= 0
   return
endif

if refTarget.GetInFaction SmallerTalkIgnoreFaction == 1
   return
endif

It's why I generally suggest using the faction ignore list rather than the form list... less chance of a temporary reference issue. If SmallerTalk is firing it's because the token is being handed out to the actor, which means it's passing every test in the SmallerTalkScript which includes not being found in the ignore form list and not being a member of the ignore faction. What I'd do is some testing... compare your npc reference id's to the actual contents of the ignore formlist or testing to make sure the npc is actually a member of the ignore faction with a rank of 0 or greater.

Link to comment

FiNAL POST EDiT:

 

What are you doing with modC? Getting the number of things in the list' date=' and then replacing the last item in the list with your new one or something? Is there some reason you can't just add directly to the end of the list?[/quote']

Removed, as the modC code was errornous.

Thanks for pushing me to remove it as i never got around to do it.

 

If you are having trouble with the formlist and/or the faction and you're sure you are actually adding (my advice' date=' be explicit and never implicit as you did above) your reference to them... you likely have an issue from using a temporary reference.

 

SmallerTalk checks before adding the token for the following (with refTarget being = to GetCrosshairRef when the user presses the activation key):

if ListGetFormIndex SmallerTalkIgnoreList refTarget >= 0
   return
endif

if refTarget.GetInFaction SmallerTalkIgnoreFaction == 1
   return
endif

[/quote']

included it in my code. Thanks for the snippet.

Helped me find a typo and other errors.

 

It's why I generally suggest using the faction ignore list rather than the form list... less chance of a temporary reference issue. If SmallerTalk is firing it's because the token is being handed out to the actor' date=' which means it's passing every test in the SmallerTalkScript which includes not being found in the ignore form list and not being a member of the ignore faction. What I'd do is some testing... compare your npc reference id's to the actual contents of the ignore formlist or testing to make sure the npc is actually a member of the ignore faction with a rank of 0 or greater.[/quote']

Even tho i don't know the console command for displaying a FormList content, i changed the script to display a notification if the token is added and it was.

 

in the end, i solved the problem.

Even tho i was adding to the wrong FormList for BrutalRapers (used the ref from the official release as i didn't remember i switched to the unofficial one) it was working, but now i support both versions.

SmallTalk is working as well. i'm adding to the FormList and to the Faction. So thanks again for all the help.

in the end it was a mix of typos and logic errors. Reordered the script, fixed the typos and it works flawless.

Can't thank you guys enough, for pointing me in the right direction.

 

One question remains:

As i have to use the ref's to use AddToFaction, i guess i would need to make a new cell, holding the templates for the mannequin. it's even working without using AddToFaction now, so i would really try to avoid using it for flexibilty's sake, unless there's a really good reason not to. Can't really understand why astymma prefers the AddToFaction way, as i don't know what errors could arise. Someone willing, maybe astymma himself^^, to explain it in more detail?

 

For anyone interessted in the code, to make mannequins (i know it's not this hard unless you try to make them compatible with Sexout while producing massive typos ^^):

Quest script for mod support (unfinished):

ScN NBdTestMannequinMSQS2

Short modi
Ref modL

Begin GameMode
if ( GetGameLoaded || GetGameRestarted == 1 )
	PrintToConsole "Nervous Breakdown: Starting..."
	if ( isModLoaded "Sexout.esm" == 1 )
		PrintToConsole "   Sexout found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModindex "Sexout.esm"
		Set modL To BuildRef modi 53734
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM !!!"
		endif
	Endif
	if ( isModLoaded "SexoutCommonResources.esm" == 1 )
		PrintToConsole "   SexoutCommonResources found -> adding Mannequin to SLActorDataIsSterile..."
		Set modi To GetModindex "SexoutCommonResources.esm"
		Set modL To BuildRef modi 122324
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM !!!"
		endif
	Endif
	if ( isModLoaded "SexoutSlavery.esm" == 1 )
		PrintToConsole "   SexoutSlavery found -> adding Mannequin to CantBeEnslavedList..."
		Set modi To GetModindex "SexoutSlavery.esm"
		Set modL To BuildRef modi 41315
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM !!!"
		endif
	Endif
	if ( isModLoaded "SexoutLegion.esm" == 1 )
		PrintToConsole "   SexoutLegion found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModindex "SexoutLegion.esm"
		Set modL To BuildRef modi 156200
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM !!!"
		endif
	Endif
	if ( isModLoaded "SmallerTalk.esp" == 1 )
		PrintToConsole "   SmallerTalk found -> adding Mannequin to IgnoreList & IgnoreFaction..."
		Set modi To GetModindex "SmallerTalk.esp"
		Set modL To BuildRef modi 37282
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF to List !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM to List !!!"
		endif
		Set modL To BuildRef modi 37281
		NBdTestMannequinFRef.AddToFaction modL 0
		if ( NBdTestMannequinFRef.GetInFaction modL == 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinFRef to Faction !!!"
		endif
		NBdTestMannequinMRef.AddToFaction modL 0
		if ( NBdTestMannequinMRef.GetInFaction modL == 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinMRef to Faction !!!"
		endif
	Endif
	if ( isModLoaded "SexoutBrutalRapers.esp" == 1 )
		PrintToConsole "   SexoutBrutalRapers found -> adding Mannequin to ListBannedActor (official)..."
		Set modi To GetModindex "SexoutBrutalRapers.esp"
		Set modL To BuildRef modi 37282
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF to List !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM to List !!!"
		endif
		PrintToConsole "   SexoutBrutalRapers found -> adding Mannequin to ListBannedActor (unofficial)..."
		Set modL To BuildRef modi 14550
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF to List !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM to List !!!"
		endif
	Endif
	if ( isModLoaded "SexoutFiends.esp" == 1 )
		PrintToConsole "   SexoutFiends found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModindex "SexoutFiends.esp"
		Set modL To BuildRef modi 155465
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF to List !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM to List !!!"
		endif
	Endif
	if ( isModLoaded "SexoutKhans.esp" == 1 )
		PrintToConsole "   SexoutKhans found -> adding Mannequin to ListBannedActor..."
		Set modi To GetModindex "SexoutKhans.esp"
		Set modL To BuildRef modi 155465
		ListAddForm modL NBdTestMannequinF
		if ( ListGetFormIndex modL NBdTestMannequinF < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinF to List !!!"
		endif
		ListAddForm modL NBdTestMannequinM
		if ( ListGetFormIndex modL NBdTestMannequinM < 0 )
			PrintToConsole "      ERROR adding NBdTestMannequinM to List !!!"
		endif
	Endif
	PrintToConsole "Nervous Breakdown: Done."
Endif
End

 

Script running on the mannequins (be aware of the AddToFaction ref's):

(based on Mannequins V3.3 for FallOut 3, just simplified)

ScN NBdTestMannequinS

Short Active
Short Step
Float Counter
Short LPos

Begin OnLoad
SetActorsAi 0
End

Begin OnActivate
if ( Active == 0 )
	Set Active To 1
	if ( GetActionRef == Player )
		if ( LPos != 0 )
			SetActorsAi 1
			AddScriptPackage NBdTestMannequinDefault
			EvP
			Set Counter To 2.0
			Set Step To 1
			MessageEx "Please wait while your mannequin is being prepared..."
		Else
			Set Step To 2
		Endif
	Else
		Set Counter To 0
		Set Step To 3
	Endif
Endif
End

Begin GameMode
if ( Step == 1 )
	if ( Counter > 0 )
		Set Counter To Counter - GetSecondsPassed
	Else
		if ( LPos != 0 )
			RemoveScriptPackage NBdTestMannequinDefault
			EvP
			SetActorsAi 0
		Endif
		Set Step To 2
	Endif
Elseif ( Step == 2 )
	SetPlayerTeammate 1
	OpenTeammateContainer 1
	SetPlayerTeammate 0
	Set Counter To 0.5
	Set Step To 3
	MessageEx "Please wait while your mannequin is being prepared..."
Elseif ( Step == 3 )
	if ( Counter > 0 )
		Set Counter To Counter - GetSecondsPassed
	Else
		SetActorsAi 1
		AddScriptPackage NBdTestMannequinWeapon
		EvP
		Set Counter To 2.0
		Set Step To 4
	Endif
Elseif ( Step == 4 )
	if ( Counter > 0 )
		Set Counter To Counter - GetSecondsPassed
	Else
		SetActorsAi 1
		if ( GetEquippedObject 5 == 0 )
			RemoveScriptPackage NBdTestMannequinWeapon
			AddScriptPackage NBdTestMannequinDefault
			EvP
			Set Counter To 2.0
			Set Step To 5
		Else
			RemoveScriptPackage NBdTestMannequinWeapon
			SetActorsAi 0
			Set Counter To 0.5
			Set LPos To 1
			Set Step To 6
		Endif
	Endif
Elseif ( Step == 5 )
	if ( Counter > 0 )
		Set Counter To Counter - GetSecondsPassed
	Else
		RemoveScriptPackage NBdTestMannequinDefault
		EvP
		SetActorsAi 0
		Set Counter To 0.5
		Set Step To 6
		Set LPos To 0
	Endif
Elseif ( Step == 6 )
	if ( Counter > 0 )
		Set Counter To Counter - GetSecondsPassed
	Else
		Set Active To 0
	Endif
Endif
End

Misses X, Y and Z coordination as well, to hold the mannequins in place. They will be invisible/underground/in the air if you re-enter the cell they are in.

Link to comment

TBH, you should use whichever fits your mod best. If it's simpler to use the form list, use the form list. If it's simpler to use the faction, use the faction. The only reason I'd suggest the faction over the form list is if there's a base reference/temporary reference issue... say, for example, with temporarily spawned NPC's such as placeatme's or leveled npc/critter spawn markers. If you're using non-temporary references and moving them from a holding cell to where you need them to be, then there's no advantage to using the faction and the form list is probably preferred.

Link to comment

You just mentioned why i prefer the formlist, as my mannequin mod will let the player spawn as many as his PC can handle, before the game turn's into a slideshow. Doing this based on persistant ref's that are placed as templates somewhere, would be an area of scripting i'ver never been before but i can feel this would make things really complicated.

So thank's to your answer i feel better using the FormList only.

Thanks for taking the time, explaining it for me.

 

Now that this problem is solved, on to my question about the SO callback system ... in the appropriate thread.

 

Thanks again, zippy and astymma.

Link to comment

Ok. Was testing my mod for a while now and stumbled across the old problem, that SmallerTalk kicks in on the mannequins and other NPC's that should be excluded by adding them to the FormList.

 

i'm now trying to follow astymma's suggestion, as i can't identify the exact cause of the problem, by using an token item (unplayable armor to hide it from the players eyes).

The item is added and should assign the faction by using the following script:

ScN NBdMannequinFactionTS

Short modi
Ref modL
Ref Mannequin

Begin OnAdd
Set Mannequin To GetContainer
if ( Mannequin != 0 )
	PrintToConsole "Nervous Breakdown: Faction Token added to %n." Mannequin
Else
	PrintToConsole "Nervous Breakdown: GetContainer failed !!!"
Endif
End

Begin GameMode
Set Mannequin To GetContainer
if ( Mannequin != 0 )
	if ( GetGameLoaded || GetGameRestarted == 1 )
		if ( isModLoaded "SmallerTalk.esp" == 1 )
			PrintToConsole "   SmallerTalk found -> checking faction dependencie for %n..." Mannequin
			Set modi To GetModindex "SmallerTalk.esp"
			Set modL To BuildRef modi 37281
			if ( Mannequin.GetInFaction modL == 0 )
				PrintToConsole "      Adding %n to IgnoreFaction..." Mannequin
				Mannequin.AddToFaction modL 0
				if ( Mannequin.GetInFaction modL == 0 )
					PrintToConsole "      ERROR adding %n to Faction !!!" Mannequin
				Endif
			Endif
		Endif
	Endif
Else
	PrintToConsole "Nervous Breakdown: GetContainer failed !!!"
Endif
End

Adding to the faction fails, as the self-check in the script tells me. The kicking in SmallerTalk tells me the same.

The strange thing is, SmallerTalk is not kicking in for a while but then again it does and doesn't stop, even tho they are still in the ignoreList.

 

Was looking for the reason almost the whole day now, but can't find it.

Someone an idea why the script and/or method fails?

 

 

P.s.: i know, the script is not "load game" save, as it only works right on first adding. But it's solely experimental.

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