Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- datablock ParticleData(smallBloodParticle)
- {
- dragCoefficient = 3;
- gravityCoefficient = 0.5;
- inheritedVelFactor = 0.3;
- constantAcceleration = 0;
- lifetimeMS = 1000;
- lifetimeVarianceMS = 250;
- textureName = "base/data/particles/dot";
- spinSpeed = 0;
- spinRandomMin = -20;
- spinRandomMax = 20;
- colors[0] = "0.6 0 0 1";
- colors[1] = "0.5 0 0 0.9 ";
- colors[2] = "0.4 0 0 0";
- sizes[0] = 0.06;
- sizes[1] = 0.09;
- sizes[2] = 0.04;
- times[1] = 0.5;
- times[2] = 1;
- useInvAlpha = true;
- };
- datablock ParticleEmitterData(smallBloodEmitter)
- {
- ejectionPeriodMS = 2;
- periodVarianceMS = 0;
- ejectionVelocity = 2;
- velocityVariance = 1.2;
- ejectionOffset = 0;
- thetaMin = 0;
- thetaMax = 180;
- phiReferenceVel = 0;
- phiVariance = 360;
- overrideAdvance = false;
- lifetimeMS = 3500;
- particles = "smallBloodParticle";
- uiName = "Bleed";
- };
- datablock DebrisData(CubeDebris)
- {
- shapeFile = "./cube.dts";
- lifetime = 3;
- minSpinSpeed = -200;
- maxSpinSpeed = 200;
- useRadiusMass = true;
- baseRadius = 0.1;
- elasticity = 0.5;
- friction = 0.2;
- numBounces = 1;
- staticOnMaxBounce = true;
- fade = true;
- gravModifier = 2;
- emitters[0] = smallBloodEmitter;
- };
- datablock ExplosionData(CubeLowExplosion)
- {
- uiName = "";
- lifetimeMS = 25;
- particleEmitter = smallBloodEmitter;
- particleDensity = 25;
- faceViewer = true;
- explosionScale = "1 1 1";
- //soundProfile = GoreExplosionSound;
- debris = CubeDebris;
- debrisNum = 1;
- debrisNumVariance = 1;
- debrisPhiMin = 0;
- debrisPhiMax = 360;
- debrisThetaMin = 0;
- debrisThetaMax = 360;
- debrisVelocity = 6;
- debrisVelocityVariance = 2;
- };
- datablock explosionData(CubeMediumExplosion : CubeLowExplosion)
- {
- debrisNum = 2;
- };
- datablock explosionData(CubeHighExplosion : CubeLowExplosion)
- {
- debrisNum = 2;
- };
- datablock ProjectileData(CubeLowExplosionProjectile)
- {
- projectileShapeName = "base/data/shapes/empty.dts";
- directDamage = 0;
- directDamageType = $DamageType::Default;
- radiusDamageType = $DamageType::Default;
- impactImpulse = 0;
- verticalImpulse = 0;
- explosion = cubeLowExplosion;
- brickExplosionRadius = 0;
- brickExplosionImpact = false;
- brickExplosionForce = 0;
- brickExplosionMaxVolume = 0;
- brickExplosionMaxVolumeFloating = 0;
- muzzleVelocity = 1;
- velInheritFactor = 1;
- lifetime = 10;
- bounceElasticity = 0;
- bounceFriction = 0;
- isBallistic = false;
- explodeOnDeath = true;
- hasLight = false;
- uiName = "Cube Low Explosion";
- };
- datablock projectileData(cubeMediumExplosionProjectile : cubeLowExplosionProjectile)
- {
- explosion = cubeMediumExplosion;
- uiName = "Cube Medium Explosion";
- };
- datablock projectileData(cubeHighExplosionProjectile : cubeLowExplosionProjectile)
- {
- explosion = cubeHighExplosion;
- uiName = "Cube High Explosion";
- };
- package CubeGore
- {
- function Player::Emote(%this,%image)
- {
- if(getSubStr(%image,0,7) $= "painLow")
- {
- %image = cubeLowExplosionProjectile;
- }
- if(getSubStr(%image,0,7) $= "painMid")
- {
- %image = cubeMediumExplosionProjectile;
- }
- if(getSubStr(%image,0,7) $= "painHig")
- {
- %image = cubeHighExplosionProjectile;
- }
- parent::Emote(%this,%image);
- }
- };
- activatePackage(cubeGore);
- package DamageStuff
- {
- function ProjectileData::Damage(%this, %obj, %col, %fade, %pos, %normal)
- {
- if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
- {
- //%damLoc = %col.getDamageLocation(%pos);
- %fvec = %col.getForwardVector();
- %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
- %vec2 = vectorNormalize(%obj.initialVelocity);
- %damloc = (vectorDot(%vec1,%vec2) > 0);
- %scale = getWord(%col.getScale(),2);
- if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
- {
- %hidestr = "headskin";
- for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
- for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
- }
- else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
- {
- //Torso shot
- if(%damLoc == 0)
- {
- %hidestr = "lhand lhook larm larmslim";
- }
- else
- {
- %hidestr = "rhand rhook rarm rarmslim";
- }
- }
- else
- {
- //Leg shot
- if(%damLoc == 0)
- {
- %hidestr = "lshoe lpeg";
- }
- else
- {
- %hidestr = "rshoe rpeg";
- }
- }
- for(%i=0;%i<getWordCount(%hidestr);%i++)
- {
- %node = getWord(%hidestr,%i);
- if(%col.isNodeVisible(%node) && strStr(%col.chainsawUnhideStr," " @ %node) == -1)
- %col.chainsawUnhideStr = %col.chainsawUnhideStr SPC %node;
- %col.hideNode(%node);
- }
- cancel(%col.chainsawResetSched);
- %col.chainsawResetSched = %col.schedule(5000,chainsawReset);
- }
- Parent::Damage(%this, %obj, %col, %fade, %pos, %normal);
- }
- };
- activatePackage("DamageStuff");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement