Jump to content

Fallout New Vegas GECK & Scripting Help 101


Recommended Posts

Posted

yes, but I doubt it will be useful for you in this case :P

As I said I did a mistake, it was my misinterpretation of the function since it's not documented

 

Specifically:

 

set MyVar to PlaceAtReticle blablabla

 

Now I wrongly used MyVar as reference, while it's a boolean. The result was still "correct", it was going to 1 when the reference was spawned.

Doing the same with let, the result was different, it was always zero

Posted

 

Splitting up Dialogue:  Wrote a fucking monologue.  Due to additions, some sentences are out of order.  Is there a way to restructure these, or will I have to recreate them?

 

+++++++++++++++++

 

And in addition, can a person move dialogues in topic? I mean in "Greeting" I have many dialogues and I want to move one at the bottom to the very top. Can I do it without creating new one?

 

 

 

Use the left and right arrow keys to move something in a list if the GECK does not provide its own buttons.

.

Posted

The main difference is that set will usually use ExtractArgs as provided in vanilla, where let will always use ExtractArgsEx provided by NVSE.

It is suppose to superseed ExtractArgs but as everything it can be bugged :) or some undocumented/usnseen behavior could have been overlooked.

 

Posted

Use the left and right arrow keys to move something in a list if the GECK does not provide its own buttons.

.

I could've used that bit of knowledge 2 years ago :P

Posted

 

Use the left and right arrow keys to move something in a list if the GECK does not provide its own buttons.

.

 

 

Oh god thank you! I was going to be crazy with all that copy paste to change their order...

Posted

GetRace should work fine for custom races, why wouldn't it?

 

Yes, generally speaking functions works independently of masters, they just manipulate opaque numbers or pointers.  The exception being reference to hardcoded formID (those below $800), player/playerRef and all the enumerations that are in the base game ESM.

Posted

The main difference is that set will usually use ExtractArgs as provided in vanilla, where let will always use ExtractArgsEx provided by NVSE.

It is suppose to superseed ExtractArgs but as everything it can be bugged :) or some undocumented/usnseen behavior could have been overlooked.

 

One difference I've just noticed is that:

 

'set rActor to Player' works fine, but

 

'let rActor := Player' will give you an error: "Attempting to call a function on a NULL reference or base object"

 

So, you have to use 'PlayerREF' instead.

Posted

 

So, you have to use 'PlayerREF' instead.

 

 

I have to use PlayerREF on the other NVSE functions too (like GetType), but I think it's just related to NVSE, vanilla scripting still make no difference from the two, they're like (aliases?)

 

EDIT: mmmh... or it was when I was checking if the player was the reference? don't remember... anyway yes I had many times that kind of error with NVSE if I wasn't specifing playerREF

Posted

 

 

So, you have to use 'PlayerREF' instead.

 

 

I have to use PlayerREF on the other NVSE functions too (like GetType), but I think it's just related to NVSE, vanilla scripting still make no difference from the two, they're like (aliases?)

 

EDIT: mmmh... or it was when I was checking if the player was the reference? don't remember... anyway yes I had many times that kind of error with NVSE if I wasn't specifing playerREF

 

 

Some things don't play well with PlayerREF.  I've had problems with it here and there.  StartConversation I think is one that doesn't like PlayerREF, but rather only Player.

 

Posted

player is supposed to be a baseForm and playerRef a ref. For reasons I don't understand, vanilla replace player by playerRef pretty much anywhere so you almost cannot "reference" the player object (formID 7). NVSE will translate player as the NPC_ except where a baseForm cannot be used in which case it will be translated to playerRef.

 

Anyway it's better to explicitly use playerRef when you mean playerRef :)

 

Posted

Also, I'm pretty sure the maximum size of a compiled script is 16K.

 

Max compiled script size is 16384, max compile line size is 512, and max source line size handled by NVSE in GECK is also 512, though NVSE extend the line buffer to a lot more (2048).

Posted

LL 6:18-20:  And lo!  The venerable jaam did descend from his precipice and impart his knowledge of the esoteric inner-workings of the GECK to the huddled mass of frustrated modders.  They rejoiced and praised him thusly, lauding his wisdom and imparting +1s upon him, although they were frustrated that they could not Like his lesson since the choice had been taken away from them during the dark times of the burdened server.

Posted

 

Also, I'm pretty sure the maximum size of a compiled script is 16K.

 

Max compiled script size is 16384, max compile line size is 512, and max source line size handled by NVSE in GECK is also 512, though NVSE extend the line buffer to a lot more (2048).

 

I figured. That was in response to this:

 

I never tried to determine the maximum size of the script once complied, or the maximum size of a compiled individual line.

But if it is also at least 32767, it should not be possible to reach it with a 32767 script source.

I got 16k from looking at failing script records in FNVEdit, well before I had started working on NX or NVSE. :)

Guest tomm434
Posted

How exactly does "Begin SayToDone" block work? Does it checl for a line to be said every frame or it is every line that is said checks if there is any SayToDone block in object script?

 

And Can I somehow use this block not in Object script. I tried adding it in Spell script, it compiled but didn't wotk ingame.

Guest tomm434
Posted

it should be in a quest script, the one conatining the line said

 

GECK says that Begin "SayToDone" is "invalid block type" for quest script

Guest tomm434
Posted

Quite strange , try the NPC saying the line.

 

Well, here it is.

post-187071-0-88368100-1402082255_thumb.jpg

Guest tomm434
Posted

I think that blocktype is only valid in an Object script, and will only run on scripts assigned directly to NPCs.

 

Do you think this block is  executed every frame?

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