BruceWayne Posted September 27, 2012 Posted September 27, 2012 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...
BruceWayne Posted October 1, 2012 Posted October 1, 2012 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?
DoctaSax Posted October 1, 2012 Posted October 1, 2012 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.
BruceWayne Posted October 1, 2012 Posted October 1, 2012 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.
DoctaSax Posted October 1, 2012 Posted October 1, 2012 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.
BruceWayne Posted October 1, 2012 Posted October 1, 2012 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
Halstrom Posted October 1, 2012 Posted October 1, 2012 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.
BruceWayne Posted October 2, 2012 Posted October 2, 2012 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.
DoctaSax Posted October 5, 2012 Posted October 5, 2012 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.
DoctaSax Posted October 5, 2012 Posted October 5, 2012 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.
DoctaSax Posted October 5, 2012 Posted October 5, 2012 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 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...
DoctaSax Posted October 5, 2012 Posted October 5, 2012 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
DoctaSax Posted October 30, 2012 Posted October 30, 2012 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?
DoctaSax Posted October 31, 2012 Posted October 31, 2012 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?"
DoctaSax Posted October 31, 2012 Posted October 31, 2012 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 YourSpellScriptNameref selffloat fDelayfloat fTempBegin ScriptEffectStartset self to GetSelfset fDelay to 30returnEndBegin ScriptEffectUpdateif fDelay > 0 set fDelay to fDelay - ScriptEffectElapsedSeconds set fTemp to GetAV Fatigue set fTemp to fTemp + fDelay self.DamageAV Fatigue fTemp pickidleelseif dispel YourActorEffectIDendifEnd[/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 13endif [/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.
DoctaSax Posted October 31, 2012 Posted October 31, 2012 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.
jaam Posted November 1, 2012 Posted November 1, 2012 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.
BruceWayne Posted November 3, 2012 Posted November 3, 2012 MessageEx "YourText". You can put in variables, like you would in printc or debugprint. Alternativily you could use showmessage and uncheck "Message Box" in the "edit message" window and set a duration. Edit: Lol, first thing that pops up for messageex and nvse in google, is this thread by prideslayer http://www.loverslab.com/showthread.php?tid=3551
BruceWayne Posted November 4, 2012 Posted November 4, 2012 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.
BruceWayne Posted November 4, 2012 Posted November 4, 2012 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
BruceWayne Posted November 4, 2012 Posted November 4, 2012 The generic GOODBYE topic can be found under the conversation tab. Maybe that's what you're looking for.
BruceWayne Posted November 4, 2012 Posted November 4, 2012 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.
BruceWayne Posted November 4, 2012 Posted November 4, 2012 See post above. If you use custom voice types, you could get rid of it as well.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.