Author Topic: OnUnMount does not work on a certain script but works on others  (Read 864 times)

I've been yelling at my computer for being a total piece of stuff for the last our because in a certain script, this loving image WONT loving RECOGNIZE ONUNMOUNT.
Does ANYONE know what I'm doing wrong!?
It worked before!
Code: [Select]
AddDamageType("TF2Minigun",   '<bitmap:add-ons/Weapon_TF2Minigun/CI_Minigun> %1',    '%2 <bitmap:add-ons/Weapon_TF2Minigun/CI_Minigun> %1',0.5,1);

datablock DecalData(TF2MinigunCI)
{
    textureName = "./CI_Minigun";
};    

datablock DecalData(TF2minigunIcon)
{
    textureName = "./icon_TF2minigun";
};

datablock AudioProfile(TF2MinigunFireLoopSound)
{
filename = "./TF2MinigunFireLoop.wav";
description = AudioClosestLooping3d;
preload = true;
};

datablock AudioProfile(TF2MinigunFireSound)
{
filename = "./TF2MinigunFire.wav";
description = AudioClosest3d;
preload = true;
};

datablock AudioProfile(TF2MinigunSpinLoopSound)
{
filename = "./TF2MinigunSpinLoop.wav";
description = AudioClosestLooping3d;
preload = true;
};

datablock AudioProfile(TF2MinigunSpinupSound)
{
filename = "./TF2MinigunSpinup.wav";
description = AudioClosest3d;
preload = true;
};

datablock AudioProfile(TF2MinigunSpindownSound)
{
filename = "./TF2MinigunSpindown.wav";
description = AudioClosest3d;
preload = true;
};

datablock AudioProfile(TF2MinigunRicSound)
{
filename = "./TF2MinigunRic.wav";
description = AudioClosest3d;
preload = true;
};

datablock ParticleData(TF2MinigunFlashParticle)
{
   dragCoefficient = 0;
   gravityCoefficient = 0;
   inheritedVelFactor = 1;
   constantAcceleration = 0;
   lifetimeMS = 30;
   lifetimeVarianceMS = 0;
   //textureName = "./muzzle";
   textureName = "base/data/particles/cloud";
   spinSpeed = 10;
   spinRandomMin = -500;
   spinRandomMax = 500;
   colors[0] = "1 1 0.5 0.5";
   colors[1] = "1 0.5 0 0.5";
   colors[2] = "1 0 0 0.5";
   sizes[0] = 0.9;
   sizes[1] = 0;
   sizes[2] = 0;
   useInvAlpha = false;
};

datablock ParticleEmitterData(TF2MinigunFlashEmitter)
{
   ejectionPeriodMS = 3;
   periodVarianceMS = 0;
   ejectionVelocity = 50;
   velocityVariance = 0;
   ejectionOffset = 0;
   thetaMin = 0;
   thetaMax = 1;
   phiReferenceVel = 0;
   phiVariance = 360;
   overrideAdvance = false;
   particles = "TF2MinigunFlashParticle";
   uiName = "TF2 Minigun Flash";
};

datablock ParticleData(TF2MinigunSmokeParticle)
{
   dragCoefficient         = 4;
   gravityCoefficient    = -1.0;
   inheritedVelFactor    = 0.2;
   constantAcceleration = 0.0;
   lifetimeMS                = 425;
   lifetimeVarianceMS    = 55;
   textureName               = "base/data/particles/cloud";
   spinSpeed = 10.0;
   spinRandomMin = -500.0;
   spinRandomMax = 500.0;
   colors[0]       = "0.5 0.5 0.5 0.7";
   colors[1]       = "0.5 0.5 0.5 0.0";
   sizes[0]         = 0.05;
   sizes[1]         = 0.25;
   useInvAlpha = false;
};
datablock ParticleEmitterData(TF2MinigunSmokeEmitter)
{
   ejectionPeriodMS = 10;
   periodVarianceMS = 0;
   ejectionVelocity = 1.0;
   velocityVariance = 1.0;
   ejectionOffset    = 0.0;
   thetaMin             = 0;
   thetaMax             = 90;
   phiReferenceVel   = 0;
   phiVariance         = 360;
   overrideAdvance = false;
   particles = "TF2MinigunSmokeParticle";
};

