Hi!
1. I have this custom door COG, where if you hit a switch, the door will open or close. Now, I've set so that if you activate the door, it will play a locked sound indicating you'll need to activate a switch. Problem is that when I activate the door, the door opens... Why is that?
2. I have this draw bridge, and I wanted to add a little bounce effect when it comes to its level position. I managed to make that bounce effect, only, it's never straight after it bounces. So I try to set the origentation with a SetThingLook. Result: it disappears. Are there any other ways of solving this?
/Edward
1. I have this custom door COG, where if you hit a switch, the door will open or close. Now, I've set so that if you activate the door, it will play a locked sound indicating you'll need to activate a switch. Problem is that when I activate the door, the door opens... Why is that?
Code:
# Door Set 2 # # By Edward symbols message startup message activated surface switch1 surface switch2 thing door thing doorthing thing bolt1 thing bolt2 int ch1=1 local int open=0 local flex speed sound rotation sound moving sound bump end # code startup: MoveToFrame(door,0,100); SetWallCel(switch1,0); SetWallCel(switch2,0); return; activated: if((GetSenderRef()==switch1) || (GetSenderRef()==switch2)) { if(open==0) { open=2; SetWallCel(switch1,1); SetWallCel(switch2,1); ch1=PlaySoundThing(rotation,bolt1,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); ch1=PlaySoundThing(rotation,bolt2,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); SetThingRotVel(bolt1,'0 0 -90'); SetThingRotVel(bolt2,'0 0 90'); sleep(1); StopThing(bolt1); StopThing(bolt2); ch1=PlaySoundThing(moving,bolt1,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); ch1=PlaySoundThing(moving,bolt2,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); SetThingVel(bolt1,'.2 0 0'); SetThingVel(bolt2,'-.2 0 0'); sleep(1); StopThing(bolt1); StopThing(bolt2); AttachThingToThing(doorthing,door); MoveToFrame(door,1,speed); WaitForStop(door); SetWallCel(switch1,0); SetWallCel(switch2,0); open=1; } else if(open==1) { open=2; SetWallCel(switch1,1); SetWallCel(switch2,1); AttachThingToThing(doorthing,door); MoveToFrame(door,0,speed); WaitForStop(door); ch1=PlaySoundThing(moving,bolt1,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); ch1=PlaySoundThing(moving,bolt2,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); SetThingVel(bolt1,'-.2 0 0'); SetThingVel(bolt2,'.2 0 0'); sleep(1); StopThing(bolt1); StopThing(bolt2); ch1=PlaySoundThing(rotation,bolt1,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); ch1=PlaySoundThing(rotation,bolt2,1,-1,-1,0x80); ChangeSoundPitch(ch1,0.75+rand()*0.50,0.1); SetThingRotVel(bolt1,'0 0 90'); SetThingRotVel(bolt2,'0 0 -90'); sleep(1); StopThing(bolt1); StopThing(bolt2); SetWallCel(switch1,0); SetWallCel(switch2,0); open=0; } } else if(GetSenderRef()==doorthing) { PlaySoundThing(bump,doorthing,1,-1,-1,0x80); } return; end
2. I have this draw bridge, and I wanted to add a little bounce effect when it comes to its level position. I managed to make that bounce effect, only, it's never straight after it bounces. So I try to set the origentation with a SetThingLook. Result: it disappears. Are there any other ways of solving this?
Code:
# The Bridge # # By Edward symbols message startup message activated message pulse thing bridge1 thing bridge2 surface switch1 surface switch2 sound bridge1start sound bridge1move sound bridge1stop sound bridge2start sound bridge2move sound bridge2stop int drawn1=0 local int drawn2=0 local int ch1=1 local int ch2=2 local int i local end # code startup: sleep(.5); SetPulse(0.1); MoveToFrame(bridge2,0,100); WaitForStop(bridge2); sleep(.5); RotatePivot(bridge1,1,1); SetPulse(0.1); return; activated: if(GetSenderRef()==switch1) { If(drawn2!=0) return; if(drawn1==0) { drawn1=2; ch2=PlaySoundThing(bridge1start,bridge1,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); ch1=PlaySoundThing(bridge1move,bridge1,1,-1,-1,0x81); RotatePivot(bridge1,1,-10); WaitForStop(bridge1); StopSound(ch1,1); ch2=PlaySoundThing(bridge1stop,bridge1,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); // for(i=10; i<50; i=i+1) // { // RotatePivot(bridge1,1,i); // sleep(0.01); // } // for(i=50; i>6; i=i-1) // { // RotatePivot(bridge1,1,-i); // sleep(0.01); // } // StopThing(bridge1); sleep(1); drawn1=1; } else if(drawn1==1) { drawn1=2; ch2=PlaySoundThing(bridge1start,bridge1,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); ch1=PlaySoundThing(bridge1move,bridge1,1,-1,-1,0x81); RotatePivot(bridge1,1,15); WaitForStop(bridge1); StopSound(ch1,1); ch2=PlaySoundThing(bridge1stop,bridge1,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); // for(i=15; i<50; i=i+1) // { // RotatePivot(bridge1,1,-i); // sleep(0.01); // } // for(i=50; i>9; i=i-1) // { // RotatePivot(bridge1,1,i); // sleep(0.01); // } // StopThing(bridge1); sleep(1); drawn1=0; } } else if(GetSenderRef()==switch2) { if(drawn1!=1) return; if(drawn2==0) { drawn2=2; ch2=PlaySoundThing(bridge2start,bridge2,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); ch1=PlaySoundThing(bridge2move,bridge2,1,-1,-1,0x81); MoveToFrame(bridge2,1,4); WaitForStop(bridge2); StopSound(ch1,1); ch2=PlaySoundThing(bridge2stop,bridge2,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); drawn2=1; } else if(drawn2==1) { drawn2=2; ch2=PlaySoundThing(bridge2start,bridge2,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); ch1=PlaySoundThing(bridge2move,bridge2,1,-1,-1,0x81); MoveToFrame(bridge2,0,4); WaitForStop(bridge2); StopSound(ch1,1); ch2=PlaySoundThing(bridge2stop,bridge2,1,-1,-1,0x80); ChangeSoundPitch(ch2,.25,0.1); drawn2=0; } } return; pulse: SetWallCel(switch1,drawn1); SetWallCel(switch2,drawn2); ChangeSoundPitch(ch1,.75+(rand()*.5),0.1); AttachThingToThing(bridge2,bridge1); return; end
/Edward