﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Anarchy Mods, Forums Feed</title><link>/</link><description>Forum Feed for AnarchyMods.com</description><ttl>5</ttl><item><title>How to log in a super and public admins?</title><description>
		&lt;p&gt;Ive set the appropate passwords in the anarchy server prefs file.&lt;/p&gt;
		&lt;p&gt;But I cannot not find the commands or how to login as super or pub admins.&lt;/p&gt;
		&lt;p&gt;I used to do this on base servers, but have long for gotin the console commands.&lt;/p&gt;
,</description><link>../default.aspx?pid=for_post&amp;topicid=002B8285-5EE6-496F-BA0F-77B2A212E6D9&amp;forumid=96C02122-420F-4FA3-8558-C841296E30A7</link><pubDate>1/21/2009 7:51:28 PM</pubDate></item><item><title>Anarchy Mod for Linux</title><description>It is possibly the wrong version as the .dso files are not platform dependent.  &lt;br /&gt;&lt;br /&gt;I will update the downloads page with the linux install.  Basically it is just unzipping the mod files to the mod folder and adding the options to the exe for the game.  &lt;br /&gt;&lt;br /&gt;I will make sure the links for everything are correct.  Since the site move I have been fixing broken links as they are found.,
		&lt;p&gt;I noticed there are zip files for a Tribes 2 Anarchy Mod for Linux.  But the links don't work.  Nor do the links work for the Linux update patch.&lt;/p&gt;
		&lt;p&gt;I've come across a download link for Tribes 2 - Linux here:&lt;/p&gt;
		&lt;p&gt;
				&lt;a href="http://t2.giantfriend.com/"&gt;http://t2.giantfriend.com/&lt;/a&gt;
		&lt;/p&gt;
		&lt;p&gt;As of 10/4/2008 the link still works.  The archive has just about every custom script installed along with it.  But I can't get the Anarchy Mod to work -- if I just copy from a Win32 install to a Linux install.  I assume the .dso files aren't compatible for some reason.   That or my version is wrong.&lt;/p&gt;
		&lt;p&gt; &lt;/p&gt;
