Jump to content

Fallout New Vegas GECK & Scripting Help 101


Recommended Posts

Guest tomm434
Posted

That's strange but after Cruck appers. he doesn't want to start conversaion with player. He just executes package which he has right now(he has package of following the player -see below)

Script after dialogue is

 

 

if stage ==2; After Li dialogue
setAlly aaamq05ghoulfaction FeralGhoulFaction 1 1
setAlly aaamq05ghoulfaction BrotherhoodSteelFaction 1 1
setAlly aaamq05ghoulfaction BrotherhoodSteelFactionDC 1 1
aaamq05cruckref.enable
aaamq05cruckref.startconversation player 11aamq05ghoulsCruck
set stage to 0
endif

I tried  evp him after command -didn't work

I tried to remove his package(by placing additional condition) -didn't work. He stands in his place just as he should.

And also I tried to removing "GETisID" condition from his dialogue just in case - guess what.

 

I can add a script package to make him initiate dialogue with player but I don't want to do it every time afterwards.

 

Posted

Miss GECK can be quite ornery when it comes to conversation and packages. The only way to make sure an NPC actually follows it ASAP it is to keep tabs on them. There are various ways. A couple I've used:

 

You can make a script that checks GetCurrentPackage every ~1 second and if its not the right one, AddScriptPackage and evp. Or (and I find this more reliable but is restrictive), every X seconds, repeat that 'SunnyREF.startconversation Player SomeTopic'.

 

Whatever you do, be sure to test it a lot. StartConversation has a distance of ~200 to activate, if you keep rerunning the command while they are walking to you, they will jitter.

Posted

I can add a script package to make him initiate dialogue with player but I don't want to do it every time afterwards.

 

Personally I think the Dialogue/Find package is better in this case.

Of course this can be a very biiiig dumb comment, but I really feel that it doesn't speak because it's still spawning and it's not ready, it "loses" that command in the meantime. So I would see better a permanent solution like the script package: you, ghoul, take all the time you need to spawn, then when you're spawned and you're in the right mood, speak to me.

i wouldn't even use addscriptpackage, i would put that peculiar package already inside the actor and I'll trigger it setting that variable condition inside the script before the "enable", I suppose the enable wouldn't even need a evp

Posted

Use a package to get them in range, set the package completed range to the desired distance, then begin startconversation on package end (token/spell).  Set startconversation move to 0 to activate at a greater distance.

Posted

I don't really love to bump on posts... but I really would like to understand this, so I can understand how to change my current scanner. I reduced at the less possible the wall of text, I'll try to figure the other things reading all around the net.

 

 

MY ACTUAL SCRIPT:

Label

   Scan the reference

   Check the reference

Goto until the Scan is completed

 

MY FUTURE SCRIPT

Stage 1

  Label

    Scan the reference

    Fill a list

  Goto until the Scan is completed

 

Stage 2

    Check the elements in the list

 

Everyone's having a loooot of fun with scanners and I still to understand these basic things :-(

Because the "check the reference" part is quite heavy to be handled, I was suggested to split the scanner in two stages. But what I can't understand is how the "future script" (which will be longer) could take less than a frame to be executed, if the "actual script" (which is shorter) can't do it.

Did I misunderstand it, or should I split the two stages in two different scripts attached to two different quests?

Posted

 

Thank you T, but this would imply using SO as master. Mine's a standalone mod.

 

EDIT: and reading that script of the spell - it's actually how my script works, but it's what I'm trying to avoid: doing many checks inside the goto-loop.

While my scanner's working most of the times (I have many mods, even scripted and heavy ones), it will stop work in a "heavier environment". For example it stopped working when I installed an ENB that created a slowdown in my game. That's why I'm trying to "optimize" the script in some ways.

Posted

 

 

 

Thank you T, but this would imply using SO as master. Mine's a standalone mod.

 

 

Copy that.  Does that mean there is no sex in your mod?

 

 

 

yes. oh and read my above EDIT, you will see why I can't copy that :)

 

Posted (edited)

Have you tried Zees scan list checker?  I can't imagine doing checks inside the loop causing that much load.  In my experience using the NG scanner, the loop completes in fractions of a second, even with a lengthy set of checks.

 

EDIT: The last time I had scanner load problems was due to an attempt to follow the advice to copy the scan list to another list and then process it.  Once I got rid of the copy, and simply processed things directly from the scanner list, everything was super fine.  I know that goes against the grain so to speak, but it solved my problems.

Edited by t3589
Posted

There's an absurd difference when I install ENB (from "instant scan" to "not working anymore scan". I know it's that because it will start working increasing the delay time, which I would love to avoid). It's something I already noticed in another intensive script, where I had speed directly connected to the time, well the speed was reduced at 1/10 (!!!) with enb ON, that's... unbelievable.

Anyway, since I'm not using texture mods, I can't foresee if a problem like that could come out in other conditions like heavy textures etc. All I can do is trying to optimize as jamm and Astymma pointed me but I wanted to understand if I should split the script because I can't understand how a longer script would be executed in less time.

 

What is Zees scan list checker?

Posted

zebop wrote a script that checks to see if your lists are being cleared properly.  I can't find the link, it's around here someplace.  I'm not sure if it applies though since you're not using the NG scanner.

 

You can't get any better advice than astymma and jaam.  If they told you something, I would ignore me, and listen to them. lol

Posted

Thank you both of you, I'll check that esp. But on a side note, I say that studying SO plugins is everything but easy for me, they imply too much knowledge of the core itself and I usually can't understand half of what I read...

 

By the way, T in your script you used this:

set refTarget to ListGetNthForm ScannerListName nCount

 

It was one of my questions, since in Beth guide it's not explained. What's that NTH? what's a NTH list?

Posted

It pulls the Nth index from the list.  ie. If nCount is five, it sets the ref to whatever sits at the 5th index in the list.

Posted

It's like 1st, 2nd, 3rd, 4th, 5th....   Essentially, it is "get the value at the spot that I'm telling you to, which is at number (n)."  If that makes any more sense?

Posted

It's like 1st, 2nd, 3rd, 4th, 5th....   Essentially, it is "get the value at the spot that I'm telling you to, which is at number (n)."  If that makes any more sense?

 

And... don't forget 0th.

 

Posted

Nou, not really... I still can't get it. I can't get what NTH is.

 

ListGetFormIndex: Returns the index for the specified form
ListGetNthForm: Returns the nth form in the form list

 

So, assuming I have a list of food, what ListGetFormIndex Potato returns? And what ListGetNthForm Potato returns?

 

PS I never worked on lists if not creating a FLST and checking if a ref was IsInList, that's why I'm having many troubles on it.

Posted

Nou, not really... I still can't get it. I can't get what NTH is.

 

ListGetFormIndex: Returns the index for the specified form

ListGetNthForm: Returns the nth form in the form list

 

So, assuming I have a list of food, what ListGetFormIndex Potato returns? And what ListGetNthForm Potato returns?

 

PS I never worked on lists if not creating a FLST and checking if a ref was IsInList, that's why I'm having many troubles on it.

 

One is a base form and the other is an int.

 

ListGetFormIndex = int.  You give this a ref and get the index int.

ListGetNthForm = Base Form. You give this an int, and get the base form ref.

Posted

ListGetFormIndex Potato >>>> 4
ListGetNthForm 4 >>>> Potato

 

That's it?

Posted

Thanks :)

 

No sweat.  You make me mourn the days when I thought this should all adhere to some sort of logic or reasoning. lol

 

Now I no longer care if it makes sense, as long as it works.

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...