Jump to content

Fixing Mothership Zeta's Death Ray Generators


Jaenak

Recommended Posts

Hi,

 

I'm trying to fix the death ray's generators in the G.E.C.K. for Mothership Zeta but nothing I do works. I've inspected the main switch, all 12 coolant switches, and all 4 generators but I can't find an easy fix to repair the generators. Deleting them and replacing them doesn't look like it would get it working either. They look fine in the G.E.C.K. and they don't have any refference I.D.s or options for working or destroyed (like the doors have checkboxes for open by default). I think it has to be a script thing, that's my last guess. I tracked down the script DLC05DeathRayChargeButtonSCRIPT that's linked to the generators' main switch but I can't make heads or tails of it. I briefly thought of commenting everything out but I still want to be able to raise them again and have them pour steam all over the floor just like right before I blew them up.

 

I'd be very grateful if someone can help me solve this mystery.

 

Thanks,

 

*Jaenak*

Link to comment
Share on other sites

Okay, I was looking into it again and I learned something. There's an XMarker in DLC05DeathRayHub02 that's LinkRef(ed) to a DLC05DeathRayGen in DLC05TestDar which is in turn LinkRef(ed) to a DLC05DeathRayGeneratorCore and it's associated 3 DLC05DeathRayGenCoolantSwitch(es) back in DLC05DeathRayHub02. That process is done 4 times total, one for each of the four groups of generators/coolant switches. I also tracked down another script. This one is imbeded in the Base Object of the DLC05DeathRayGen activator. The script's name is DLC05DeathRayGeneratorActTRIG and I know this is the one permanently destroying the generators, not the one I named in my first post. However, I can't delete the script because I still want to be able to raise and lower the generators and I'm afraid of removing any of the LinkRef objects for the same reason. Can anyone help me alter this script? I'm normally pretty good writing scripts but this whole process is confusing.

 

Thanks,

 

*Jaenak*

 

scn DLC05DeathRayGeneratorActTRIG

 

short isDestroyed

short isOpened

short isClosed

short isOpening

short isClosing

short onLoad

 

short disabled

short activatedSwitches

 

short pillarDestroyed

 

 

ref mySelf

ref myPillar

 

Begin GameMode

 

 

 

if (onLoad == 0)

set mySelf to GetSelf

myself.PlayGroup SpecialIdle 0

set isClosed to 1 ; Generator starts in closed position

set onLoad to 1

if (mySelf == DLC05DeathRayGen01REF)

set myPillar to DLC05MZRmWinPillarREF01

endif

 

if (mySelf == DLC05DeathRayGen02REF)

set myPillar to DLC05MZRmWinPillarREF02

endif

 

if (mySelf == DLC05DeathRayGen03REF)

set myPillar to DLC05MZRmWinPillarREF03

endif

 

if (mySelf == DLC05DeathRayGen04REF)

set myPillar to DLC05MZRmWinPillarREF04

endif

endif

 

;If i'm destroyed set myPillar to turn off

if (myself.GetDisabled == 1) && (pillarDestroyed == 0)

myPillar.PlayGroup Right 1

set pillarDestroyed to 1

endif

 

if (disabled == 0) && (GetDisabled == 1) && (isOpened == 1)

set DLC05DeathRayREF.chargeReady to (DLC05DeathRayREF.chargeReady - 1)

set DLC05DeathRayREF.destroyedGens to (DLC05DeathRayREF.destroyedGens + 1)

 

set DLC05DeathRayREF.chargeStage to (DLC05DeathRayREF.chargeStage - 1)

 

set DLC05DeathRayChargeButtonREF.maxButtonPresses to (DLC05DeathRayChargeButtonREF.maxButtonPresses - 1)

 

if (mySelf == DLC05DeathRayGen01REF)

set DLC05DeathRayREF.gen1D to 1

endif

 

if (mySelf == DLC05DeathRayGen02REF)

set DLC05DeathRayREF.gen2D to 1

endif

 

if (mySelf == DLC05DeathRayGen03REF)

set DLC05DeathRayREF.gen3D to 1

endif

 

if (mySelf == DLC05DeathRayGen04REF)

set DLC05DeathRayREF.gen4D to 1

endif

 

set disabled to 1

endif

 

;-------------------------------------------------

