datablock AudioProfile(vectorFireSound){ filename = "./Vectorfire.wav"; description = AudioClosest3d; preload = true;};datablock ParticleData(vectorFlashParticle){ dragCoefficient = 0; gravityCoefficient = 0; inheritedVelFactor = 1; constantAcceleration = 0; lifetimeMS = 30; lifetimeVarianceMS = 0; textureName = "base/data/particles/cloud"; spinSpeed = 50; spinRandomMin = -500; spinRandomMax = 500; colors[0] = "1 1 1 1"; colors[1] = "0.4 0.4 0.4 0.5"; colors[2] = "0.2 0.2 0.2 0"; sizes[0] = 0.1; sizes[1] = 0.2; sizes[2] = 0; times[9] = 0; times[1] = 0.3; times[2] = 1; useInvAlpha = false;};datablock ParticleEmitterData(vectorFlashEmitter){ uiName = ""; ejectionPeriodMS = 3; periodVarianceMS = 0; ejectionVelocity = 50; velocityVariance = 0; ejectionOffset = 0; thetaMin = 0; thetaMax = 10; phiReferenceVel = 0; phiVariance = 360; overrideAdvance = false; particles = "vectorFlashParticle";};datablock ParticleData(vectorSmokeParticle){ dragCoefficient = 3; gravityCoefficient = -0.5; inheritedVelFactor = 0.2; constantAcceleration = 0.0; lifetimeMS = 525; lifetimeVarianceMS = 55; textureName = "base/data/particles/star1"; //this was a fail but ended up being a cool spark effect spinSpeed = 10.0; spinRandomMin = -500.0; spinRandomMax = 500.0; colors[0] = "1 1 0.0 0.9"; colors[1] = "0.9 0.0 0.0 0.0"; sizes[0] = 0.15; sizes[1] = 0.15; useInvAlpha = false;};datablock ParticleEmitterData(vectorSmokeEmitter){ ejectionPeriodMS = 3; periodVarianceMS = 0; ejectionVelocity = 1.0; velocityVariance = 1.0; ejectionOffset = 0.0; thetaMin = 0; thetaMax = 90; phiReferenceVel = 0; phiVariance = 360; overrideAdvance = false; particles = "vectorSmokeParticle"; uiName = "Vector Smoke";};datablock ExplosionData(VectorExplosion){ lifeTimeMS = 50; emitter[0] = vectorSmokeEmitter; faceViewer = true; explosionScale = "1 1 1"; shakeCamera = true; camShakeFreq = "5 5 5"; camShakeAmp = "1 1 1"; camShakeDuration = 0.5; camShakeRadius = 1;};//### ProjectileAddDamageType("vector",'<bitmap:Add-ons/Weapon_Tacticalweps/CI_vector> %1','%2 <bitmap:Add-ons/Weapon_Tacticalweps/CI_vector> %1',0.2,1);datablock ProjectileData(VectorProjectile){ projectileShapeName = "Add-ons/Weapon_Gun/bullet.dts"; directDamage = 16; directDamageType = $DamageType::vector;// radiusDamageType = $DamageType::vector; brickExplosionRadius = 0; brickExplosionImpact = true; //destroy a brick if we hit it directly? brickExplosionForce = 10; brickExplosionMaxVolume = 1; //max volume of bricks that we can destroy brickExplosionMaxVolumeFloati ng = 2; //max volume of bricks that we can destroy if they aren't connected to the ground impactImpulse = 0; verticalImpulse = 0; explosion = VectorExplosion; particleEmitter = ""; //bulletTrailEmitter; muzzleVelocity = 90; velInheritFactor = 1; armingDelay = 00; lifetime = 4000; fadeDelay = 3500; bounceElasticity = 0.0; bounceFriction = 0.0; isBallistic = false; gravityMod = 0.3; hasLight = false; lightRadius = 3.0; lightColor = "0 0 0.5"; uiName = "Vector Bullet";};//### Itemdatablock ItemData(vectorItem){ uiName = "TDi Vector Supressed"; //I be showin this to ma server iconName = ""; image = vectorImage; category = Weapon; className = Weapon; shapeFile = "./Vector.dts"; mass = 1; density = 0.2; elasticity = 0; friction = 0.6; emap = true; doColorShift = true; colorShiftColor = "1 1 1 1"; canDrop = true; maxAmmo = 30; //Vector y must u be shooting only once ;c canReload = 1;};//### Item Imagedatablock shapeBaseImageData(vectorImage){ shapeFile = "./Vector.dts"; emap = true; correctMuzzleVector = true; className = "WeaponImage"; item = bowItem; ammo = ""; casing = gunShellDebris; shellExitDir = "0.0 -5.0 -10.0"; shellExitOffset = "0 -10 -5"; shellExitVariance = 15.0; shellVelocity = 1.0; melee = false; doReaction = false; armReady = true; doColorShift = true; colorShiftColor = "1 1 1 1"; className = "WeaponImage"; // Projectile && Ammo. item = VectorItem; ammo = " "; projectile = VectorProjectile; projectileType = Projectile; casing = gunShellDebris; shellExitDir = "1.0 -0.1 1.0"; shellExitOffset = "0 0 0"; shellExitVariance = 10.0; shellVelocity = 5.0; stateName[0]= "Activate";stateTimeoutValue[0]= 0.3;stateWaitForTimeout[0]= true;stateTransitionOnTimeout[0]= "LoadCheckA";stateSound[0]= weaponSwitchSound;stateName[1] = "Ready";stateTransitionOnTriggerDown[1] = "Fire";stateAllowImageChange[1] = true;stateTimeoutValue[1]= 0.01;stateTransitionOnNoAmmo[1]= "Reload";stateName[2] = "Fire";stateTransitionOnTimeout[2] = "FireLoadCheckA";stateTimeoutValue[2] = 0.06;stateFire[2] = true;stateAllowImageChange[2] = false;stateSequence[2]= "Fire";stateScript[2]= "onFire";stateWaitForTimeout[2]= true;stateEmitter[2]= VectorFlashEmitter;stateEmitterTime[2]= 0.06;stateEmitterNode[2]= "muzzleNode";stateSound[2]= vectorfireSound; stateName[4] = "LoadCheckA"; stateScript[4] = "onLoadCheck"; stateTimeoutValue[4] = 0.01; stateTransitionOnTimeout[4] = "LoadCheckB"; stateName[5] = "LoadCheckB"; stateTransitionOnAmmo[5] = "Ready"; stateTransitionOnNoAmmo[5] = "Reload"; stateName[6] = "Reload"; stateTimeoutValue[6] = 0.6; stateScript[6] = "onReloadStart"; stateTransitionOnTimeout[6] = "Wait"; stateWaitForTimeout[6] = true; stateSound[6] = Block_MoveBrick_Sound; stateName[7] = "Wait"; stateTimeoutValue[7] = 0.4; stateScript[7] = "onReloaded"; stateTransitionOnTimeout[7] = "Ready"; stateSound[7] = Block_PlantBrick_Sound; stateName[8] = "FireLoadCheckA"; stateScript[8] = "onLoadCheck"; stateTimeoutValue[8] = 0.01; stateTransitionOnTimeout[8] = "FireLoadCheckB"; stateName[9] = "FireLoadCheckB"; stateTransitionOnAmmo[9] = "Smoke"; stateTransitionOnNoAmmo[9] = "ReloadSmoke"; stateName[10] = "Smoke"; stateEmitter[10] = gunSmokeEmitter; stateEmitterTime[10] = 0.3; stateEmitterNode[10] = "muzzleNode"; stateTimeoutValue[10] = 0.2; stateTransitionOnTimeout[10] = "Ready"; stateTransitionOnTriggerDown[10] = "Fire"; stateName[11] = "ReloadSmoke"; stateEmitter[11] = gunSmokeEmitter; stateEmitterTime[11] = 0.3; stateEmitterNode[11] = "muzzleNode"; stateTimeoutValue[11] = 0.2; stateTransitionOnTimeout[11] = "Reload";};function vectorImage::onFire(%this,%obj,%slot){ Parent::onFire(%this,%obj,%slot); %obj.playThread(2, plant); %obj.toolAmmo[%obj.currTool]--;}function vectorImage::onReloadStart(%this,%obj,%slot){ %obj.playThread(2, shiftLeft);}function vectorImage::onReloaded(%this,%obj,%slot){ %obj.playThread(2, shiftAway); %obj.toolAmmo[%obj.currTool] = %this.item.maxAmmo; %obj.setImageAmmo(%slot,1);}function vectorImage::onUnMount(%this,%obj,%slot){ %obj.playThread(2, root);}function vectorImage::onFire(%this,%obj,%slot){ %projectile = %this.projectile; %spread = 0.0010; %shellcount = 1; for(%shell=0; %shell<%shellcount; %shell++) { %vector = %obj.getMuzzleVector(%slot); %objectVelocity = %obj.getVelocity(); %vector1 = VectorScale(%vector, %projectile.muzzleVelocity); %vector2 = VectorScale(%objectVelocity, %projectile.velInheritFactor); %velocity = VectorAdd(%vector1,%vector2); %x = (getRandom() - 0.5) * 10 * 3.1415926 * %spread; %y = (getRandom() - 0.5) * 10 * 3.1415926 * %spread; %z = (getRandom() - 0.5) * 10 * 3.1415926 * %spread; %mat = MatrixCreateFromEuler(%x @ " " @ %y @ " " @ %z); %velocity = MatrixMulVector(%mat, %velocity); %p = new (%this.projectileType)() { dataBlock = %projectile; initialVelocity = %velocity; initialPosition = %obj.getMuzzlePoint(%slot); sourceObject = %obj; sourceSlot = %slot; client = %obj.client; }; MissionCleanup.add(%p); } return %p;}function vectorImage::onFire2(%this,%obj,%slot){ %projectile = %this.projectile; %spread = 0.0014; %shellcount = 1; for(%shell=0; %shell<%shellcount; %shell++) { %vector = %obj.getMuzzleVector(%slot); %objectVelocity = %obj.getVelocity(); %vector1 = VectorScale(%vector, %projectile.muzzleVelocity); %vector2 = VectorScale(%objectVelocity, %projectile.velInheritFactor); %velocity = VectorAdd(%vector1,%vector2); %x = (getRandom() - 0.5) * 10 * 3.1415926 * %spread; %y = (getRandom() - 0.5) * 10 * 3.1415926 * %spread; %z = (getRandom() - 0.5) * 10 * 3.1415926 * %spread; %mat = MatrixCreateFromEuler(%x @ " " @ %y @ " " @ %z); %velocity = MatrixMulVector(%mat, %velocity); %p = new (%this.projectileType)() { dataBlock = %projectile; initialVelocity = %velocity; initialPosition = %obj.getMuzzlePoint(%slot); sourceObject = %obj; sourceSlot = %slot; client = %obj.client; }; MissionCleanup.add(%p); } return %p;}
I'm assuming you're using Space Guy's ammo support script, so are you even executing it?