Ok, I've ignored the Better Music System mod for long enough

Post » Sat May 28, 2011 12:21 pm

There needs to be a better way to work around that. That being said, if faced with the option of battle music not ending when it should or ending too quickly, I'd take the former over the latter. At least battle music not ending can be reset with a simple cell switch.


Well, one can force an enemy to be killed, like mentioned in the post linked above. Or maybe using OnDeath. The fact is that when you make the script see an enemy is dead, for the script the enemy is dead (...!). But with the enemy actually still alive (even if with very low hp), could lead the script to restart battle music (above all at the beginning, when you do low damage and you could miss a lot). So using mdocurrenthealth would fix the problem.

It's hilarious because a good sign that one of my tests has gone awry is when four or five of him suddenly spawn at once >.<


I'd not be surprised if that were due to the startscript function. Each time you call it, the entire frame is restarted from the beginning, so if you have 5 scripts, and you use startscript in the second one (in an order than only MW knows), then it will restart from the first. So you'll have the first 2 scripts processed two times (or maybe 3, or 4) in a frame while the last three have not been read yet. This was the reason why timers were always screwed up when playing with other particular mods that use startscritps a lot. Again, even when I was sure to have fixed the buggy "original music feature", testing it loading only BMS, then it was scrwed up again when I tested it with all the other mods I use. I had to insert a delay to be sure that one particular script couldn't be processed more than one time in a frame in certain conditions. Take always into consideration this matter when something goes wrong and you seem to have done all right.


Yeah, I'll look into it as soon as I'm done with mine. As quick of a job it is to look it over, I've noticed that constantly switching between your version of the mod and mine tends to cause lots of crashes when the game loads (apparently, Morrowind stores a lot of crap in the RAM that it shouldn't).


It may happen yes, but it should be resolvable cleaning the save with WM.

EDIT: I also seem to be having a *lot* of problems with your distance checks. Set the value any higher than 4000, and the game doesn't really keep track of them past 4500 or so and the music never resets. And lower, and the AI will usually still be tailing you, and there's lots of resets in and out of battle when you hit the threshold.


No, this time is my fault, when I remade the script I forgot to test that.And forgot to put it back this block, just under the "xNextRef/xFirstNPC" block:

	ifx ( ref )		xSetRef ref		set distance to GetDistance, "player"	endif	if ( distance > 8000 )		return	endif


Now every thing works as intended, when going beyond the threshold, music stops, I even tried with 3 enemies and it works fine. Oh, [censored] carelessness!
It is also a good way to raise performances becouse all the distant living beings will not be processed. (no, not really in this case!)

The problem seems to be that there's no way to tie this in neatly to whether or not the AI is still following you or not, otherwise I'm sure you would have.


Well it doesn't behave always the same way, but an enemy probably will stop targeting you when you are a good distance.

REVENGE OF THE EDIT: Yeah, that definitely works. It makes the battle music behave a lot like I have the town and explore music behaving, actually (lack of harsh transitions and all). So, you either kill your opponent outright and have the battle music end immediately, or you run and (hopefully) have escaped by the time the battle music ends, at which point it transitions smoothly into the explore music. It also gives me one more excuse to just say "[censored] it" and reduce the HP thresholds for opponent deaths from 5 to 0 (at least until we figure out a better system).


No problems when the enemy dies but has still some hp?

Wow... I just said "we", didn't I? Sorry if I sound like I'm horning in on your work, here. I'm honestly just glad I feel like I have something to contribute at this point.

Well you've done a good job I suppose. And this discussion was constructive for me too, so I think it's a win-win. :)

Speaking of contributing, there seems to be something wrong with that latest update I downloaded. It's incredibly small (100 some-odd KB, whereas your last updates were around 800 kb-ish), and Morrowind refuses to even load when the file is in my "Data Files" directory, unchecked or not. It says that "BMS_UPDATE_v1.7.3 - Test vresion" isn't even a valid .esp file. Maybe I just got a corrupted download or something. I'll look into it more in the morning when I'm less exhausted.

Oh, and I'm, going to say that my version is pretty much "done" at this point, since the boss battle music was the last thing left that I hadn't tested. I ended up having to restructure the battle script a bit more to accommodate it properly, so the final version is a bit different from the last one I posted.

