New FSE link request

Preston

First time out of the vault
Sorry for posting this here, but i didn't really know where else to put it.

So i've been desperately trying to figure out how to start editing scripts in my Fallout 2 game, however it appears to be harder to even start compiling/decompiling than writing the scripts themselves.

The several tutorials and guides using watcom weren't complete enough to allow a newbie like me to hit the mark.
Other tutorials suggest the use of FSE, who's download is available here on this site, but when i tried to download it my anti-virus blocked it for some reason and i didn't try to bypass it since i'm kind of parnoïd when it comes to viruses.

Now, i'm not trying to imply that those who put up the link are felons aiming at messing up peoples PCs. However, since the link and the hosting site is quite old i have figured that it might be possible that someone else came along and hacked it.
So i'm asking those who know better... is it safe to download the file from there ? if not, would it be possible to rehost it on a safer platform ?
 
I would suggest using the sfall script editor instead.
It can do it all and don't need watcom.
It's included in modderspack 2.17.7.

It might also be a good idea to get the Official Mapper
With it comes all the original scripts and headers which will make it a lot easier to understand the scripts you have decompiled.
If you ever want to try to use the Mapper with the RP Mod you will need to patch it with this (only patch the mapper, not Fallout2.exe).

If it's still the Miria mod script you are thinking of the relevant code you are looking for is this:
Code:
procedure armour_change
begin
	if (critter_inven_obj(self_obj, 0) != ArmourVal) then begin
		ArmourVal := obj_pid(critter_inven_obj(self_obj, 0));
		if (critter_inven_obj(self_obj, 0) == 0) then begin
			metarule3(107, self_obj, 16777279, 0);
			float_msg(self_obj, message_str(106, random(6000, 6001)), 8);
		end
		else begin
			if ((ArmourVal == 1) or (ArmourVal == 379)) then begin
				metarule3(107, self_obj, 16777221, 0);
				float_msg(self_obj, message_str(106, random(6005, 6006)), 8);
			end
			else begin
				if ((ArmourVal == 74) or (ArmourVal == 265)) then begin
					metarule3(107, self_obj, 16777222, 0);
					float_msg(self_obj, message_str(106, random(6010, 6011)), 8);
				end
				else begin
					if ((ArmourVal == 2) or (ArmourVal == 380) or (ArmourVal == 240)) then begin
						metarule3(107, self_obj, 16777223, 0);
						float_msg(self_obj, message_str(106, random(6015, 6016)), 8);
					end
					else begin
						if ((ArmourVal == 17) or (ArmourVal == 381) or (ArmourVal == 239)) then begin
							metarule3(107, self_obj, 16777219, 0);
							float_msg(self_obj, message_str(106, random(6020, 6021)), 8);
						end
						else begin
							if ((ArmourVal == 3) or (ArmourVal == 232)) then begin
								metarule3(107, self_obj, 16777217, 0);
								float_msg(self_obj, message_str(106, random(6025, 6026)), 8);
							end
							else begin
								if ((ArmourVal == 348) or (ArmourVal == 349)) then begin
									metarule3(107, self_obj, 16777287, 0);
									float_msg(self_obj, message_str(106, random(6030, 6031)), 8);
								end
								else begin
									if ((ArmourVal == 524) or (ArmourVal == 113)) then begin
										metarule3(107, self_obj, 16777218, 0);
										float_msg(self_obj, message_str(106, random(6035, 6036)), 8);
									end
									else begin
										if (ArmourVal == 554) then begin
											metarule3(107, self_obj, 16777301, 0);
										end
									end
								end
							end
						end
					end
				end
			end
		end
		restock_obj := critter_inven_obj(self_obj, 1);
		debug_msg("armour pid == " + obj_pid(restock_obj));
		rm_obj_from_inven(self_obj, restock_obj);
		add_obj_to_inven(self_obj, restock_obj);
	end
end

"if (critter_inven_obj(self_obj, 0) == 0)" means if she is not wearing any armor.

" metarule3(107, self_obj, 16777279, 0); " sets her critter art, 16777279 (artFID) is the number you have to change to make her look different.

