Jaenak Posted October 13, 2009 Share Posted October 13, 2009 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 More sharing options...
Jaenak Posted October 14, 2009 Author Share Posted October 14, 2009 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 isDestroyedshort isOpened short isClosedshort isOpeningshort isClosingshort onLoad short disabledshort activatedSwitches short pillarDestroyed ref mySelfref 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 More sharing options...
Jaenak Posted October 16, 2009 Author Share Posted October 16, 2009 Anybody? Is this script that confusing? I thought I'd be the only one confused. Link to comment Share on other sites More sharing options...
FalloutGamer Posted October 18, 2009 Share Posted October 18, 2009 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 More sharing options...
Jaenak Posted October 20, 2009 Author Share Posted October 20, 2009 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 More sharing options...
Jaenak Posted October 25, 2009 Author Share Posted October 25, 2009 *sigh* Bump Link to comment Share on other sites More sharing options...
5ivexxxxx Posted October 26, 2009 Share Posted October 26, 2009 You could check with Cipscis, he usually knows how to make scripts work. What exactly are you trying to do? I haven't played Mothership Zeta, mind you. Link to comment Share on other sites More sharing options...
Recommended Posts