Jump to content

WEATHER INSIDE (SEASONS) EFFECT FOR CUSTOM MOD


jwoltz

Recommended Posts

This is no big deal...really...but I would like to add the effects of hearing the wind and weather produced by the mod Weather Inside (Seasons) in the mod Trade & Commerce. I only know a little of the Construction Set and other than doing some custom textures, don't consider myself a modder. I have a VERY customized Trade & Commerce mod and therefore can't (or won't) replace the existing .esp for it in my game. As the Weather Inside uses custom made scripted "doors" to place within proximity of the interior cells, I was hoping to copy/export those doors from Weather Inside into Trade & Commerce, but I don't think that's possible. I know I could probably open both in the CS and make a "patch", but I have such a heavily modded game I was hoping to avoid making/adding yet another .esp file. Are there any alternatives? If so, clear, concise, step-by-step instructions would be helpful. A big thank you to anyone who can help. If it just can't be done, hey...like I said...no big deal.

 

EDIT: Well, finally resorted to making an .esp - "Trade and Commerce_Weather Inside Patch" in the CS...no dice! Kept getting an "assertion" warning with a whole bunch of meaningless gibberish when I tried to save the completed file. Never saw anything like it before. Have no idea what it means. At any rate, the patch didn't work. So I guess I'll go with another .esp in my load order if anyone can make this work!

Edited by jwoltz
Link to comment
Share on other sites

Making another esp will propably not work. But as I peeked at Weather inside mod, the idea of this is quite simple - the author adds a mimic door almost at a position of original one and adds a script to such door which plays a sound(s). However, I think for you will be enough to assign this script to normal exit door(s} already present in your interiors added in Trade & Commerce.esp, as you said this mod is already customized. But to make it always work you must make these changes to Trade & Commerce.esp by yourself and this how you do it:

 

Work for Weather Inside:

1. Unpack the bsa - you will need its sound files.

2. Open the Weather Inside.esp and locate all its "Sound" (they're begin with "WI2D" or "WI3D") base objects. By right-click and choosing "Edit" you will see there which file is used for this sound and another parameters.

3. Locate the scripts - they all beginning with "WeatherInside". Choose the one which you want to assign to your door in Trade & Commerce mod and by using copy&paste copy it to some text editor (even Notepad will do) and leave the editor open.

 

Now open your Trade & Commerce esp and:

1. In "Object" window in "Sound" sub-tree you must define all new sound objects, which your script uses after "PlaySound" or "PlaySound3D" command, with same file and parameters as the original. But again, vanilla CS can't look into bsa files, so sound files must be unpacked from bsa first. You can add sound object by selecting one already present, right-click, and select "New".

2. Now the script - simply open the script editor and copy the contents from opened text editor and save. The script must be also of "object" type. If you made all sound objects before, the CS will not complain.

3. Now locating your exit door - in the "Cell View" window locate your interior, the edited ones will be marked with star. Click on it and previously empty right-half will be filled with all objects contained in this cell. Find the "Door" object and by right-click and selecting "View" confirm its location. After you found the right one, right-click and select "Edit" to learn what door base object it uses.

4. Now back in "Object" window find your door in "Door" sub-tree and select "Edit" in context menu. Assign your "WeatherInside" script and select OK.

 

Now save your changed Trade & Commerce mod. If CS will not complain, you should now hear the sound at selected exit door as you approach it.

 

For unpacking I use BsaCommander - it's a small program and works nicely with Oblivion. Don't also forget to delete its log file after unpacking, it's located in Data directory.

 

Edit: As I see the scripts in Weateher inside will need some touches, like to check if the base door is in interior or checking the player's distance from it. They're also give command to produce sound every frame, which could lead to performance problems.

Edited by RomanR
Link to comment
Share on other sites

Hey, thank you. It all sounds great. The only problem I've always had with trying to work with existing scripts is the copy/paste procedure. I could never get it to work and would end up completely writing the script from the screen by hand on a piece of paper and then re-writing it as a new script. Can you tell me how exactly to use copy/paste for scripting in the CS? Thank you.

Link to comment
Share on other sites

For me using Window's clipboard and with Ctrl+C and Ctrl+V always worked. Simply mark your text and press Ctrl+C, then open another esp, select to edit new script and press Ctrl+V. You can also use this to copy it to standard Notepad, if you wish. Just be avare that standard tabelator is set in CS editor to 3.

Link to comment
Share on other sites

And here are also additional commands for interior-to-exterior doors with some performance touches:

scriptname WeatherInside3D11a
ref me
ref link_door
float distance 
short door_interior
short link_door_interior
short valid
short timer

begin GameMode
	set me to GetSelf
	; get info about doors
	if me != 0
		;print "This door is named "+$me
		set door_interior to me.IsInInterior
		;print "Is in interior: "+$door_interior
		set distance to me.GetDistance player
		;print "Distance from player: "+$distance
		let link_door := me.GetLinkedDoor
		if link_door != 0
			set link_door_interior to link_door.IsInInterior
			;print "It has linked door named: "+$link_door
			;print "Linked door is in interior: "+$link_door_interior
		else
			;print "It hasn't linked door."
		endif
	endif
	if me != 0 && link_door != 0
		set valid to 1
	else
		set valid to 0
	endif
	; timer
	if timer > 0
		set timer to timer - 1
	endif 
	; now sounds
	if valid != 0 && door_interior != 0 && link_door_interior == 0 && distance <= 950 && timer == 0
		set timer to 2 ; if you notice any drop-outs, just set it to zero
		; put all commands from original script here
		....................
	endif

end

GetLinkedDoor is OBSE function, but as Trade & Commerce needs it too,so it doesn't matter. Don't assign it to original "sound emitters" because there isn't linked door in them and hence they will become silent.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...