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 → Trigger Plate Cog
Trigger Plate Cog
2006-04-02, 2:57 PM #1
Would someone please make a cog for me that triggers the extra light in a sector, when a walkplayer touches a surface. The light should remain at a specified level until the player leaves that surface. I plan to have many surfaces with this cog (probably between 200-500), so if you could give as many repeats of this formula per cog as possible, that would very helpful. This is also for multiplayer.

Summary:
  • Box for Surface Number
  • Box for Sector Number
  • Box for Sector Light On
  • Box for Sector Light Off
  • Multiplayer


Thanks! :)
My JK Level Design | 2005 JK Hub Level Pack (Plexus) | Massassi Levels
2006-04-03, 2:26 AM #2
Should all the surfaces trigger one single sector's light, or should each one be linked to a different sector?
Also, it's not too easy to pull it off with surfaces as triggers. Would it be possible to use sectors instead?
"Häb Pfrässe, süsch chlepfts!" - The coolest language in the world (besides Cherokee)
2006-04-03, 3:56 AM #3
Ok, here is a first draft. It's untested. And all the surfaces trigger one single sector. I'm not sure about MP capability, but I guess the sector light should be synched. It should work with the default values, if you set up at least the sector and one surface.
Code:
# floorplatedlights.cog
# Activates/Deactivates a sector light with surfaces as triggers
# zagibu@gmx.ch

symbols

int		pressed=0			local

flex		dimtime=0
flex		lighthigh=1
flex		lightlow=0

sector	lightsector=-1

surface	floorplate00=-1	mask=0x4
surface	floorplate01=-1	mask=0x4
surface	floorplate02=-1	mask=0x4
surface	floorplate03=-1	mask=0x4
surface	floorplate04=-1	mask=0x4
surface	floorplate05=-1	mask=0x4
surface	floorplate06=-1	mask=0x4
surface	floorplate07=-1	mask=0x4
surface	floorplate08=-1	mask=0x4
surface	floorplate09=-1	mask=0x4
surface	floorplate10=-1	mask=0x4
surface	floorplate11=-1	mask=0x4
surface	floorplate12=-1	mask=0x4
surface	floorplate13=-1	mask=0x4
surface	floorplate14=-1	mask=0x4
surface	floorplate15=-1	mask=0x4
surface	floorplate16=-1	mask=0x4
surface	floorplate17=-1	mask=0x4
surface	floorplate18=-1	mask=0x4
surface	floorplate19=-1	mask=0x4
surface	floorplate20=-1	mask=0x4
surface	floorplate21=-1	mask=0x4
surface	floorplate22=-1	mask=0x4
surface	floorplate23=-1	mask=0x4
surface	floorplate24=-1	mask=0x4
surface	floorplate25=-1	mask=0x4
surface	floorplate26=-1	mask=0x4
surface	floorplate27=-1	mask=0x4
surface	floorplate28=-1	mask=0x4
surface	floorplate29=-1	mask=0x4
surface	floorplate30=-1	mask=0x4
surface	floorplate31=-1	mask=0x4
surface	floorplate32=-1	mask=0x4
surface	floorplate33=-1	mask=0x4
surface	floorplate34=-1	mask=0x4
surface	floorplate35=-1	mask=0x4
surface	floorplate36=-1	mask=0x4
surface	floorplate37=-1	mask=0x4
surface	floorplate38=-1	mask=0x4
surface	floorplate39=-1	mask=0x4
surface	floorplate40=-1	mask=0x4
surface	floorplate41=-1	mask=0x4
surface	floorplate42=-1	mask=0x4
surface	floorplate43=-1	mask=0x4
surface	floorplate44=-1	mask=0x4
surface	floorplate45=-1	mask=0x4
surface	floorplate46=-1	mask=0x4
surface	floorplate47=-1	mask=0x4
surface	floorplate48=-1	mask=0x4
surface	floorplate49=-1	mask=0x4
surface	floorplate50=-1	mask=0x4
surface	floorplate51=-1	mask=0x4
surface	floorplate52=-1	mask=0x4
surface	floorplate53=-1	mask=0x4
surface	floorplate54=-1	mask=0x4
surface	floorplate55=-1	mask=0x4
surface	floorplate56=-1	mask=0x4
surface	floorplate57=-1	mask=0x4
surface	floorplate58=-1	mask=0x4
surface	floorplate59=-1	mask=0x4
surface	floorplate60=-1	mask=0x4
surface	floorplate61=-1	mask=0x4
surface	floorplate62=-1	mask=0x4
surface	floorplate63=-1	mask=0x4
surface	floorplate64=-1	mask=0x4
surface	floorplate65=-1	mask=0x4
surface	floorplate66=-1	mask=0x4
surface	floorplate67=-1	mask=0x4
surface	floorplate68=-1	mask=0x4
surface	floorplate69=-1	mask=0x4
surface	floorplate70=-1	mask=0x4
surface	floorplate71=-1	mask=0x4
surface	floorplate72=-1	mask=0x4
surface	floorplate73=-1	mask=0x4
surface	floorplate74=-1	mask=0x4
surface	floorplate75=-1	mask=0x4
surface	floorplate76=-1	mask=0x4
surface	floorplate77=-1	mask=0x4
surface	floorplate78=-1	mask=0x4
surface	floorplate79=-1	mask=0x4
surface	floorplate80=-1	mask=0x4
surface	floorplate81=-1	mask=0x4
surface	floorplate82=-1	mask=0x4
surface	floorplate83=-1	mask=0x4
surface	floorplate84=-1	mask=0x4
surface	floorplate85=-1	mask=0x4
surface	floorplate86=-1	mask=0x4
surface	floorplate87=-1	mask=0x4
surface	floorplate88=-1	mask=0x4
surface	floorplate89=-1	mask=0x4
surface	floorplate90=-1	mask=0x4
surface	floorplate91=-1	mask=0x4
surface	floorplate92=-1	mask=0x4
surface	floorplate93=-1	mask=0x4
surface	floorplate94=-1	mask=0x4
surface	floorplate95=-1	mask=0x4
surface	floorplate96=-1	mask=0x4
surface	floorplate97=-1	mask=0x4
surface	floorplate98=-1	mask=0x4
surface	floorplate99=-1	mask=0x4