Again, if you're curious (which I frankly wouldn't fault you for not being at this point), this is my finished product:

http://btb2.free.fr/...rrowind_bms.zip


I will surely check my esp and yours, when these 3 days will finally be passes I hope I'll have more time for this.


EDIT: I uploaded the esp with the latest changes.

http://www.megaupload.com/?d=UHM2S9EJ

(if you have problems with MU here another link http://rapidshare.com/files/439029006/BMS_UPDATE_1.8.esp )
User avatar
Kahli St Dennis
 
Posts: 3517
Joined: Tue Jun 13, 2006 1:57 am

Post » Sat May 28, 2011 5:05 am

Well, one can force an enemy to be killed, like mentioned in the post linked above. Or maybe using OnDeath. The fact is that when you make the script see an enemy is dead, for the script the enemy is dead (...!). But with the enemy actually still alive (even if with very low hp), could lead the script to restart battle music (above all at the beginning, when you do low damage and you could miss a lot). So using mdocurrenthealth would fix the problem.


Ideally, the solution would just be to forcekill an opponent once the HP is down to about 3 or 4 (or, even better, "on death" mod the HP to 0). Problem is, I'm still not familiar enough with how the advanced scripting works to refer to the enemy specifically.

I'd not be surprised if that were due to the startscript function. Each time you call it, the entire frame is restarted from the beginning, so if you have 5 scripts, and you use startscript in the second one (in an order than only MW knows), then it will restart from the first. So you'll have the first 2 scripts processed two times (or maybe 3, or 4) in a frame while the last three have not been read yet. This was the reason why timers were always screwed up when playing with other particular mods that use startscritps a lot. Again, even when I was sure to have fixed the buggy "original music feature", testing it loading only BMS, then it was scrwed up again when I tested it with all the other mods I use. I had to insert a delay to be sure that one particular script couldn't be processed more than one time in a frame in certain conditions. Take always into consideration this matter when something goes wrong and you seem to have done all right.


This is why I try to avoid timers if I can at all help it, and script things so that even if they do run five times in a row, it really won't have any noticeable effect. It's like putting together a really big puzzle, actually.

It may happen yes, but it should be resolvable cleaning the save with WM.


You know, I've never actually used Wyre Mash. I've never played more than an hour into the game, so there's really no such thing as an "Existing" savegame to me. I tried using it once just to see what it was like, and I couldn't figure it out >.<


Now every thing works as intended, when going beyond the threshold, music stops, I even tried with 3 enemies and it works fine. Oh, [censored] carelessness!
It is also a good way to raise performances becouse all the distant living beings will not be processed. (no, not really in this case!)


Hahaha!

No problems when the enemy dies but has still some hp?


Perhaps I should have been more clear. There still is an occasional problem where the target dies, still has HP left, and the battle music keeps playing. It's now simply that the battle music doesn't keep playing ad-infinitum, because when the current song ends, the reset script runs and the explore music will resume. There shouldn't be any problems, because your script doesn't check for HP to see whether or not a fight has begun - only to see if it has ended.

EDIT: I uploaded the esp with the latest changes.

http://www.megaupload.com/?d=UHM2S9EJ

(if you have problems with MU here another link http://rapidshare.com/files/439029006/BMS_UPDATE_1.8.esp )


Something's still definitely wrong, here. I went to go start a new game and the game froze. When I finally got control of my computer back, it crashed with an error message saying "need more room for zero pointers in script: replaceglobalsdata".
User avatar
His Bella
 
Posts: 3428
Joined: Wed Apr 25, 2007 5:57 am

Post » Sat May 28, 2011 5:05 am

What?? I will check it at once.
User avatar
!beef
 
Posts: 3497
Joined: Wed Aug 16, 2006 4:41 pm

Post » Sat May 28, 2011 6:59 am

Heh, I just realized that my final version still had Umbra popping up every time the reset script ran. It's easy to miss stupid little things, I guess :P
User avatar
BethanyRhain
 
Posts: 3434
Joined: Wed Oct 11, 2006 9:50 am

Post » Sat May 28, 2011 12:09 pm

Ok, figured out what was wrong.

I followed an advise in a post linked above and added quotes to all player IDs. I thought that that made perfectly sense, so I did it. Instead the effect was exactly the opposite, as you could have notice....
I reverted all the player IDs to how they were before, without quotes and THIS TIME I tested ingame (last time I trusted the changes I made, not a good habit to follow) and my save loaded perfectly, and all seems like before that change. Its strange, I thought that was the right syntax, or I'm missing something.

Anyway, here again the esp: http://www.megaupload.com/?d=9I2BPMLA

Ideally, the solution would just be to forcekill an opponent once the HP is down to about 3 or 4 (or, even better, "on death" mod the HP to 0). Problem is, I'm still not familiar enough with how the advanced scripting works to refer to the enemy specifically.


Yeah I meant using modcurrenthealth to "forcekill" an enemy. Or even SetHealth.

For example if the first enemy stored in the list have hp<5:

if ( hp1 < 5 )         set state to 1endififx ( state )	ifx ( ref1 )		xSetRef ref1		ModCurrentHealth -3000                set state to 0		or		xSetRef ref1		SetHealth 0                set state to 0	endifendif



This is why I try to avoid timers if I can at all help it, and script things so that even if they do run five times in a row, it really won't have any noticeable effect. It's like putting together a really big puzzle, actually.


Well the timers that really matter are the ones inside the music scripts, and you cant really avoid to use them there.

Perhaps I should have been more clear. There still is an occasional problem where the target dies, still has HP left, and the battle music keeps playing. It's now simply that the battle music doesn't keep playing ad-infinitum, because when the current song ends, the reset script runs and the explore music will resume. There shouldn't be any problems, because your script doesn't check for HP to see whether or not a fight has begun - only to see if it has ended.


Ah ok, but may happen that a bit earlier than the enemy hp falls below 5 the music restarts. If it last 2 minutes you will have to wait 2 minutes before it stops. However, even in my mod when the enemy dies and has some hp left music will stop ( most of the times, only if he dies with more than 5 hp left music will not stop, but it is very unlikely).

Heh, I just realized that my final version still had Umbra popping up every time the reset script ran. It's easy to miss stupid little things, I guess :P

Hehe, see how it's easy to forgot things?

EDIT: stupid syntax error in the code.
User avatar
Tom Flanagan
 
Posts: 3522
Joined: Sat Jul 21, 2007 1:51 am

Post » Sat May 28, 2011 8:12 am

Ok, figured out what was wrong.

I followed an advise in a post linked above and added quotes to all player IDs. I thought that that made perfectly sense, so I did it. Instead the effect was exactly the opposite, as you could have notice....
I reverted all the player IDs to how they were before, without quotes and THIS TIME I tested ingame (last time I trusted the changes I made, not a good habit to follow) and my save loaded perfectly, and all seems like before that change. Its strange, I thought that was the right syntax, or I'm missing something.

Anyway, here again the esp: http://www.megaupload.com/?d=9I2BPMLA



in the CS quote player references. in MWedit, especially when using MWSE functions, don't. in fact, when using MWSE functions, it's preferable to not use "hard-coded" references, like "player" at all. fliggerty recommends to setx to the xrefid of whatever hard-coded reference you wish to use.
User avatar
Roberto Gaeta
 
Posts: 3451
Joined: Tue Nov 06, 2007 2:23 am

Post » Sat May 28, 2011 2:20 am

in the CS quote player references. in MWedit, especially when using MWSE functions, don't. in fact, when using MWSE functions, it's preferable to not use "hard-coded" references, like "player" at all. fliggerty recommends to setx to the xrefid of whatever hard-coded reference you wish to use.


That explains everything, thanks for pointing it out. And since I don't have hardcoded refs used with MWSE functions, I don't have to change anything about that. But it's good to know for the future.

Actually I have to change something, all script names have to be quoted when scripts are called/stopped, given that they are not hardcoded ref IDs. I realise now that it's definitely a mistake not to quote them, hence this may lead to malfunctionings. A little more work for me.
User avatar
Melung Chan
 
Posts: 3340
Joined: Sun Jun 24, 2007 4:15 am

Post » Sat May 28, 2011 2:16 pm

Actually I have to change something, all script names have to be quoted when scripts are called/stopped, given that they are not hardcoded ref IDs. I realise now that it's definitely a mistake not to quote them, hence this may lead to malfunctionings. A little more work for me.


A little less work for me, but still something I want to try out.

The stability issues are, to put it simply, wonky at best. Using my version of the mod, I could play and reload three or four times without ever crashing (which is about how much I averaged before). Or, I could have it try to load three or four times and crash when loading. Again, there's absolutely no consistency at all, so it's very hard to say what the problem could possibly be.

For example, if it crashes when loading, I could go uncheck my mod in the launcher and try again - 50/50 odds are that it crashes again when loading.

It's maddening.
User avatar
Sabrina Steige
 
Posts: 3396
Joined: Mon Aug 20, 2007 9:51 pm

Post » Sat May 28, 2011 10:36 am

I've made some changes to your "one_script_that_rules_the_world" startscript when I was looking at it, I really don't know if this will better your stability but I think now it is more stable than before.
I don't know if you want the Menumode check where I put it.

begin One_Script_To_Rule_Them_All	short state	short wait	if ( chargenstate == 10 )		return	elseif ( menumode == 1 )		return	endif	if ( state == 0 )		stopscript "BTB_Main_Battle"		stopscript "BTB_Main_Buildings"		stopscript "BTB_Main_Dungeons"		stopscript "BTB_Main_Overworld"		stopscript "BTB_Main_Towns"		stopscript "BTB_Music_Battle"		stopscript "BTB_Music_Interiors"		stopscript "BTB_Music_Overworld"		stopscript "BTB_Music_Towns"		set state to 1		return	endif	if ( state == 1 )					;		set wait to 10			        ;		set state to 2				;	endif							;wait 10 frames								;	if ( state == 2 )					;after the scripts are stopped		set wait to ( wait - 1 )	                ;	endif							;	if ( wait > 1 )					;even thought it may be not necessary		return					;it is one more safeguard	else							;		set state to 3				;	endif							;	if ( state == 3 )		set btb_battle to 0		set btb_building to 0		set btb_dungeon to 0		set btb_interior to 0		set btb_overworld to 0		set btb_streaming to 0		set btb_town to 0		set state to 4	endif	if ( state == 4 )		if ( scriptrunning "BTB_Main_Battle" == 0 )	; it's always a good idea to put this check in			startscript "BTB_Main_Battle"		; before calling a script, even if it seems useless		endif								; starting a script already running will cause a CTD		if ( scriptrunning "BTB_Main_Buildings" == 0 )			startscript "BTB_Main_Buildings"		endif		if ( scriptrunning "BTB_Main_Dungeons" == 0 )			startscript "BTB_Main_Dungeons"		endif		if ( scriptrunning BTB_Main_Overworld == 0 )			startscript BTB_Main_Overworld		endif		if ( scriptrunning "BTB_Main_Towns" == 0 )			startscript "BTB_Main_Towns"		endif		set state to 5		return	endif	if ( state == 5 )		set BTB_Main_Battle.reset_battle to 1                          	; <-- this will work only if the script is running		set state to 0									;     so it's better to wait one frame or more to be sure it works		stopscript "One_Script_To_Rule_Them_All"	endifend


I tried with a New game and all worked fine, and out of the Office errors popped up because i don't have your mp3's.
Then I tried to load a save game, I never got a CTD, tried about 10 times in a row. But the "music" never started, I could see the music_overworld script running though. Same thing in battle, with a first tier enemy the music_battle didn't start, but with a 3rd tier enemy did. I supposed it's intended to work this way? However, I never got a missilng file error, meaning that the streammusic has been never called.
User avatar
SWagg KId
 
Posts: 3488
Joined: Sat Nov 17, 2007 8:26 am

Post » Sat May 28, 2011 3:06 am

So...

1. Put quotes on the scriptnames
2. Add a timer (I was going to do that anyway, actually)
3. Add checks to see if the scripts are already running

I shall do that tomorrow, then.

Also, I need the menu check later on in the list, because I need to kill the music scripts before the level-up music plays (and, more importantly, I need them dead *after* the level-up music plays so that nothing starts up again).

EDIT: Ok, so what about stopping scripts that aren't running? Will *that* cause CTD's?

EDIT II - THE SEQUEL:

All right, well here's what I have at the moment:

begin One_Script_To_Rule_Them_All	short phase	short wait	if ( phase == 0 )		if ( scriptrunning "BTB_Main_Battle" == 1 )			stopscript "BTB_Main_Battle"		endif		if ( scriptrunning "BTB_Main_Buildings" == 1 )			stopscript "BTB_Main_Buildings"		endif		if ( scriptrunning "BTB_Main_Dungeons" == 1 )			stopscript "BTB_Main_Dungeons"		endif		if ( scriptrunning "BTB_Main_Overworld" == 1 )			stopscript "BTB_Main_Overworld"		endif		if ( scriptrunning "BTB_Main_Towns" == 1 )			stopscript "BTB_Main_Towns"		endif		if ( scriptrunning "BTB_Music_Battle" == 1 )			stopscript "BTB_Music_Battle"		endif		if ( scriptrunning "BTB_Music_Interiors" == 1 )			stopscript "BTB_Music_Interiors"		endif		if ( scriptrunning "BTB_Music_Overworld" == 1 )			stopscript "BTB_Music_Overworld"		endif		if ( scriptrunning "BTB_Music_Towns" == 1 )			stopscript "BTB_Music_Towns"		endif		set phase to 1	endif	if ( phase == 1 )		set btb_battle to 0		set btb_building to 0		set btb_dungeon to 0		set btb_interior to 0		set btb_overworld to 0		set btb_streaming to 0		set btb_town to 0		set BTB_Music_Battle.timer to 0		set BTB_Music_Interiors.timer to 0		set BTB_Music_Overworld.timer to 0		set BTB_Music_Towns.timer to 0		set BTB_Main_Battle.reset_battle to 1		set phase to 2	endif	if ( chargenstate == 10 )		return	elseif ( menumode == 1 )		return	endif	if ( phase == 2 )		set wait to 10		set phase to 3	endif	if ( phase == 3 )		set wait to ( wait - 1 )	endif	if ( wait > 1 )		return	else		set phase to 4	endif	if ( phase == 4 )		if ( scriptrunning "BTB_Main_Battle" == 0 )  			startscript "BTB_Main_Battle"		endif		if ( scriptrunning "BTB_Main_Buildings" == 0 )  			startscript "BTB_Main_Buildings"		endif		if ( scriptrunning "BTB_Main_Dungeons" == 0 )  			startscript "BTB_Main_Dungeons"		endif		if ( scriptrunning "BTB_Main_Overworld" == 0 )  			startscript "BTB_Main_Overworld"		endif		if ( scriptrunning "BTB_Main_Towns" == 0 )  			startscript "BTB_Main_Towns"		endif		set phase to 5	endif	if ( phase == 5 )		stopscript "One_Script_To_Rule_Them_All"		set phase to 0	endifend


Stability seems very good right now, though as I mentioned before that could simply be because the RNG god is smiling on me at the moment. No crashes when loading right now, which is good. I noticed that stopping the music scripts means that the timers keep going, so I added the reset to the timers in the main script.

I've also taken everything I've learned about scripting from this mod and revisited the level-up birthsign remover script from mine. I never realized that mine had a rogue timer that just kept resetting itself, so I went ahead and tided that up. Do you use the "Character" plugin from my mod? If not, I don't know whether or not my use of it has had any influence on my results (as it seems that my game as a whole is somewhat less stable than yours).
User avatar
Ray
 
Posts: 3472
Joined: Tue Aug 07, 2007 10:17 am

Post » Sat May 28, 2011 8:55 am

EDIT: Ok, so what about stopping scripts that aren't running? Will *that* cause CTD's?


Absolutely not, that is safe.

Stability seems very good right now, though as I mentioned before that could simply be because the RNG god is smiling on me at the moment. No crashes when loading right now, which is good.

I don't know who's this rng god is but I think he has nothing to do with it :) If there's something wrong the game will crash, guaranteed, above all if the reset_battle var is not reset soon enough. But seems that everything's ok.

I noticed that stopping the music scripts means that the timers keep going, so I added the reset to the timers in the main script.

Yeah, don't count on stopscript to reses vars. They very likely won't be reset.

I've also taken everything I've learned about scripting from this mod and revisited the level-up birthsign remover script from mine. I never realized that mine had a rogue timer that just kept resetting itself, so I went ahead and tided that up. Do you use the "Character" plugin from my mod? If not, I don't know whether or not my use of it has had any influence on my results (as it seems that my game as a whole is somewhat less stable than yours).

I use it, but I didn't play enough to see an influence of that script. Actually I don't even recall what that script does, something about birthsign bonuses used when stats are over 100? Mah!
User avatar
Rowena
 
Posts: 3471
Joined: Sun Nov 05, 2006 11:40 am

Post » Sat May 28, 2011 12:32 pm

Absolutely not, that is safe.


Well, in that case, I can edit those changes out of my script.

I don't know who's this rng god is but I think he has nothing to do with it :) If there's something wrong the game will crash, guaranteed, above all if the reset_battle var is not reset soon enough. But seems that everything's ok.


