Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsCog Forum → I don't remember this problem...
I don't remember this problem...
2005-07-23, 10:39 AM #1
I was putting the final touches on a LoG teaser when a puzzle that had worked flawlessly before suddenly started exhibiting a troublesome error. If any of you have ever played Dead to Rights, you'll doubtless remember those annoying 'hotzone' puzzles where you had to keep your pointer in an ever moving safe area. This puzzle sort of parodies that concept, using playeraction to guide a little tick inside a safe zone that randomly moves left or right. However, now that I've been testing this, it seems that the game boots me back to the desktop whenever I leave the safe area for the first time. :\

Code:
# showertweak.cog
# [Grismath]
#==============================================================#
symbols
message		entered
message		playeraction
message		timer
message		pulse
message		touched
sector		shower
flex		time=0.5	local
thing		showercam
thing		pointer
thing		bar
flex		barvel	local
sound		score
int		count=0		local
int		points=0	local
int		played=0	local
int		said=0		local
surface		downstairs
int		speech_handle	local
material	gface
thing		player		local
sound		g_smell
sound		g_shell
sound		g_pipery
sound		g_boil
sound		g_tepid
sound		showertheme
int		music		local
thing		showerguy
thing		advcam
thing		knob
end
#==============================================================#
code
#------------------------------------------------------
touched:
if(GetSenderRef()==downstairs && played==0) {
 if(said==0) {
  said=0;
  Print("");
  Print("I had better shower first.");
  Print("I look, feel, and smell despicable.");
  Print("");
  Print("");
  PlaySoundLocal(g_smell, 1, 0, 0x0);
  speech_handle = MaterialAnim(gface, 4, 0x1);
  Sleep(GetSoundLen(g_smell));
  StopAnim(speech_handle);
 }
}
return;
#------------------------------------------------------
entered:
if(GetSenderRef()==shower && played==0) {
 played=1;
 //Sleep(2.0);
 SetActionCog(GetSelfCog(),0x7fffffff);
 SetCurrentCamera(0);
 SetCameraFocus(0, showercam);
 CaptureThing(pointer);
 CaptureThing(bar);
 SetActorFlags(player, 0xa00000);
 SetActorFlags(GetLocalPlayerThing(), 0x20000000);

 Print("");
 Print("");
 Print("I'm about to take a shower from Hell.");
 Print("");
 Print("");

 PlaySoundLocal(g_shell, 1, 0, 0x0);
 Sleep(GetSoundLen(g_shell)+0.2);

 Print("");
 Print("This house's pipery is poorly designed,");
 Print("and Rajiv is not helping.");
 Print("");
 Print("");

 PlaySoundLocal(g_pipery, 1, 0, 0x0);
 Sleep(GetSoundLen(g_pipery)+0.2);

 Print("");
 Print("Unless I constantly regulate the");
 Print("cold water output, I'll be boiled alive.");
 Print("So it's imperative that I...");
 Print("");

 PlaySoundLocal(g_boil, 1, 0, 0x0);
 Sleep(GetSoundLen(g_boil));

 ClearActorFlags(player, 0xa00000);
 SetTimer(time);
 SetPulse(0.2);

 Print("");
 Print("");
 Print("STAY IN THE TEPID ZONE!.");
 Print("");
 Print("");

 PlaySoundLocal(g_tepid, 1, 0, 0x0);
 Sleep(GetSoundLen(g_tepid)+0.3);

 Print("");
 Print("");
 Print("");
 Print("");
 Print("");

 ClearActorFlags(GetLocalPlayerThing(), 0x20000000);
 music=PlaySoundLocal(showertheme, 1, 0, 0x1);
}
return;
#------------------------------------------------------
playeraction:
if(GetParam(0)==14) return;
if(GetParam(0)==5.0) {
 SetThingVel(pointer, VectorScale(GetThingLVec(pointer), (GetParam(2)/1000)));
 Rotate(knob, VectorSet((GetParam(2)/1000), 0, 0)); 
}
ReturnEx(0);
return;
#------------------------------------------------------
timer:
		if(count==30) {
		SetTimer(0);
		SetPulse(0);
		//Print("SCORE");
		//PrintInt(points);
		SetActionCog(GetSelfCog(),0);
		SetCameraFocus(0, advcam);
		SetAdjoinFlags(downstairs, 7);
		StopSound(music, 1);
		return;
		}
	if(time<=0) {
	 time=0.5;
	 }
 barvel=Rand();
 if(Rand()>=0.5) { 
  barvel=(barvel*-1);
  time=time-0.1;
 } else {
  time=time+0.1;
 }
 //PrintInt(count);
 SetThingVel(bar, VectorScale(GetThingLVec(bar), (barvel/2)));
 count=count+1;
 SetTimer(time);
return;
#------------------------------------------------------
pulse:
if(VectorX(GetThingPos(pointer))>=(VectorX(GetThingPos(bar))-0.05) && VectorX(GetThingPos(pointer))<=(VectorX(GetThingPos(bar))+0.05)) {
  points=points+1;
  if(GetThingHealth(GetLocalPlayerThing())<100) SetThingHealth(GetLocalPlayerThing(), (GetThingHealth(GetLocalPlayerThing())+5));
 } else {
  PlaySoundLocal(score, 1, 0, 0x0);
  //DamageThing(GetLocalPlayerThing(), 20, 0x1, GetLocalPlayerThing());
  //if(GetThingHealth(GetLocalPlayerThing())<=0) {
   //DamageThing(showerguy, 999, 0x1, showerguy);
  //}
 }
 return;
#------------------------------------------------------
end
Cordially,
Lord Tiberius Grismath
1473 for '1337' posts.
2005-07-23, 10:42 AM #2
oh wait, I think I remember now, I had trouble with the Rotate verb. Thanks, guys! :rolleyes:
Cordially,
Lord Tiberius Grismath
1473 for '1337' posts.
2005-07-23, 3:05 PM #3
your welcome :rolleyes:
Sam: "Sir we can't call it 'The Enterprise'"
Jack: "Why not!"
2005-07-23, 3:29 PM #4
rofl nice one Gris.

↑ Up to the top!