message	startup
message	entered
message	exited

end

code

startup:
	// Initialize the pressed counter
	pressed = 0;

	Return;

entered:
	// Another actor stepped on the surface -> increase counter
	pressed = pressed + 1;

	// Only change the light if it's not already OK
	if(GetSectorLight(lightsector) != lighthigh)
		SetSectorLight(lightsector, lighthigh, dimtime);

	Return;

exited:
	// Another actor left the surface -> decrease counter
	pressed = pressed - 1;

	// Change the light if it was the last actor on the surface
	if(pressed < 1)
	{
		pressed = 0;
		SetSectorLight(lightsector, lightlow, dimtime);
	}

	Return;

end
"Häb Pfrässe, süsch chlepfts!" - The coolest language in the world (besides Cherokee)
2006-04-03, 4:00 AM #4
You will definitely need to make this client-server. In Scream MP the light switches originally relied on JK's default syncing to change the light in 100 or so sectors, and sectors would often be left lit up when someone turned the lights out. Now it's client-server and it works perfectly.
2006-04-03, 4:18 AM #5
Ok, then, try these two:
Code:
# floorplatedlights-s.cog
# Server cog that triggers activation/deactivation of a sector light using surfs
# zagibu@gmx.ch

flags=0x200

symbols

int		pressed=0			local

flex		dimtime=0
flex		lighthigh=1
flex		lightlow=0

sector	lightsector=-1

surface	floorplate00=-1	mask=0x4
surface	floorplate01=-1	mask=0x4
surface	floorplate02=-1	mask=0x4
surface	floorplate03=-1	mask=0x4
surface	floorplate04=-1	mask=0x4
surface	floorplate05=-1	mask=0x4
surface	floorplate06=-1	mask=0x4
surface	floorplate07=-1	mask=0x4
surface	floorplate08=-1	mask=0x4
surface	floorplate09=-1	mask=0x4
surface	floorplate10=-1	mask=0x4
surface	floorplate11=-1	mask=0x4
surface	floorplate12=-1	mask=0x4
surface	floorplate13=-1	mask=0x4
surface	floorplate14=-1	mask=0x4
surface	floorplate15=-1	mask=0x4
surface	floorplate16=-1	mask=0x4
surface	floorplate17=-1	mask=0x4
surface	floorplate18=-1	mask=0x4
surface	floorplate19=-1	mask=0x4
surface	floorplate20=-1	mask=0x4
surface	floorplate21=-1	mask=0x4
surface	floorplate22=-1	mask=0x4
surface	floorplate23=-1	mask=0x4
surface	floorplate24=-1	mask=0x4
surface	floorplate25=-1	mask=0x4
surface	floorplate26=-1	mask=0x4
surface	floorplate27=-1	mask=0x4
surface	floorplate28=-1	mask=0x4
surface	floorplate29=-1	mask=0x4
surface	floorplate30=-1	mask=0x4
surface	floorplate31=-1	mask=0x4
surface	floorplate32=-1	mask=0x4
surface	floorplate33=-1	mask=0x4
surface	floorplate34=-1	mask=0x4
surface	floorplate35=-1	mask=0x4
surface	floorplate36=-1	mask=0x4
surface	floorplate37=-1	mask=0x4
surface	floorplate38=-1	mask=0x4
surface	floorplate39=-1	mask=0x4
surface	floorplate40=-1	mask=0x4
surface	floorplate41=-1	mask=0x4
surface	floorplate42=-1	mask=0x4
surface	floorplate43=-1	mask=0x4
surface	floorplate44=-1	mask=0x4
surface	floorplate45=-1	mask=0x4
surface	floorplate46=-1	mask=0x4
surface	floorplate47=-1	mask=0x4
surface	floorplate48=-1	mask=0x4
surface	floorplate49=-1	mask=0x4
surface	floorplate50=-1	mask=0x4
surface	floorplate51=-1	mask=0x4
surface	floorplate52=-1	mask=0x4
surface	floorplate53=-1	mask=0x4
surface	floorplate54=-1	mask=0x4
surface	floorplate55=-1	mask=0x4
surface	floorplate56=-1	mask=0x4
surface	floorplate57=-1	mask=0x4
surface	floorplate58=-1	mask=0x4
surface	floorplate59=-1	mask=0x4
surface	floorplate60=-1	mask=0x4
surface	floorplate61=-1	mask=0x4
surface	floorplate62=-1	mask=0x4
surface	floorplate63=-1	mask=0x4
surface	floorplate64=-1	mask=0x4
surface	floorplate65=-1	mask=0x4
surface	floorplate66=-1	mask=0x4
surface	floorplate67=-1	mask=0x4
surface	floorplate68=-1	mask=0x4
surface	floorplate69=-1	mask=0x4
surface	floorplate70=-1	mask=0x4
surface	floorplate71=-1	mask=0x4
surface	floorplate72=-1	mask=0x4
surface	floorplate73=-1	mask=0x4
surface	floorplate74=-1	mask=0x4
surface	floorplate75=-1	mask=0x4
surface	floorplate76=-1	mask=0x4
surface	floorplate77=-1	mask=0x4
surface	floorplate78=-1	mask=0x4
surface	floorplate79=-1	mask=0x4
surface	floorplate80=-1	mask=0x4
surface	floorplate81=-1	mask=0x4
surface	floorplate82=-1	mask=0x4
surface	floorplate83=-1	mask=0x4
surface	floorplate84=-1	mask=0x4
surface	floorplate85=-1	mask=0x4
surface	floorplate86=-1	mask=0x4
surface	floorplate87=-1	mask=0x4
surface	floorplate88=-1	mask=0x4
surface	floorplate89=-1	mask=0x4
surface	floorplate90=-1	mask=0x4
surface	floorplate91=-1	mask=0x4
surface	floorplate92=-1	mask=0x4
surface	floorplate93=-1	mask=0x4
surface	floorplate94=-1	mask=0x4
surface	floorplate95=-1	mask=0x4
surface	floorplate96=-1	mask=0x4
surface	floorplate97=-1	mask=0x4
surface	floorplate98=-1	mask=0x4
surface	floorplate99=-1	mask=0x4

message	startup
message	entered
message	exited

end

code

startup:
	// Initialize the pressed counter
	pressed = 0;

	Return;

entered:
	// Another actor stepped on the surface -> increase counter
	pressed = pressed + 1;

	// Only change the light if it's not already OK
	if(GetSectorLight(lightsector) != lighthigh)
		SendTrigger(-1, 57571, lightsector, lighthigh, dimtime, -1);

	Return;

exited:
	// Another actor left the surface -> decrease counter
	pressed = pressed - 1;

	// Change the light if it was the last actor on the surface
	if(pressed < 1)
	{
		pressed = 0;
		SendTrigger(-1, 57571, lightsector, lightlow, dimtime, -1);
	}

	Return;

end


Code:
# floorplatedlights-c.cog
# Client cog that activates/deactivates a sector's light upon trigger call
# zagibu@gmx.ch

flags=0x240

symbols

message trigger

end

code

trigger:
	if(GetSourceRef() != 57571)
		Return;

	SetSectorLight(GetParam(0), GetParam(1), GetParam(2));

	Return;

end


[edit]Forgot the flags...[/edit]
"Häb Pfrässe, süsch chlepfts!" - The coolest language in the world (besides Cherokee)
2006-04-17, 12:29 PM #6
Oh, wow, I totally forgot about this. I'll test it out soon, sorry about that. :o
My JK Level Design | 2005 JK Hub Level Pack (Plexus) | Massassi Levels

↑ Up to the top!