RNG = Random Number Generator

Basically, the RNG God is who you pray to for any situation that is based entirely on luck and nothing else.

There's far too many variables for my liking as far as in-game stability goes, so I'm rebuilding my game from the ground up at the moment. I'm reinstalling the game fresh and putting things back in - one by one - until I find out why my game is so damn unstable.

EDIT: Let's put it this way... with a base install and *no* mods installed at all except Quick Char, I get pretty much the same whacked-out results. Sometimes, I can load five or six times without a crash. Others, it crashes on the first or second reload. I'm beginning to think that whoever designed this game was on crack (actually, that's a lie. I've thought the gamesas devs were on crack when they made this game for years now),

EDIT AGAIN:

Well... I've got it not crashing. Either the RNG god is smiling upon me (if so, it is only so that he may more angrily smite me later), or reinstalling the OS fixed the problem, most likely by cleaning out Morrowind's registry. If *that* is the case, then the problem is most likely attributable to MGE, which was my primary suspect in this whole [censored] mess from the get-go.

It would appear that maybe using the latest beta version is not such a good idea. Perhaps I should try the latest *stable* version.

I use it, but I didn't play enough to see an influence of that script. Actually I don't even recall what that script does, something about birthsign bonuses used when stats are over 100? Mah!


It lets the bonuses from birthsigns carry past the 100-point cap, lendign mroe merit to the fact that they're "bonuses".
User avatar
Tamara Dost
 
