Forcefield to turn on -- 10_ffieldflip.cog
Here's the 10_FFieldSwitch.cog modified to have the force field OFF or ON at the start. All that needed to be done was change the startup code section by adding a check for a new fieldon variable. When you add the cog in JED leave fieldon as 0 for off and change it to 1 for the normal on at start. You may know that this cog works with textured mats. 30 April 2001
Written for SammyLSD; The Massassi Temple Cog Forum Post


# Jedi Knight Cog Script
#
# 10_ffieldflip.cog
# This is 10_FFieldSwitch.cog modified to be off or on at start.
# Sylvicolus [PRL] 30 April 2001
#
# If you want the forcefield on at start then in JED enter 1 for fieldon.
# Otherwise forcefield will be off at start of game.
#
# This script activates a forcefield that damages a player on touch.
# Also sets this surface to be nomove, magsealed, invisible.
# Shooting or activating switch will turn it on or off.
#
# This cog is not supported by LucasArts Entertainment Co.


symbols

message	startup
message	damaged
message	activated
message	touched
message	timer

surface	switch		linkid=1 mask=0x448
surface	damsurf		mask=0x448
surface	damsurf2	mask=0x448
int	fieldon=0
flex	maxdamage=10.0
flex	mindamage=5.0
flex	damage=0.0	local
sound	powerup=ForceFieldOn01.wav	local
sound	powerdown=ForceFieldOff01.wav	local
sound	wav0=ForceFieldHum01.wav	local
sound	wav1=ForceFieldHit01.wav	local
int	garbage=0			local
thing	victim				local

end

# ========================================================

code

startup:
	sleep(0.5);
	SetWallCel(switch,0);			//on
	ClearAdjoinFlags(damsurf,10);		//no move
	ClearAdjoinFlags(damsurf2,10);
	SetFaceGeoMode(damsurf,0);		//invisible
	SetFaceGeoMode(damsurf2,0);
	SetSurfaceFlags(damsurf,16384);		//magsealed
	SetSurfaceFlags(damsurf2,16384);
	if (!fieldon) 
	{
		SetWallCel(switch,1);		//off
		SetAdjoinFlags(damsurf,10);	//move
		SetAdjoinFlags(damsurf2,10);
	}
	return;

activated:
	if (GetSenderID() != 1) return;
	if (GetWallCel(switch) == 0)
	{
		SetWallCel(switch,1);		//off
		PlaySoundLocal(powerdown, 1, 0, 0);
		SetAdjoinFlags(damsurf,10);	//move
		SetAdjoinFlags(damsurf2,10);
	}
	else if (GetWallCel(switch) == 1)
	{
		SetWallCel(switch,0);		//on
		PlaySoundLocal(powerup, 1, 0, 0);
		ClearAdjoinFlags(damsurf,10);	//no move
		ClearAdjoinFlags(damsurf2,10);
	}
	return;

touched:
	if ((GetSenderRef() == damsurf) || (GetSenderRef() == damsurf2))
	{
		victim = GetSourceRef();
		damage = (Rand()*(maxdamage - mindamage))+mindamage;
		garbage = DamageThing(victim, damage, 0x4, victim);
		PlaySoundPos(wav1, GetSurfaceCenter(damsurf), 0.5, 1, 10, 0);
		call fieldflash;
	}
	return;

damaged:
	if (GetSenderID() == 1)
	{
		call activated;
	}
	else
	{
		call fieldflash;
	}
	return;

timer:
	SetFaceGeoMode(damsurf,0);
	SetFaceGeoMode(damsurf2,0);
	return;

fieldflash:
	SetFaceGeoMode(damsurf,4);
	SetFaceGeoMode(damsurf2,4);
	KillTimerEx(1);
	SetTimerEx(0.5, 1, 0, 0);
	return;

end