//////////
// item //
//////////
datablock ItemData(TF2MinigunItem)
{
category = "Weapon";  // Mission editor category
className = "Weapon"; // For inventory system

// Basic Item Properties
shapeFile = "./Minigun.dts";
rotate = false;
mass = 1;
density = 0.2;
elasticity = 0.2;
friction = 0.6;
emap = true;

//gui stuff
uiName = "TF2 Minigun";
iconName = "./icon_TF2Minigun";
doColorShift = true;
colorShiftColor = "0.1 0.1 0.1 1.000";

// Dynamic properties defined by the scripts
image = TF2MinigunIdleImage;
canDrop = true;
};

////////////////
//weapon image//
////////////////
datablock ShapeBaseImageData(TF2MinigunIdleImage)
{
   // Basic Item properties
   shapeFile = "./Minigun.dts";
   emap = true;

   // Specify mount point & offset for 3rd person, and eye offset
   // for first person rendering.
   mountPoint = 0;
   offset = "0 -0.1 -0.5";
   eyeOffset = "0.30 1 -0.5";
   rotation = eulerToMatrix( "75 0 0" );
   eyerotation = eulerToMatrix( "75 50 -25" );

   // When firing from a point offset from the eye, muzzle correction
   // will adjust the muzzle vector to point to the eye LOS point.
   // Since this weapon doesn't actually fire from the muzzle point,
   // we need to turn this off.  
   correctMuzzleVector = true;

   // Add the WeaponImage namespace as a parent, WeaponImage namespace
   // provides some hooks into the inventory system.
   className = "WeaponImage";

   // Projectile && Ammo.
   item = BowItem;
   ammo = " ";
   projectile = TF2MinigunProjectile;
   projectileType = Projectile;

casing = GunShellDebris;
shellExitDir        = "1.0 -1.3 1.0";
shellExitOffset     = "0 0 0";
shellExitVariance   = 15.0;
shellVelocity       = 7.0;

   //melee particles shoot from eye node for consistancy
   melee = false;
   //raise your arm up or not
   armReady = true;

   doColorShift = true;
   colorShiftColor = TF2MinigunItem.colorShiftColor;//"0.1 0.1 0.1 1.000";

   //casing = " ";

   // Images have a state system which controls how the animations
   // are run, which sounds are played, script callbacks, etc. This
   // state system is downloaded to the client so that clients can
   // predict state changes and animate accordingly.  The following
   // system supports basic ready->fire->reload transitions as
   // well as a no-ammo->dryfire idle state.

   // Initial start up state
stateName[0]                    = "Activate";
stateTimeoutValue[0]            = 0.15;
stateTransitionOnTimeout[0]     = "Ready";
stateSequence[0] = "root";
stateSound[0] = weaponSwitchSound;
stateScript[0]                  = "onActivate";

stateName[1]                    = "Ready";
stateTransitionOnTriggerDown[1] = "Spinup";
stateSequence[1] = "root";
stateAllowImageChange[1]        = true;
stateTransitionOnNoAmmo[1] = "Spinup";

stateName[2]                    = "Spinup";
stateScript[2]                  = "onSpinup";
stateAllowImageChange[2]        = false;
stateTransitionOnTimeout[2]     = "Fire";
stateTimeoutValue[2]            = 0.67;
stateSequence[2] = "Spin";

stateName[3] = "Fire";
stateScript[3]                  = "onFire";
};

function TF2MinigunIdleImage::onUnMount(%this,%obj,%slot)
{
parent::OnUnMount(%this,%obj,%slot);
%obj.stopAudio(2);
%obj.stopAudio(3);
schedule(10,0,TF2MinigunUnMount,%obj);
}

function TF2MinigunIdleImage::onActivate(%this,%obj,%slot)
{
%obj.setImageAmmo(0, 1);
%obj.TF2MinigunTriggerdown = 0;
}

function TF2MinigunIdleImage::onFire(%this,%obj,%slot)
{
%obj.mountimage(TF2MinigunSpinupimage,0);
}

function TF2MinigunIdleImage::onSpinup(%this,%obj,%slot)
{
%obj.playAudio(2,TF2MinigunSpinupSound);
}