Posts: 3445
Joined: Mon Mar 12, 2007 12:20 pm

Post » Sat May 28, 2011 10:21 am

Good news, everyone! Since I finally figured out why my game has been so unstable recently, I've been able to more accurately test the stability issues with the Better Music System mod. And I've found it!

Xiran, your idea for adding a timer to the startscript was spot-on. Distant lands didn't seem to have anything to do with it, as I was experiencing crashes with or without it enabled (and this is after re-installing my operating system, re-installing Morrowind, re-installing mods one-by one, and then creaming my pants at the sight of machine-gunning the F9 key *without* crashing Morrowind in the first time since ever). But, I decided to take it on faith that you had a point and just run with it some more.

As you may have realized, I have the reset function in the battle script set to stream silence. This is so that whenever the reset script is called, the music will stop if you're in an area that isn't defined by one of the main scripts (as opposed to carrying over). Thus, I have the wait broken up into two areas - before and after the battle reset is called. But what really seemed to alleviate the crashes more than anything else was doubling the wait time from 10 to 20 frames.

Now, for the very first time, I'm watching the Better Music System mod load over and over and over again without having to constantly reload the program. It's... beautiful. I think I may cry. But that could very well be from all those onions I cut up for dinner.

Anyway, here's the final startscript:

begin One_Script_To_Rule_Them_All	short phase	short wait	if ( phase == 0 )		stopscript "BTB_Main_Battle"		stopscript "BTB_Main_Buildings"		stopscript "BTB_Main_Dungeons"		stopscript "BTB_Main_Overworld"		stopscript "BTB_Main_Towns"		stopscript "BTB_Music_Battle"		stopscript "BTB_Music_Interiors"		stopscript "BTB_Music_Overworld"		stopscript "BTB_Music_Towns"		set phase to 1	endif	if ( phase == 1 )		set btb_battle to 0		set btb_building to 0		set btb_dungeon to 0		set btb_interior to 0		set btb_overworld to 0		set btb_streaming to 0		set btb_town to 0		set BTB_Main_Battle.reset_battle to 1		set wait to 20		set phase to 2	endif	if ( chargenstate == 10 )		return	elseif ( menumode == 1 )		return	endif	if ( phase == 2 )		set wait to ( wait - 1 )		if ( wait >= 1 )			return		else			set phase to 3		endif	endif	if ( phase == 3 )		if ( scriptrunning "BTB_Main_Battle" == 0 )			startscript "BTB_Main_Battle"		endif		set wait to 20		set phase to 4	endif	if ( phase == 4 )		set wait to ( wait - 1 )		if ( wait >= 1 )			return		else			set phase to 5		endif	endif	if ( phase == 5 )		if ( BTB_Main_Battle.reset_battle == 1 )			return		else			if ( scriptrunning "BTB_Main_Buildings" == 0 )				startscript "BTB_Main_Buildings"			endif			if ( scriptrunning "BTB_Main_Dungeons" == 0 )				startscript "BTB_Main_Dungeons"			endif			if ( scriptrunning "BTB_Main_Overworld" == 0 )				startscript "BTB_Main_Overworld"			endif			if ( scriptrunning "BTB_Main_Towns" == 0 )				startscript "BTB_Main_Towns"			endif			set phase to 6		endif	endif	if ( phase == 6 )		stopscript "One_Script_To_Rule_Them_All"		set phase to 0	endifend

