Jump to content

Can't edit the mod anymore


Guest tomm434

Recommended Posts

GECK dialogue scripts are problematic. Take a look in the scripting 101 thread, there is a lot of good info in there. You don't need to read every post, but start at the beginning.

 

Personally I do all my scripting outside of dialogue whenever possible. Any GameMode block (so, quests) and effect spells can't run during dialogue (but usually before or after is fine). Object scripts with OnAdd can run during dialogue, and I use this in Soliciting. My dialogue scripts are limited to additem, startquest, and setting quest variables.

 

I'm assuming you have the GECK set up properly to use NVSE?

Link to comment
Guest tomm434

GECK dialogue scripts are problematic. Take a look in the scripting 101 thread, there is a lot of good info in there. You don't need to read every post, but start at the beginning.

 

Personally I do all my scripting outside of dialogue whenever possible. Any GameMode block (so, quests) and effect spells can't run during dialogue (but usually before or after is fine). Object scripts with OnAdd can run during dialogue, and I use this in Soliciting. My dialogue scripts are limited to additem, startquest, and setting quest variables.

 

I'm assuming you have the GECK set up properly to use NVSE?

 

I'm afraid I can't do additional scripts because I'm editing already existing quests.

can you give me a link to that thread you mentioned? I can't find it.

 

yes, GECK uses NVSE and I installed GECK Power up

Link to comment
Guest tomm434

Thanks ChainsasGeek for the helpful thread.

Thanks Odessa for the tip(After not working on my mod for a week I forgot that I should launch GECK through NVSELoader and not by GECK icon). Now everything works good.

 

Actually now I have another question. - is there any way to mod variables? I want to add 1 to global variable each time character has sex with raider.

I tried "set aaaraiderssex to +1" and it didn't work obviously.  Is there a command for my needs?

Link to comment
Guest tomm434

Or with NVSE 4+, you can just do this:

let myquest.myvariable += 1

Global variables are generally discouraged... so consider using a quest var instead

 

Then I'll have to edit all results scripts and dialogue conditions again. Ehhmm...  What's wrong with Global Variables?

Link to comment

 

What's wrong with Global Variables?

 

 

They are global :D

 

More seriously, it is a bad idea in any language to use variables that can be acceded by any part of the code cause when there is a problem you don't know whch part of code did do the problem.

 

As FNV langage is not object oriented you can't really protect them (or it demands to create 2 functions that do controls and are the only one which can read/write them)  and clearly (at least on this point) Papyrus will be better.

 

Note: I don't see in NVSE any functions permitting to write global variables like Skyrim have.

Link to comment
Guest tomm434

 

 

What's wrong with Global Variables?

 

 

They are global :D

 

More seriously, it is a bad idea in any language to use variables that can be acceded by any part of the code cause when there is a problem you don't know whch part of code did do the problem.

 

As FNV langage is not object oriented you can't really protect them (or it demands to create 2 functions that do controls and are the only one which can read/write them)  and clearly (at least on this point) Papyrus will be better.

 

Note: I don't see in NVSE any functions permitting to write global variables like Skyrim have.

 

 

haha ok, I will change all the global variables to just quets variables.

 

Just in case, I hope there is nothing wrong with me adding additional dialogues to already existing quests instead of making a new one and placing all dialogues in it? Because it is more convenient  - when quest ends - dialogues do not longer appear.

 

Link to comment

 

Note: I don't see in NVSE any functions permitting to write global variables like Skyrim have.

 

 

They are part of the vanilla GECK, go to 'Gameplay' (top bar) -> 'Globals'. They can be optionally constant.

 

----

 

One thing you can do, that you might have missed:

 

Sexout has 3 global constants 'Vaginal': 1, 'Anal': 2, 'Oral': 3. This means you can do this, for readability:

int SexType
 
set SexType to Oral
 
if SexType == Vaginal
     ; do something
elseif SexType == Oral...
    ; etc
endif

But, don't create new globals without a good reason, and don't create many if you do, for the reasons strec explained.

 

-----

 

 

It is better to add rather than modify game assets to reduce various conflicts, so if it isn't much more work to do it that way, you should. I think in this case it is fine though, since changing the default quests is the whole point.

Link to comment

 

 

Note: I don't see in NVSE any functions permitting to write global variables like Skyrim have.

 

 

They are part of the vanilla GECK, go to 'Gameplay' (top bar) -> 'Globals'. They can be optionally constant.

 

 

 

I know we can modify globals with geck, was talking to modify them by code, I don't know how to do.

 

edit: ok thanks.

Link to comment

You can modify them the same way as any other variable so long as they aren't constant.

 

let GameDaysPassed += 5

 

It works, but doing that one will kill the player from hardcore mode and may make actors do weird things (disappear etc), I think because of packages/AI updates. So, you have to be careful (I increment this during Another Kick in the Head dreams). If you create your own it should be safe though, I used them in wear and tear V1 (my first FO mod), before switching it to quest vars.

Link to comment

Archived

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

  • 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