package TF2MinigunAltFire
{
function Armor::onTrigger(%this, %obj, %slot, %val)
{
if(%obj.getMountedImage(0) $= TF2MinigunIdleImage.getID() && %slot $= 4 && %val == 1)
{
%obj.TF2MinigunTriggerdown = 1;
//%obj.setImageAmmo(0, 0);
schedule(10,0,TF2MinigunTriggerDown,%obj);
}
if(%obj.getMountedImage(0) $= TF2MinigunIdleImage.getID() && %slot $= 4 && %val == 0)
{
%obj.TF2MinigunTriggerdown = 0;
%obj.setImageAmmo(0, 1);
}
if(%obj.getMountedImage(0) $= TF2MinigunImage.getID() && %slot $= 4 && %val == 1)
{
%obj.TF2MinigunTriggerdown = 1;
//%obj.setImageAmmo(0, 0);
schedule(10,0,TF2MinigunTriggerDown,%obj);
}
if(%obj.getMountedImage(0) $= TF2MinigunImage.getID() && %slot $= 4 && %val == 0)
{
%obj.TF2MinigunTriggerdown = 0;
%obj.setImageAmmo(0, 1);
}    
Parent::onTrigger(%this, %obj, %slot, %val);
}

};
activatePackage(TF2MinigunAltFire);

function TF2MinigunTriggerDown(%obj)
{
if(%obj.TF2MinigunTriggerDown == 1)
{
%obj.setImageAmmo(0, 0);
schedule(10,0,TF2MinigunTriggerDown,%obj);
%obj.playthread(2, plant);
}
if(%obj.TF2MinigunTriggerDown == 0)
{
%obj.setImageAmmo(0, 1);
}
}

function TF2MinigunUnMount(%obj)
{
if(isobject(%obj.getmountedimage(0)) && (%obj.getmountedimage(0).getname() !$= "TF2MinigunSpinupImage" && %obj.getmountedimage(0).getname() !$= "TF2MinigunSpindownImage" && %obj.getmountedimage(0).getname() !$= "TF2MinigunImage"))
{
%obj.TF2MinigunTriggerdown = 0;
}
}


////////////////
//weapon image//
////////////////
datablock ShapeBaseImageData(TF2MinigunSpinupImage)
{
   // Basic Item properties
   shapeFile = "./Minigun.dts";
   emap = true;

   // Specify mount point & offset for 3rd person, and eye offset
   // for first person rendering.
   mountPoint = 0;
   offset = "0 -0.05 -0.25";
   eyeOffset = "0.30 0.75 -0.5";
   rotation = eulerToMatrix( "37.5 0 0" );
   eyerotation = eulerToMatrix( "38.5 25 -11" );

   doColorShift = true;
   colorShiftColor = TF2MinigunItem.colorShiftColor;//"0.1 0.1 0.1 1.000";

   //casing = " ";

   // Images have a state system which controls how the animations
   // are run, which sounds are played, script callbacks, etc. This
   // state system is downloaded to the client so that clients can
   // predict state changes and animate accordingly.  The following
   // system supports basic ready->fire->reload transitions as
   // well as a no-ammo->dryfire idle state.

   // Initial start up state
stateName[0]                    = "Activate";
stateSequence[0] = "spin";
stateTimeoutValue[0]            = 0.2;
stateTransitionOnTimeout[0]     = "Ready";
stateAllowImageChange[0]        = false;

stateName[1] = "Ready";
stateSequence[1] = "spin";
statescript[1] = "OnReady";
};

function TF2MinigunSpinupImage::onReady(%this,%obj,%slot)
{
%obj.mountimage(TF2Minigunimage,0);
}

function TF2MinigunSpinupImage::onUnMount(%this,%obj,%slot)
{
parent::OnUnMount(%this,%obj,%slot);
%obj.stopAudio(2);
%obj.stopAudio(3);
schedule(10,0,TF2MinigunUnMount,%obj);
}

////////////////
//weapon image//
////////////////
datablock ShapeBaseImageData(TF2MinigunSpindownImage : TF2MinigunSpinupImage)
{
   // Initial start up state
stateName[0]                    = "Activate";
stateSequence[0] = "root";
stateTimeoutValue[0]            = 0.2;
stateTransitionOnTimeout[0]     = "Ready";
stateAllowImageChange[0]        = false;
stateTransitionOnTriggerDown[0] = "Ready";

stateName[1] = "Ready";
stateSequence[1] = "root";
statescript[1] = "OnReady";
};