User avatar
Danielle Brown
 
Posts: 3380
Joined: Wed Sep 27, 2006 6:03 am

Post » Sat May 28, 2011 11:07 am

Xiran, your idea for adding a timer to the startscript was spot-on. Distant lands didn't seem to have anything to do with it, as I was experiencing crashes with or without it enabled (and this is after re-installing my operating system, re-installing Morrowind, re-installing mods one-by one, and then creaming my pants at the sight of machine-gunning the F9 key *without* crashing Morrowind in the first time since ever). But, I decided to take it on faith that you had a point and just run with it some more.

As you may have realized, I have the reset function in the battle script set to stream silence. This is so that whenever the reset script is called, the music will stop if you're in an area that isn't defined by one of the main scripts (as opposed to carrying over). Thus, I have the wait broken up into two areas - before and after the battle reset is called. But what really seemed to alleviate the crashes more than anything else was doubling the wait time from 10 to 20 frames.


Yeah that is a very simple and effective way to make scripts do what you want them to actually do. For all the reasons explained in the posts above, the may be reluctant to obey your orders and a frame delay/timer most of the times solve the problem.

Now, for the very first time, I'm watching the Better Music System mod load over and over and over again without having to constantly reload the program. It's... beautiful. I think I may cry. But that could very well be from all those onions I cut up for dinner.