,</description><link>../default.aspx?pid=for_post&amp;topicid=F67F5019-D4EB-459A-B20D-3E44ED90FC93&amp;forumid=C3EC71CB-E708-486A-9517-D763B8339547</link><pubDate>11/29/2008 8:54:38 PM</pubDate></item><item><title>Deployable Jumppad Difficulty Moderate</title><description>&lt;P&gt;--------------------------------------------------------------------------------------------------------------- &lt;BR&gt;Jumpad Tutorial &lt;BR&gt;--------------------------------------------------------------------------------------------------------------- &lt;BR&gt;This creates a deployable Jumpad that launches people into the air when touched. It's created as an item, instead of static, due to the greater sensitivity of item collisions when flat. &lt;BR&gt;Step #1&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// defaultGame.cs&lt;BR&gt;// ------------------------------------------&lt;/P&gt;
&lt;P&gt;function DefaultGame::clearDeployableMaxes(%game)&lt;BR&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TeamDeployedCount[%i, JumpadDeployable] = 0;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;Step #2&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// deployables.cs&lt;BR&gt;// ------------------------------------------&lt;/P&gt;
&lt;P&gt;2a)Near the top of the file add this:&lt;/P&gt;
&lt;P&gt;$TeamDeployableMax[JumpadDeployable] = 5;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;2b)All of this takes place in function ShapeBaseImageData::onDeploy:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(%item.deployed.className $= "DeployedTurret")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %className = "Turret";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %className = "StaticShape";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; becomes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(%item.deployed.className $= "DeployedTurret")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %className = "Turret";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (%item.deployed.className $= "Jumpad")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %className = "Item";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %className = "StaticShape";&lt;/P&gt;
&lt;P&gt;Next:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %deplObj = new (%className)()&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataBlock = %item.deployed;&lt;BR&gt;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; becomes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if (%item.deployed.classname $= "Jumpad")&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj = new (%className)()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataBlock = %item.deployed;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scale = "0.55 0.7 0.3";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj = new (%className)()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataBlock = %item.deployed;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;Next:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(%className $= "Turret")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj.setDeployRotation(%item.surfacePt, %item.surfaceNrm);&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj.setTransform(%item.surfacePt SPC %rot);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; becomes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(%className $= "Turret")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj.setDeployRotation(%item.surfacePt, %item.surfaceNrm);&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (%item.deployed.classname $= "Jumpad")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj.setDeployRotation(getWords(%item.surfacePt, 0, 1) SPC getWord(%item.surfacePt, 2) + 0.1, %item.surfaceNrm);&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj.setTransform(%item.surfacePt SPC %rot);&lt;/P&gt;
&lt;P&gt;Next:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %deplObj.deploy();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; becomes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if (%classname !$= "Item")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %deplObj.deploy();&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Step #3&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// inventoryHud.cs&lt;BR&gt;// ------------------------------------------&lt;BR&gt;Add this near the top of the file:&lt;/P&gt;
&lt;P&gt;$InvPack[18] = "Jump Pad";&lt;BR&gt;$NTInvPack[11] = "Jump Pad";&lt;BR&gt;$NameToInv["Jump Pad"] = "JumpadDeployable";&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Step #4&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// pack.cs&lt;BR&gt;// ------------------------------------------&lt;BR&gt;exec("scripts/packs/Jumpad.cs");&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Step #5&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// repairpack.cs&lt;BR&gt;// ------------------------------------------&lt;BR&gt;Find both instances of '%searchMasks =' in the file and add '| $TypeMasks::ItemObjectType' so the jumpad can be repaired.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Step #6&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// player.cs&lt;BR&gt;// ------------------------------------------&lt;/P&gt;
&lt;P&gt;6a) In each player datablock add this. Since it's a deployable, only mediums and heavies need it.&lt;BR&gt;&amp;nbsp;&amp;nbsp; max[JumpadDeployable] = 1;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;6b) At the bottom of function Armor::onCollision add this: (This handles the impulse. Adjust the 2200 for horizontal push and 7500 for vertical push).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (%className $= "Jumpad")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (%col.team == %obj.team)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %position = getWords(%obj.getTransform(), 0, 2);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %vel = %obj.getVelocity();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %x1 = getWord(%vel, 0) * 2200;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %y1 = getWord(%vel, 1) * 2200;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %impulseVec = %x1 SPC %y1 SPC 7500;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.applyImpulse(%position, %impulseVec);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.playAudio(0, MortarFireSound);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Step #7&lt;BR&gt;// ------------------------------------------&lt;BR&gt;// Jumpad.cs&lt;BR&gt;// ------------------------------------------&lt;BR&gt;Create a new file called Jumpad.cs in your packs directory and add all this:&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;//--------------------------------------------------------------------------&lt;BR&gt;// Jumpad&lt;BR&gt;//&lt;BR&gt;//&lt;BR&gt;//--------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;datablock ItemData(DeployedJumpad) : StaticShapeDamageProfile&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; className = Jumpad;&lt;BR&gt;&amp;nbsp;&amp;nbsp; shapeFile = "dmiscf.dts"; // dmiscf.dts, alternate&lt;BR&gt;&amp;nbsp;&amp;nbsp; maxDamage = 2.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; destroyedLevel = 2.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; disabledLevel = 2.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; pickupRadius = 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp; sticky=true;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; explosion&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = HandGrenadeExplosion;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expDmgRadius = 3.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expDamage = 0.1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expImpulse = 200.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; dynamicType = $TypeMasks::StaticShapeObjectType;&lt;BR&gt;&amp;nbsp;&amp;nbsp; deployedObject = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp; cmdCategory = "DSupport";&lt;BR&gt;&amp;nbsp;&amp;nbsp; cmdIcon = CMDSensorIcon;&lt;BR&gt;&amp;nbsp;&amp;nbsp; cmdMiniIconName = "commander/MiniIcons/com_deploymotionsensor";&lt;BR&gt;&amp;nbsp;&amp;nbsp; targetNameTag = 'Jump';&lt;BR&gt;&amp;nbsp;&amp;nbsp; targetTypeTag = 'Pad';&lt;BR&gt;&amp;nbsp;&amp;nbsp; deployAmbientThread = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp; debrisShapeName = "debris_generic_small.dts";&lt;BR&gt;&amp;nbsp;&amp;nbsp; debris = DeployableDebris;&lt;BR&gt;&amp;nbsp;&amp;nbsp; heatSignature = 0;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;datablock ShapeBaseImageData(JumpadDeployableImage)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; mass = 10;&lt;BR&gt;&amp;nbsp;&amp;nbsp; emap = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp; shapeFile = "Stackable1s.dts";&lt;BR&gt;&amp;nbsp;&amp;nbsp; item = JumpadDeployable;&lt;BR&gt;&amp;nbsp;&amp;nbsp; mountPoint = 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp; offset = "0 0 0";&lt;BR&gt;&amp;nbsp;&amp;nbsp; deployed = DeployedJumpad;&lt;BR&gt;&amp;nbsp;&amp;nbsp; heatSignature = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; stateName[0] = "Idle";&lt;BR&gt;&amp;nbsp;&amp;nbsp; stateTransitionOnTriggerDown[0] = "Activate";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; stateName[1] = "Activate";&lt;BR&gt;&amp;nbsp;&amp;nbsp; stateScript[1] = "onActivate";&lt;BR&gt;&amp;nbsp;&amp;nbsp; stateTransitionOnTriggerUp[1] = "Idle";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; isLarge = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp; maxDepSlope = 30; // 30&lt;BR&gt;&amp;nbsp;&amp;nbsp; deploySound = ItemPickupSound;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; minDeployDis = 0.5;&lt;BR&gt;&amp;nbsp;&amp;nbsp; maxDeployDis = 5.0;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;datablock ItemData(JumpadDeployable)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; className = Pack;&lt;BR&gt;&amp;nbsp;&amp;nbsp; catagory = "Deployables";&lt;BR&gt;&amp;nbsp;&amp;nbsp; shapeFile = "Stackable1s.dts";&lt;BR&gt;&amp;nbsp;&amp;nbsp; mass = 5.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; elasticity = 0.2;&lt;BR&gt;&amp;nbsp;&amp;nbsp; friction = 0.6;&lt;BR&gt;&amp;nbsp;&amp;nbsp; pickupRadius = 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp; rotate = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp; image = "JumpadDeployableImage";&lt;BR&gt;&amp;nbsp;&amp;nbsp; pickUpName = "a jump pad";&lt;BR&gt;&amp;nbsp;&amp;nbsp; heatSignature = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; emap = true;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;function JumpadDeployable::onPickup(%this, %obj, %shape, %amount)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; // created to prevent console errors&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;function DeployedJumpad::onDestroyed(%this, %obj, %prevState)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; Parent::onDestroyed(%this, %obj, %prevState);&lt;BR&gt;&amp;nbsp;&amp;nbsp; $TeamDeployedCount[%obj.team, JumpadDeployable]--;&lt;BR&gt;&amp;nbsp;&amp;nbsp; %obj.schedule(500, "delete");&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;//Functions below here give StaticShape damage to the Jumpad item.&lt;BR&gt;function DeployedJumpad::onDamage(%this,%obj)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; // Set damage state based on current damage level&lt;BR&gt;&amp;nbsp;&amp;nbsp; %damage = %obj.getDamageLevel();&lt;BR&gt;&amp;nbsp;&amp;nbsp; if(%damage &amp;gt;= %this.destroyedLevel)&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%obj.getDamageState() !$= "Destroyed")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.setDamageState(Destroyed);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if object has an explosion damage radius associated with it, apply explosion damage&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%this.expDmgRadius)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RadiusExplosion(%obj, %obj.getWorldBoxCenter(), %this.expDmgRadius, %this.expDamage, %this.expImpulse, %obj, $DamageType::Explosion);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%damage &amp;gt;= %this.disabledLevel)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%obj.getDamageState() !$= "Disabled")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.setDamageState(Disabled);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%obj.getDamageState() !$= "Enabled")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.setDamageState(Enabled);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;function DeployedJumpad::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; // if this is a non-team mission type and the object is "protected", don't damage it&lt;BR&gt;&amp;nbsp;&amp;nbsp; if(%data.noIndividualDamage &amp;amp;&amp;amp; Game.allowsProtectedStatics())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; // if this is a Siege mission and this object shouldn't take damage (e.g. vehicle stations)&lt;BR&gt;&amp;nbsp;&amp;nbsp; if(%data.noDamageInSiege &amp;amp;&amp;amp; Game.class $= "SiegeGame")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(%sourceObject)&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%sourceObject.client)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.lastDamagedBy = %sourceObject.client;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.lastDamagedByTeam = %sourceObject.client.team;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.damageTimeMS = GetSimTime();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.lastDamagedBy = %sourceObject;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.lastDamagedByTeam = %sourceObject.team;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.damageTimeMS = GetSimTime();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; // Scale damage type &amp;amp; include shield calculations...&lt;BR&gt;&amp;nbsp;&amp;nbsp; if (%data.isShielded)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %amount = %data.checkShields(%targetObject, %position, %amount, %damageType);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %damageScale = %data.damageScale[%damageType];&lt;BR&gt;&amp;nbsp;&amp;nbsp; if(%damageScale !$= "")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %amount *= %damageScale;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if team damage is off, cap the amount of damage so as not to disable the object...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$TeamDamage &amp;amp;&amp;amp; !%targetObject.getDataBlock().deployedObject)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //see if the object is being shot by a friendly&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(%sourceObject.getDataBlock().catagory $= "Vehicles")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %attackerTeam = getVehicleAttackerTeam(%sourceObject);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else %attackerTeam = %sourceObject.team;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isTargetFriendly(%targetObject.getTarget(), %attackerTeam))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %curDamage = %targetObject.getDamageLevel();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %availableDamage = %targetObject.getDataBlock().disabledLevel - %curDamage - 0.05;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (%amount &amp;gt; %availableDamage)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %amount = %availableDamage;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; // if there's still damage to apply&lt;BR&gt;&amp;nbsp;&amp;nbsp; if (%amount &amp;gt; 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %targetObject.applyDamage(%amount);&lt;BR&gt;}&lt;/P&gt;,</description><link>../default.aspx?pid=for_post&amp;topicid=4374508F-4FA9-404D-9967-3E72D94228CC&amp;forumid=5B3E9F70-F57E-4256-8323-FAAEE46F311A</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>Force Field Door Bug</title><description>Got ya,  I bet itis happening is because of being able to repack the FF's.  Since you can deploy and undeploy as soon as the item is off your back that would make sense.

