home *** CD-ROM | disk | FTP | other *** search
- # Droids Cog Script
- #
- #
- #
- #
- #
- #
- # [MT]
- #
- #
- # (C) 1997 LucasLearningLimited. All Rights Reserved
-
-
-
- symbols
- message user0
- message user1
- message user5
- message user2
- message pulse
- message arrived
- message startup
- message entered
- message exited
- message timer
- message activate
-
- thing moveitBC nolink
- thing moveitAB nolink
- thing moveitCA nolink
- thing ghostleverA nolink
- thing ghostleverB nolink
- thing ghostleverC nolink
- thing fulcrum linkid=1
- thing mediumgonk nolink
- thing easygonk nolink
- thing R5 nolink
- thing ghostdoorA nolink
- thing ghostdoorB nolink
- thing ghostdoorC nolink
-
- template bigdoort nolink
- template levert nolink
-
- sector playercheck nolink
- sector exitcheck1 linkid=2
- sector exitcheck2 linkid=2
- sector exitcheck3 linkid=2
-
- surface fulcrumdisplay linkid=4
- surface fulcrumtext linkid=4
-
- cog gonkAIcog
- cog gonkAICog2
- cog ThatsillyCog
-
- sound fulcrumstart
- sound fulcrumstop
- sound fulcrumloop
- sound prydoor
-
- thing ghostcamera
- sound hitgroundsound
-
- surface block1
- surface block2
- surface block3
-
- thing teledest
-
- vector thrustvector
- sector thrustsector
- sector thrustsector2
- surface standinghere1 nolink
- surface standinghere2 nolink
-
- sector exitcheck4 linkid=2
- sector exitcheck5 linkid=2
-
- end
-
- ## Code Section
- code
-
- startup:
- ca7=0;
- ca9=0;
- doorisdown=1;
- gonkison=0;
- playerison=0;
- r5ison=0;
- gonkisready=0;
- bigdoor=creatething(bigdoort, ghostdoorA);
- lever=creatething(levert, ghostleverA);
- capturething(lever);
- capturething(bigdoor);
- player=getlocalplayerthing();
- droidmass=getthingmass(player)/2.2;
- // droidmass=300;
- largemass=250;
- if (droidmass>largemass) masscheck=1;
- else masscheck=0;
- xframe=0;
- setwallcel(fulcrumtext, 1);
- sendmessage(thatsillycog, user4);
- setthingmass(easygonk, 0);
- setthingmass(mediumgonk, 0);
- setthingmass(r5, 0);
- if (getdifficulty()==0) {
- teleportthing(mediumgonk, teledest);
- teleportthing(r5, teledest);
- setactorflags(easygonk, 8);
- }
- else if (getdifficulty()==1) {
- teleportthing(easygonk, teledest);
- teleportthing(r5, teledest);
- }
- else if (getdifficulty()==2) {
- teleportthing(easygonk, teledest);
- teleportthing(mediumgonk, teledest);
- setactorflags(r5, 8);
- }
- # sleep(3);
- # call fakeit;
- setadjoinflags(StandingHere1, 2); #you can now walk thru this adjoin
- setadjoinflags(StandingHere2, 2); #you can now walk thru this adjoin
- return;
-
- fakeit:
- print("show me a vision");
- movetoframe(lever, 1, 0.2);
- // rotatepivot(lever, 1, 1);
- movetoframe(bigdoor, 1, 1.0);
- return;
-
- user0:
- print("gonk is ready to go");
- gonkisready=1;
- clearadjoinflags(StandingHere1, 2); #you can NOT walk thru this adjoin
- clearadjoinflags(StandingHere2, 2); #you can NOT walk thru this adjoin
- return;
-
- user5:
- print("medium gonk is outside");
- return;
-
- user2:
- print("i'm off.");
- gonkison=0;
- dwunfreezeplayer();
- setcurrentcamera(7);
- call Xmove;
- setthingmass(easygonk, 0);
- setthingmass(mediumgonk, 0);
- return;
-
- activate:
- psDist1=vectordist(getthingpos(player), getsurfacecenter(fulcrumdisplay));
- psDist2=vectordist(getthingpos(player), getsurfacecenter(fulcrumtext));
- if ( (getsenderid()==4)||(psDist1<.095)||(psDist2<.095) ){
- if (ismoving(lever)!=0) return;
- if ( (gonkison==1)&&(getdifficulty()!=2) ) {
- print("external cam because gonk is on the lever");
- dwfreezeplayer();
- setwallcel(fulcrumtext, 0);
- setcamerafocii(2, fulcrum, ghostcamera);
- setcurrentcamera(2);
- sendmessage(gonkAIcog, user3);
- sendmessage(gonkAIcog2, user3);
- setthingmass(easygonk, 150);
- setthingmass(mediumgonk, 150);
- }
- else if (r5ison==1) return;
- else call Xmove;
- }
- return;
-
- Xmove:
- //user1:
- setwallcel(fulcrumtext, 0);
- curframe=getcurframe(fulcrum);
- destroything(lever);
- destroything(bigdoor);
- if (curframe==0) call movefulcrumAB;
- else if (curframe==1) call movefulcrumBC;
- else if (curframe==2) call movefulcrumCA;
- blinky=1;
- playsoundthing(fulcrumstart, fulcrum, 1.0, -1, -1, 0);
- sleep(0.17);
- floop=playsoundthing(fulcrumloop, fulcrum, 1.0, -1, -1, 0x1);
- return;
-
- movefulcrumBC:
- oneframe=1;
- twoframe=2;
- movetoframe(fulcrum, 2, 0.5);
- lever=creatething(levert, moveitBC);
- movetoframe(lever, 1, 0.19);
- bigdoor=creatething(bigdoort, ghostdoorC);
- capturething(bigdoor);
- return;
-
- movefulcrumAB:
- oneframe=0;
- twoframe=1;
- movetoframe(fulcrum, 1, 0.5);
- lever=creatething(levert, moveitAB);
- movetoframe(lever, 1, 0.1);
- bigdoor=creatething(bigdoort, ghostdoorB);
- capturething(bigdoor);
- return;
-
- movefulcrumCA:
- oneframe=2;
- twoframe=0;
- movetoframe(fulcrum, 0, .6);
- lever=creatething(levert, moveitCA);
- movetoframe(lever, 1, 0.17);
- bigdoor=creatething(bigdoort, ghostdoorA);
- capturething(bigdoor);
- return;
-
- arrived:
- if(getsenderid()==1) {
- stopsound(floop, 0.75);
- playsoundthing(fulcrumstop, fulcrum, 1.0, -1, -1, 0);
- destroything(lever);
- curframe=getcurframe(fulcrum);
- blinky=0;
- if (curframe==1) {
- setwallcel(fulcrumdisplay, 1);
- lever=creatething(levert, ghostleverB);
- }
- else if (curframe==2) {
- setwallcel(fulcrumdisplay, 2);
- lever=creatething(levert, ghostleverC);
- }
- else if (curframe==0) {
- setwallcel(fulcrumdisplay, 0);
- lever=creatething(levert, ghostleverA);
- }
- setwallcel(fulcrumtext, 1);
- capturething(lever);
- }
- else if (getsenderref()==lever) playsoundthing(hitgroundsound, lever, 1.0, -1, -1, 0);
- else if ( (getsenderref()==bigdoor)&&(getcurframe(bigdoor)==0) ) {
- call youareblocked;
- print("the door has closed");
- }
- return;
-
- checkon:
- if ((playerison==0)&&(getthingsector(player)==playercheck)) {
- call checkforgonk;
- print("you stepped on the lever");
- call pulse;
- setpulse(0.5);
- playerison=1;
- cameracheck=1;
- }
- return;
-
-
- entered:
- if (getsenderref()==lever) {
- if (getsourceref()==player) {
- if ((playerison==0)&&(getthingsector(player)==playercheck)) {
- call checkforgonk;
- print("you stepped on the lever");
- call pulse;
- setpulse(0.5);
- playerison=1;
- cameracheck=1;
- setadjoinflags(StandingHere1, 2); #you can now walk thru this adjoin
- setadjoinflags(StandingHere2, 2); #you can now walk thru this adjoin
- }
- else settimerex(.5, 6, 0, 0);
- }
- if ( (getsourceref()==easygonk)&&(getdifficulty()==0) ) {
- print("the easy gonk has landed");
- call raiseit;
- print("gonkison = 1");
- gonkison=1;
- setthingmass(easygonk, 0);
- setsectorthrust(thrustsector, thrustvector, 0);
- setsectorthrust(thrustsector2, thrustvector, 0);
- sleep(1);
- setcurrentcamera(7);
- dwunfreezeplayer();
- }
- if ( (getsourceref()==mediumgonk)&&(getdifficulty()==1) ) {
- print("the medium gonk has landed");
- call raiseit;
- gonkison=1;
- print("gonkison = 1");
- setthingmass(mediumgonk, 0);
- setsectorthrust(thrustsector, thrustvector, 0);
- setsectorthrust(thrustsector2, thrustvector, 0);
- sleep(1);
- setcurrentcamera(7);
- dwunfreezeplayer();
- }
- if (getsourceref()==r5) {
- print("r5 is here!");
- call raiseit;
- r5ison=1;
- setthingmass(r5, 0);
- setsectorthrust(thrustsector, thrustvector, 0);
- setsectorthrust(thrustsector2, thrustvector, 0);
- sleep(1);
- setcurrentcamera(7);
- dwunfreezeplayer();
- }
- }
- else if (getsenderid()==2) {
- call lowerit;
- }
- return;
-
- checkoff:
- exited:
- if (getsenderref()==lever) {
- if (getsourceref()==player) {
- print("exited called");
- if(getthingsector(player)!=playercheck) {
- print("you stepped off the lever");
- setpulse(0);
- playerison=0;
- // cameracheck=0;
- call lowerit;
- }
- else {
- settimerex(.5, 5, 0, 0);
- }
- }
- else if ((getsourceref()==mediumgonk)||(getsourceref()==easygonk) ) {
- print("gonk has left the building");
- call lowerit;
- gonkison=0;
- }
- }
- else {
- print("checking once more");
- if(getthingsector(player)!=playercheck) {
- print("you stepped off the lever");
- setpulse(0);
- playerison=0;
- call lowerit;
- }
- }
-
-
- return;
-
- pulse:
- fulcrumY=(VectorY(GetThingPos(fulcrum)));
- playerY=(VectorY(GetThingPos(player)));
- playerZ=(vectorZ(GetthingPos(player)));
- if ((playerY>fulcrumY)&&(doorisdown==0)) call lowerit;
- else if ((playerY<fulcrumY)&&(doorisdown==1)) call raiseit;
- return;
-
- checkforgonk:
- print("checking for gonk");
- if (gonkisready==1) {
- print("blowing out camera");
- dwfreezeplayer();
- setcamerafocii(2, player, ghostcamera);
- setcurrentcamera(2);
- if (getdifficulty()!=2) {
- if (getcurframe(fulcrum)!=0) {
- print("here comes gonk");
- sendmessage (gonkAIcog, user2);
- sendmessage (gonkAIcog2, user2);
- gonkisready=0;
- timertime=7;
- setthingmass(easygonk, 150);
- setthingmass(mediumgonk, 150);
- setsectorthrust(thrustsector, thrustvector, 8);
- setsectorthrust(thrustsector2, thrustvector, 8);
- }
- else {
- print("gonk says we don't have enough leverage");
- settimer(2);
- dwplaycharacterspeech("GKC400", "t6gk015.wav");
- dwcleardialog();
- }
- }
- else if (getdifficulty()==2) {
- if (getcurframe(fulcrum)==2) {
- print("here comes r5");
- sendmessage (thatsillycog, user2);
- gonkisready=0;
- timertime=7;
- setthingmass(r5, 150);
- setsectorthrust(thrustsector, thrustvector, 8);
- setsectorthrust(thrustsector2, thrustvector, 8);
- setadjoinflags(StandingHere1, 2); #you can now walk thru this adjoin
- setadjoinflags(StandingHere2, 2); #you can now walk thru this adjoin
- }
- else {
- print("r5 says we don't have enough leverage");
- settimer(2);
- dwplaycharacterspeech("R5C600", "t6bd010.wav");
- dwcleardialog();
- }
- }
- }
- else if (gonkisready==0) {
- timertime=3;
- }
- return;
-
-
- youcanmovethru:
- setadjoinflags(block1, 2);
- setadjoinflags(block2, 2);
- setadjoinflags(block3, 2);
- return;
-
- youareblocked:
- clearadjoinflags(block1, 2);
- clearadjoinflags(block2, 2);
- clearadjoinflags(block3, 2);
- return;
-
-
- raiseit:
- print("raiseit called");
- if (doorisdown==0) {
- print("the door is already up");
- return;
- }
- curframe=getcurframe(fulcrum);
-
- if (curframe==0) {
- # if (droidmass>1972) {
- # if (1) {
- if (0) {
- print("raising it under pressure");
- call youcanmovethru;
- movetoframe(lever, 1, 0.7);
- movetoframe(bigdoor, 1, 1.0);
- doorisdown=0;
- playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- }
- else {
- if ((getdifficulty()==0)&&(ca7==0)) {
- dwplaycammyspeech(16007, "t6ca003.wav", 15, 2);
- ca7=1;
- }
- return;
- }
- }
- print("raising it");
- if (curframe==1) {
- if ((masscheck==1)||(gonkison==1)) {
- call youcanmovethru;
- movetoframe (lever, 1, 0.5);
- movetoframe(bigdoor, 1, 2.2);
- doorisdown=0;
- playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- if (ca9==0) {
- if (getdifficulty()==1) dwplaycammyspeech(16009, "t6ca005.wav", 15, 2);
- else if (getdifficulty()==0) dwplaycammyspeech(16003, "t1ca005.wav", 15, 2);
- ca9=1;
- }
- }
- }
- else if (curframe==2) {
- call youcanmovethru;
- movetoframe (lever, 1, 0.7);
- movetoframe(bigdoor, 1, 1.0);
- doorisdown=0;
- playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- if (ca9==0) {
- if (getdifficulty()==1) dwplaycammyspeech(16009, "t6ca005.wav", 15, 2);
- else if (getdifficulty()==0) dwplaycammyspeech(16003, "t1ca005.wav", 15, 2);
- ca9=1;
- }
- }
- return;
-
- lowerit:
- if (doorisdown==1) return;
- curframe=getcurframe(fulcrum);
- # if (curframe==0) {
- # movetoframe(lever, 0, 5);
- # movetoframe(bigdoor, 0, 2.2);
- # playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- # }
- if (curframe==1) {
- if (gonkison==0) {
- print("moving down quickly");
- movetoframe (lever, 0, 5);
- movetoframe(bigdoor, 0, 2.2);
- doorisdown=1;
- playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- }
- else if (gonkison==1) {
- print("lowering slowly because gonk is on");
- movetoframe (lever, 0, 0.003);
- movetoframe(bigdoor, 0, 0.6);
- playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- doorisdown=1;
- }
- }
- else if (curframe==2) {
- if ((gonkison==0)&&(r5ison==0)) {
- print("moving down quickly");
- movetoframe (lever, 0, 1.4);
- movetoframe(bigdoor, 0, 2.0);
- playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- doorisdown=1;
- }
- else if ( (gonkison==1)||(r5ison==1) ) {
- print("doing nothing because gonk or r5 is on");
- }
- // else if (r5ison==1) {
- // movetoframe (lever, 0, 0.175);
- // movetoframe(bigdoor, 0, 0.25);
- // playsoundthing(prydoor, bigdoor, 1.0, -1, -1, 0);
- // doorisdown=1;
- // }
- }
- return;
-
- timer:
- if (getsenderid()==5) call checkoff;
- else if (getsenderid()==6) call checkon;
- else {
- SetCurrentCamera(7);
- dwUnfreezePlayer();
- }
- return;
-
-
-
- end
-
-