;----Death Ray Generator 01

;-------------------------------------------------

; Am I the correct Death Ray Generator?

if (mySelf == DLC05DeathRayGen01REF) && (mySelf.GetDisabled == 0)

; Open if the charge stage is equal to, or above, this generators charge number

if (DLC05DeathRayREF.openGen1 == 1)

 

; If i am closed start opening

if (isClosed == 1)

set isOpening to 1

set isClosed to 0

mySelf.PlayGroup Forward 1

myPillar.playgroup Left 1

endif

 

; Once i'm done opening set me to opened

if (isOpening == 1)

if (mySelf.IsAnimPlaying Forward == 0)

set DLC05DeathRayREF.chargeReady to (DLC05DeathRayREF.chargeReady + 1)

myPillar.playgroup Forward 1

set isOpened to 1

set isOpening to 0

endif

endif

 

; If i am closing already then my charge number must already be

; equal to, or below, my required charge number.

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

endif

endif

 

endif

 

; Close if gun has been fired and charge number is now less than my charge number

if (DLC05DeathRayREF.openGen1 == 0)

if (isClosing == 0) && (isClosed == 0) && (isOpening == 0)

set isOpened to 0

set isClosing to 1

mySelf.PlayGroup Backward 1

myPillar.playgroup Backward 1

endif

 

if (isOpening == 1) && (IsAnimPlaying Forward == 0)

set isOpening to 0

set isClosing to 1

PlayGroup Backward 1

endif

 

 

; Close until completed, then mark myself closed

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

set DLC05DeathRayREF.powerToCore to 0 ; allows the core anim to be powered up again when generators open

endif

 

endif

endif

 

; If this generator is opened enable the charge beam

if (isOpened == 1)

;DLC05DeathRayChargeBeam01REF.Enable 0

else

;DLC05DeathRayChargeBeam01REF.Disable 0

endif

 

endif

 

 

 

 

;-------------------------------------------------

;----Death Ray Generator 02

;-------------------------------------------------

; Am I the correct Death Ray Generator?

if (mySelf == DLC05DeathRayGen02REF) && (mySelf.GetDisabled == 0)

; Open if the charge stage is equal to, or above, this generators charge number

if (DLC05DeathRayREF.openGen2 == 1)

 

; If i am closed start opening

if (isClosed == 1)

set isOpening to 1

set isClosed to 0

mySelf.PlayGroup Forward 1

myPillar.playgroup Left 1

endif

 

; Once i'm done opening set me to opened

if (isOpening == 1)

if (mySelf.IsAnimPlaying Forward == 0)

set DLC05DeathRayREF.chargeReady to (DLC05DeathRayREF.chargeReady + 1)

myPillar.playgroup Forward 1

set isOpened to 1

set isOpening to 0

endif

endif

 

; If i am closing already then my charge number must already be

; equal to, or below, my required charge number.

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

endif

endif

 

endif

 

; Close if gun has been fired and charge number is now less than my charge number

if (DLC05DeathRayREF.openGen2 == 0)

if (isClosing == 0) && (isClosed == 0) && (isOpening == 0)

set isOpened to 0

set isClosing to 1

mySelf.PlayGroup Backward 1

myPillar.playgroup Backward 1

endif

 

if (isOpening == 1) && (IsAnimPlaying Forward == 0)

set isOpening to 0

set isClosing to 1

PlayGroup Backward 1

endif

 

 

; Close until completed, then mark myself closed

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

set DLC05DeathRayREF.powerToCore to 0 ; allows the core anim to be powered up again when generators open

endif

 

endif

endif

 

; If this generator is opened enable the charge beam

if (isOpened == 1)

;DLC05DeathRayChargeBeam01REF.Enable 0

else

;DLC05DeathRayChargeBeam01REF.Disable 0

endif

 

endif

 

 

;-------------------------------------------------

;----Death Ray Generator 03

;-------------------------------------------------

; Am I the correct Death Ray Generator?

if (mySelf == DLC05DeathRayGen03REF) && (mySelf.GetDisabled == 0)

; Open if the charge stage is equal to, or above, this generators charge number

if (DLC05DeathRayREF.openGen3 == 1)

 

; If i am closed start opening

if (isClosed == 1)

set isOpening to 1

set isClosed to 0

