FH mapping FAQ/Tutorials -1 reply

Please wait...

Admiral Donutz VIP Member

Wanna go Double Dutch?

735,271 XP

9th December 2003

0 Uploads

71,460 Posts

0 Threads

#21 14 years ago

reserved for future use, please leave soft deleted!!




Admiral Donutz VIP Member

Wanna go Double Dutch?

735,271 XP

9th December 2003

0 Uploads

71,460 Posts

0 Threads

#22 14 years ago

reserved for future use, please leave soft deleted!!!




Admiral Donutz VIP Member

Wanna go Double Dutch?

735,271 XP

9th December 2003

0 Uploads

71,460 Posts

0 Threads

#23 14 years ago

reserved for future use, please leave soft deleted!!!!




Knoffhoff

I follow teh Moo!

50 XP

20th February 2004

0 Uploads

708 Posts

0 Threads

#24 14 years ago

Nice work Dönitz. But i just figured out that there is a little mistake in my list of kits. All carbine kits don't work. In the kit's name it has to be "carabine".:rolleyes: [EDITEDBY="dönitz"]fixed[/EDITEDBY]




Kingrudolf

Fan FH Mapper

50 XP

9th October 2003

0 Uploads

1,345 Posts

0 Threads

#25 14 years ago

Author: Hail of Nails

Tutorial:

Creating a Custom Kit

Bust out the RFA files, and crack open the Objects.RFA with an RFA Ripping Program. Inside th RFA will be an "ITEMS" folder, full of kits, such as GermKit, Britkit, Polkit, etc... Open one of them up and it should look like this...

ObjectTemplate.create Kit 1Rus_AssaultNagant ObjectTemplate.setType Assault ObjectTemplate.setKitTeam 2 ObjectTemplate.geometry Kit_Allies_Assault ObjectTemplate.setHasCollisionPhysics 1 ObjectTemplate.networkableInfo KitInfo ObjectTemplate.addTemplate Russ_Helmet ObjectTemplate.addTemplate Russian_hippack ObjectTemplate.addTemplate Chutedisabler ObjectTemplate.setHealthBarIcon "Ingame/Healthbar_empty_assault_64x64.tga" ObjectTemplate.setHealthBarFullIcon "Ingame/Healthbar_full_assault_64x64.tga"

ObjectTemplate.addWeaponIcon "Weapon/Icon_alliesKnife.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_tt33.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_MosinNagant.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_grenadeallies.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_k98grenade.tga"

ObjectTemplate.setKitIcon 0 "kits/Icon_NagantRuss_selected.tga" ObjectTemplate.setKitName 0 "RESPAWN_ASSAULT" ObjectTemplate.setKitActiveName 0 "RESPAWN_ACTIVE_ASSAULT"

ObjectTemplate.addTemplate MosinNagant ObjectTemplate.addTemplate NagantGrenade ObjectTemplate.addTemplate GrenadeAllies ObjectTemplate.addTemplate Tt33 ObjectTemplate.addTemplate KnifeAllies

ObjectTemplate.aitemplate Assault

Here's the lowdown...

ObjectTemplate.create Kit 1Rus_AssaultNagant The kit name. This can be just about anything as long as it's not the same as another kit.

ObjectTemplate.setType Assault The type of kit it is. You have Assault, AT, Medic, Engineer, Scout to choose from.

ObjectTemplate.setKitTeam 2 The team the kit goes to. 1 is Axis, 2 is Allied.

ObjectTemplate.geometry Kit_Allies_Assault This is the object you see when a kit is on the ground. you have Kit_x_Assault, Kit_x_Antitank, Kit_x_Engineer, Kit_x_Medic, and Kit_x_Scout, where x is either Axis or Allies. ObjectTemplate.setHasCollisionPhysics 1 Not sure what this is.

ObjectTemplate.networkableInfo KitInfo Not sure about this either.

ObjectTemplate.addTemplate Russ_Helmet This is the helmet the class will wear. There are numerous to choose from, just look in the RFA files.

ObjectTemplate.addTemplate Russian_hippack Extra accessories like backpacks can be added as well, there are a bunch to choose from.

