Jump to content

General Geck help (Unequipping armor edition)


Guest user29

Recommended Posts

Posted

Ok' date=' is there a tweak I can do to disable the ultra annoying spell checker that thinks everything is an error?

[/quote']

 

You can disable it under edit->enable spell checker.

 

That must be added by the Geck Power Up, I don't think that menu option exists in default GECK for FONV.

 

EDIT: Yup, checked Powerup features list, that's it.

 

Oops, I wasn´t aware of that. I just assumed everyone is using the geckpu... :)

Posted

Ok, just found out that the "say once a day" option in the GECK dialogue editor doesn´t work, if you quit and reload your game. It works as intended if you play, wait or reload without quitting the game.

 

Does anyone know of existing alternatives, that doesn´t require me to build timers for 3 dialogue options, which would have to run in the questscript all of the time?

Posted

Does anyone know of existing alternatives' date=' that doesn´t require me to build timers for 3 dialogue options, which would have to run in the questscript all of the time?

[/quote']

 

Maybe you can cast a spell in the result script that lasts a day? And make sure the line has a NOT condition check with IsSpellTarget? Can be blank in terms of effect.

 

Wouldn't recommend it if you'd want to write a lot of different 'once a day' lines but it should be doable if it's just a few lines.

Posted

Does anyone know of existing alternatives' date=' that doesn´t require me to build timers for 3 dialogue options, which would have to run in the questscript all of the time?

[/quote']

 

Maybe you can cast a spell in the result script that lasts a day? And make sure the line has a NOT condition check with IsSpellTarget? Can be blank in terms of effect.

 

Wouldn't recommend it if you'd want to write a lot of different 'once a day' lines but it should be doable if it's just a few lines.

 

Right, spells have duration by default! Didn´t think of that. I´ll try that. Thanks man.

 

Do you by any chance know, if spells survive a hard reload? I had to put in some extra checks for my travel packages in case I do a reload. Sometimes it forgets its result script when the package finishes and my scripts run infinite loops.

Posted

Do you by any chance know' date=' if spells survive a hard reload? I had to put in some extra checks for my travel packages in case I do a reload. Sometimes it forgets its result script when the package finishes and my scripts run infinite loops.

[/quote']

 

Not sure but I think they do. Hell, I've seen actor effects survive a lot of stuff they even shouldn't.

 

So, if you're looking for extra security for your packages - which are always finnicky - you could cast a script spell along with them to 'addscriptpackage' the package again if you detect it's no longer active when it should (with getiscurrentpackage). Just don't forget to dispel it eventually.

Posted

Not sure but I think they do. Hell' date=' I've seen actor effects survive a lot of stuff they even shouldn't.

[/quote']

Good news. Let´s hope they do.

 

EDIT: Tested it and it works like a charm. Thank you very much!

 

So, if you're looking for extra security for your packages - which are always finnicky - you could cast a script spell along with them to 'addscriptpackage' the package again if you detect it's no longer active when it should (with getiscurrentpackage). Just don't forget to dispel it eventually.

What I´m doing now is basically check if my actor is travelling, thru stages and flags. If she is, I´ll remove that package and give her the same identical package back. That way I get the full cycle (start, update, finish). That seems to do the trick for now...

If it´s not I´m going to do the spell.

 

EDIT

Posted

Not sure but I think they do. Hell' date=' I've seen actor effects survive a lot of stuff they even shouldn't.

[/quote']

Good news. Let´s hope they do.

 

EDIT: Tested it and it works like a charm. Thank you very much!

 

So, if you're looking for extra security for your packages - which are always finnicky - you could cast a script spell along with them to 'addscriptpackage' the package again if you detect it's no longer active when it should (with getiscurrentpackage). Just don't forget to dispel it eventually.

What I´m doing now is basically check if my actor is travelling, thru stages and flags. If she is, I´ll remove that package and give her the same identical package back. That way I get the full cycle (start, update, finish). That seems to do the trick for now...

If it´s not I´m going to do the spell.

 

EDIT

I found that spells survive on the Player ok but if used on NPC actors they reset during Fast travel, wait, doors etc. Tokens are better for NPC's.

Posted

OK, after testing both methods (spells vs. tokens) I settle on tokens. I have yet to see one fail.

Spells are working fine too, but only most of the time. There were 2-3 cases, where they weren´t removed right. Again this could be totally my fault, maybe I did them wrong.

Anyway, thanks guys.

 

To keep the spirit of this thread intact I throw in some random geck info, I recently discovered:

If you change bKeepHeadOnRaceChange to 1 in your geckcustom.ini, you can change races on your NPCs without them resetting to that races default face.

Posted

Ehm, I don't see any script attached to your token.

Maybe your token wasn't properly removed? The other anims in your folder have a 'getitemcount ... > 0', but the dance one has a strict 'getitemcount... == 0' condition. If your token isn't removed, the anim won't play.

 

--------

About possible conflicts with NG:

My MO with calling idles on the player is with playidle, called from a spell. Advantages:

 

- If using something vanilla, there's no need for a custom idle in the idle anims widget if the vanilla one wasn't in the loose folder. You just call it directly from wherever it is.

- If I do use something from the loose folder, I copy it to a folder between 'generalidles' & 'loose'. Because playidle points to the exact anim, there's no need for them to be up top, and cause interference with NG.

- To stop the anim, I just call another, or the 'SexoutNGReset' anim, with playidle again after a timer or on scripteffectfinish. Only time this doesn't work is when the kf it's supposed to override has something inside that stops it from being overridden. That only happens with a few of 'em, and in that case there's usually a groovatron alternative that isn't so finnicky.

Posted

Yeah sorry I removed the script from the token in case something was messing with it. The dance has as a condition getitemcount == 1 not == 0.

 

The first time I got the dance to work it didn't have a script attached to the token so I tried reverting back to it. Still didn't work.

 

Right, I meant 1. So, if it doesn't remove, & you call the dance again, adding another token, there would be 2 and the condition would fail.

Posted

 

edit: I got it. Sorta. I deleted my new animations (that were just copies of the old ones) and did this

http://geck.bethsoft.com/index.php/Talk:PlayIdle

 

I had no idea you could call packages on the player.

 

Me neither :huh:

I still think my way is a bit simpler, but if it works, it works. Just goes to show again that even the devs need to do some tricksy stuff to make stuff possible that we're usually told is not...

Posted

Well it seems to work pretty reliably. This is great though' date=' Being able to play any of the idles i want on the player is really going to open up some stuff.

[/quote']

 

It does. You can get pretty fancy with it, like this:

 

 

 scn SOFOCookingEffectScpt

float fTimer
int doonce

Begin ScriptEffectStart

player.moveto SOFOStoveRef 
disableplayercontrols 1 1 1 0 1 1 1 
SOFOFridgeRef.removeallitems player 0 1 

End

Begin ScriptEffectUpdate

if 1 != (MenuMode 1077)
set fTimer to (fTimer + GetSecondsPassed)
endif

if fTimer > 15 ; stop
player.playidle SexoutNGReset
EnablePlayerControls
player.removealltypeditems SOFOFridgeRef 0 1 47 SOFOFridgeExemptionList
player.dispel SOFOCookingActorEffect
elseif (fTimer > 4.5) && (doonce == 1)
player.playidle MTSpecialIdlePotStrd
elseif (fTimer > 4.5) && (doonce == 0)
player.showrecipemenu CampfireRecipes
set doonce to 1
elseif fTimer > 1
player.playidle MTSpecialIdleCheckStove
endif

End 

 

 

Which transports the player to a stove, has them fumble the stove's knobs, adds everything that's in the nearby fridge to the PC's inventory, opens up the campfire recipe menu, returns everything that's "aid" except for doctor stuff & weapon repair kits to the fridge once it closes, and then shows the player stirring the pot on the stove twice, then end. Took me at least a day to figure out and only lasts all of 15 secs in game :D

  • 4 weeks later...
Posted

New one. I want to have a voice box or whatever speak to the player. Would the comm box be an activator or something? I'm just not sure how to set it up so the player can talk to it.

 

Anything non-human or non-creature speaking (including radios) is done via "Talking Activator" under "Actors". You might find a few intercom examples there, not many but still, & follow up how they're used in vanilla. (Just don't get distracted with radio stuff, that works differently.)

 

My guess is the basics are as simple as:

- create a new talking activator (the old 'edit', change stuff, click yes when asked to create a new form M.O.)

- place it in your cell

- have a getIsID condition on your topics, referring to your TA

 

There might be some variations, depending on how you plan this intercom to be working.

Like: does it only work after you've pressed on it, entering in player-to-npc-like conversation, or does it just say stuff of its own accord?

Posted

Well the SexoutNGKnockDown script pretty much:

- detects your settings for how long you're supposed to be knocked down

- detects your fatigue (stamina, really - I'm a bit of a stickler for using the proper words for things) with GetAV Fatigue

- then damages your 'fatigue' with the exact value of the 'fatigue' you have + the delay you stipulate in your settings

- then does a 'pickidle'

 

It keeps doing that until the spell is dispelled at some point. It's not just a one-frame thing.

 

Edit: Now thinking: "Knock 'em up, knock 'em down. Make up your mind, eh?" :P

Posted

So should I try using that effect? Or do I need to create my own spell? I could probably use a little example code/spell on this one if you want to be just an enormous help to me.

 

Alright, here's a simplified version of what happens in NG:

 
scn YourSpellScriptName

ref self
float fDelay
float fTemp

Begin ScriptEffectStart

set self to GetSelf
set fDelay to 30
return

End

Begin ScriptEffectUpdate

if fDelay > 0
set fDelay to fDelay - ScriptEffectElapsedSeconds
set fTemp to GetAV Fatigue
set fTemp to fTemp + fDelay
self.DamageAV Fatigue fTemp
pickidle
elseif
dispel YourActorEffectID
endif

End
[/Code]

 

If you want, you can add to it with:

disableplayercontrols 1 1 1 0 1 1 1, making sure you don't walk around while lying down (reenable with plain enableplayercontrols)

It's also good practice to avoid 1st person view messing things up with:

[Code]
if 1 == IsPC1stPerson
TapControl 13
endif [/Code]

 

also a con_ToggleMenus at the beginning and at the end will get rid of your UI for the time being

 

If that doesn't work, we'll have to think of something else.

Posted

You attach the script to a base effect (archetype: script, flag as 'self'). Then attach the base effect to an actor effect (with a duration of minimum 30 secs will be best). Then do player.CIOS ActorEffectID someplace else in your mod to call it.

Posted

You whould be able to use placeatme to create NPC by script. As these references don't survive in save they will clean themselves in time.

Posted

Do multiple topics with the same conditions, check random and you're good to go. You may have to assign one of them the random end check box according to the GECK Wiki, but I've seen it working without that.

Posted

Hmm, make sure the quest is running. Had that problem before. If that's not doing it, there is a way of disabling smallertalk for certain NPCs, via getmodloaded and buildref. There is an example on how to do it in the smallertalk thread somewhere.

 

Edit:

 

 

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

Posted

That sounds like the default topic. I could be wrong here, but I'm pretty sure I've seen that without ST too.

 

Edit: This is how I set up random goodbyes for one of my characters.

 

attachment.php?aid=18135

Archived

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

  • Recently Browsing   0 members

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