"(ArmourVal == 1)" is what armor she is wearing, 1 means leather armor. you can find the others in ITEMPID.H (in scripts\headers folder that came with the official mapper).

EDIT. And I just remembered that you already have the mapper. Oh well. Too tired to remove that section.
 
Preston said:
The several tutorials and guides using watcom weren't complete enough to allow a newbie like me to hit the mark.
Other tutorials suggest the use of FSE, who's download is available here on this site, but when i tried to download it my anti-virus blocked it for some reason and i didn't try to bypass it since i'm kind of parnoïd when it comes to viruses.

Now, i'm not trying to imply that those who put up the link are felons aiming at messing up peoples PCs. However, since the link and the hosting site is quite old i have figured that it might be possible that someone else came along and hacked it.
So i'm asking those who know better... is it safe to download the file from there ? if not, would it be possible to rehost it on a safer platform ?

Darek is right that for decompiling and re-compiling scripts the sfall script editor would be better.

But if you still want to get FSE for its auto-fill and hint features (useless for decompiled scipts, mind you - they have a different format), I can tell you I have been using FSE for several years now and never had any problems with viruses, although I can't recall if I downloaded the supposedly "infected" installer or not.
If you're feeling wary (which is OK to be), I can upload my copy of FSE to mediafire and you can see if your anti-virus still gives you the finger.
 
Thanks again Darek, the script editor of the modders pack is astonishingly easy to use compared to the complexity of the watcom procedure.
On top of that you pointed me directly at the part i have to edit, it's like icing on the cake ! I couldn't thank you more man ;)

However, the more i browse around the site the more i want to do stuff !
I would like to add new art frms instead of using existing ones, more specifically i'm trying to implement Rainmans heroblonde critter pack and apply the art frms to Miria. I've Added the frms directly to critter.dat but it doesn't seem to work, i figured i should add the "pack" name to the critter.lst file, but what should i name it precisely ? i'm especially confused about the numbers attached to the names
hapowr,21,1
harobe,11,1
hmbjmp,11
maddog,16,1
To name a few examples.
I noticed that all humanoid frms had the number 11 attached to them except for power armors that seem to use 21, but still i'm puzzled about this, any suggestions ?


P.S: I apologize if my second request seems out of place, i can edit this one and make a new post about this if necessary.


EDIT: @Ardent thanks man, but i believe i'll be just fine, the script compiler of the modder pack works wonders and unless you know of any issue or circumstances where FSE could provide more usefulness i think it's unecessary to bother yourself.
 
First I have to say I have never added any critter animations myself but have looked at them a bit so I am somewhat familiar with it. If I say something wrong I hope some modders more experienced in this area will chip in/correct me.

There is a naming convention listed here, though I'm sure I've seen a better one posted by pixote somewhere. Just can't find it.

If you take this one for example:
harobe,11,1

HA = Hero Androgeneus, robe = well robe I suppose, 11 = the human aimed shots background picture, 1 = if the critter has a running animation.
I think the reason power armor has number 21 is to reflect how big it is, 21 is actually the one used for super mutants. Though I think 11 and 21 are actually the same background picture, at least I haven't noticed any difference in the game. Maybe something the devs forgot about or scrapped?

Harobe is the base name for the critter animation (what gets added to the critters list), after that you add two letters to the frame name to show what type of animation it is. For instance harobeab would mean the walk animation. But that is only for naming the files.

Anyway, I think the names of the folders in the blond critterpack is what you should add in critters.lst as it is one folder for each armor, right. And add ,11,1 after of course.

Also, no need to add them directly to critter.dat, just put it (and updated critters.lst) in ...\Fallout2\DATA\Art\critters folder, it will override anything in the critter.dat file.
 
Don't worry i don't think we'll need an expert modder to hop in this time, everything you said was correct and helped me a whole lot !

I've been able to add the frms finaly thanks to you (quite easy actually once i knew what i was doing). After that the hard part was to figure out how to get the fids of each critter frm i added. I noticed that .pro files were converted to .txt files in the dev/proto/critters folder used by the mapper. Those files are filled with all informations about the critter it specifies, including the art FID. So i just had to create or edit critters with the new art and voa-lah ! From there on it was just a straight road with sunshine (⌐■_■).