ObjectTemplate.addTemplate Chutedisabler This disables the parachute for the class. Remove it to make a paratrooper class.

ObjectTemplate.setHealthBarIcon "Ingame/Healthbar_empty_assault_64x64.tga" ObjectTemplate.setHealthBarFullIcon "Ingame/Healthbar_full_assault_64x64.tga" These are for the healthbar. Assault can be replaced with AT, Medic, Scout, or Engineer. Could be swapped out entirely

ObjectTemplate.addWeaponIcon "Weapon/Icon_alliesKnife.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_tt33.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_MosinNagant.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_grenadeallies.tga" ObjectTemplate.addWeaponIcon "Weapon/Icon_k98grenade.tga" These are the pictures that appear at the bottom of the screen when changing weapons. They don't necessarily have to correspond to the actual weapons. Look in the other kit RFA files to find other picturefiles. Or these could be replaced entirely by new picture files.

ObjectTemplate.setKitIcon 0 "kits/Icon_NagantRuss_selected.tga" This is the picture that appears on the spawn screen. Again can be changed out for anything.

ObjectTemplate.setKitName 0 "RESPAWN_ASSAULT" ObjectTemplate.setKitActiveName 0 "RESPAWN_ACTIVE_ASSAULT" These are the names of kits as they appear on the spawn screen. Can be changed to anything. The first is the kit name, and the second is used to display how many active soldiers are using this class.

ObjectTemplate.addTemplate MosinNagant ObjectTemplate.addTemplate NagantGrenade ObjectTemplate.addTemplate GrenadeAllies ObjectTemplate.addTemplate Tt33 ObjectTemplate.addTemplate KnifeAllies This is the actual loadout. Put them in order of important, and the first will be the starting weapon. When the weapon runs out of ammo, it switches to the highest available one, like how when you run out of Grenades, you switch back to your rifle.

ObjectTemplate.aitemplate Assault This is used to designate what AI scheme bots of this class will use. You have Assault, AT, Medic, Scout, and Engineer

Got that? Now let's say you have a kit named "KnifeFight" Objecttemplate.create Kit Knifefight in the kit file.

Unpack your map's RFA, and open it up. In the main directory, you should see a few folders, like CTF, TDM, and files like the Init.con. If not already present, create a folder called "Objects". Open the main Init.com file, and add the line "run Objects/Objects.

Go into the Objects folder, and create a text file, called "Objects.con". Open it, and then move back to the Objects directory.

Create a folder called "Knifekit"

Switch back to the Objects.con text, and add the line "run objects/Knifekit/lol"

Now go into the Knifekit folder, and paste in the "Knifefight" kit Objects.con

Create a text file called "lol.con". Inside it, type run Objects.

Now that should be set. It's just a complicated way of activating the files in each folder.

Go back to your main Init.con, and find where the kits are listed.

game.setTeamSkin 1 GermanSoldier game.setKit 1 0 1German_CloseQuartersMp40 game.setKit 1 1 2German_Assaultk98 game.setKit 1 2 3German_ATPanzerfaust100 game.setKit 1 3 4German_OfficerMp40 game.setKit 1 4 5German_SapperK98 game.setTeamSkin 2 BritishSoldier game.setKit 2 0 1GB_CloseQuartersStenMk5 game.setKit 2 1 2GB_AssaultNo4 game.setKit 2 2 3GB_ATPiat game.setKit 2 3 4GB_SupportBren game.setKit 2 4 GB_SpecOpsStenMk5

Replace one of the existing kits listed in bold with the "KnifeFight", since that is our kit name.

Now, pack up the map, and test it out in BF. Although there are some errors I haven't been able to pin down, this is the method I use, and works most of the time.

End of tutorial.

Very, very nice job btw Donitz.




Kingrudolf

Fan FH Mapper

50 XP

9th October 2003

0 Uploads

1,345 Posts

0 Threads

#26 14 years ago

Ok. So far the tutorial I suggested above doesn't work yet. I'm figuring it out at the moment. Hail of Nails you bastard! Just kidding, I guess it did work for 0.6.

Meanwhile, I've figured something else out today:

Q: How can I make particular parts of textures transparent, like the barbed wire?

