project reality header
Go Back   Project Reality Forums > PR:BF2 Mod Forums > PR:BF2 Community Modding > Modding Tutorials
24 Apr 2014, 00:00:00 (PRT)
Register Forum RulesDeveloper Blogs Project Reality Members List Search Today's Posts Mark Forums Read
Modding Tutorials Information and tutorials related to modding BF2.

Contact Support Team Frequently Asked Questions Register today!

Reply
 
LinkBack Thread Tools Display Modes
Old 07-03-2009, 12:54 AM   #1
[R-DEV]AncientMan
PR:BF2 Project Manager
Supporting Member
PR Server License Administrator

[R-DEV]AncientMan's Avatar
Default Map Localisation

I had written this up as a PM to some guy, but I thought I may as well post this in here so everyone can benefit. Localisation is really simple stuff, takes 5 minutes to do, if that, but it seems some people don't know what it's all about, hence this.

All localisation basically is, is what the text is that shows ingame. Pretty much anything text based, HUD, Menu, cpnames etc, is all localisation based. And all you have to do to set it up, is match the localisation id's to the words you want to show ingame. You can also have it set up for different languages the end user may have.

Anyway, the tutorial . Obviously you need to edit the naming to suit your map.

The easiest way for community matches and stuff is probably just to make a new localisation file just for that map. Ie, community_op_barracuda.utxt. This is so if you need to uninstall the map or whatever, you only delete that localisation, and not localisation for other maps. To do this, just copy a previous utxt file, say prmaps.utxt, then we can edit that. Just delete everything in it except for the top 2 lines. The top 2 lines, not entirely sure what they do, but meh, whatever, may as well keep them in so you have the format and the little weird symbols handy .

First thing you'll want to add in it is your map name:

Code:
HUD_LEVELNAME_community_op_barracuda                                 Operation Barracuda V2
Edit the localisation id (locid's) so it matches your map folder, and then edit the bit in between the 2 symbols to the name you have in your map's .desc file. This particular bit shows up in the scoreboard for map voting and shit like that .

Anyway, next bit...

So, what you have to be careful of is keeping the localisation separate from standard pr stuff so nothing is overwritten, hence the new file, but we'll also need new locid's.

Something important to remember here is stuff "higher" in alphabetical order is loaded first. So c is loaded before p, hence this new community_op_barracuda is loaded before prmaps.utxt. But, nothing should be overwritten, since we'll be having new locid's and stuff .

Anyway, the current format of the ones for barracuda is:

Code:
cpname_op_barracuda_aas64_missilesilo
So lets change up the format a bit for your map yeah? Lets say:

Code:
cpname_community_op_barracuda_aas64_missilesilo
Yeah? Anyway, so you have a bunch of cp's, and you will find all these in your server.zip\GameModes\gpm_cq\64\GamePlayObjects.con (edit to point to whatever gamemode/size your using). Scroll down to the bottom, and you'll see the stuff about combat area, scroll up a bit, and there's your cp shit. There are 2 sections, the top section defines the cp information, and the bottom bit actually spawns it on the map with the localisation and shit. Both bits are important here

So, you'll see all the id's set in the gpo, ie:

Code:
rem [ControlPointTemplate: cpname_op_barracuda_aas64_missilesilo]
ObjectTemplate.create ControlPoint cpname_op_barracuda_aas64_missilesilo
ObjectTemplate.activeSafe ControlPoint cpname_op_barracuda_aas64_missilesilo
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_op_barracuda_aas64_missilesilo
ObjectTemplate.radius 50
ObjectTemplate.radiusOffset 0/15/0
ObjectTemplate.team 1
ObjectTemplate.controlPointId 1
ObjectTemplate.areaValueTeam2 1000
ObjectTemplate.timeToGetControl 90
ObjectTemplate.timeToLoseControl 90
ObjectTemplate.isHemisphere 1
ObjectTemplate.supplyGroupId 10
ObjectTemplate.hoistMinMax 0.2/0.9
and the bit down the bottom:

Code:
   rem [ControlPoint: cpname_op_barracuda_aas64_missilesilo]
   Object.create cpname_op_barracuda_aas64_missilesilo
   Object.absolutePosition 534.366/98.227/-685.054
   Object.layer 2
You want to edit all them to be the format your using, gamemode/size, cpname, etc etc. Ie:

Code:
cpname_community_op_barracuda_aas64_missilesilo
So, go ahead, fix all them up. Just a CTRL-H find/replace and find the old cpname, then replace it with the new cpname is the easiest way to go . Don't use replace all though, best to just use replace and see what your replacing first so you don't screw anything else up, such as spawn points that "may" contain the same name as your cp. Also, don't have 2 cpnames with the same id, it will screw things up obviously

Anywho, once you've sorted that out, copy in the id into your localisation, then put the actual cp name you want to use in between the little symbols, just like the other lines in the localisation. Don't delete the symbols, it will screw it up. Oh, another thing that I should mention, space between the locid and the symbols needs to be spaces, not tabs, tabs will screw it up .

Anyway, you should end up with something like this:

Code:
cpname_community_op_barracuda_aas64_missilesilo                      PLA Missile Silo
And once you've fixed them up for all the cpnames and shit, you should be done Final results should look something like this:

GPO:
Code:
rem ********** Control Points **********
rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_missilesilo]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_missilesilo
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_missilesilo
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_missilesilo
ObjectTemplate.radius 50
ObjectTemplate.radiusOffset 0/15/0
ObjectTemplate.team 1
ObjectTemplate.controlPointId 1
ObjectTemplate.areaValueTeam2 1000
ObjectTemplate.timeToGetControl 90
ObjectTemplate.timeToLoseControl 90
ObjectTemplate.isHemisphere 1
ObjectTemplate.supplyGroupId 10
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_supplies]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_supplies
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_supplies
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_supplies
ObjectTemplate.radius 150
ObjectTemplate.radiusOffset 0/20/0
ObjectTemplate.team 1
ObjectTemplate.controlPointId 2
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 21
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_carrier]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_carrier
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_carrier
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
rem -------------------------------------
ObjectTemplate.addTemplate flagpole
rem -------------------------------------
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_carrier
ObjectTemplate.team 2
ObjectTemplate.controlPointId 3
ObjectTemplate.unableToChangeTeam 1
ObjectTemplate.supplyGroupId 40
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_airstrip]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_airstrip
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_airstrip
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_airstrip
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 101
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 21
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_beachfortification]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_beachfortification
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_beachfortification
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_beachfortification
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 103
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 21
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_docks]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_docks
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_docks
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_docks
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 104
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 32
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_bridge]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_bridge
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_bridge
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_bridge
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 102
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 21
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_swamp]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_swamp
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_swamp
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_swamp
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 105
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 32
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_southrockfort]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_southrockfort
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_southrockfort
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_southrockfort
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 106
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 32
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_northrockfort]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_northrockfort
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_northrockfort
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_northrockfort
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 107
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 32
ObjectTemplate.hoistMinMax 0.2/0.9