Haha! Glad you finally can entirely enjoy the power of a good music system, it's incredible how it can completely change the immersion, above all if you are inside dungeons.
And about my mod, this is the version I should release, please try it out when you have time and tell me if the general stability is now acceptable for you. I made all the changes we were talking about earlier, plus several other fixes.
http://www.megaupload.com/?d=WYG71D39
User avatar
Campbell
 
Posts: 3262
Joined: Tue Jun 05, 2007 8:54 am

Post » Sat May 28, 2011 6:37 am

... I made all the changes we were talking about earlier, plus several other fixes.
http://www.megaupload.com/?d=WYG71D39


can you maybe give an explanation on how to use this mod?
i guess only loading the esp is not enough, do i only have to create a "dungeon" folder inside the music folder of MW?
i read some pages of this thread but i cant get it, as iam not into scripting and my english isnt the best...

edit: where to put that script 2 posts above?
User avatar
Nicole Mark
 
Posts: 3384
Joined: Wed Apr 25, 2007 7:33 pm

Post » Sat May 28, 2011 2:18 am

can you maybe give an explanation on how to use this mod?
i guess only loading the esp is not enough, do i only have to create a "dungeon" folder inside the music folder of MW?
i read some pages of this thread but i cant get it, as iam not into scripting and my english isnt the best...