mySelf.PlayGroup Forward 1

myPillar.playgroup Left 1

endif

 

; Once i'm done opening set me to opened

if (isOpening == 1)

if (mySelf.IsAnimPlaying Forward == 0)

set DLC05DeathRayREF.chargeReady to (DLC05DeathRayREF.chargeReady + 1)

myPillar.playgroup Forward 1

set isOpened to 1

set isOpening to 0

endif

endif

 

; If i am closing already then my charge number must already be

; equal to, or below, my required charge number.

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

endif

endif

 

endif

 

; Close if gun has been fired and charge number is now less than my charge number

if (DLC05DeathRayREF.openGen3 == 0)

if (isClosing == 0) && (isClosed == 0) && (isOpening == 0)

set isOpened to 0

set isClosing to 1

mySelf.PlayGroup Backward 1

endif

 

if (isOpening == 1) && (IsAnimPlaying Forward == 0)

set isOpening to 0

set isClosing to 1

PlayGroup Backward 1

myPillar.playgroup Backward 1

endif

 

 

; Close until completed, then mark myself closed

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

set DLC05DeathRayREF.powerToCore to 0 ; allows the core anim to be powered up again when generators open

endif

 

endif

endif

 

; If this generator is opened enable the charge beam

if (isOpened == 1)

;DLC05DeathRayChargeBeam01REF.Enable 0

else

;DLC05DeathRayChargeBeam01REF.Disable 0

endif

 

endif

 

 

 

;-------------------------------------------------

;----Death Ray Generator 04

;-------------------------------------------------

; Am I the correct Death Ray Generator?

if (mySelf == DLC05DeathRayGen04REF) && (mySelf.GetDisabled == 0)

; Open if the charge stage is equal to, or above, this generators charge number

if (DLC05DeathRayREF.openGen4 == 1)

 

; If i am closed start opening

if (isClosed == 1)

set isOpening to 1

set isClosed to 0

mySelf.PlayGroup Forward 1

myPillar.playgroup Left 1

endif

 

; Once i'm done opening set me to opened

if (isOpening == 1)

if (mySelf.IsAnimPlaying Forward == 0)

set DLC05DeathRayREF.chargeReady to (DLC05DeathRayREF.chargeReady + 1)

myPillar.playgroup Forward 1

set isOpened to 1

set isOpening to 0

endif

endif

 

; If i am closing already then my charge number must already be

; equal to, or below, my required charge number.

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

endif

endif

 

endif

 

; Close if gun has been fired and charge number is now less than my charge number

if (DLC05DeathRayREF.openGen4 == 0)

if (isClosing == 0) && (isClosed == 0) && (isOpening == 0)

set isOpened to 0

set isClosing to 1

mySelf.PlayGroup Backward 1

myPillar.playgroup Backward 1

endif

 

if (isOpening == 1) && (IsAnimPlaying Forward == 0)

set isOpening to 0

set isClosing to 1

PlayGroup Backward 1

endif

 

 

; Close until completed, then mark myself closed

if (isClosing == 1)

if (mySelf.IsAnimPlaying Backward == 0)

set isClosing to 0

set isClosed to 1

mySelf.PlayGroup SpecialIdle 0

set DLC05DeathRayREF.powerToCore to 0 ; allows the core anim to be powered up again when generators open

endif

 

endif

endif

 

; If this generator is opened enable the charge beam

if (isOpened == 1)

;DLC05DeathRayChargeBeam01REF.Enable 0

else

;DLC05DeathRayChargeBeam01REF.Disable 0

endif

 

endif

 

 

 

End

Link to comment
Share on other sites

Well, all im confused of is all these short thingys and something like "mySelf to GetSelf" where did that GetSelf command come from? Very confusing. Anyway, i´m not good at scripting so i cant find a solution
Link to comment
Share on other sites

If I understand things correctly, "GetSelf" is like saying, "Okay, which item reference started this script?" and "MySelf" is a generic name given to the answer to that question so that they can include that item reference in a script with little effort, especially since that item reference will be changing depending upon which item starts the script. Kinda like taking a nametag from little Suzy and giving it to little Tommy and refering to the kid as "He who holds the nametag, whoever that may be".
Link to comment
Share on other sites

  • Recently Browsing   0 members

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