|
Author Topic:   Dark Matter Cannon
rcy
Member
posted February 10, 2005 01:28 PM         
Since i'm still a novice at modding, I need some one to help me with this one. Basicly it utilizes the Zero Point Energy, the same thing that kicked off the Big Bang. So, what I want to do is modify the Mass Driver, color it read and orange. I want to leave the blast it fires the same, except, when the blast hits it explodes in multiple Super Megaton Nuclear Explosions. Destroying any one near the blast. So, any one up to helping me out with this?

IP:

Vlad
Member
posted February 10, 2005 05:58 PM            
That's actually a pretty simple mod to do... You really only need to change a handful of things to get everything working correctly. Since you're not really changing the behavior of the weapon, it's just a matter of changing the way the weapon looks, for the most part.

In case you didn't know already, the first thing you want to do is make an Addons directory in your Treadmarks directory. This is where mods go for Treadmarks to recognize them. While you could technically just add the files in with the TM stock ones, it's not a good idea, as the more complicated mods can span a lot of different .ent files, and scattering those in with your stock files can make things messy.

So, starting from a clean Addons dir, create a directory in the Addons dir called Entities. This is where Treadmarks looks for any modded .ent files to load. Once you've got that done, create three subdirectories in the Entities dir, called Weapon, Smoke, and Projectile. Basically, each subdirectory in the Entities dir holds information about a different type of "thing" in the game world. Any .ent file in the Weapon dir contains information such as which mesh(es) a weapon uses, how rare it is, how much ammo it has, what kind of projectile it fires, etc. Entity files in the Projectile directory contain information about the different types of projectiles, such as speed, damage, what kind of explosion they create under different circumstances, guidance. The Smoke entities describe the different type of smoke effects (but not the explosion ones). These are mainly used for the different types of smoke trails in the game.

Once you've got your basic directory structure set up, go to Treadmarks\Entities\Weapon and copy MassDriver.ent to Treadmarks\Addons\Entities\Weapon. Make sure that you don't cut and paste, but copy and paste, so the original file stays put. Next, copy Treadmarks\Entities\Projectile\Sniper.ent to Treadmarks\Addons\Entities\Projectile\.

Once those two files are copied over, we'll do the easiest change first, which is to give the mass driver the Nuke's explosion effect and damage properties.

Open up the Sniper.ent file in the Addons\Projectile directory with a text editor. Find the following lines:

ExploEnt = YellowSparks
#ExploHitEnt = explosphere\fireenv2
ExploHitEnt = Mas****

You can ignore any lines that have a # in front of them. The # makes it so that Treadmarks just ignores that line. It's a good thing to use when you're messing around with different values but want to make sure to remember an older value or something. The ExploEnt and ExplotHitEnt values control what graphical effect the projectile will call under certain circumstances, as follows:

The ExploEnt explosion effect is called when the projectile hits the ground. There's also another parameter called Detonate that can be set to either 1 or 0. If Detonate is 1, then the ExploEnt will be called when the projectile's lifetime is up (like when the plasma mines disappear after a short while). If Deonate is set to 0 (which it is by default), then the projectile will just vanish with no explosion.

The ExploHitEnt value is the explosion that is called when the projectile hits another object in the game world, like another tank, a tree, or one of the static meshes scattered about. One thing to note is that if you only want the projectile to explode in one way (as this one will), then you only need the ExploEnt value. If there's no ExploHitEnt, then the ExploEnt effect will be called for all situations.

The values that are being called by ExploEnt and ExploHitEnt, as well as a whole lot of other values you'll see later on, such as SmokeEnt, SoundEnt, EntityChain, etc, are just other .ent files located in the Treadmarks\Entities directory. So the line:

ExploEnt = YellowSparks

Refers to Treadmarks\Entities\Explo\YellowSparks.ent

One thing that I should bring up now that stumps practically every TM modder at some point or another is how TM actually identifies the different entities. While you may think that it's by filename, it actually isn't. Every .ent file will start with a pair of lines such as:

class = projectile
type = Sniper