rem [ControlPointTemplate: cpname_community_op_barracuda_aas64_beachfront]
ObjectTemplate.create ControlPoint cpname_community_op_barracuda_aas64_beachfront
ObjectTemplate.activeSafe ControlPoint cpname_community_op_barracuda_aas64_beachfront
ObjectTemplate.modifiedByUser "fuzzhead"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setControlPointName cpname_community_op_barracuda_aas64_beachfront
ObjectTemplate.radius 150
ObjectTemplate.team 1
ObjectTemplate.controlPointId 108
ObjectTemplate.timeToGetControl 180
ObjectTemplate.timeToLoseControl 180
ObjectTemplate.supplyGroupId 32
ObjectTemplate.hoistMinMax 0.2/0.9

if v_arg1 == host

   rem [ControlPoint: cpname_community_op_barracuda_aas64_missilesilo]
   Object.create cpname_community_op_barracuda_aas64_missilesilo
   Object.absolutePosition 534.366/98.227/-685.054
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_supplies]
   Object.create cpname_community_op_barracuda_aas64_supplies
   Object.absolutePosition -131.340/40.718/-431.666
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_carrier]
   Object.create cpname_community_op_barracuda_aas64_carrier
   Object.absolutePosition -772.251/41.975/807.313
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_airstrip]
   Object.create cpname_community_op_barracuda_aas64_airstrip
   Object.absolutePosition -527.345/31.789/-797.686
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_beachfortification]
   Object.create cpname_community_op_barracuda_aas64_beachfortification
   Object.absolutePosition -432.624/4.520/-228.302
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_docks]
   Object.create cpname_community_op_barracuda_aas64_docks
   Object.absolutePosition 403.540/-24.133/278.200
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_bridge]
   Object.create cpname_community_op_barracuda_aas64_bridge
   Object.absolutePosition 427.682/35.574/-16.825
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_swamp]
   Object.create cpname_community_op_barracuda_aas64_swamp
   Object.absolutePosition -23.970/6.944/-60.310
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_southrockfort]
   Object.create cpname_community_op_barracuda_aas64_southrockfort
   Object.absolutePosition -877.595/14.024/-469.061
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_northrockfort]
   Object.create cpname_community_op_barracuda_aas64_northrockfort
   Object.absolutePosition -630.413/24.945/-24.682
   Object.layer 2

   rem [ControlPoint: cpname_community_op_barracuda_aas64_beachfront]
   Object.create cpname_community_op_barracuda_aas64_beachfront
   Object.absolutePosition -655.005/16.377/-400.102
   Object.layer 2

