| Blockland Forums > Modification Help |
| Screwed-up Script. I require assistance. |
| (1/6) > >> |
| Kike:
Ok, I've having problems with a recent add-on I have released in which I can not spawn the item. The code is below this statement. --- Code: ---//SemiAutoRifle.cs //audio datablock AudioProfile(SemiAutoRifleShot1Sound) { filename = "./gunShot1.wav"; description = AudioClose3d; preload = true; }; datablock AudioProfile(SemiAutoRiflebulletHitSound) { filename = "./gunImpact1.wav"; description = AudioClose3d; preload = true; }; //shell datablock DebrisData(SemiAutoRifleShellDebris) { shapeFile = "./shell.dts"; lifetime = 2.0; minSpinSpeed = -400.0; maxSpinSpeed = 200.0; elasticity = 0.5; friction = 0.2; numBounces = 3; staticOnMaxBounce = true; snapOnMaxBounce = false; fade = true; gravModifier = 2; }; //muzzle flash effects datablock ParticleData(SemiAutoRifleFlashParticle) { dragCoefficient = 3; gravityCoefficient = -0.5; inheritedVelFactor = 0.2; constantAcceleration = 0.0; lifetimeMS = 25; lifetimeVarianceMS = 15; textureName = "./star7_small.png"; spinSpeed = 10.0; spinRandomMin = -500.0; spinRandomMax = 500.0; colors[0] = "0.9 0.9 0.9 0.9"; colors[1] = "1.0 1.0 1.0 1.0"; sizes[0] = 0.5; sizes[1] = 1.0; useInvAlpha = false; }; datablock ParticleEmitterData(SemiAutoRifleFlashEmitter) { ejectionPeriodMS = 3; periodVarianceMS = 0; ejectionVelocity = 1.0; velocityVariance = 1.0; ejectionOffset = 0.0; thetaMin = 0; thetaMax = 90; phiReferenceVel = 0; phiVariance = 360; overrideAdvance = false; particles = "SemiAutoRifleFlashParticle"; uiName = "SemiAutoRifle Flash"; }; datablock ParticleData(SemiAutoRifleSmokeParticle) { dragCoefficient = 3; gravityCoefficient = -0.5; inheritedVelFactor = 0.2; constantAcceleration = 0.0; lifetimeMS = 525; lifetimeVarianceMS = 55; textureName = "./smoke.png"; spinSpeed = 10.0; spinRandomMin = -500.0; spinRandomMax = 500.0; colors[0] = "0.5 0.5 0.5 0.9"; colors[1] = "0.5 0.5 0.5 0.0"; sizes[0] = 0.15; sizes[1] = 0.15; useInvAlpha = false; }; datablock ParticleEmitterData(SemiAutoRifleSmokeEmitter) { ejectionPeriodMS = 3; periodVarianceMS = 0; ejectionVelocity = 1.0; velocityVariance = 1.0; ejectionOffset = 0.0; thetaMin = 0; thetaMax = 90; phiReferenceVel = 0; phiVariance = 360; overrideAdvance = false; particles = "SemiAutoRifleSmokeParticle"; uiName = "SemiAutoRifle Smoke"; }; datablock ParticleData(SemiAutoRifleExplosionParticle) { dragCoefficient = 8; gravityCoefficient = 1; inheritedVelFactor = 0.2; constantAcceleration = 0.0; lifetimeMS = 700; lifetimeVarianceMS = 400; textureName = "base/data/particles/cloud"; spinSpeed = 10.0; spinRandomMin = -50.0; spinRandomMax = 50.0; colors[0] = "0.9 0.9 0.9 0.3"; colors[1] = "0.9 0.5 0.6 0.0"; sizes[0] = 0.25; sizes[1] = 0.75; useInvAlpha = true; }; datablock ParticleEmitterData(SemiAutoRifleExplosionEmitter) { ejectionPeriodMS = 1; periodVarianceMS = 0; ejectionVelocity = 2; velocityVariance = 1.0; ejectionOffset = 0.0; thetaMin = 89; thetaMax = 90; phiReferenceVel = 0; phiVariance = 360; overrideAdvance = false; particles = "SemiAutoRifleExplosionParticle"; useEmitterColors = true; uiName = "SemiAutoRifle Hit Dust"; }; datablock ParticleData(SemiAutoRifleExplosionRingParticle) { dragCoefficient = 8; gravityCoefficient = -0.5; inheritedVelFactor = 0.2; constantAcceleration = 0.0; lifetimeMS = 50; lifetimeVarianceMS = 35; textureName = "base/data/particles/star1"; spinSpeed = 500.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] = 1; sizes[1] = 0; useInvAlpha = false; }; datablock ParticleEmitterData(SemiAutoRifleExplosionRingEmitter) { lifeTimeMS = 50; ejectionPeriodMS = 3; periodVarianceMS = 0; ejectionVelocity = 0; velocityVariance = 0.0; ejectionOffset = 0.0; thetaMin = 89; thetaMax = 90; phiReferenceVel = 0; phiVariance = 360; overrideAdvance = false; particles = "SemiAutoRifleExplosionRingParticle"; useEmitterColors = true; uiName = "SemiAutoRifle Hit Flash"; }; datablock ExplosionData(SemiAutoRifleExplosion) { //explosionShape = ""; soundProfile = bulletHitSound; lifeTimeMS = 150; particleEmitter = SemiAutoRifleExplosionEmitter; particleDensity = 5; particleRadius = 0.2; emitter[0] = SemiAutoRifleExplosionRingEmitter; faceViewer = true; explosionScale = "1 1 1"; shakeCamera = false; camShakeFreq = "10.0 11.0 10.0"; camShakeAmp = "1.0 1.0 1.0"; camShakeDuration = 0.5; camShakeRadius = 10.0; // Dynamic light lightStartRadius = 0; lightEndRadius = 2; lightStartColor = "0.3 0.6 0.7"; lightEndColor = "0 0 0"; }; AddDamageType("SemiAutoRifle", '<bitmap:add-ons/Weapon_SemiAutoRifle/CI_SemiAutoRifle> %1', '%2 <bitmap:add-ons/Weapon_SemiAutoRifle/CI_SemiAutoRifle> %1',0.2,1); datablock ProjectileData(SemiAutoRifleProjectile) { projectileShapeName = "add-ons/weapon_gun/bullet.dts"; directDamage = 50; directDamageType = $DamageType::SemiAutoRifle; radiusDamageType = $DamageType::SemiAutoRifle; brickExplosionRadius = 0; brickExplosionImpact = true; //destroy a brick if we hit it directly? brickExplosionForce = 10; brickExplosionMaxVolume = 1; //max volume of bricks that we can destroy brickExplosionMaxVolumeFloating = 2; //max volume of bricks that we can destroy if they aren't connected to the ground impactImpulse = 400; verticalImpulse = 400; explosion = SemiAutoRifleExplosion; particleEmitter = ""; //bulletTrailEmitter; muzzleVelocity = 100; velInheritFactor = 1; armingDelay = 00; lifetime = 4000; fadeDelay = 3500; bounceElasticity = 0.5; bounceFriction = 0.20; isBallistic = false; gravityMod = 0.0; hasLight = false; lightRadius = 3.0; lightColor = "0 0 0.5"; uiName = "SemiAutoRifle Bullet"; }; ////////// // item // ////////// datablock ItemData(SemiAutoRifleItem) { category = "Weapon"; // Mission editor category className = "Weapon"; // For inventory system // Basic Item Properties shapeFile = "./SemiAutoRifle.dts"; rotate = false; mass = 1; density = 0.2; elasticity = 0.2; friction = 0.6; emap = true; //gui stuff uiName = "SemiAutoRifle"; iconName = "./icon_SemiAutoRifle"; doColorShift = false; colorShiftColor = "0.25 0.25 0.25 1.000"; // Dynamic properties defined by the scripts image = SemiAutoRifleImage; canDrop = true; }; //////////////// //weapon image// //////////////// datablock ShapeBaseImageData(SemiAutoRifleImage) { // Basic Item properties shapeFile = "./SemiAutoRifle.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; //"0.7 1.2 -0.5"; rotation = eulerToMatrix( "0 0 0" ); // 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 = SemiAutoRifleProjectile; projectileType = Projectile; casing = SemiAutoRifleShellDebris; 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 = false; colorShiftColor = SemiAutoRifleItem.colorShiftColor;//"0.400 0.196 0 1.000"; //Raycasting Weapons settings raycastWeaponRange = 10000; 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 = $TypeMasks::PlayerObjectType | //Targets the weapon can pierce through: AI/Players $TypeMasks::VehicleObjectType; //Vehicles raycastExplosionProjectile = gunprojectile; raycastExplosionSound = ""; //sound played by exploding gunprojectile raycastDirectDamage = 30; raycastCritDirectDamage = 70; raycastDirectDamageType = $DamageType::SemiAutoRifle; raycastCritDirectDamageType = $DamageType::SemiAutoRifleHeadshot; raycastSpreadCount = 1; raycastSpreadAmt = 0; //except for inaccuracy raycastTracerProjectile = SemiAutoRifleTrailProjectile; raycastCritTracerProjectile = SemiAutoRifleCritTrailProjectile; //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"; stateSound[0] = weaponSwitchSound; stateName[1] = "Ready"; stateTransitionOnTriggerDown[1] = "Fire"; stateAllowImageChange[1] = true; stateSequence[1] = "Ready"; stateName[2] = "Fire"; stateTransitionOnTimeout[2] = "Smoke"; stateTimeoutValue[2] = 0.14; stateFire[2] = true; stateAllowImageChange[2] = false; stateSequence[2] = "Fire"; stateScript[2] = "onFire"; stateWaitForTimeout[2] = true; stateEmitter[2] = SemiAutoRifleFlashEmitter; stateEmitterTime[2] = 0.05; stateEmitterNode[2] = "muzzleNode"; stateSound[2] = SemiAutoRifleShot1Sound; stateEjectShell[2] = true; stateName[3] = "Smoke"; stateEmitter[3] = SemiAutoRifleSmokeEmitter; stateEmitterTime[3] = 0.05; stateEmitterNode[3] = "muzzleNode"; stateTimeoutValue[3] = 0.01; stateTransitionOnTimeout[3] = "Reload"; stateName[4] = "Reload"; stateSequence[4] = "Reload"; stateTransitionOnTriggerUp[4] = "Ready"; stateSequence[4] = "Ready"; }; //////////////// //sights image// //////////////// datablock ShapeBaseImageData(SemiAutoRifleSightsImage) { // Basic Item properties shapeFile = "./SemiAutoRifle.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; "-0.024 6.809 2.275"; rotation = eulerToMatrix( "0 0 0" ); // 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 = SemiAutoRifleProjectile; projectileType = Projectile; casing = SemiAutoRifleShellDebris; 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 = false; colorShiftColor = SemiAutoRifleItem.colorShiftColor;//"0.400 0.196 0 1.000"; //Raycasting Weapons settings raycastWeaponRange = 10000; 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 = $TypeMasks::PlayerObjectType | //Targets the weapon can pierce through: AI/Players $TypeMasks::VehicleObjectType; //Vehicles raycastExplosionProjectile = gunprojectile; raycastExplosionSound = ""; //sound played by exploding gunprojectile raycastDirectDamage = 45; raycastCritDirectDamage = 95; raycastDirectDamageType = $DamageType::SemiAutoRifle; raycastCritDirectDamageType = $DamageType::SemiAutoRifleHeadshot; raycastSpreadCount = 1; raycastSpreadAmt = 0; //except for inaccuracy raycastTracerProjectile = SemiAutoRifleTrailProjectile; raycastCritTracerProjectile = SemiAutoRifleCritTrailProjectile; //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"; stateSound[0] = weaponSwitchSound; stateName[1] = "Ready"; stateTransitionOnTriggerDown[1] = "Fire"; stateAllowImageChange[1] = true; stateSequence[1] = "Ready"; stateName[2] = "Fire"; stateTransitionOnTimeout[2] = "Smoke"; stateTimeoutValue[2] = 0.14; stateFire[2] = true; stateAllowImageChange[2] = false; stateSequence[2] = "Fire"; stateScript[2] = "onFire"; stateWaitForTimeout[2] = true; stateEmitter[2] = SemiAutoRifleFlashEmitter; stateEmitterTime[2] = 0.05; stateEmitterNode[2] = "muzzleNode"; stateSound[2] = SemiAutoRifleShot1Sound; stateEjectShell[2] = true; stateName[3] = "Smoke"; stateEmitter[3] = SemiAutoRifleSmokeEmitter; stateEmitterTime[3] = 0.05; stateEmitterNode[3] = "muzzleNode"; stateTimeoutValue[3] = 0.01; stateTransitionOnTimeout[3] = "Reload"; stateName[4] = "Reload"; stateSequence[4] = "Reload"; stateTransitionOnTriggerUp[4] = "Ready"; stateSequence[4] = "Ready"; }; function SemiAutoRifleImage::onMount(%this, %obj, %slot) { %obj.hidenode("RHand"); %obj.hidenode("LHand"); } function SemiAutoRifleImage::onUnMount(%this, %obj, %slot) { %obj.unhidenode("RHand"); %obj.unhidenode("LHand"); } package SemiAutoRifleSightsSwitch { function armor::onTrigger(%this, %obj, %triggerNum, %val) { %client = %obj.client; if(%triggerNum == 4 && %obj.isImageMounted(SemiAutoRifleImage) && %val && %obj.toolAmmo[%obj.currTool] != 0) { %newAmmo = %obj.toolAmmo[%obj.currTool]; %obj.mountImage(SemiAutoRifleSightsImage, 0, 0, 0); %obj.toolAmmo[%obj.currTool] = %newAmmo; } else if(%triggerNum == 4 && %obj.isImageMounted(SemiAutoRifleSightsImage) && %val) { %newAmmo = %obj.toolAmmo[%obj.currTool]; %obj.mountImage(SemiAutoRifleImage, 0, 0, 0); %obj.toolAmmo[%obj.currTool] = %newAmmo; } Parent::onTrigger(%this, %obj, %triggerNum, %val); } }; activatePackage(SemiAutoRifleSightsSwitch); --- End code --- Note that I'm trying to get ironsighst on this weapon enabled. I would really appreciate it if someone can tell me how to fix this/fix it themselves. Thank you. |
| Kike:
Damn it people, I need help with this. |
| Uristqwerty:
Open your console and page up until you see it loading add-ons. See if there are any errors when it loads that one. |
| Kike:
Thanks. I'll check that right away. Edit: Fixed. Thank you. unLocked. Edit numero dos: Well stuff. Ironsights not work. |
| Kike:
Read above for problem |
| Navigation |
| Message Index |
| Next page |