Darkjedi's sabers and powers


[ Follow Ups ] [ Post Followup ] [ The Massassi Temple Message Board ]

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





Follow Ups:



Post a Followup

Name:
E-Mail:

Subject:

Comments:

Optional Link URL:
Link Title:
Optional Image URL:


[ Follow Ups ] [ Post Followup ] [ The Massassi Temple Message Board ]