A: Ok, you need Photoshop, The DDS plugin and RFA Extractor for this.

First, open the texture you want to edit, or open a new texture. Assuming you have fixed up a texture, ready to be edited, this is what you need to do.

At the layer menu, click the "channels" tab. There at the bottom is a Alpha channel. Fill it black (pitch black). Now go back to your layer. Make sure the Alpha channel is not visible (uncheck the "eye" icon).

Then, make a new layer under the texture. Fill it with a white color, if not already. Now in the top layer, delete all the parts that need to be transparent. Automatically it'll turn white. Now select the whole texture of the first layer. Then press the up arrow, then down arrow. Good. Go to the Alpha channel. Fill the selection with a white color. Then uncheck the "eye" again of the Alpha channel.

Go back to the layers tab. In the menu, do: image>flatten image. Then file>save as. Press save, and a Nvidia DDS menu pops up. Make sure you check the option "Binary Alpha", it's located at the left below. Hit save.

Remember that you have checked this option the next time you export a .DDS file, since these options are kept in the cache.

Then you can put the texture in your map. It works like a charm!




Kingrudolf

Fan FH Mapper

50 XP

9th October 2003

0 Uploads

1,345 Posts

0 Threads

#27 14 years ago

Ok, here some new stuff that came to my mind:

Q: My map is kinda laggy.. how do I increase performance?

Well, there are several ways. They're all easy.

First off, you should keep an eye on high poly objects. Download the list below to see if you are overusing objects that might have a high polycount.

Polycount.txt

Now, you should always make sure you don't overuse any large objects, such as open buildings. Always try to limit the map to closed buildings, or use the sightscene (a row of four closed buildings) objects. Unless you really want open buildings because they are vital to the map's gameplay, use as many closed ones as possible.

Also watch the density of the objects. You might have noticed that Berlin-1945 is packed with buildings, but note that the map makes use of many closed buildings and especially the four-row buildings. This really saves up for FPS. So don't cluster too many objects together.

As you may have noticed, Outskirts was quite laggy. This was because of the high amount of lumber objects used in a dense concentration. So I strongly advice using the desert or karelia trenches, since they are now available for use to public.

Finally, theres the init.con. In there you have the following lines:

Draw distance *** Fog distance ***

Or use BC to set these settings.

Make sure you match the draw distance exactly to the fog distance. If the fog distance is 200, set the draw distance to the same amount.

Q: MakeRFA is a very reliable packer. But how does MakeRFA work?

Start up the program. A DOS windows will pop up.

Enter the root directory to compress. This is the path that refers to your map, from beginning until the end. Example:

c:/bfdev/bf1942/levels/MyFancyMap So basically the full URL, from your drive to the map name.

Enter base .rfa path. The base .rfa path is basically the same as the one above. Only this time, this path always starts at "bf1942". Example:

bf1942\levels\MyFancyMap If you extract a map to your c:, you'll notice the base path starts with "bf1942". So it makes sense. Press the up arrow. Then just backspace the part c:/bfdev/".

Would you like to see a list of the .rfa directories that will be created? Y/N? This doesn't have any influence to the map compression itself. It's just some side information. It doesn't matter if you press yes or no.

n

Enter the name of the new .rfa: Now you must enter the name of the new .rfa. For maps, the name must always be the same as the unpacked map name. Unless you just changed the map name manually, you can use a customized mapname. Example:

MyFancyMap.rfa Remember to add ".rfa" to the map name!!

Do you wish to compress the map (very slow)? Y/N? If the map is completely finished, you can choose to compress the map. If it's just for testing, don't compress it.

n

Created MyFancyMap.rfa with *** entries The "entries" are a total number of the files and folders included.

Now you can pick the map up at your MakeRFA folder. Once you've repeated the procedure a couple of times, you'll automatically start memorizing the lines. For me it takes less than a half a minute to pack the map.




axkgkadragon

GF is my bext friend *hugs GF*

50 XP

16th November 2003

0 Uploads

798 Posts

0 Threads

#28 14 years ago

i didint know where to post this but:

the following lines in the init.con (or so ive been told by good mappers) have been known tobe buggy:

game.setLevelCheck game.setActiveCombatArea