These are the actual identifiers of the entity, not the file name. While the name is the same as the type name 99+% of the time, it's merely a convention. If you don't change your type names to match what the entity is being called by, then it simply won't be called.

Now that that's all out of the way, on to the fun stuff...

Back to your Sniper.ent file, making sure it's the one in the Addons subdirectory, change the line "ExploEnt = YellowSparks" to "ExploEnt = Nuke". Next, delete the line "ExploHitEnt = Mas****".

Those two small changes have now made it so that every Mass Driver will now have the effect of a Nuke when it hits either the ground or another object. If you want, go ahead and check it out and make sure that you did the changes correct.

Now that the graphics for the explosion are done, it's time to actually make it act like it looks. Even though it may now look like a nuke's going off where it hits, the actual damage done is still identical to the original Mass Driver. This is due to the fact that the splash effects are handled by the projectile, not the explosion. Just to make things simple, we're going to use the same values from the Nuke for this weapon.

First, change the line "damage = 0.5" to "damage = 1.5". The damage value only determines how much damage a direct hit with the projectile does to a tank, not the splash damage. For that, we're going to copy a few lines from Treadmarks\Entities\Projectile\NukeMissile.ent

SplashRadius = 100
SplashDamage = 1.5
SplashPush = 50

Copy those anywhere into your Sniper.ent file (again, make sure it's the Addons one!).

Now's a good time to mention that in most of the stock Entities directories, there's readme files. These files contain descriptions of some of the parameters and values of each class of entity. So if you're unclear as to what those three lines I put up there do, check out Treadmarks\Entities\Projectile\readme.txt for a description of those, as well as most of the other major Projectile values and parameters. These readmes are a great resource for getting started, and make a good reference for some of the more complicated types of ents (like Spewers).

Once you've copied those three lines into your Sniper.ent file, there's one more quick change to be made... Find the line:

HitScanRange = 300.0

and change the 300.0 to something like 1000.0.

This changes the distance the shot travels before disappearing, and will allow you to use the new weapon without blowing yourself up in the process.

As far as changing the way it acts, that's pretty much it. Now the Mass Driver has gone from the usual railgun-esque weapon to being able to create a nuclear explosion a kilometer away (assuming you saved the changes). Not balanced, but it's fun.

Once you're done blowing AIs apart with a single click, it's time to make this a weapon of its own, instead of just replacing the Mass Driver. First, we're going to change the name of the projectile. For the sake of the lesson here, let's call the weapon "The Big Bang". Back to Sniper.ent, first change the type to BigBangProj. You can call this anything, but it's a good idea to make it something self explanatory and easy to remember.

Next, delete the line "nameid = 18". What that line does is reference the Weapons.txt file in one of the Treadmarks\Local\ subdirectories to display the kill message when another tank is killed by this weapon. Since this is no longer a mass driver, we're going to change the kill message. To do that, put this line in the Sniper.ent file:

name = a Big Bang

Next, close your editor and rename the file to BigBangProj.ent. Again, it's not required for the filename to match the type name (you could call it GrilledCheese.ent, and it would still work), but it's a good practice to get into, for when you're trying to edit your stuff later on.

However, now that we've changed the type name to something else, the Mass Driver is going to fire its regular projectile once again. Treadmarks loads the standard entities first, then looks in the Addons folder. If any entities in the Addons folder are of the same class and type as a stock one, then TM uses the Addons one instead.

So, we're off to a different file, finally. First off rename Treadmarks\Addons\Entities\Weapon\MassDriver.ent to BigBang.ent.

Next, open up BigBang.ent and change the type to BigBang. Next, find the line:

projectile = Sniper

and change that to, you guessed it...

projectile = BigBangProj

Now your weapon is a seperate weapon, and will spawn along every other TM weapon in-game, and will work just fine. The last change we're going to do in this file is to change the name that shows up on a player's HUD when they grab the weapon. Simply enough, just go to the line:

Name = Mass Driver

and change "Mass Driver" to "A Big Bang" or whatever you like.

There's a bunch of other values that you may want to tinker with, such as the reload time, weight of the weapon (how often it spawns compared to other weapons), and so on, but I'll leave that for you, as this is already getting a little long.

Now, when you said you wanted to change something to red and orange, did you mean the weapon itself, or did you want to replace the green smoke rings with something that would look more suited to a nuclear blast? If it's the former, then you'd have to draw a new texture, or just slap on one of the other stock ones. If you're interested in replacing the green smoke rings, here's all you need to do...

First, copy the file Treadmarks\Entities\Smoke\MassRing.ent to the Addons\Entities\Smoke directory. Next, rename the file to BigBangSmoke.ent, and change the type value to BigBangSmoke.

A Smoke entity doesn't control the whole trail, but just how a single unit of the smoke trail will look and act. So the file Smoke\MassRing.ent set up a single one of the green rings, and it's the projectile that determines that it will be used as a smoke trail. In order to change the appearance of the smoke, we have to assign a different sprite to it. The stock Treadmarks sprites are located in Treadmarks\Art\Sprites\. If you look in the BigBangSmoke.ent file, notice the line:

Texture = sprites/GreenRing.bmp

If you look at the file GreenRing.bmp, you'll notice that it's the good old Mass Driver ring. What we want to do is change this. Now, you can either use one of the standard sprites, or make your own. Me, I stink at drawing, so I stick with just reusing the stock sprites. Change the Texture line so that it reads:

Texture = sprites/FlareBrightOrange2.bmp

Now, this particular kind of smoke will act exactly like the Mass Driver's smoke (how long it hangs around, the size, etc), but will just have a different sprite.

Finally, we just need to tell our Big Bang projectile to use the new BigBangSmoke ent for a smoke trail instead of the old MassRing ent.

Open up the BingBangProj.ent file, and find the line:

SmokeTrailEnt = smoke/MassRing

and change it to:

SmokeTrailEnt = smoke/BigBangSmoke

That's it. After modifying a mere three files you should have something that looks a little like this:

There's plenty of other neat things you can do once you get the hang of how everything works. One thing I noticed about your original idea is that you wanted multiple explosions for a single projectile. While it is possible, it pretty much requires the use of spewers and some creative modding. Take a look at my Annihilator weapon (available from RC's site at http://treadmarks.cjb.net/). That's got a neat little effect with multiple large explosions.

IP:

rcy
Member
posted February 10, 2005 07:01 PM         
LOL, thnks for the help, bud! After I got through tweaking all the little tid bits, I went into a game with 20 AI. I spotted a group of a 10 tanks. Got into a good firing spot, and let 'em have it! The blast killed almost all of 'em! The ones that survived were heavily damaged! Thanks a lot! :-D

IP:

wolfman
Member
posted February 20, 2005 09:45 AM            
Hiya
Will check later to see if I can find the nuke server mod - if any one else has a copy of it please post a link. All weapons in the game nuclear. Fantastic mod.
JT

IP:

pablito
Member
posted February 25, 2005 07:02 PM            
that is soo cool! I wish I knew how to mod...but don't have time to learn now maybe someday

IP:

Tank target
Member
posted February 28, 2005 04:42 PM         
Help. I did everything exactly as it says to do up there and I grabbed the weapon fired it and nothing came out and nothing happened
please help.

[This message has been edited by Tank target (edited February 28, 2005).]

IP:

Rex R
Member
posted March 01, 2005 03:15 AM            
w/o seeing an error rpt from ENTegrety or the tank.log my guess is you've got trailing spaces in the projectile call(that or some other typo but, trailing spaces are some of the most frustrating to track down)

IP:

Vlad
Member
posted March 01, 2005 09:09 AM            
Make sure that you've got the projectile line in the Weapon ent and the type in the projectile ent match exactly. It definitely sounds like that's where the problem is. If nothing else, zip up your Addons folder and email it to me and I should be able to tell you what the problem is.

IP:

Tank target
Member
posted March 01, 2005 01:25 PM         
I ran the ent scan thingy. And it found the problem and it had to do with the type and file name not matching I fixed it. Thanks

IP:

Rex R
Member
posted March 02, 2005 01:32 AM            
ah, so you were in effect calling the wrong ent...nice to read that you were able to find/fix the problem. good show!

IP: