Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

Frostcrag Reborn de-isolated


AliTheLord
 Share

Recommended Posts

Hi, I've taken it upon myself to de-isolate Frostcrag Reborn, to make it compatible with the UOMP and to (possibly) improve it further.

What I have done so far is made DLCFrostcrag,esp (the original, clean Bethesda file) a parent (using esmify and the CSE) and have a file Frostcrag Reborn.esp, which is the original mod, renamed.

I've removed IDM records, and am in the process of making everything reference the records in DLCFrostcrag, instead of duplicating them and making everything not fun.

I've got quite far, and have been having fun with TES4EDIT. It's all a bit messy at the moment, as there are stil a lot of DUPLICATE001 entries that I need to go through and make them edit the parent records in DLCFrostcrag.esp. I've done a large number of them though, so everything is progressing quite nicely.

My main problem at the moment is the script that opens/moves/rotates the big stone wall after you pick up/read the book that's on the frozen ice hand. (Frostcrag Spire Memoirs I think). If this makes sense. Basically, it's broken, and I don't know why, and isn't the most logical of scripts I've read, in that it appears like it shouldn't even work in the first place. Well, there are two scripts, but they are only loosely related.

This is the script attached to the door wall thing;

scn FrostcragSpireHiddenDoorSCRIPT01


short open

short dustFall

ref mySelf

ref myTarget

float timer

short open

short busy



begin onActivate


	set mySelf to getSelf

	set myTarget to getParentref

	if isActionRef player == 0 && open == 0 ;;open

		if busy == 0

			mySelf.pms effectshockshield

			playgroup forward 0

			;;message "open"

			FRDoorOpenCloseREF.enable ;;open 

			set open to 1

			set timer to 1

			set busy to 1

			return		

		endif

	endif

	if isActionRef player == 0 && open == 1;;close

		if busy == 0

			set open to 0

			;;message "close"

			FRDoorOpenCloseREF.disable ;;close

			mySelf.pms effectshockshield

			playgroup backward 0

			set timer to 1

			set busy to 1

			return	

		endif

	endif


end



begin gameMode


	if (GetStage DLCFrostcragSpire >= 50)

		if (	FRDoorOpenCloseREF.Getdisabled == 1)  && (player.Getdistance FRMainGate <= 300) ;;Im disabled therefor outside variable says Im closed and player is close enough then open

			FRDoorOpenCloseREF.enable

			playgroup forward 0

		endif

	endif


	if open == 1 && busy == 1

		if timer > 0

			set timer to timer - getsecondspassed

		endif


		if timer <= 0 && dustFall == 0

			myTarget.activate mySelf 1

			set dustFall to 1

		endif

	endif


	if open == 0 && busy == 1

		if timer > 0

			set timer to timer - getsecondspassed

		endif


		if timer <= 0 && dustFall == 1

			myTarget.activate mySelf 1

			set dustFall to 0

		endif

	endif

	endif


	; Get rid of effect when wall stops moving

	if busy == 1 && IsAnimPlaying == 0

		mySelf.sms effectshockshield

		set busy to 0

	endif


end

It doesn't work in my esp, but it works in the original Frostcrag Reborn plugin (which is just an edited version of the Bethesda plugin, hence the de-isolation). But, as far as I can tell, it shouldn't work in the orginial, or at least not as the author intended. Specifically
	if (GetStage DLCFrostcragSpire >= 50)

		if (	FRDoorOpenCloseREF.Getdisabled == 1)  && (player.Getdistance FRMainGate <= 300) ;;Im disabled therefor outside variable says Im closed and player is close enough then open

			FRDoorOpenCloseREF.enable

			playgroup forward 0

		endif

	endif
because picking up the book in the hand only sets the QuestStage to 40, not 50. (50 only happens when you buy all the furniture for Frostcrag Spire.) So I'm confused as to why it even works in the original mod, and what could have caused it to be broken in my version. Any ideas/suggestions?? Now, my second, and very minor problem, is the following script (again from the original mod). The script is from the book.
if ( IsActionRef Player == 1 ) && ( GetStage DLCFrostcragSpire < 40 )

	set myParent to GetParentRef

	set timer to 4

	set init to 1

	Activate

	SetStage DLCFrostcragSpire 40

	StartQuest FRThievesQuest

	elseif ( IsActionRef Player == 1 ) && ( GetStage DLCFrostcragSpire >= 40 )

		Activate

	endif

endif

because there is an endif that doesn't match an if. The CSE doesn't even let me compile this script, but I haven't tried it with just the CS,

Shouldn't this error cause the script to not run properly, i.e. return when it gets to the mismatch??

Thanks for any and all help :). If uploading my file will help, then I can, but it's a little messy at the moment as I'm still working on it.

Many thanks!!

scn FrostcragSpireMemoirsScript


ref myParent

short init

short DOONCE

short nextTrap

float timer


begin OnActivate


;if ( DOONCE == 0 )

	;RightfrostcragfrostSwitchRef.enable

	;set DOONCE to 1

;Endif



if ( IsActionRef Player == 1 ) && ( GetStage DLCFrostcragSpire < 40 )

	set myParent to GetParentRef

	set timer to 4

	set init to 1

	Activate

	SetStage DLCFrostcragSpire 40

	StartQuest FRThievesQuest

	elseif ( IsActionRef Player == 1 ) && ( GetStage DLCFrostcragSpire >= 40 )

		Activate

	endif

endif


end


begin Gamemode


	if init == 1

		if timer > 0

			set timer to timer - getSecondsPassed

		endif


		if timer <= 0 && nextTrap == 0

			myParent.activate FCSpireStarterMarker 1

			set nextTrap to 1

			set init to 2

		endif

	endif


end
Specifically
Link to comment
Share on other sites

The first problem, it's hard to say why it works without seeing the file, so it might be a good idea to upload it (not Megaupload) somewhere to have a look. Have you made sure the variable indexes in the scripts are not in conflict?

The second, yep, that's a legit bug in the script. I don't think even the vanilla CS would allow that to compile, so that's definitely broken. It hasn't even been fixed by the UOMP either so that will need to get reported there too. In the meantime, just remove the extra endif, it's in a block by itself anyway.

Link to comment
Share on other sites

The first problem, it's hard to say why it works without seeing the file, so it might be a good idea to upload it (not Megaupload) somewhere to have a look. Have you made sure the variable indexes in the scripts are not in conflict?

The second, yep, that's a legit bug in the script. I don't think even the vanilla CS would allow that to compile, so that's definitely broken. It hasn't even been fixed by the UOMP either so that will need to get reported there too. In the meantime, just remove the extra endif, it's in a block by itself anyway.

I'll upload the file when I get a chance, and double check the variable indexes. Thanks for the help.

Also, just double checked and the second script does compile in the Vanilla CS, but not in in the CSE. Should this script work in game?? What will happen when it gets to the mismatched endif, will it carry on?? Or return an error or some such? Had to remove the endif in order to compile it, but am wondering whether or not the old script even worked.

Link to comment
Share on other sites

No telling. Invalid code usually means invalid results. If the script worked, it would be more or less a miracle. My guess is it doesn't function entirely as desired but it isn't broken enough to kill something. Fixing the syntax will make sure it behaves as intended though.

Link to comment
Share on other sites

  • 2 weeks later...

Arthmoor, I'm about at the point where it's still not working and I feel the mod is tidy enough for someone else to take a look. Would you mind taking a look at it and see if there's anything glaring I've missed?? I've got a few warnings from the CSE, mainly;

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E6A) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E69) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow08' (00133E68) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E61) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow08' (00133E60) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E51) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow08' (00133E50) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E37) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E36) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow09' (00133E35) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow06' (00133E34) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E1F) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E1C) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E1A) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow02' (00133E16) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow02' (00133E14) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E11) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E10) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E0E) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E0D) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E09) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow02' (00133E03) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow07' (00133E02) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow07' (00133E01) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E06) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E38) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E39) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00133E3A) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow08' (0013495E) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSmallSnow01' (00134960) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'JMRockSnow2080' (0006F515) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form '' (000045ED) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form '' (000C4961) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form '' (000045CE) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'BrumaLoadDoorUpper01' (00015443) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'ChorrolLoadDoorMiddle02' (000180AE) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'ChorrolLoadDoorMiddle02' (0001BAAA) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'FrostcragSpireTelepad' (01000D40) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'DLCFrostcragSpire' (01000D53) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'DLCFrostcragAurelinwaeSleeps' (0100124B) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

[CS]	Non-parent form 'DLCFrostcragAurelinwaeOfferServices' (01001247) exists in both file 'Frostcrag Reborn from HDD.esp' and 'DLCFrostcrag.esp'

But when I look in TES4EDIT searching for the FormID doesn't give me anything. And the packages (DLCFrostcragAurelinwaeSleeps etc.), as far as I can tell, only exist once, which confuses me.

Shall I upload the esp as well as the resources?? And do you want the original mod file that just edits the offical plugin??

Many thanks what ever your answer :D.

Link to comment
Share on other sites

All those non-parent form warnings are safe to ignore. They're normal because the CS doesn't like what you're doing, even though CSE makes it entirely safe.

I can take a look at things if you want, but if those are the only errors you have, you actually don't have any :)

Link to comment
Share on other sites

All those non-parent form warnings are safe to ignore. They're normal because the CS doesn't like what you're doing, even though CSE makes it entirely safe.

I can take a look at things if you want, but if those are the only errors you have, you actually don't have any :)

The main error is the script that opens the door after you read the book isn't working. I haven't got any further than that so I don't know if that's the only problem. I think I've figured out one possible culprit, so I'll fix that then see how it goes :D.

Link to comment
Share on other sites

Still got problems with the door script :(

scn FrostcragSpireHiddenDoorSCRIPT01




ref mySelf

ref myTarget

float timer

short open

short busy

short dustFall



begin onActivate


	set mySelf to getSelf

	set myTarget to getParentref

	if isActionRef player == 0 && open == 0 ;;open


		if busy == 0

			mySelf.pms effectshockshield

			playgroup forward 0

			;;message "open"

			FRDoorOpenCloseREF.enable ;;open 

			set open to 1

			set timer to 1

			set busy to 1

			return		

		endif


	elseif isActionRef player == 0 && open == 1;;close


		if busy == 0

			set open to 0

			;;message "close"

			FRDoorOpenCloseREF.disable ;;close

			mySelf.pms effectshockshield

			playgroup backward 0

			set timer to 1

			set busy to 1

			return	

		endif

	endif


end



begin gameMode


	if (GetStage DLCFrostcragSpire >= 40) && (FRDoorOpenCloseREF.Getdisabled == 1);;Im disabled therefor outside variable says Im closed and player is close enough then open. There used to be an && (player.GetDistance FRMainGate <=300) check here too, but if I include that it just doesn't work at all.

			FRDoorOpenCloseREF.enable

			playgroup forward 0

	endif


	if open == 1 && busy == 1

		if timer > 0

			set timer to timer - getsecondspassed

		elseif timer <= 0 && dustFall == 0

			myTarget.activate mySelf 1

			set dustFall to 1

		endif

	endif


	if open == 0 && busy == 1

		if timer > 0

			set timer to timer - getsecondspassed

		elseif timer <= 0 && dustFall == 1

			myTarget.activate mySelf 1

			set dustFall to 0

		endif

	endif


	; Get rid of effect when wall stops moving

	if busy == 1 && IsAnimPlaying == 0

		mySelf.sms effectshockshield

		set busy to 0

	endif


end




So the problem with the above code is that it doesn't play the effectshockshield, and there is no wait for the timer, the door just opens. The second script is;
scn FrostcragMainGateSwitch



short activated

short busy

short front

float timer

ref mySelf

ref targetref


begin OnActivate


if busy == 0 && front == 0

	playgroup forward 1

	set front to 1

	set busy to 1

	set activated to 1

	set timer to 3

	FRDoorOpenCloseREF.enable;;open

	;;message "anim forward"

elseif busy == 0 && front == 1

	playgroup backward 1

	set front to 0

	set busy to 1

	set activated to 1

	set timer to 3

	FRDoorOpenCloseREF.disable;;close

	;;message "anim backward"

endif


END



begin gameMode


	if isAnimPlaying == 0 && busy == 1

		set busy to 0

	endif


	if activated == 1


		set mySelf to getSelf

		set targetref to getParentref


		if timer > 0

			set timer to timer -getSecondsPassed

		endif


		if timer <= 0

				targetref.activate mySelf 1

				set activated to 0

		endif

	endif


END

This script is attached to a switch which controls the door. When this script runs, the door plays the effectshockshield like it's supposed to, but it doesn't open and close. It just opens (if it's already open it moves back to the closed position, and then proceeds to open).

The first script is a modification of the vanilla script in Frostcrag Reborn. Both scripts seem to contain a redundant dustfall ref, which I presume the BGS guys forgot about.

Any help/advice would be appreciated!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...