edit: where to put that script 2 posts above?


I have to make a few things clear, here we are discussing about two different things:

1)BTB's version, it's the main subject here, that version is for his personal use only.
2)The original mod, the link posted above is an update of it.

So, if you want to test this update (and I would appreciate it) you need to download on http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7899: the required v1.1.1 and the music compilation. Another archive contains the timers patch and the ghostgate fix. The latter is no more necessary (meaning that you must NOT use it). No folders to add. I will lower the number of d/l-able archives when I release this new version, to be less confusing.
User avatar
sarah
 
Posts: 3430
Joined: Wed Jul 05, 2006 1:53 pm

Post » Sat May 28, 2011 5:37 am

I have to make a few things clear, here we are discussing about two different things:

1)BTB's version, it's the main subject here, that version is for his personal use only.
2)The original mod, the link posted above is an update of it.

So, if you want to test this update (and I would appreciate it) you need to download on http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7899: the required v1.1.1 and the music compilation. Another archive contains the timers patch and the ghostgate fix. The latter is no more necessary (meaning that you must NOT use it). No folders to add. I will lower the number of d/l-able archives when I release this new version, to be less confusing.


thanks i will have a look if i get this done, but i think a simplified release would be great - what you think when its released?
and one major question: is this compatible with other versions than english morrowind? i have the german version.
User avatar
Laura-Jayne Lee
 