There are actually two parts to the code that control the FF's.  Hhmm,  guess I need to delay the redeploying of FF's to correct this bug.

Thanks for the info, I will take a look to see how long it will take to fix.,it is very hard to explain the steps because i time it by the sound the doors make when u deploy them. when u deploy them u hear the sound right? but the door doesn't appear for about 2 or 3 seconds. just before the sound finshes u redeploy it. the door is made after the sound but because u redeploied the beacon at the same time the door was made, the door remained there forever without the beacon there. therefore making the door last forever. If you're still confused then the only way better to explain it to u is to go into the game and show you myself.,Can you be more specific as to what steps you are taking.  The code is setup so that the FF shape can't be created until the sensor object is there first.

To track down the bug, having all of the steps you perform, or timing would be very helpful.

Thanks for letting me know so I can track it down.

,if you time it just right u can deploy a ff door that doesn't have the little beacon thing so it becomes invincable and u can have infinite of these doors. its just a blue wall without the beacon. Basically unless you want to take alot of time all u have to do is make the ff doors unable to be redeploied so that once its there it stuck that way.,</description><link>../default.aspx?pid=for_post&amp;topicid=B2E04A9C-EDE8-4695-AA42-3E7E47385789&amp;forumid=477F4D1A-1039-4F0A-B3AF-0C114562624F</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>ff doors</title><description>I changed it to make it more like the T1 version.  I have gone back and forth on the idea and if more persons prefer it where they do not take damange I will change it back.

,Well, in that case away goes the FF door direct damage.  I have needed to do a maint release anyway.

I will work up the release and get it ready to go out with this and some minor changes.,I liked it better when you could not kill the FFDoor by hitting it anywhere
.. turrets kill mine all the time .. 
_____________________________________________________________________
EG 1:___When i am flagD and im guarding the flag and set up turrets/defencez the flame turrets really suck when thay see a enemy behind the FFD 
its like half a sec and the force is gone 
and i getta "GREEN BOOMEY" placed in my lap **CATCH** 

"say goodbye to all my Defence Work" ____**WaVeZ**____
______________________________________________________________________
EG 2:___All someone needs to do it set up a Flame/Rocket/Mortor turret near your FFD and when you run by 

"Its Gone!" _ "Do Not Pass Go" _ "Do Not Collect 200 Dollars"