Gotta mention for those who'd stumble on this topic trying to do something similar:

- ITEMPID.H and ARTFID.H are incomplete. I've added the FIDs of the frms i used just in case but i don't think this had any influence at all.

- the Sfall ScriptCompiler has optimizing functions that will reduce the compiled script file size (compared to it's original size before editing), i don't know if that would have triggered incompatibility issues without the sfall patch, but to be sure i deactivated the optimization option.


P.S: I know i'm repeating myself but thanks a lot for your help guys ! Especially to Darek, i would never have gotten anywhere without your detailed instructions, or at least not in a reasonable timeframe.
So TYVM ! :)
 
Preston said:
- ITEMPID.H and ARTFID.H are incomplete. I've added the FIDs of the frms i used just in case but i don't think this had any influence at all.

This only has influence if you reference these FIDs/PIDs by their macros in scripts that you want to compile.

For instance, this code:

Code:
metarule3(107, self_obj, 16777279, 0);

will always compile, because you reference the FID by its number. But the numbers can be confusing, so the ARTFID header file contains macros, or shortcuts, or whatever it's called, to these numbers.
If you rewrote the code as follows:

Code:
metarule3(107, self_obj, FID_NFPRIM, 0);

and the definition of FID_NFPRIM weren't present in ARTFID.h, the script wouldn't compile.
 
@ Preston,
You're welcome.

After that the hard part was to figure out how to get the fids of each critter frm i added. I noticed that .pro files were converted to .txt files in the dev/proto/critters folder used by the mapper. Those files are filled with all informations about the critter it specifies, including the art FID. So i just had to create or edit critters with the new art and voa-lah !
Aah yeah, I guess I could have mentioned that bit, but that would have been too easy. :P
Seriously though, I didn't feel like needlessly going into detail on how to set up the Mapper properly etc. Figured you'd ask if needed. Which you didn't, so well done. :clap:

It would be good if you could check if there are any compatibility issues with the RP.
 
Ardent said:
This only has influence if you reference these FIDs/PIDs by their macros in scripts that you want to compile.

For instance, this code:

Code:
metarule3(107, self_obj, 16777279, 0);

will always compile, because you reference the FID by its number. But the numbers can be confusing, so the ARTFID header file contains macros, or shortcuts, or whatever it's called, to these numbers.
If you rewrote the code as follows:

Code:
metarule3(107, self_obj, FID_NFPRIM, 0);

and the definition of FID_NFPRIM weren't present in ARTFID.h, the script wouldn't compile.

Oh okay, i didn't figure the correct use of that file other than beeing some kind of index, but now that i think of it it's kind of obvious idd.

Darek said:
Aah yeah, I guess I could have mentioned that bit, but that would have been too easy. Razz
Seriously though, I didn't feel like needlessly going into detail on how to set up the Mapper properly etc. Figured you'd ask if needed. Which you didn't, so well done. Applause

It would be good if you could check if there are any compatibility issues with the RP.

I wouldn't have wanted it any other way, feels way more satisfying to figure out at least something by myself and not let someone else do all the work ;)

As for the compatibility, can you specify what i should be reporting exactly ? the compatibility with the script compiler optimization process without using sfall ? or the compatibility of the addition of those frms with the game ?

In the second case i haven't noticed any problems so far, but i will report the latter if i see anything unusual for sure.
 
Preston said:
As for the compatibility, can you specify what i should be reporting exactly ? the compatibility with the script compiler optimization process without using sfall ? or the compatibility of the addition of those frms with the game ?
Well I was mainly thinking about the Miria Mod script itself. It's been reported that it's not 100% compatible with the Restoration Project as can be seen here: http://falloutmods.wikia.com/wiki/Restoration_Project_bug_reports. Just search for Miria and see what comes up. Now I'm not too sure of most of those bug reports to be honest, and figured you could maybe add some more insight. If you want to that is ofc. Just look if anything out of the ordinary happens that could be from the Miria mod and maybe try to reproduce some of the bug reports if you like.
 
Back
Top