home *** CD-ROM | disk | FTP | other *** search
- # Jedi Knight Cog Script
- #
- # 00_Forcefield.cog
- #
- # inflicts damage when player touches a surface (can be used on nomove adjoins)
- # Surface has to be marked with either Transluscency or Always Draw if it's an adjoin
- # damage amount is random between minDamage and maxDamage
- #
- # Be sure to mark surf0 as 'transparent'
- # [IS]
- #
- # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
-
-
- symbols
-
- message touched
- message damaged
- message startup
- message timer
-
- surface surf0 mask=0x408
- int victim=-1 local
- int player=-1 local
- int damaging=1 local
-
- flex maxDamage=1.0
- flex minDamage=1.0
- flex interval=0.25
-
- flex minLight=0.2
- flex maxLight=1.0
- flex period=0.5
-
- sound wav1=NRG03weld.wav local
-
-
- end
-
- # ========================================================================================
-
- code
-
- startup:
- clearfacetype(surf0, 2);
- setfacegeomode(surf0, 0);
- printint(getfacegeomode(surf0));
- player=getlocalplayerthing();
- SetSurfaceFlags(surf0,16384); //magsealed
- SurfaceLightAnim(surf0, minLight, maxLight, period);
- return;
-
- # ........................................................................................
-
- touched:
- if (damaging == 0) return;
- if (GetSourceRef()!=player) return;
- victim = GetSourceRef();
- damage = (0 * (maxDamage - minDamage));
- DamageThing(victim, damage, 0x2, victim); // self-inflicted damage
- PlaySoundPos(wav1, GetSurfaceCenter(surf0), 0.5, 1, 10, 0);
- damaging=0;
- setfacetype(surf0, 2);
- setfacegeomode(surf0, 4);
- SetTimer(interval);
- return;
-
- # ........................................................................................
-
- damaged:
- if(GetParam(1) == 1)
- {
- player=GetThingParent(GetSourceRef());
- if(GetThingType(player) != 10) Return;
- damage = (0*(maxdamage - mindamage));
- DamageThing(player, damage, 0x01, player);
- }
- return;
-
- # ........................................................................................
-
- timer:
- clearfacetype(surf0, 2);
- setfacegeomode(surf0, 0);
- damaging=1;
- return;
-
- end
-
-