endIf
Localisation:
Code:
ID_LANGUAGE                                                          English
ID_VERSION                                                           Date: 03/06/2009 PR v0.860

HUD_LEVELNAME_community_op_barracuda                                 Operation Barracuda V2

cpname_community_op_barracuda_aas64_missilesilo                      PLA Missile Silo
cpname_community_op_barracuda_aas64_supplies                         Supply Fortification Objective 150m
cpname_community_op_barracuda_aas64_carrier                          USS Essex
cpname_community_op_barracuda_aas64_airstrip                         Air Strip Objective 150m
cpname_community_op_barracuda_aas64_beachfortification               Beach Fortification Objective 150m
cpname_community_op_barracuda_aas64_docks                            Docks Objective 150m
cpname_community_op_barracuda_aas64_bridge                           Bridge Objective 150m
cpname_community_op_barracuda_aas64_swamp                            Swamp Objective 150m
cpname_community_op_barracuda_aas64_southrockfort                    South Rock Fortification Objective 150m
cpname_community_op_barracuda_aas64_northrockfort                    North Rock Fortification Objective 150m
cpname_community_op_barracuda_aas64_beachfront                       Beach Front Objective 150m
And that's it 5min job, super simple to do .

Further things you should probably do is copy that into all the different languages, ie, localization/chinese/community_op_barracuda.utxt, etc, so people who have installed in a different language, can see all your localisation. This is because if they have installed in say Chinese, they will only see the localisation in the Chinese folder, not the English folder. You don't have to translate it, you can just leave it in English, you should be leaving it in English anyway since it's a map and it's CP's and stuff.

Anywho, that should just about wrap it up, so I'll leave it there . Have fun.


To view links or images in signatures your post count must be 1 or greater. You currently have 0 posts.
[R-DEV]AncientMan is offline Reply With Quote
Old 07-21-2009, 09:03 AM   #2
[R-DEV]Rudd
PR:BF2 Developer
Supporting Member

[R-DEV]Rudd's Avatar
Default Re: Map Localisation

Right, I feel like a moron. But I cannot figure out what I'm doing wrong.

Have completed tut, and am partially functional.

by partially, I mean that if I name the map folder to op_barracuda rather than community_op_barracuda and replace the normal op_barracuda folder with the modified one, its happy as a clam, and the correct name ("Community Match Operation Barracuda") Comes up ingame. What am I doing wrong?

if I put the 'community_op_barracuda' folder alongside the normal op_barracuda folder, or have only the community_op_barracuda folder there, it is not shown in the list of avaliable maps ingame. no idea why.


To view links or images in signatures your post count must be 1 or greater. You currently have 0 posts.

Very busy IRL at this time, do not be suprised if I don't reply to PMs for prolonged periods.
[R-DEV]Rudd is offline Reply With Quote
Old 07-21-2009, 10:33 AM   #3
[R-DEV]AncientMan
PR:BF2 Project Manager
Supporting Member
PR Server License Administrator

[R-DEV]AncientMan's Avatar
Default Re: Map Localisation

That's probably not really got anything to do with localisation. Your map's .desc file probably isn't set up right.


To view links or images in signatures your post count must be 1 or greater. You currently have 0 posts.
[R-DEV]AncientMan is offline Reply With Quote
Old 11-02-2010, 02:24 PM   #4
Bedo-2010
Default Re: [Map Tutorial] Map Localisation

guys , i need help with somthin , 1st when i try to test the server it doesnt apear on the map list the map dont have the server.rar things its all opened folder , how to make it work so i test it out , 2nd thing , how to make the main base uncaputreable but the other team already have it , 3rd thing i dont realy need it now but i dont see idf in the list , and i see us , and usaarmy what is the diff! :S , one last thing how to set the car time spawn thing thats it hope u find some good replies
Bedo-2010 is offline Reply With Quote
Reply


Tags
localisation, map, tutorial
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 03:18 AM.


Powered by: vBulletin. ©vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.1
All Content Copyright ©2004 - 2014, Project Reality.