In the UR mod I'm using all sorts of ways of getting custom effects(especially templates), but avoid using triggers. I know triggers are the easiest and are proven to work, but they are known for lagging things to hell when used to much. Right now there are some really strange errors I get from these two particular cogs. The error seems to only happen in MP. What happens is that the other player(he was the host too, maybe that has something to do with it)'s model turned into anything(ANYTHING, not just models, it turns into sprites and particle systems too) at random that was created in the level at that moment, like water spashes, blaster bolts, smoke puffs, even particles. There are two particular cogs that seem to have this problem.
The rocket launcher cog, it seems to start the problem as soon as a rocket is fired, it only did it on my side, but the host could fire as many rockets as he wanted without a problem:
And the Crossbow cog, the problem seems to only come up on the player's side when the other player(he was the host too) fires 1st fire. here's the cog:
This is another cog that might have something to do with the problems... :
Please help...... I have no clue what's causing this problem
------------------
GetThingSignature(Ace1);
The rocket launcher cog, it seems to start the problem as soon as a rocket is fired, it only did it on my side, but the host could fire as many rockets as he wanted without a problem:
Code:
# Jedi Knight Cog Script
#
# WEAP_RAILDET.COG
#
# WEAPON 7 script - Rail Detonator
#
# Modified raildet.
#
# __Ace_1__
symbols
model povModel=dflt.3do local
model weaponMesh=plxg.3do local
keyframe mountAnim=StrVmnt.key local
keyframe dismountAnim=StrVdis.key local
keyframe povfireAnim=StrVpst1.key local
keyframe holsterAnim=kyhlstr.key local
sound mountSound=df_rif_ready.wav local
sound dismountSound=PutWeaponAway01.wav local
sound fireSound=RailChargeFire01.wav local
sound outSound=RailChargeEmpty01.wav local
template projectile=+raildet local
template projectile2=+raildet2 local
thing player local
vector randVec local
flex fireWait=1.0 local
flex wait1=0.35 local
flex wait2=0.5 local
flex holsterWait local
flex powerBoost local
flex autoAimFOV=30 local
flex autoAimMaxDist=5 local
int magazine=0 local
int reloading=0 local
int ammobin=15 local
int Delay=0 local
int burst=1 local
int rocketing=1 local
int rocketslow=1 local
int firemode=0 local
int damagemode=0 local
int dummy local
int seekerthing local
int victim local
int trackID=-1 local
int fireChannel=-1 local
int holsterTrack local
int mode local
vector lookvel local
vector curvel local
message activated
message deactivated
message selected
message deselected
message autoselect
message fire
message timer
message killed
#message user1
message user2
message removed
end
# ========================================================================================
code
fire:
player = GetSourceRef();
mode = GetSenderRef();
// Check that the player is still alive.
if(GetThingHealth(player) <= 0)
{
Return;
}
// Check Ammo - If we are out, autoselect best weapon.
// It should always use two energy cells, but -- as in DF --
// allow the last fire if there is only one left...
if(GetInv(player, ammobin) < 1.0)
{
PlaySoundThing(outSound, player, 1.0, -1, -1, 0x80);
Return;
}
if((magazine >= 400) || (reloading == 1))
{
call user1;
Return;
}
call shoot;
Return;
# ........................................................................................
shoot:
KillTimerEx(21);
KillTimerEx(22);
ID = 71;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
dummy = FireProjectile(player, projectile, -1, 8, '0.035 0.05 0.015', '0 0 0', 1.0, 0x20, autoAimFOV, autoAimFOV*2);
SetCollideType(dummy, 0);
SetThingVel(dummy, GetThingVel(player));
PlaySoundThing(fireSound, player, 1.0, -1.0, -1.0, 0x80);
SetWeaponFlags(dummy, 0x300);
SetThingRotVel(dummy, '0 0 0');
if(damagemode == 0)
{
SetThingModel(dummy, LoadModel("rld0.3do"));
}
else if(damagemode == 1)
{
SetThingModel(dummy, LoadModel("rld1.3do"));
}
else if(damagemode == 2)
{
SetThingModel(dummy, LoadModel("rld2.3do"));
}
if(firemode == 0)
{
SetTimerEx(0.1, 20, dummy, player);
}
else if(firemode == 1)
{
SetTimerEx(0.1, 20, dummy, player);
SetTimerEx(0.15, 21, dummy, player);
CaptureThing(dummy);
}
else if(firemode == 2)
{
SetTimerEx(0.1, 22, dummy, player);
ID = 70;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
CaptureThing(dummy);
SetLifeLeft(dummy, 60.0);
rocketing = 2;
}
ChangeInv(player, ammobin, -1.0);
powerBoost = GetInv(player, 63);
ChangeFireRate(player, fireWait/powerBoost);
Return;
# ........................................................................................
activated:
player = GetSourceRef();
mode = GetSenderRef();
jkSetWaggle(player, '0.0 0.0 0.0', 0);
if(Delay != 1)
{
if(mode == 0)
{
if(rocketing == 2)
{
rocketslow = 2;
}
if(GetInv(player, ammobin) < 1.0)
{
PlaySoundThing(outSound, player, 1.0, -1, -1, 0x80);
Return;
}
if(rocketing != 2)
{
call shoot;
}
}
else if(mode == 1)
{
for(i=0; i<=GetThingCount(); i=i+1)
{
if((GetThingTemplate(i) == LoadTemplate("+raildet")) && (GetThingModel(i) == LoadModel("rld0.3do")) && (GetThingParent(i) == player))
{
FireProjectile(i, LoadTemplate("+raildet_exp"), -1, -1, '0.0 0.0 0.0', '0 0 0', 1.0, 0x20, 0, 0);
}
KillTimerEx(21);
KillTimerEx(22);
if(dummy != -1)
{
ReleaseThing(dummy);
}
ID = 71;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
rocketing = 1;
}
}
Delay = 1;
SetTimerEx(0.5, 3, 0, 0);
}
Return;
# ........................................................................................
deactivated:
player = GetSourceRef();
jkSetWaggle(player, '10.0 7.0 0.0', 350);
rocketslow = 1;
Return;
# ........................................................................................
selected:
player = GetSourceRef();
Print("Missle Tube");
jkSetPOVModel(player, povModel);
ID = 9525;
SendMessageEx(GetInvCog(player, 131), user0, player, 7, 0, ID);
PlayMode(player, 41);
PlaySoundThing(mountSound, player, 1.0, -1, -1, 0x80);
SetMountWait(player, GetKeyLen(mountAnim));
jkClearFlags(player, 0x5);
SetCurWeapon(player, 7);
burst = 1;
Delay = 0;
reloading = 0;
rocketing = 1;
jkSetWeaponMesh(player, weaponMesh);
SetArmedMode(player, 1);
SendTrigger(-1, 700, player, 7, 0, 0);
SetInv(player, 21, 1);
SetInv(player, 22, 1);
SetInv(player, 23, 1);
SetInvAvailable(player, 21, 1);
SetInvAvailable(player, 22, 1);
SetInvAvailable(player, 23, 1);
SetInv(player, 14, (400 - magazine));
rocketslow = 1;
Return;
# ........................................................................................
deselected:
player = GetSourceRef();
ID = 9550;
SendMessageEx(GetInvCog(player, 131), user0, player, 7, 0, ID);
PlaySoundThing(dismountSound, player, 1.0, -1, -1, 0x80);
holsterWait = GetKeyLen(holsterAnim);
SetMountWait(player, holsterWait);
holsterTrack = PlayKey(player, holsterAnim, 1, 0x4);
SetTimerEx(holsterWait, 2, 0.0, 0.0);
jkSetWaggle(player, '0.0 0.0 0.0', 0);
KillTimerEx(4);
SendTrigger(-1, 710, player, 7, 0, 0);
KillTimerEx(21);
KillTimerEx(22);
if(dummy != -1)
{
ReleaseThing(dummy);
}
ID = 71;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
rocketing = 1;
Return;
# ........................................................................................
autoselect:
player = GetSourceRef();
// If the player has the weapon
if(GetInv(player, 7) != 0.0)
{
ReturnEx(500.0);
}
else
{
ReturnEx(-1.0);
}
Return;
# ........................................................................................
killed:
if(GetSenderRef() == player)
{
KillTimerEx(21);
KillTimerEx(22);
if(dummy != -1)
{
ReleaseThing(dummy);
}
magazine = 0;
ID = 71;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
rocketing = 1;
}
Return;
# ........................................................................................
user1:
if((magazine != 0) && (reloading == 0))
{
PlaySoundThing(outSound, player, 1.0, -1, -1, 0x80);
ID = 72;
SendMessageEx(GetInvCog(player, 131), user0, player, 7, 0, ID);
reloading = 1;
SetTimerEx(2.5, 4, 0, 0);
Print("Inserting New Clip...");
rocketing = 1;
}
Return;
# ........................................................................................
timer:
if(GetSenderId() == 1)
{
call shoot;
burst = (burst+1);
if(burst < 3)
{
SetTimerEx(0.12, 1, 0, 0);
}
Return;
}
if(GetSenderId() == 2)
{
StopKey(player, holsterTrack, 0.0);
Return;
}
if(GetSenderId() == 3)
{
Delay = 0;
Return;
}
if(GetSenderId() == 4)
{
magazine = 0;
reloading = 0;
Print("Loaded");
Return;
}
if(GetSenderId() == 5)
{
jkSetWeaponMesh(player, weaponMesh);
SetArmedMode(player, 1);
SendTrigger(-1, 700, player, 7, 0, 0);
Delay = 0;
Return;
}
if(GetSenderId() == 20)
{
dummy = GetParam(0);
SetThingVel(dummy, VectorScale(GetThingLVec(dummy), 2.5));
SetCollideType(dummy, 1);
Return;
}
if(GetSenderId() == 21)
{
dummy = GetParam(0);
player = GetParam(1);
victim = FirstThingInView(player, 90, 15, 0x404);
if((dummy != -1) && (victim != -1))
{
curvel = VectorScale(GetThingLVec(dummy), 2.0);
SetThingLook(dummy, VectorSub(GetThingPos(victim), GetThingPos(dummy)));
lookvel = VectorScale(GetThingLVec(dummy), 1.0);
SetThingVel(dummy, VectorAdd(curvel, lookvel));
SetTimerEx(0.2, 21, dummy, player);
}
SetCollideType(dummy, 1);
Return;
}
if(GetSenderId() == 22)
{
dummy = GetParam(0);
player = GetParam(1);
seekerthing = FireProjectile(player, LoadTemplate("+punch"), -1, -1, '0.0 0.05 0.0', '0 0 0', 1.0, 0x20, -1, -1);
SetThingLook(dummy, GetThingLVec(seekerthing));
SetThingVel(dummy, VectorScale(GetThingLVec(dummy), (2.0/rocketslow)));
SetCollideType(dummy, 1);
SetTimerEx(0.2, 22, dummy, player);
Return;
}
# ........................................................................................
user2:
KillTimerEx(21);
KillTimerEx(22);
if(dummy != -1)
{
ReleaseThing(dummy);
}
ID = 71;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
rocketing = 1;
if(GetParam(3) == 10)
{
if(firemode == 0)
{
Print("Firemode set to Seeking");
firemode = 1;
}
else if(firemode == 1)
{
Print("Firemode set to Guided");
firemode = 2;
}
else if(firemode == 2)
{
Print("Firemode set to Normal");
firemode = 0;
}
}
else if(GetParam(3) == 20)
{
if(reloading == 0)
{
PlaySoundThing(outSound, player, 1.0, -1, -1, 0x80);
ID = 72;
SendMessageEx(GetInvCog(player, 131), user0, player, 7, 0, ID);
reloading = 1;
SetTimerEx(2.5, 4, 0, 0);
Print("Inserting New Clip...");
}
else
{
Return;
}
if(damagemode == 0)
{
Print("Using Cluster Rockets");
damagemode = 1;
}
else if(damagemode == 1)
{
Print("Using Stun Rockets");
damagemode = 2;
}
else if(damagemode == 2)
{
Print("Using Concussion Rockets");
damagemode = 0;
}
}
Return;
# ........................................................................................
removed:
KillTimerEx(21);
KillTimerEx(22);
if(dummy != -1)
{
ReleaseThing(dummy);
}
ID = 71;
SendMessageEx(GetInvCog(player, 140), user0, player, dummy, 0, ID);
rocketing = 1;
Return;
# ........................................................................................
endAnd the Crossbow cog, the problem seems to only come up on the player's side when the other player(he was the host too) fires 1st fire. here's the cog:
Code:
# Jedi Knight Cog Script
#
# WEAP_CROSSBOW.COG
#
# WEAPON 5 Script - Crossbow
#
# - Affected by MagSealed sectors/surfaces.
#
# [YB & CYW]
#
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
symbols
model povModel=BowV.3do local
model weaponMesh=BowG.3do local
keyframe mountAnim=BowVmnt.key local
keyframe dismountAnim=BowVdis.key local
keyframe povfireAnim=BowVpst1.key local
keyframe holsterAnim=kyhlstr.key local
sound mountSound=df_bry_ready.wav local
sound dismountSound=PutWeaponAway01.wav local
sound chargeSound=disruptchargedfire1.wav local
sound fireSound1=disruptfire1.wav local
sound fireSound2=disruptfire1.wav local
sound outSound=trprout.wav local
template projectile=+crossbowbolt local
flex fireWait=0.175 local
flex delayTime local
flex error local
flex autoAimFOV=30 local
flex autoAimMaxDist=10 local
flex powerBoost local
flex holsterWait local
vector errorVec local
thing player local
int dummy local
int dummyb local
int trackID=-1 local
int channel=-1 local
int holsterTrack local
int retval=0 local
message startup
message activated
message deactivated
message selected
message deselected
message newplayer
message autoselect
message fire
message killed
message timer
message touched
end
# ========================================================================================
code
startup:
player = GetLocalPlayerThing();
Return;
# ........................................................................................
activated:
mode = GetSenderRef();
jkSetWaggle(player, '0.0 0.0 0.0', 0);
// Check Ammo - If we are out, autoselect best weapon.
if(GetInv(player, 12) < 2.0)
{
PlaySoundThing(outSound, player, 1.0, -1, -1, 0x80);
Return;
}
if(mode == 0)
{
if(Delay != 1)
{
Delay = 1;
SetTimerEx(0.6, 3, player, player);
PlaySoundThing(chargeSound, player, 1.0, -1, -1, 0x80);
}
}
else
{
powerBoost = GetInv(player, 63);
ActivateWeapon( player, fireWait/powerBoost, mode);
}
Return;
# ........................................................................................
fire:
// Check that the player is still alive.
if(GetThingHealth(player) <= 0) Return;
// Check Ammo - If we are out, autoselect best weapon.
if(GetInv(player, 12) < 2.0)
{
PlaySoundThing(outSound, player, 1.0, -1, -1, 0x80);
Return;
}
SetPOVShake('0.0 -.01 0.0', '2.0 0.0 0.0', .05, 80.0);
dummy = FireProjectile(player, projectile, firesound1, 8, '0.0207 0.0888 0.00', '0 0 0', 1.0, 0x20, autoAimFOV, autoAimFOV*2);
SetThingModel(dummy, LoadModel("bow0.3do"));
ChangeInv(player, 12, -2.0);
jkPlayPOVKey(player, povfireAnim, 1, 0x38);
powerBoost = GetInv(player, 63);
ChangeFireRate(player, fireWait/powerBoost);
Return;
# ........................................................................................
deactivated:
mode = GetSenderRef();
jkSetWaggle(player, '10.0 7.0 0.0', 350);
DeactivateWeapon(player, mode);
Return;
# ........................................................................................
selected:
// Play external animation
PlayMode(player, 41);
// Set up meshes and models.
jkSetPOVModel(player, povModel);
SetArmedMode(player, 1);
jkSetWeaponMesh(player, weaponMesh);
jkSetWaggle(player, '10.0 7.0 0.0', 350);
// Play sound and animation.
PlaySoundThing(mountSound, player, 1.0, -1, -1, 0x80);
trackID = jkPlayPOVKey(player, mountAnim, 0, 20);
SetMountWait(player, GetKeyLen(mountAnim));
// Set flags, etc.
jkClearFlags(player, 0x5);
SetCurWeapon(player, 5);
// Check Ammo - If we are out, autoselect best weapon.
if(GetInv(player, 12) < 2.0)
{
if((GetAutoSwitch() & 1))
SelectWeapon(player, AutoSelectWeapon(player, 1));
}
Delay = 0;
Return;
# ........................................................................................
deselected:
PlaySoundThing(dismountSound, player, 1.0, -1, -1, 0x80);
jkPlayPOVKey(player, dismountAnim, 0, 18);
holsterWait = GetKeyLen(holsterAnim);
SetMountWait(player, holsterWait);
holsterTrack = PlayKey(player, holsterAnim, 1, 0x4);
SetTimerEx(holsterWait, 2, 0.0, 0.0);
if (trackID != -1)
{
jkStopPOVKey(player, trackID, 0);
trackID = -1;
}
jkSetWaggle(player, '0.0 0.0 0.0', 0);
if(channel != -1)
{
StopSound(channel, 0.1);
channel = -1;
}
Return;
# ........................................................................................
killed:
if (player == GetSenderRef())
{
if(channel != -1)
{
StopSound(channel, 0.1);
channel = -1;
}
}
Return;
# ........................................................................................
newplayer:
// // Make sure that if the player is respawning, the old mount isn't playing anymore.
// if (trackID != -1)
// {
// jkStopPOVKey(player, trackID, 0);
// trackID = -1;
// }
if(channel != -1)
{
StopSound(channel, 0.1);
channel = -1;
}
Return;
# ........................................................................................
autoselect:
// If the player has the weapon
if(GetInv(player, 5) != 0.0)
{
// If the player has ammo
if(GetInv(player, 12) > 1.0)
{
ReturnEx(700.0);
}
else
{
ReturnEx(-1.0);
}
}
else
{
ReturnEx(-1.0);
}
Return;
# ........................................................................................
timer:
if(GetSenderID() == 2)
{
StopKey(player, holsterTrack, 0.0);
}
if(GetSenderID() == 3)
{
dummy = FireProjectile(player, projectile, -1, -1, '0.0207 0.0888 0.00', '0 0 0', 1.0, 0x20, autoAimFOV, autoAimFOV*2);
SetCollideType(dummy, 0);
SetThingVel(dummy, GetThingVel(player));
SetLifeLeft(dummy, 0.125);
SetThingModel(dummy, LoadModel("laserflash.3do"));
dummy = FireProjectile(player, projectile, -1, 8, '0.0207 0.0888 0.00', '0 0 0', 1.0, 0x20, autoAimFOV, autoAimFOV*2);
SetThingVel(dummy, VectorScale(GetThingLVec(dummy), 15));
CaptureThing(dummy);
SetThingModel(dummy, LoadModel("bow0.3do"));
ChangeInv(player, 12, -10.0);
Delay = 0;
jkPlayPOVKey(player, povfireAnim, 1, 0x38);
}
Return;
# ........................................................................................
touched:
// Bullet damage done here
victim = GetSourceRef();
dummy = GetSenderRef();
if(GetThingType(victim) == 10) // OTHER PLAYER
{
retval = SkillTarget(victim, player, 5, 5);
if((IsMulti()) && (victim == player)) // Because skill target wont be coming back to the player's side in a multiplayer game
{
SetThingFlags(victim, 0x10);
dummyb = FireProjectile(victim, LoadTemplate("+bryarbolt"), -1, -1, '0.0 0.0 0.0', '0 0 0', 1.0, 0x20, -1, -1);
SetThingFlags(dummyb, 0x10);
SetCollideType(dummyb, 0);
SetThingVel(dummyb, GetThingVel(victim));
SetThingModel(dummyb, LoadModel("sabp.3do"));
DamageThing(victim, 10000, 0x8, player);
}
Print("hit");
}
else // ANY OTHER ENEMY
{
SetThingFlags(victim, 0x10);
dummyb = FireProjectile(victim, LoadTemplate("+bryarbolt"), -1, -1, '0.0 0.0 0.0', '0 0 0', 1.0, 0x20, -1, -1);
SetThingFlags(dummyb, 0x10);
SetCollideType(dummyb, 0);
SetThingVel(dummyb, GetThingVel(victim));
SetThingModel(dummyb, LoadModel("sabp.3do"));
DamageThing(victim, 10000, 0x8, player);
}
if(dummy != -1)
{
ReleaseThing(dummy);
}
Return;
endThis is another cog that might have something to do with the problems... :
Code:
# Jedi Knight Cog Script
#
# PROJECTILES.COG
#
# controls custom projectiles
#
# __Ace_1__
flags=0x240
symbols
template changetpl=+crossbowbolt local
model newmodel=str0.3do local
flex i local
int player local
int dummy local
int dummy2 local
int dummy3 local
int dummy4 local
int dummy5 local
message startup
message shutdown
message pulse
end
# ========================================================================================
code
startup:
SetPulse(0.01);
Return;
# ........................................................................................
shutdown:
SetPulse(0);
Return;
# ........................................................................................
pulse:
for(i=0; i<=GetThingCount(); i=i+1)
{
if(GetThingTemplate(i) == LoadTemplate("+bryarbolt"))
{
if(GetThingModel(i) == LoadModel("sabp.3do"))
{
dummy = FireProjectile(i, LoadTemplate("+disint"), -1, -1, '0 0 0', '0 0 0', 1.0, 0x20, -1, -1);
SetThingModel(i, LoadModel("disint1.3do"));
SetLifeLeft(i, 0.1);
Print("disintergrate animation created");
}
if(GetThingModel(i) == LoadModel("bryg.3do"))
{
ParseArg(i, "explode=+blasthit fleshhit=+blastfleshhit damage=35.000000");
SetThingModel(i, LoadModel("bry0.3do"));
SetCollideType(i, 1);
DetachThing(i);
//SetThingVel(i, VectorScale(GetThingVel(i), 1.5));
SetThingVel(i, VectorScale(GetThingLVec(i), 6));
ClearThingFlags(i, 0x10);
Print("low power blasterbolt created");
}
if(GetThingModel(i) == LoadModel("strg.3do"))
{
ParseArg(i, "explode=+blasthit fleshhit=+blastfleshhit damage=70.000000");
SetThingModel(i, LoadModel("str0.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
Print("high power blasterbolt created");
}
if(GetThingModel(i) == LoadModel("stunner0.3do"))
{
ParseArg(i, "explode=+elecball fleshhit=+elecball2 damage=1.000000");
SetThingModel(i, LoadModel("stun0.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
}
if(GetThingModel(i) == LoadModel("stunner1.3do"))
{
ParseArg(i, "explode=+elecball fleshhit=+elecball2 damage=1.000000");
SetThingModel(i, LoadModel("stun1.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
Print("level 1 stunbolt created");
}
if(GetThingModel(i) == LoadModel("stunner2.3do"))
{
ParseArg(i, "explode=+elecball fleshhit=+elecball2 damage=1.000000");
SetThingModel(i, LoadModel("stun2.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
Print("level 2 stunbolt created");
}
if(GetThingModel(i) == LoadModel("stunner3.3do"))
{
ParseArg(i, "explode=+elecball fleshhit=+elecball2 damage=1.000000");
SetThingModel(i, LoadModel("stun3.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
Print("level 3 stunbolt created");
}
if(GetThingModel(i) == LoadModel("stunner4.3do"))
{
ParseArg(i, "explode=+elecball fleshhit=+elecball2 damage=1.000000");
SetThingModel(i, LoadModel("stun4.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
Print("level 4 stunbolt created");
}
if(GetThingModel(i) == LoadModel("stunner5.3do"))
{
ParseArg(i, "explode=+elecball fleshhit=+elecball2 damage=1.000000");
SetThingModel(i, LoadModel("stun5.3do"));
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 7));
ClearThingFlags(i, 0x10);
Print("level 5 stunbolt created");
}
if(GetThingModel(i) == LoadModel("melee0.3do"))
{
SetThingFlags(i, 0x10);
SetThingModel(i, LoadModel("melee1.3do"));
SetThingUserData(i, 405);
ParseArg(i, "explode=+blastsmoke fleshhit=+blastsmoke damage=25.000000 damageclass=0x1");
SetCollideType(i, 1);
DetachThing(i);
SetThingVel(i, VectorScale(GetThingLVec(i), 4));
Print("melee hit created");
}
}
if(GetThingTemplate(i) == LoadTemplate("+raildet"))
{
if(GetThingModel(i) == LoadModel("rld0.3do"))
{
ParseArg(i, "explode=+nconcussion_exp fleshhit=+nconcussion_exp");
SetThingModel(i, LoadModel("railrocket.3do"));
SetCollideType(i, 1);
DetachThing(i);
Print("concussion rocket created");
}
if(GetThingModel(i) == LoadModel("rld1.3do"))
{
ParseArg(i, "explode=+cluster_exp fleshhit=+cluster_exp");
SetThingModel(i, LoadModel("railrocket.3do"));
SetCollideType(i, 1);
DetachThing(i);
Print("cluster rocket created");
}
if(GetThingModel(i) == LoadModel("rld2.3do"))
{
ParseArg(i, "explode=+stunning_exp fleshhit=+stunning_exp");
SetThingModel(i, LoadModel("railrocket.3do"));
SetCollideType(i, 1);
DetachThing(i);
Print("stun rocket created");
}
}
if(GetThingTemplate(i) == LoadTemplate("+blastsmoke"))
{
SetThingLook(i, VectorSub(GetThingPos(jkGetLocalPlayer()), GetThingPos(i)));
}
if(GetThingTemplate(i) == LoadTemplate("+bigsmoke"))
{
SetThingLook(i, VectorSub(GetThingPos(jkGetLocalPlayer()), GetThingPos(i)));
}
}
Return;
# ........................................................................................
endPlease help...... I have no clue what's causing this problem
------------------
GetThingSignature(Ace1);
I am _ Ace_1 _ , and I approve this message.
