Posted by Fardreamer on October 04, 1998 at 06:47:10:
What are they? Templates, like a bryar shot? or things? and where are they located in the cog?
Maybe if I knew that I could fix my DarkJedi's saber never opening. (AND his Force Powers don't work. Grrr)
Here's the cog, anyway (it's based on Jerec's--I replaced Destruction with Grip).
PLEASE someone tell me what's wrong. Anyone.
# Jedi Knight Cog Script
#
# DARKJEDI_KUELLER.COG
#
# DARK JEDI Script - Kueller
#
# [RG]
#
# (C) This COG is not made or supported by LEC
symbols
message startup
message newplayer
message damaged
message killed
message user0
message user1
message pulse
message timer
message skill
thing darkjedi mask=0xfff
material tip_mat=saberblue0.mat local
material side_mat=saberblue1.mat local
template tpl_wall=+ssparks_wall local
template tpl_blood=+ssparks_blood local
template tpl_saber=+ssparks_saber local
int victim local
int forcepower local
int forcepulse local
int count local
int limit local
int dummy local
int griptrackID=-1 local
template lightning=+force_lightning local
sound lightningSound=ForceLightnin01.wav local
flex autoAimFOV=10 local
flex autoAimMaxDist=5 local
sound pullSound=ForcePull01.WAV local
template tpl=BryarPistol local
template tpl1=BryarPistol local
template tpl2=BryarPistol local
template tpl3=STrifle local
template tpl4=SingleDetonator local
template tpl5=Crossbow local
template tpl6=RepeaterGun local
template tpl7=RailGun local
template tpl8=SingleSeqCharge local
template tpl9=ConcRifle local
int PulledWeapon local
int okay local
end
# ========================================================================================
code
startup:
newplayer:
jkSetSaberInfo(darkjedi, side_mat, tip_mat, 0.003, 0.001, 0.101, tpl_wall, tpl_blood, tpl_saber);
jkSetFlags(darkjedi, 0x5);
Return;
# ........................................................................................
killed:
SetPulse(0);
jkSetFlags(darkjedi, 0x8);
Return;
# ........................................................................................
damaged:
damage = GetParam(0);
damageType = GetParam(1);
if(damageType & 1) // IMPACT
damage = damage / 2;
else
if(damageType & 2) // ENERGY
damage = damage / 2;
else
if(damageType & 4) // FIRE
damage = damage / 10;
else
if(damageType & 8) // FORCE
damage = damage;
else
if(damageType & 16) // SABER
damage = damage;
ReturnEx(damage);
Return;
# ........................................................................................
user1:
// Receives message from 21b_camera.cog or 21_rahnlines.cog
//okay = 1;
return;
user0:
// Don't start using force powers until message is received
//if(okay == 0) return;
victim = GetParam(0);
forcepower = GetParam(1);
if(forcepower == 1)
{
// Print("Force Power 1 : FORCE LIGHTNING...");
FireProjectile(darkjedi, lightning, lightningSound, 35, '0 0 0', '0 0 0', 1.0, 0, autoAimFOV, autoAimMaxDist);
}
else
if(forcepower == 2)
{
// Print("Force Power 2 : FORCE PULL");
if(!IsInvActivated(victim, 28))
{
forcepulse = 4;
SetPulse(0.1);
}
}
else
if(forcepower == 3)
{
// Print("Force Power 3 : FORCE GRIP...");
if(!IsInvActivated(player, 29))
{
PlayMode(darkjedi, 24);
SetActorFlags(darkjedi, 0x40000);
Sleep(0.3);
// He could die during the sleep
if(GetThingHealth(darkjedi) <= 0) Return;
SetActorFlags(victim, 0x40000);
PlayMode(victim, 25);
count = 0;
limit = 5;
forcepulse = 10;
SetPulse(0.5);
}
}
Return;
# ........................................................................................
pulse:
if(forcepulse == 4) // FORCE PULL
{
SetPulse(0);
if(GetHealth(victim) > 0)
{
if((GetCurWeapon(victim) != 1) && (GetCurWeapon(victim) != 10))
{
PlayMode(darkjedi, 36);
Sleep(0.3);
PlaySoundThing(pullSound, victim, 1.0, -1, -1, 0x80);
// Create a powerup corresponding to the current weapon
PulledWeapon = CreateThingAtPos(tpl[GetCurWeapon(victim)], GetThingSector(victim), GetThingPos(victim), '0 0 0');
// Set the created powerup to no collide for now...
SetCollideType(PulledWeapon, 0);
// ...and set a timer to make it collide again later
SetTimerEx(0.3, 1, PulledWeapon, 0);
// Throw the powerup at the DJ
ApplyForce(PulledWeapon, VectorScale(VectorNorm(VectorSub(GetThingPos(darkjedi), GetThingPos(victim))), 30));
// Remove the weapon from the player
ChangeInv(victim, GetCurWeapon(victim), -1);
SelectWeapon(victim, 1);
}
}
else
if(forcepulse == 10) // FORCE GRIP
{
if((count > limit) ||
(GetThingHealth(darkjedi) < starthealth) ||
(GetHealth(victim) < 1) ||
!HasLOS(darkjedi, victim)
)
{
ClearActorFlags(victim, 0x40000);
ClearActorFlags(darkjedi, 0x40000);
SetPulse(0);
Return;
}
// Print("You are taking Grip damage");
jkPrintUNIString(victim, 300);
if(griptrackID != -1)
{
StopKey(player, griptrackID);
griptrackID = -1;
}
DamageThing(victim, 5, 0x8, darkjedi);
count = count + 1;
}
Return;
# ........................................................................................
timer:
if(GetSenderId() == 1) // Pull
{
// A pulled weapon must be made takeable again
SetCollideType(GetParam(0), 1);
// Set gravity to them so they don't float around
SetPhysicsFlags(GetParam(0), 1);
// Make the powerup last hours
SetLifeLeft(GetParam(0), 36000);
}
Return;
# ........................................................................................
skill:
bin = GetParam(0);
if(bin == 31) // Force Grip
{
ReturnEx(10);
Return;
}
else
if(bin == 34) // Deadly Sight
{
ReturnEx(5);
Return;
}
ReturnEx(-1);
Return;
end