function TF2MinigunSpindownImage::onReady(%this,%obj,%slot)
{
%obj.mountimage(TF2MinigunIdleimage,0);
}

function TF2MinigunSpindownImage::onUnMount(%this,%obj,%slot)
{
parent::OnUnMount(%this,%obj,%slot);
%obj.stopAudio(3);
schedule(10,0,TF2MinigunUnMount,%obj);
}

////////////////
//weapon image//
////////////////
datablock ShapeBaseImageData(TF2MinigunImage)
{
   // Basic Item properties
   shapeFile = "./Minigun.dts";
   emap = true;

   // Specify mount point & offset for 3rd person, and eye offset
   // for first person rendering.
   mountPoint = 0;
   offset = "0 0 0";
   eyeOffset = "0.30 0.05 -0.5";
   rotation = eulerToMatrix( "0 0 0" );
   eyerotation = eulerToMatrix( "2 0 3" );

   // When firing from a point offset from the eye, muzzle correction
   // will adjust the muzzle vector to point to the eye LOS point.
   // Since this weapon doesn't actually fire from the muzzle point,
   // we need to turn this off.  
   correctMuzzleVector = true;

   // Add the WeaponImage namespace as a parent, WeaponImage namespace
   // provides some hooks into the inventory system.
   className = "WeaponImage";

   // Projectile && Ammo.
   item = BowItem;
   ammo = " ";
   projectile = TF2MinigunProjectile;
   projectileType = Projectile;

casing = GunShellDebris;
shellExitDir        = "1.0 -1.3 1.0";
shellExitOffset     = "0 0 0";
shellExitVariance   = 15.0;
shellVelocity       = 7.0;

   //melee particles shoot from eye node for consistancy
   melee = false;
   //raise your arm up or not
   armReady = true;

   doColorShift = true;
   colorShiftColor = TF2MinigunItem.colorShiftColor;//"0.1 0.1 0.1 1.000";

 //Raycasting Weapons settings
   raycastWeaponRange = 1000;
   raycastWeaponTargets = $TypeMasks::FxBrickObjectType | //Targets the weapon can hit: Raycasting Bricks
   $TypeMasks::PlayerObjectType | //AI/Players
   $TypeMasks::StaticObjectType | //Static Shapes
   $TypeMasks::TerrainObjectType | //Terrain
   $TypeMasks::VehicleObjectType; //Vehicles
   raycastWeaponPierceTargets = ""; //Gun cannot pierce
   raycastExplosionProjectile = gunprojectile;
   raycastExplosionSound = "TF2MinigunRicSound"; //sound played by exploding gunprojectile
   raycastDirectDamage = 9;
   raycastDirectDamageType = $DamageType::TF2Minigun;
   raycastSpreadCount = 1;
   raycastSpreadAmt = 0.004;
   raycastTracerProjectile = TF2BulletTrailProjectile;

   //casing = " ";

   // Images have a state system which controls how the animations
   // are run, which sounds are played, script callbacks, etc. This
   // state system is downloaded to the client so that clients can
   // predict state changes and animate accordingly.  The following
   // system supports basic ready->fire->reload transitions as
   // well as a no-ammo->dryfire idle state.

   // Initial start up state
stateName[0]                    = "Activate";
stateScript[0] = "OnActivate";
stateTimeoutValue[0]            = 0.15;
stateTransitionOnTimeout[0]     = "Ready";
stateSequence[0] = "Spin";

stateName[1]                    = "Ready";
stateScript[1] = "OnReady";
stateSequence[1] = "Spin";
stateTimeoutValue[1]            = 1.00;
stateTransitionOnTimeout[1]     = "Spindown";
stateTransitionOnTriggerDown[1] = "Fire";
stateTransitionOnNoAmmo = "AltFire";

stateName[2]                    = "AltFire";
stateScript[2]                  = "OnAltFire";
stateSequence[2] = "Spin";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnAmmo[2] = "Ready";

stateName[3]                    = "Fire";
stateSequence[3] = "Spin";
stateTransitionOnTimeout[3]     = "Smoke";
stateTimeoutValue[3]            = 0.01;
stateFire[3]                    = true;
stateAllowImageChange[3]        = false;
stateScript[3]                  = "onFire";
stateWaitForTimeout[3] = true;
stateEmitter[3] = TF2MinigunFlashEmitter;
stateEmitterTime[3] = 0.01;
stateEmitterNode[3] = "muzzleNode";
//stateSound[3] = TF2MinigunFireSound;
stateEjectShell[3]       = true;

stateName[4] = "Smoke";
stateEmitter[4] = TF2MinigunSmokeEmitter;
stateEmitterTime[4] = 0.05;
stateEmitterNode[4] = "muzzleNode";
stateTimeoutValue[4]            = 0.05;
stateTransitionOnTimeout[4]     = "Check";

stateName[5] = "Check";
stateScript[5] = "OnCheck";
stateTransitionOnTriggerUp[5] = "AltFire";
stateTransitionOnTriggerDown[5] = "Fire";

stateName[6]                    = "Spindown";
stateSequence[6] = "root";
stateScript[6]             = "OnSpindown";

};

