Posted by Fardreamer on October 08, 1998 at 15:46:41:
Can't get his stupid saber to work. I think the cog is okay. It may have to do with the fact that the cog is Maw's and the saber slashes are kyle's (I'm using ky.3do and his .keys), i.e the swing and the blade aren't in sync. Is this possible? Also, something that looks like the tip of the saber is flashing on the floor. ???????
Help please!
Here's the cog, anyway, in case something IS wrong:
# Jedi Knight Cog Script
#
# DARKJEDI_KUELLER.COG
#
# DARK JEDI Script - Kueller
#
# [YB]
#
# 8/22 [CR] Added lines to receive message from 15_rahnlines.cog
# 10/8/98 [RG] Removed lines to recieve message from 15_rahnlines.cog, modified Maw to Kueller (thanx Massassi)
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
symbols
message startup
message newplayer
message damaged
message killed
message user0
message user1
message pulse
message skill
thing darkjedi mask=0xfff
thing ghost
thing ghost1
thing ghost2
thing ghost3
thing ghost4
thing ghost5
thing ghost6
thing ghost7
thing ghost8
thing ghost9
thing ghost10
thing ghost11
thing ghost12
thing ghost13
thing ghost14
thing ghost15
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
template tpl_rock=ThrowShrapnel_1 local
template tpl_rock2=ThrowShrapnel_2 local
template tpl_rock3=ThrowShrapnel_3 local
template tpl_rock4=ThrowShrapnel_4 local
template tpl_rock5=ThrowShrapnel_5 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
sound throwSound=ForceThrow01.WAV local
sound pullSound=ForcePull01.WAV local
int victim local
int forcepower local
int forcepulse local
int i local
int throwthing local
int griptrackID=-1 local
int okay=0 local
int PulledWeapon local
vector dir local
flex starthealth local
end
# ========================================================================================
code
startup:
newplayer:
jkSetSaberInfo(darkjedi, side_mat, tip_mat, 0.0045, 0.0015, 0.125, tpl_wall, tpl_blood, tpl_saber);
jkSetFlags(darkjedi, 0x5);
okay = 1;
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;
# ........................................................................................
pulse:
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;
}
else
if(forcepulse == 4) // FORCE PULL
{
SetPulse(0);
if(GetHealth(victim) > 0)
{
if((GetCurWeapon(victim) != 1) && (GetCurWeapon(victim) != 10))
{
PlayMode(darkjedi, 35);
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);
}
}
}
Return;
# ........................................................................................
user1:
// Receives message from 17_rahnlines.cog once game starts
// okay = 1;
return;
user0:
// Don't start until receved message from 15_rahnlines.cog
// if(okay == 0) Return;
victim = GetParam(0);
forcepower = GetParam(1);
starthealth = GetThingHealth(darkjedi);
if(forcepower == 1)
{
// Print("Force Power 1 : FORCE THROW...");
PlayMode(darkjedi, 35);
Sleep(0.3);
// He could die during the sleep
if(GetThingHealth(darkjedi) <= 0) Return;
PlaySoundThing(throwSound, darkjedi, 1.0, -1, -1, 0x80);
for(i=0; i<16; i=i+1)
{
if(ghost[i] > -1)
{
if(HasLOS(darkjedi, ghost[i]))
{
// Print("Got a LOS...");
throwthing = CreateThing(tpl_rock[5 * rand()], ghost[i]);
dir = VectorScale(VectorNorm(VectorSub(GetThingPos(victim), GetThingPos(throwthing))), 200.0);
// just in case of
DetachThing(throwthing);
ApplyForce(throwthing, dir);
SetLifeLeft(throwthing, 10);
}
}
}
}
else
if(forcepower == 2)
{
// Print("Force Power 2 : 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);
}
}
else
if(forcepower == 3)
{
// Print("Force Power 3 : FORCE PULL...");
if(!IsInvActivated(victim, 28))
{
forcepulse = 4;
SetPulse(0.1);
}
}
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
Yes, I know I forgot the timer for Force Pull, that's why the pulled weapon floats around and is unpickupable. ;+)