(((And Yet Again "GREEN BOOMEY" Placed Directly Up Your ShAzBoT!))
======================================================================
||-VOTE#2________KillEcLiPz_________Would like it the old way plz??-||
======================================================================,in the new 2.5 mod release of anarchy u made the ff doors so u can attack any where to destroy it, but i liked it better before. did alot of people not like the old way or did you just change it for no reason?,</description><link>../default.aspx?pid=for_post&amp;topicid=841BBF89-02AE-4E76-9DE5-3F1CA9E6A0D1&amp;forumid=96C02122-420F-4FA3-8558-C841296E30A7</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>Shocklance turret</title><description>basicly as it says a shocklance turret. close range and is only placiable on buildings. besides the instant kill you get if you get too close to it, it should be cloaked forever unless it shoots. so its a good turret to have when they're alot of walls to come around the corner with.,</description><link>../default.aspx?pid=for_post&amp;topicid=778A7B0D-FEA0-4E8D-BFBC-3F493AB1F3B5&amp;forumid=C3EC71CB-E708-486A-9517-D763B8339547</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>Models and designs</title><description /><link>../default.aspx?pid=for_post&amp;topicid=2C99B218-9324-43F4-BBDD-3F9DF0703D1F&amp;forumid=DAC366CB-F12B-4279-A5CF-4599A5F00913</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>Grappling Hook - Difficulty Moderate</title><description>&lt;P&gt;Xenolith&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Here's my targeting laser from UltraXL, converted to a grapple-like thingy. I even will leave the commented out code from debugging and when I was experimenting with acceleration and gravity, making it more, "realistic". Even though it was more realistic, it wasn't any fun, so it was ditched. &lt;/P&gt;
&lt;P&gt;If you use this code without giving me credit, I won't sue you, I'll just beat the crap out of you. &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Code:&lt;BR&gt;--------------------------------------------------------------------------------&lt;BR&gt;&amp;nbsp;&lt;BR&gt;function TargetingLaserImage::onFire(%data,%obj,%slot)&lt;BR&gt;{&lt;BR&gt;//&amp;nbsp;&amp;nbsp; %p = Parent::onFire(%data, %obj, %slot);&lt;BR&gt;//&amp;nbsp;&amp;nbsp; %p.setTarget(%obj.team);&lt;BR&gt;if (%obj.holdingFlag) return;&lt;BR&gt;&amp;nbsp;%energy = %obj.getEnergyLevel();&lt;BR&gt;//&amp;nbsp;&amp;nbsp; echo("%energy = " @ %energy);&lt;BR&gt;&amp;nbsp;&amp;nbsp; %muzzlePos = %obj.getMuzzlePoint(%slot);&lt;BR&gt;&amp;nbsp;&amp;nbsp; %muzzleVec = %obj.getMuzzleVector(%slot);&lt;BR&gt;//echo("projectile distance&amp;nbsp; " @ %data.projectile.maxRifleRange);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %beamtime = 400;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %endPos&amp;nbsp;&amp;nbsp;&amp;nbsp; = VectorAdd(%muzzlePos, VectorScale(%muzzleVec, %data.projectile.maxRifleRange));&lt;BR&gt;//&amp;nbsp;&amp;nbsp; echo("%obj.client.heatSignature = " @ %obj.client.heatSignature);&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; %SearchMask = $TypeMasks::SensorObjectType |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TypeMasks::InteriorObjectType |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TypeMasks::ForceFieldObjectType |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TypeMasks::StaticObjectType |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TypeMasks::MoveableObjectType |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TypeMasks::DamagableItemObjectType |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $TypeMasks::TerrainObjectType;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; // did I miss anything? players, vehicles, stations, gens, sensors, turrets&lt;BR&gt;&amp;nbsp;&amp;nbsp; %hit = ContainerRayCast(%muzzlePos, %endPos, %SearchMask, %obj);&lt;BR&gt;&amp;nbsp;&amp;nbsp; %noDisplay = true;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if (%hit !$= "0")&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;%clientID = %obj.client;&lt;BR&gt;&amp;nbsp;if (%obj.client.beamer == 0 &amp;amp;&amp;amp; %energy &amp;gt; 15)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.client.beamer = 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;messageClient(%obj.getOwnerClient(), 'MsgBeamerStatus', '~wfx/weapons/cg_hard3.wav');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.setEnergyLevel(%energy - 15);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;beamerOn(%data, %obj, %hit, %slot);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;else&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;%obj.client.beamer = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isObject(%obj.beamproj)) %obj.beamproj.schedule(%beamtime, "delete");&lt;BR&gt;//&amp;nbsp;&amp;nbsp;if (isObject(%obj.lastProjectile))&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.lastProjectile.delete();&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.lastProjectile = "";&lt;BR&gt;//&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;messageClient(%obj.getOwnerClient(), 'MsgBeamerStatus', '~wfx/weapons/ELF_underwater.wav');&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;//&amp;nbsp;&amp;nbsp; echo("hitpos = " @ %hitpos);&lt;BR&gt;//&amp;nbsp;&amp;nbsp; echo("obj.position = " @ %obj.position);&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;function beamerOn(%data, %obj, %hit, %slot)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %beamtime = 400;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isObject(%obj.beamproj)) %obj.beamproj.schedule(%beamtime, "delete");&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&amp;nbsp;if (isObject(%obj.lastProjectile))&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.lastProjectile.delete();&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.lastProjectile = "";&lt;BR&gt;//&amp;nbsp;&amp;nbsp;}&lt;BR&gt;//&amp;nbsp;%clientID = %obj.client;&lt;BR&gt;&amp;nbsp;if (%obj.client.beamer != 1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.setHeat(1.0);&amp;nbsp; //max out the heat signature&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;%hitobj = getWord(%hit, 0);&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;%hitpos = getWord(%hit, 1) @ " " @ getWord(%hit, 2) @ " " @ getWord(%hit, 3);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %xhit = getword(%hitpos, 0);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %yhit = getword(%hitpos, 1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %zhit = getword(%hitpos, 2);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %xobj = getword(%obj.position, 0);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %yobj = getword(%obj.position, 1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %zobj = getword(%obj.position, 2);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %x = %xhit - %xobj;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %y = %yhit - %yobj;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %z = %zhit - %zobj;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %displacement = %x @ " " @ %y @ " " @ %z;&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%hitpos = %x @ " " @ %y @ " " @ %z;&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; echo("displacement1 = " @ %displacement);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %x = getword(%displacement, 0);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %y = getword(%displacement, 1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %z = getword(%displacement, 2);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %distance = mSqrt(%x * %x + %y * %y + %z * %z);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%x = %x / %distance;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%y = %y / %distance;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%z = %z / %distance;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%displacement = %x @ " " @ %y @ " " @ %z;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (%distance &amp;lt; 5&amp;nbsp; || %obj.client.beamer == 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;%obj.client.beamer = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;messageClient(%obj.getOwnerClient(), 'MsgBeamerStatus', '~wfx/weapons/ELF_underwater.wav');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isObject(%obj.beamproj)) %obj.beamproj.schedule(%beamtime, "delete");&lt;BR&gt;//&amp;nbsp;&amp;nbsp;if (isObject(%obj.lastProjectile))&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.lastProjectile.delete();&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;%obj.lastProjectile = "";&lt;BR&gt;//&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;%velocity = VectorScale(%displacement, 5);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.setVelocity(%velocity);&lt;BR&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;%velocity = %obj.getVelocity();&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%acceleration = VectorScale(%displacement, 20);&amp;nbsp; //&amp;nbsp; this defines the magnitude of the acceleration&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; echo("%acceleration = " @ %acceleration);&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%velocity = VectorAdd(%velocity, %acceleration);&lt;BR&gt;%z = %z + 0.25;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%fix = %x @ " " @ %y @ " " @ %z;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (%distance &amp;lt; 55)&amp;nbsp;%velocity = VectorScale(%fix, (%distance * 2));&lt;BR&gt;&amp;nbsp;else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%velocity = VectorScale(%fix, 110);&amp;nbsp; //was 500&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %obj.setVelocity(%velocity);&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; echo("velocity = " @ %velocity);&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %velocity = VectorScale(%obj.getVelocity(), 4);&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %x = getword(%velocity, 0);&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %y = getword(%velocity, 1);&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %z = getword(%velocity, 2);&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(mSqrt(%x * %x + %y * %y + %z * %z) &amp;gt; 300)&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %velocity = VectorScale(VectorNormalize(%velocity), 300);&lt;BR&gt;&amp;nbsp;&amp;nbsp; %muzzlePos = %obj.getMuzzlePoint(%slot);&lt;/P&gt;
&lt;P&gt;//Below is some code I should try&lt;BR&gt;//%VectorBetween = VectorSub(%Position1, %Position2);&lt;BR&gt;//%Length = VectorLen(%VectorBetween);&lt;BR&gt;//%data.Projectile.maxRifleRange = %Length;&lt;BR&gt;// %Projectile = new TargetProjectile()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; %obj.beamproj = new (%data.projectileType)() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataBlock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = %data.projectile;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; initialDirection = %displacement;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; initialPosition&amp;nbsp; = %muzzlePos;&lt;BR&gt;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sourceObject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = %obj;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; damageFactor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sourceSlot&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp; //%slot&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fadeTime&amp;nbsp;&amp;nbsp;&amp;nbsp;= %beamtime;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR&gt;//&amp;nbsp;&amp;nbsp; %obj.lastProjectile = %p;&lt;BR&gt;&amp;nbsp;&amp;nbsp; MissionCleanup.add(%obj.beamproj);&lt;BR&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %this.ELFrecur = %this.schedule(32, checkELFStatus, %data, %target, %targeter);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;schedule(%beamtime,0,"beamerOn",%data,%obj,%hit,%slot);&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;,</description><link>../default.aspx?pid=for_post&amp;topicid=C423A650-AD1D-42CC-A75D-41455A77B0D3&amp;forumid=5B3E9F70-F57E-4256-8323-FAAEE46F311A</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>Jet Particles</title><description>&lt;P&gt;----------------------------------------------------------------------------------------&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jet Particle Tut- by: MircoMitch&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brought Back to you- by: Drumstix42&lt;/P&gt;
&lt;P&gt;________________________________________________________________________________________&lt;/P&gt;
&lt;P&gt;Step 1:&lt;BR&gt;Figuring out what color you want your jet particle to be!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Well, this is really easy, for Windows users do this:&amp;nbsp; Start =&amp;gt; Run =&amp;gt; mspaint&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Thats right good, old, Microsoft Paint comes into play.(Wow, paint actually has a &lt;BR&gt;purpose now)&amp;nbsp; MAC Uses- Your screwed since I don't know MACs =)&amp;nbsp; Ok once in paint, &lt;BR&gt;click on Colors =&amp;gt; Edit Colors&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Once the window appears click Define Custom Colors.&amp;nbsp; &lt;BR&gt;Now this is the easy part, just got to click, and move the slider bar to a color &lt;BR&gt;you like.&amp;nbsp; Once you find the perfect one thats good =)&amp;nbsp; &lt;BR&gt;Ok now here is how Tribes 2 reads the colors.&amp;nbsp; colors[0] = "R G B A";&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Incase you didn't know it reads the colors like so&lt;BR&gt;Red Green Blue Alpha - Alpha is just the transparency I believe.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Now you see in mspaint under the slider bar, you see:&lt;BR&gt;Red : #&lt;BR&gt;Green: #&lt;BR&gt;Blue: #&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Good idea to write these numbers down.&amp;nbsp; Just the rounded digits, you will see in a moment.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Open up calculator in Windows.&amp;nbsp; Start =&amp;gt; Run =&amp;gt; calc&lt;BR&gt;Ok now lets do the Red.&amp;nbsp; I am using the number 19 for example.&lt;/P&gt;
&lt;P&gt;Type into the calculator 19/255&amp;nbsp; 19 divided by 255.&amp;nbsp; &lt;BR&gt;And your answer will be 0.074509803921568627450980392156863 a long ass &lt;BR&gt;string of numbers, but in our case we will round to the hundreths.&amp;nbsp; &lt;BR&gt;So your number will just 0.07 for Red.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Now for the green.&lt;BR&gt;45/255 outcome is 0.17647058823529411764705882352941.&amp;nbsp; So we will use 0.18 for green.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Now for the blue.&lt;BR&gt;221/255 outcome is 0.86666666666666666666666666666667&amp;nbsp; So we will just use 0.9.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Alpha we don't worry about yet.&amp;nbsp; So here is what we got&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Red-0.07&lt;BR&gt;Green-0.18&lt;BR&gt;Blue-0.9&lt;BR&gt;&amp;nbsp;&lt;BR&gt;So in Tribes 2 it would be like this colors[0]="0.07 0.18 0.9 A";&amp;nbsp; //A represents Alpha.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;This means we got a real nice blue color!&amp;nbsp; Fun stuff.&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Step 2:&lt;BR&gt;Making the particle effect itself.&lt;BR&gt;Ok open your player.cs once you got your color selection and numbers known.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Ok, what we are going to do is make this color you selected effective to the scout armor! &lt;BR&gt;Ok, find these datablocks:&amp;nbsp; (Right next to each other)&lt;/P&gt;
&lt;P&gt;datablock ParticleData(HumanArmorJetParticle)&lt;/P&gt;
&lt;P&gt;datablock ParticleEmitterData(HumanArmorJetEmitter)&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Make an exact copy of them and paste them right below and modify them to read this, &lt;BR&gt;note in the "datablock ParticleEmitterData" change the particles to the &lt;BR&gt;ScoutArmorJetParticle.&lt;/P&gt;
&lt;P&gt;datablock ParticleData(ScoutArmorJetParticle)&lt;/P&gt;
&lt;P&gt;datablock ParticleEmitterData(ScoutArmorJetEmitter)&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;If you couldn't do that I did it for you.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;datablock ParticleData(ScoutArmorJetParticle)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; dragCoefficient&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; gravityCoefficient&amp;nbsp;&amp;nbsp; = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; inheritedVelFactor&amp;nbsp;&amp;nbsp; = 0.2;&lt;BR&gt;&amp;nbsp;&amp;nbsp; constantAcceleration = 0.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; lifetimeMS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 100;&lt;BR&gt;&amp;nbsp;&amp;nbsp; lifetimeVarianceMS&amp;nbsp;&amp;nbsp; = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; textureName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "particleTest";&lt;BR&gt;&amp;nbsp;&amp;nbsp; colors[0]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "0.32 0.47 0.47 1.0";&lt;BR&gt;&amp;nbsp;&amp;nbsp; colors[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "0.32 0.47 0.47 0";&lt;BR&gt;&amp;nbsp;&amp;nbsp; sizes[0]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0.40;&lt;BR&gt;&amp;nbsp;&amp;nbsp; sizes[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0.15;&lt;BR&gt;};&lt;BR&gt;&amp;nbsp;&lt;BR&gt;datablock ParticleEmitterData(ScoutArmorJetEmitter)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; ejectionPeriodMS = 3;&lt;BR&gt;&amp;nbsp;&amp;nbsp; periodVarianceMS = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; ejectionVelocity = 3;&lt;BR&gt;&amp;nbsp;&amp;nbsp; velocityVariance = 2.9;&lt;BR&gt;&amp;nbsp;&amp;nbsp; ejectionOffset&amp;nbsp;&amp;nbsp; = 0.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; thetaMin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; thetaMax&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 5;&lt;BR&gt;&amp;nbsp;&amp;nbsp; phiReferenceVel&amp;nbsp; = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; phiVariance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 360;&lt;BR&gt;&amp;nbsp;&amp;nbsp; overrideAdvances = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp; particles = "ScoutArmorJetParticle";&lt;BR&gt;};&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Ok, look at the datablock ParticleData(ScoutArmorJetParticle) and you will see &lt;BR&gt;the colors[0] and colors[1], this is where the majic begins for you.&amp;nbsp; &lt;BR&gt;Now remeber how Alpha was A, you will see why now.&amp;nbsp; I don't recommend changing &lt;BR&gt;them for the armors at all since they will look nice, but feel free to do it.&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So remeber all them digits we got?&amp;nbsp; This is where we input them.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So the outcome should look like this, remeber your color, will not look like &lt;BR&gt;this if you chose another color.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp; colors[0]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "0.07 0.18 0.9 1.0";&lt;BR&gt;&amp;nbsp;&amp;nbsp; colors[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "0.07 0.18 0.9 0";&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Ok now time to make the particle trail behind you.&amp;nbsp; In the ScoutArmorJetParticle &lt;BR&gt;datablock, you will see lifetimeMS = 100;&amp;nbsp; Make it read:&lt;/P&gt;
&lt;P&gt;lifetimeMS = 1000;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;BR&gt;You can change it to what you prefer.&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Step 3:&lt;BR&gt;Still in player.cs find this datablock for the scout:&lt;/P&gt;
&lt;P&gt;datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And inside that datablock you will find:&lt;BR&gt;&amp;nbsp;jetEmitter&amp;nbsp;&amp;nbsp;&amp;nbsp; = HumanArmorJetEmitter;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Change it to:&lt;BR&gt;&amp;nbsp;jetEmitter&amp;nbsp;&amp;nbsp;&amp;nbsp; = ScoutArmorJetEmitter;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Congratulations you just added a Trailing Jet Particle with a color =)&lt;/P&gt;,</description><link>../default.aspx?pid=for_post&amp;topicid=5F26D647-C26D-4EDF-90A0-4246ECB34B5C&amp;forumid=5B3E9F70-F57E-4256-8323-FAAEE46F311A</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item><item><title>Adding Armors</title><description>&lt;P&gt;_______________________________________________________________________&lt;BR&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;BR&gt;&amp;nbsp;- - - - - - - - - - Adding Armors:by Drumstix42 - - - - - - - - - - -&lt;BR&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;BR&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&lt;BR&gt;_______________________________________________________________________&lt;/P&gt;
&lt;P&gt;STEP #1:&lt;/P&gt;
&lt;P&gt;-----&lt;BR&gt;--------------&lt;BR&gt;Player.cs&lt;BR&gt;--------------&lt;BR&gt;-----&lt;BR&gt;1a)&lt;BR&gt;You'll first need to make your Armor's properites such as when you define&lt;BR&gt;a weapon's attributes. You'll need to copy one of the 3 player Datablocks,&lt;BR&gt;either the light, medium, or heavy. Their datablocks are pretty long. Do &lt;BR&gt;a search for either:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LightPlayerDamageProfile&lt;BR&gt;&amp;nbsp;&amp;nbsp; MediumPlayerDamageProfile&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;BR&gt;&amp;nbsp;&amp;nbsp; HeavyPlayerDamageProfile&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;It's best to find out its starting line# and last line# of its &lt;BR&gt;datablock first. Now go ahead and copy one of these datablocks. It's usually &lt;BR&gt;easiest to keep the same sized armors around each other. So if you copied &lt;BR&gt;the 'LightPlayerDamageProfile' Datablock, just paste it right under it.&lt;BR&gt;It's also best to keep spaces between what you pasted and what was already&lt;BR&gt;there. This keeps things easier to find.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;There are one or two things you can change, one of them being manditory. &lt;BR&gt;For now, I'll just assume you copied the Light armor. This first line&lt;BR&gt;is what you'll need to change:&lt;/P&gt;
&lt;P&gt;datablock PlayerData(LightMaleHumanArmor) : LightPlayerDamageProfile&lt;/P&gt;
&lt;P&gt;The part you have to change is the:&lt;/P&gt;
&lt;P&gt;(LightMaleHumanArmor)&lt;/P&gt;
&lt;P&gt;All you have to do is give a new name, replacing Light with anything you'd &lt;BR&gt;like to name your armor. &lt;BR&gt;The second thing you can change is if you'd like your new armor to have its&lt;BR&gt;own damage profile. This meaning you'd be able to have your new armor have &lt;BR&gt;different damage properites compared to the Light armor:&lt;/P&gt;
&lt;P&gt;: LightPlayerDamageProfile&lt;/P&gt;
&lt;P&gt;As before, you would replace Light with your armor's name.&lt;BR&gt;If you would your new armor to have the same damage properties at the light,&lt;BR&gt;you would then leave it as is. There are many variables that you can change&lt;BR&gt;in your new armor such as speed, energy use, heat multipler, and it's load&lt;BR&gt;out which is most important. Your new armor's load out capabilitescan be &lt;BR&gt;found under and some above:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; // Inventory restrictions&lt;/P&gt;
&lt;P&gt;Above thats part are 3 lines:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; maxWeapons = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Max number of different weapons the player can have&lt;BR&gt;&amp;nbsp;&amp;nbsp; maxGrenades = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Max number of different grenades the player can have&lt;BR&gt;&amp;nbsp;&amp;nbsp; maxMines = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Max number of different mines the player can have&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Each line is pretty self explanitory. This shows this armor can hold 3 different &lt;BR&gt;weapons, 1 type of grenade, and 1 type of mine.&lt;BR&gt;Under the '//Inventory restrictions' are the lines that tell if an armor can have a&lt;BR&gt;weapon and how much ammo and if it can carry a pack or deployable. For weapons/&lt;BR&gt;packs/deployables, 1 means it can carry it, and 0 means it can't. Then for ammo,&lt;BR&gt;the number represents the ammo amount. Like said, pretty simple.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;1b)&lt;BR&gt;Next, we have to make sure your new armor can be used as a BioDerm and as a &lt;BR&gt;Female. If we don't, BAD things will happen. So, we now scroll down passed all&lt;BR&gt;the armor datablocks and we reach the smaller datablocks of BioDerm and Females.&lt;/P&gt;
&lt;P&gt;Still assuming we're doing a light class armor we would copy the Female Datablock:&lt;/P&gt;
&lt;P&gt;//----------------------------------------------------------------------------&lt;BR&gt;datablock PlayerData(LightFemaleHumanArmor) : LightMaleHumanArmor&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; shapeFile = "light_female.dts";&lt;BR&gt;&amp;nbsp;&amp;nbsp; waterBreathSound = WaterBreathFemaleSound;&lt;BR&gt;&amp;nbsp;&amp;nbsp; jetEffect =&amp;nbsp; HumanMediumArmorJetEffect;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;And paste it right under as before. You then change where it says Light twice on&lt;BR&gt;the first line, to the name of your armor.&lt;BR&gt;Next, we scroll down past the females and reach the BioDerms. Before each BioDerm&lt;BR&gt;datablock, there are BioDerm foot prints datablocks which we should just ignore.&lt;BR&gt;Copy the LightBioDerm datablock:&lt;/P&gt;
&lt;P&gt;datablock PlayerData(LightMaleBiodermArmor) : LightMaleHumanArmor&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; shapeFile = "bioderm_light.dts";&lt;BR&gt;&amp;nbsp;&amp;nbsp; jetEmitter = BiodermArmorJetEmitter;&lt;BR&gt;&amp;nbsp;&amp;nbsp; jetEffect =&amp;nbsp; BiodermArmorJetEffect;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; debrisShapeName = "bio_player_debris.dts";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; //Foot Prints&lt;BR&gt;&amp;nbsp;&amp;nbsp; decalData&amp;nbsp;&amp;nbsp; = LightBiodermFootprint;&lt;BR&gt;&amp;nbsp;&amp;nbsp; decalOffset = 0.3;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; waterBreathSound = WaterBreathBiodermSound;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;And paste it right under. Once again, changing the Light twice in the first line&lt;BR&gt;to your armors name.&lt;/P&gt;
&lt;P&gt;Now done the hardest part of adding an armor to your mod, you may now save&lt;BR&gt;player.cs and exit!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;STEP #2:&lt;/P&gt;
&lt;P&gt;-----&lt;BR&gt;--------------&lt;BR&gt;damageTypes.cs&lt;BR&gt;--------------&lt;BR&gt;-----&lt;BR&gt;~**!Most Importantly: This Step is ONLY needed, if you decided you want yournew&lt;BR&gt;armor to have it's own damage profile!**~&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Scroll all the way to the bottom of the file where the Armor damage profiles are &lt;BR&gt;kept:&lt;/P&gt;
&lt;P&gt;// PLAYER DAMAGE PROFILES&lt;/P&gt;
&lt;P&gt;I would then copy the LightPlayerDamageProfile and paste it right under as usual:&lt;/P&gt;
&lt;P&gt;datablock SimDataBlock(LightPlayerDamageProfile)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::Blaster] =&amp;nbsp;&amp;nbsp;&amp;nbsp;1.3;&lt;BR&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::Bullet] =&amp;nbsp;&amp;nbsp; &amp;nbsp;1.2;&lt;BR&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::ELF] =&amp;nbsp;&amp;nbsp; &amp;nbsp;0.75;&lt;BR&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::ShockLance] =&amp;nbsp;&amp;nbsp;1.0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; .....all the way down to.....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::Ground] =&amp;nbsp;&amp;nbsp;&amp;nbsp;1.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::Explosion] =&amp;nbsp;&amp;nbsp;1.0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; damageScale[$DamageType::Lightning]&amp;nbsp;=&amp;nbsp;&amp;nbsp;1.0;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;And if your catching on, you would change the Light in '(LightPlayerDamageProfile)'&lt;BR&gt;to your armors name, just as we did in player.cs if you changed it to have its&lt;BR&gt;own damage profile. For now, just leave all the numbers the same, for you can come&lt;BR&gt;back later when you want to ajust it's damage properties.&lt;/P&gt;
&lt;P&gt;Now, save your file and exit. On to the next step!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;STEP #3:&lt;/P&gt;
&lt;P&gt;-----&lt;BR&gt;--------------&lt;BR&gt;inventoryHud.cs&lt;BR&gt;--------------&lt;BR&gt;-----&lt;BR&gt;In this step we will put in very simple code to make your new armor show up on the&lt;BR&gt;inventory hud in-game. This step is very simple.&lt;/P&gt;
&lt;P&gt;First scroll down a little to about line# 20. Here you see a simple list of existing &lt;BR&gt;armors:&lt;/P&gt;
&lt;P&gt;$InvArmor[0] = "Scout";&lt;BR&gt;$InvArmor[1] = "Assault";&lt;BR&gt;$InvArmor[2] = "Juggernaut";&lt;/P&gt;
&lt;P&gt;And right under that we see another list:&lt;/P&gt;
&lt;P&gt;$NameToInv["Scout"]&amp;nbsp; = "Light";&lt;BR&gt;$NameToInv["Assault"] = "Medium";&lt;BR&gt;$NameToInv["Juggernaut"]&amp;nbsp; = "Heavy";&lt;/P&gt;
&lt;P&gt;The first list we see tells the game what text to show in the hud. The second list&lt;BR&gt;takes the text and tells the game what the armor really is. Ass you can see each&lt;BR&gt;list does this. It prints Scout in the list, and works of the 'Light' datablock.&lt;BR&gt;Now to add your armor is quite simple. It's usually good to keep the armor sizes in&lt;BR&gt;order. So lets make our lists look like this:&lt;/P&gt;
&lt;P&gt;$InvArmor[0] = "Scout";&lt;BR&gt;$InvArmor[1] = "ARMOR's TEXT TO APPEAR GOES HERE";&lt;BR&gt;$InvArmor[2] = "Assault";&lt;BR&gt;$InvArmor[3] = "Juggernaut";&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;$NameToInv["Scout"]&amp;nbsp; = "Light";&lt;BR&gt;$NameToInv["ARMOR's TEXT TO APPEAR GOES HERE"] = "NAME OF ARMORS DATABLOCK";&lt;BR&gt;$NameToInv["Assault"] = "Medium";&lt;BR&gt;$NameToInv["Juggernaut"]&amp;nbsp; = "Heavy";&lt;/P&gt;
&lt;P&gt;-------------------&lt;BR&gt;For example, if your armor's datablock name was Sniper, and you wanted it to show L. Sniper on&lt;BR&gt;the hud, you'd do this:&lt;/P&gt;
&lt;P&gt;$InvArmor[1] = "L. Sniper";&lt;/P&gt;
&lt;P&gt;and&lt;/P&gt;
&lt;P&gt;$NameToInv["L. Sniper"] = "Sniper";&lt;BR&gt;-------------------&lt;/P&gt;
&lt;P&gt;And that's all for inventoryHud.cs. Exit and Save!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;STEP #3:&lt;/P&gt;
&lt;P&gt;-----&lt;BR&gt;--------------&lt;BR&gt;Player.cs&lt;BR&gt;--------------&lt;BR&gt;-----&lt;BR&gt;I'm not to sure what this does besides tell the game how long your armors name is.&lt;BR&gt;Anyway, do a search for this:&lt;/P&gt;
&lt;P&gt;function Player::getArmorSize(%this)&lt;/P&gt;
&lt;P&gt;The part we're looking at is this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if (getSubStr(%dataBlock, 0, 5) $= "Light")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Light";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (getSubStr(%dataBlock, 0, 6) $= "Medium")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Medium";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (getSubStr(%dataBlock, 0, 5) $= "Heavy")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Heavy";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Unknown";&lt;/P&gt;
&lt;P&gt;All we need to do is add in your armor and make the second number 0, ?) equal how&lt;BR&gt;many letters your armor is. For an example, lets say your armors name is Dominion,&lt;BR&gt;your code would then look like this:&lt;/P&gt;
&lt;P&gt;else if (getSubStr(%dataBlock, 0, 8) $= "Dominion")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Dominion";&lt;/P&gt;
&lt;P&gt;And all together, like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if (getSubStr(%dataBlock, 0, 5) $= "Light")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Light";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (getSubStr(%dataBlock, 0, 6) $= "Medium")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Medium";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (getSubStr(%dataBlock, 0, 5) $= "Heavy")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Heavy";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else if (getSubStr(%dataBlock, 0, 8) $= "Dominion")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Dominion";&lt;BR&gt;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Unknown";&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;And that's it! You've now hopefully adding a new armor to your mod.&lt;BR&gt;Congratulations! And good luck. &lt;/P&gt;,</description><link>../default.aspx?pid=for_post&amp;topicid=A69A70C1-A505-4CE8-9109-42F26670EEFE&amp;forumid=5B3E9F70-F57E-4256-8323-FAAEE46F311A</link><pubDate>7/25/2008 1:52:07 PM</pubDate></item></channel></rss>