function TF2MinigunImage::onUnMount(%this,%obj,%slot)
{
parent::OnUnMount(%this,%obj,%slot);
%obj.stopAudio(2);
%obj.stopAudio(3);
schedule(10,0,TF2MinigunUnMount,%obj);
}

function TF2MinigunImage::onActivate(%this,%obj,%slot)
{
%obj.SetImageAmmo(0, 1);
}

function TF2MinigunImage::onFire(%this,%obj,%slot)
{
Parent::onFire(%this,%obj,%slot);
%obj.TF2MinigunPlaySpinSound = 0;
if(!%obj.TF2MinigunPlayFireSound)
{
%obj.TF2MinigunPlayFireSound = 1;
%obj.playAudio(3,TF2MinigunFireLoopSound);
}
}

function TF2MinigunImage::onReady(%this,%obj,%slot)
{
%obj.TF2MinigunPlayFireSound = 0;
%obj.TF2MinigunPlaySpinSound = 0;
%obj.stopAudio(3);
}

function TF2MinigunImage::onAltFire(%this,%obj,%slot)
{
%obj.TF2MinigunPlayFireSound = 0;
if(!%obj.TF2MinigunPlaySpinSound)
{
%obj.TF2MinigunPlaySpinSound = 1;
%obj.playAudio(2,TF2MinigunSpinLoopSound);
}
%obj.stopAudio(3);
}

function TF2MinigunImage::onSpindown(%this,%obj,%slot)
{
%obj.mountimage(TF2MinigunSpindownimage,0);
%obj.playAudio(2,TF2MinigunSpindownSound);
%obj.stopAudio(3);
}

package TF2MinigunDropTool
{
function servercmdDropTool(%this,%slot)
{
if(isobject(%this.player.tool[%slot]) && %this.player.tool[%slot].getname() $= "TF2MinigunItem")
{
parent::servercmdDropTool(%this,%slot);
//if(isobject(%this.player.getmountedimage(0)) && %this.player.getmountedimage(0).getname() $= "TF2SpinupImage")
//if(getSubStr(%this.player.getMountedImage(0).getName, 0, 10) $= "TF2Minigun")
//if(isobject(%this.player.getmountedimage(0)) && (%this.player.getmountedimage(0).getname() $= ("TF2MinigunSpinupImage" || "TF2MinigunSpindownImage" || "TF2MinigunImage"))
if(isobject(%this.player.getmountedimage(0)) && (%this.player.getmountedimage(0).getname() $= "TF2MinigunSpinupImage" || %this.player.getmountedimage(0).getname() $= "TF2MinigunSpindownImage" || %this.player.getmountedimage(0).getname() $= "TF2MinigunImage"))
{
%this.player.schedule(5,unmountimage,0);
%obj.stopAudio(2);
%obj.stopAudio(3);
}
return;
}
parent::servercmdDropTool(%this,%slot);
}
};
activatepackage(TF2MinigunDropTool);


Last bit of console telling me how stuffty it is:
Code: [Select]
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (393): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (393): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (362): Unknown command onUnMount.

Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (585): Unable to find object: '' attempting to call function 'stopAudio'
BackTrace: ->[StoredVariable]servercmdDropTool->[AmmoGuns2]servercmdDropTool->[CTFpackage]servercmdDropTool->[Shield]servercmdDropTool->[gc_as50Package]servercmdDropTool->[gc_spas12Package]servercmdDropTool->[gc_rpg7Package]servercmdDropTool->[gc_frf2Package]servercmdDropTool->[gc_fnscarPackage]servercmdDropTool->[gc_FamasPackage]servercmdDropTool->[GreatSwordPackage]servercmdDropTool->[TF2MinigunDropTool]servercmdDropTool


Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (586): Unable to find object: '' attempting to call function 'stopAudio'
BackTrace: ->[StoredVariable]servercmdDropTool->[AmmoGuns2]servercmdDropTool->[CTFpackage]servercmdDropTool->[Shield]servercmdDropTool->[gc_as50Package]servercmdDropTool->[gc_spas12Package]servercmdDropTool->[gc_rpg7Package]servercmdDropTool->[gc_frf2Package]servercmdDropTool->[gc_fnscarPackage]servercmdDropTool->[gc_FamasPackage]servercmdDropTool->[GreatSwordPackage]servercmdDropTool->[TF2MinigunDropTool]servercmdDropTool

onUnMount only exists as a callback if someone declares it.

This:
parent::OnUnMount(%this,%obj,%slot);

Should be:
if(isFunction(%this, "onUnMount"))
    parent::OnUnMount(%this,%obj,%slot);

Hmm. Alright. That's odd though, because Gravity Cat's FRF2 seems to work without it.
Code: [Select]
function gc_frf2Image::onUnMount(%this,%obj,%slot)
{
  parent::onUnMount(%this,%obj,%slot);
  %obj.unMountImage(1);
  %obj.mountImage(gc_frf2BackImage,1);
}



also, i did what you said, and it didnt change anything other than the console spam which to be honest was the least of my worries
« Last Edit: August 29, 2010, 08:38:20 PM by The Titanium »

I added playthreads in which I was certain I coded correctly and I placed it inside the OnUnMount function.
And apparently it doesn't recognize it.
Why the forget not
All the other functions loving recognize it
somethings amiss
Code: [Select]
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.
  Object TF2MinigunImage(1022) TF2MinigunImage -> WeaponImage -> WeaponImage -> WeaponImage -> ShapeBaseImageData -> GameBaseData -> SimDataBlock -> SimObject -> SimObject -> SimObject
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.
  Object TF2MinigunImage(1022) TF2MinigunImage -> WeaponImage -> WeaponImage -> WeaponImage -> ShapeBaseImageData -> GameBaseData -> SimDataBlock -> SimObject -> SimObject -> SimObject
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.
  Object TF2MinigunImage(1022) TF2MinigunImage -> WeaponImage -> WeaponImage -> WeaponImage -> ShapeBaseImageData -> GameBaseData -> SimDataBlock -> SimObject -> SimObject -> SimObject
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.
  Object TF2MinigunImage(1022) TF2MinigunImage -> WeaponImage -> WeaponImage -> WeaponImage -> ShapeBaseImageData -> GameBaseData -> SimDataBlock -> SimObject -> SimObject -> SimObject
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.
  Object TF2MinigunImage(1022) TF2MinigunImage -> WeaponImage -> WeaponImage -> WeaponImage -> ShapeBaseImageData -> GameBaseData -> SimDataBlock -> SimObject -> SimObject -> SimObject
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.
  Object TF2MinigunImage(1022) TF2MinigunImage -> WeaponImage -> WeaponImage -> WeaponImage -> ShapeBaseImageData -> GameBaseData -> SimDataBlock -> SimObject -> SimObject -> SimObject
Add-Ons/Weapon_TF2Minigun/Weapon_TF2Minigun.cs (534): Unknown command playThread.

I found this out by myself without the help of any of you bastards.
Thank you so much!

I said that because no-one loving helps. You tried, at least. But no, you just walk away and slap me in the face with some stuffty joke.

I made a script that begins looping when you click the right mouse button and ends looping when you let go of the right mouse button.
This happens if you are holding a certain weapon which I specifically told to initiate a script that ends the looping if it unmounts.
I disabled every add-on besides this weapon.
It still happens. The onunmount script still doesn't work. And it's physically identical to the one that is used in the FRF2 and yet it does nothing at all.
Why.
WHY.
WHY.
« Last Edit: August 29, 2010, 09:07:52 PM by The Titanium »

-snip-
Sorry for triple bump.
« Last Edit: August 29, 2010, 10:07:30 PM by The Titanium »

Yeah, I would've helped  but now that I see you've called me a bastard I'm not going to.

hint: it's calling the playthread function on the weaponimage, not the player.