Posts: 3474
Joined: Sun Jul 02, 2006 4:35 pm

Post » Sat May 28, 2011 11:55 am

thanks i will have a look if i get this done, but i think a simplified release would be great - what you think when its released?


The agreement as I currently understand it that anyone who specifically asks for my edited version of the mod is free to it - I just can't make it publicly available otherwise.

and one major question: is this compatible with other versions than english morrowind? i have the german version.


I have no idea. I see that Xiran is from Italy, but I don't know what version of Morrowind *he* (she?) has.
User avatar
DarkGypsy
 
Posts: 3309
Joined: Tue Jan 23, 2007 11:32 am

Post » Sat May 28, 2011 6:52 pm

thanks i will have a look if i get this done, but i think a simplified release would be great - what you think when its released?

In a few days, I hope.
and one major question: is this compatible with other versions than english morrowind? i have the german version.

Definitely won't be compatible with Mw german version (or with any other non-english versions I suppose, if they all have cell names changed). A german traslation had already been done not long time ago for version 1.7.2. If you want to check it, here's the http://www.scharesoft.de/joomla/forum/showthread.php?t=36701.

I have no idea. I see that Xiran is from Italy, but I don't know what version of Morrowind *he* has.

That is right.
Anyway I've always been playing with the english version.
User avatar
Solène We
 
Posts: 3470
Joined: Tue Mar 27, 2007 7:04 am

Post » Sat May 28, 2011 9:05 am


Definitely won't be compatible with Mw german version (or with any other non-english versions I suppose, if they all have cell names changed). A german traslation had already been done not long time ago for version 1.7.2. If you want to check it, here's the http://www.scharesoft.de/joomla/forum/showthread.php?t=36701.



the link isnt working for me, i searched via google but cant find it - do you have another link to that german version?
will the update be working with the german version?
actualy i only want to have different musics for dungeons, just like in oblivion. is that even possible with this mod?
sorry for many questions but iam realy bored of happy explore music in dark dungeons :rolleyes:
User avatar
Stacey Mason
 
Posts: 3350
Joined: Wed Nov 08, 2006 6:18 am

Post » Sat May 28, 2011 3:42 pm

the link isnt working for me, i searched via google but cant find it - do you have another link to that german version?

Search "scharesoft-portal" with google, go to forum-[MW] Plugins und Mods-Modver?ffentlichungen-2nd page.

will the update be working with the german version?

As I said, it won't. It will require a further translation, if someone wants to do it.

actualy i only want to have different musics for dungeons, just like in oblivion. is that even possible with this mod?

IIRC, in Oblivion there is music for towns, tarverns shops etc. However this is more complex than OB music system.
User avatar
Amysaurusrex
 
Posts: 3432
Joined: Wed Aug 09, 2006 2:45 pm

Post » Sat May 28, 2011 10:14 am

now i found the german thread and noticed that this needs mwse, but as i use the (awesome) mgexe i have no mwse.
maybe there will be mwse implemented, than i will give the soundmod a try.
just to make sure: there is no (easy) way to only get different dungeon musics in morrowind?
User avatar
Marine Arrègle
 
Posts: 3423
Joined: Sat Mar 24, 2007 5:19 am

Post » Sat May 28, 2011 10:46 am

does mgexe preclude you from using MWSE? it has a standalone package.
User avatar
gary lee
 
Posts: 3436
Joined: Tue Jul 03, 2007 7:49 pm

Previous

Return to III - Morrowind