Jump to content

Quick Questions, Quick Answers


Mattiewagg

Recommended Posts

Any side effects from having 100 aliases filled with actors running at the same time?

 

In terms of save game bloat and persistence.

If the actors weren't already persistent they will be (although actors are already semi-persistent) so that adds a little to memory use and save game size but the event won't be that large. It certainly isn't what I would call bloat since it's a single fixed amount used much like anything else a might add to the game.

Link to comment
Share on other sites

  • Replies 2.6k
  • Created
  • Last Reply

Top Posters In This Topic

 

Any side effects from having 100 aliases filled with actors running at the same time?

 

In terms of save game bloat and persistence.

If the actors weren't already persistent they will be (although actors are already semi-persistent) so that adds a little to memory use and save game size but the event won't be that large. It certainly isn't what I would call bloat since it's a single fixed amount used much like anything else a might add to the game.

 

 

Ok cool so that's not a big issue then.

 

I have another question - I'm trying to do a multi dimensional array where array 2 gets filled after array 1 is full but this isn't working. Any ideas?

	int iVictims01 = Victims01.Length
	while iVictims01
	iVictims01 -= 1
	if !( Victims01[ iVictims01].GetReference())
       		Victims01[ iVictims01].ForceRefTo(DeadVictim)
       		return
	else
	int iVictims02 = Victims02.Length
	while iVictims02
	iVictims02-= 1
	if !( Victims02[ iVictims02].GetReference())
       		Victims02[ iVictims02].ForceRefTo(DeadVictim)
       		return
	endif
	endwhile				
        EndIf
    	endWhile
Edited by powerofthree
Link to comment
Share on other sites

i haven't messed with papyrus too much, but from what i know of programming in general it doesn't seem like a string would have any such property as a reference.

 

edit: as in, even if the name of an npc was stored in your array as a string, most languages would require you to somehow declare that you're referencing an object.

Edited by ymf331
Link to comment
Share on other sites

i haven't messed with papyrus too much, but from what i know of programming in general it doesn't seem like a string would have any such property as a reference.

 

edit: as in, even if the name of an npc was stored in your array as a string, most languages would require you to somehow declare that you're referencing an object.

 

It does have the two ReferenceAlias arrays declared as properties, I just didn't include them.

Link to comment
Share on other sites

I have another question - I'm trying to do a multi dimensional array where array 2 gets filled after array 1 is full but this isn't working. Any ideas?

If you mean you're trying to treat the two arrays as if they are one longer array then try this:

int i = Victims01.Length
while i > 0
	i -= 1
	if !Victims01[i].GetReference()
		Victims01[i].ForceRefTo(DeadVictim)
		return
	endif
endwhile
i = Victims02.Length
while i > 0
	i -= 1
	if !( Victims02[i].GetReference())
       		Victims02[i].ForceRefTo(DeadVictim)
       		return
	endif
endwhile

But if those reference arrays are being filled with aliases in the CK you shouldn't need two arrays because the limit of 128 elements only applies when creating arrays in the script itself. The CK can create arrays with thousands of elements (although that's a bit tedious).

Link to comment
Share on other sites

 

I have another question - I'm trying to do a multi dimensional array where array 2 gets filled after array 1 is full but this isn't working. Any ideas?

If you mean you're trying to treat the two arrays as if they are one longer array then try this:

int i = Victims01.Length
while i > 0
	i -= 1
	if !Victims01[i].GetReference()
		Victims01[i].ForceRefTo(DeadVictim)
		return
	endif
endwhile
i = Victims02.Length
while i > 0
	i -= 1
	if !( Victims02[i].GetReference())
       		Victims02[i].ForceRefTo(DeadVictim)
       		return
	endif
endwhile

But if those reference arrays are being filled with aliases in the CK you shouldn't need two arrays because the limit of 128 elements only applies when creating arrays in the script itself. The CK can create arrays with thousands of elements (although that's a bit tedious).

 

 

Wait, really? I always thought the 128 limit applied to all arrays. Huh, that simplifies things.

Link to comment
Share on other sites

Hello all,

 

So the time has come and my mod will see the Light of Day, at least in alpha state. So my question to BSA or not to BSA? I am ready to pack up my mod and was reading up on How to pack, and then looking at some mods I have and I am confused.

 

It seems all tut about BSA are written back in 2013 and 2014, they seem easy enough, however I notice that the more recent mods do not have BSA, they are zipped files with a mod.esp in a data folder, and then the folder structure data/mesh and data/texture and data/sound and so on .. each of these folders and sub folders have the actual files that support the mod. so Why have a BSA if it works without? Do I need a BSA ? Are BSA's outdated?

Link to comment
Share on other sites

BSAs are not out dated.

A BSA in a normal setting allows your assets to be turned on and off with the plugin. Meaning that if the plugin is not active the BSA contents will not load. This is the BSA's selling point. However, Mod Organizer changes things up a bit. It allows BSAs to load without their respective plugin being active. It also lets BSA files take priority over earlier loaded loose files. Due to these odd MO behaviors some authors who use Mod Organizer skip creating a BSA and stick with loose files. There is also a size limit to BSA files. For mods that would exceed that amount, the authors tend to leave the files loose rather than requiring edits to be made to the game's INI files in order to allow additional BSA files to load.

 

In a nutshell, BSA files are not required for the mod to function.

 

Personally, I'd rather have a BSA whenever possible as there are only two files two worry about: the plugin and the BSA.

Link to comment
Share on other sites

BSAs are not out dated.

A BSA in a normal setting allows your assets to be turned on and off with the plugin. Meaning that if the plugin is not active the BSA contents will not load. This is the BSA's selling point. However, Mod Organizer changes things up a bit. It allows BSAs to load without their respective plugin being active. It also lets BSA files take priority over earlier loaded loose files. Due to these odd MO behaviors some authors who use Mod Organizer skip creating a BSA and stick with loose files. There is also a size limit to BSA files. For mods that would exceed that amount, the authors tend to leave the files loose rather than requiring edits to be made to the game's INI files in order to allow additional BSA files to load.

 

In a nutshell, BSA files are not required for the mod to function.

 

Personally, I'd rather have a BSA whenever possible as there are only two files two worry about: the plugin and the BSA.

 

OK then for me to get my mod to my tester, just gathering all my "loose files" (in the correct folder layout) and having the plugin... would be fine and all should work. But you are saying, doing it the BSA way would not be a waste of time either.

 

Does Nexus Mod Manager have any issues with loose files? (I guess not since I have downloaded many mods with no BSA.

Link to comment
Share on other sites

Loose files are a drain on computer resources for no good reason. With loose files the operating system has to be involved in every file access. With a BSA the interaction with the OS is minimal. The game was designed to use BSAs to the point that if you upload mods to Bethesda.net or the Steam sites you can't have loose files. Those not packing their resources are simply doing it wrong. (The handfull of people who really need loose files to resolve conflicts can unpack the specific files needed.)

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...