I made this tutorial so we can share what we know about bc2 modifications.
EDIT by RobbingHood:
Prerequisites:
emi-liano wrote:install phyton 2.7 only, and if this doesn't fix the problem, download ScintillaNET v2.5.2 and paste/reeplace in the mod tools folder. But it is most likely that you don't have phyton 2.7, you may installed phyton 3, and this program doesn't work with anything but phyton 2.7.
1:
download and configure your server files, from:
viewtopic.php?f=10&t=4&p=8&hilit=server+files+r32#p8
download and install Mod Tools v2.0 by Frankelstner and Rukqoa, from:
viewtopic.php?f=10&t=983
2:
we are going to start by modifying the parameters of an specific level; in the example we use heavy metal conquest.
Press extract button in mod tool v2. and open the file level-00.fbrb from this directory: ...Dist\linux\levels\mp_sp_005cq (make a back-up first!); you can find this folder in the server files.
3:
Go to the main dbx file: MP_SP_005CQ, here you have most of the parameters of this specific map, such as spawn points, map borders, number and type of vehicles, etc.
once there we proceed to edit the code, in this example we are going to set new borders to the map.
4:
Search for combatarea (CTRL+f), scroll down and copy the referenced geometry guid, (676CE750-9F3D-43B0-AA6F-CD7D26993997) and search for it.
Here you can also disable the borders by changing the Enabled field from true to false, This will remove all boundaries but the minimap is going to be almost black, unfortunately you will be glitched eventually, or falling to an abyss for ever, and many more bugs that will alterate the gaming experience; that is why we will create new borders.
5:
You are going to find several results of the search, press find next button until you find the line that has this structure:
Code: Select all
<instance guid="676CE750-9F3D-43B0-AA6F-CD7D26993997" type="Entity.AreaGeometryEntityData">
<array name="Components" />
<field name="Enumeration">0</field>
<field name="Name" />
<complex name="Transform">1.0/0/0/*nonzero*/0/1.0/0/*nonzero*/0/0/1.0/*nonzero*/-510.878326416/179.249359131/500.990142822/*nonzero*</complex>
<field ref="c8725b43-5ae0-4e3b-a05a-e96311ce13d6" name="Next" />
<field ref="e3d85d53-5352-43bd-b080-54423aad6ace" name="Previous" />
<field name="Height">0</field>
<field name="Weight">1.0</field>
<field ref="null" name="Waypoint" />
</instance>
Now copy paste that Entity.AreaGeometryEntityData three times, from one instance to the next one.
6:
Now you have four sets of a referenced geometry, four waypoints. this means that you can link them to form an square, that will be the allowed limit of the map; you could try add more wayponts to create a more complex border, but for now a square is enough.
Invent some new IDs and adjust the coordinates, or just copy the following code over the first AreaGeometryEntityData; this one it is for heavy metal cq, if you want new borders in another map, you will have to use his original ID instead of 676CE750-9F3D-43B0-AA6F-CD7D26993997
e.g.
Code: Select all
<instance guid="676CE750-9F3D-43B0-AA6F-CD7D26993997" type="Entity.AreaGeometryEntityData">
<array name="Components" />
<field name="Enumeration">0</field>
<field name="Name" />
<complex name="Transform">0.980547/0/0.196286/*nonzero*/0/1.0/0/*nonzero*/-0.196286/0/0.980547/*nonzero*/-800.0/150.0/-800.0/*nonzero*</complex>
<field ref="22222222-3333-4444-5555-666666666666" name="Next" />
<field ref="11112222-3333-4444-5555-666666666666" name="Previous" />
<field name="Height">0</field>
<field name="Weight">1.0</field>
<field ref="null" name="Waypoint" />
</instance>
<instance guid="22222222-3333-4444-5555-666666666666" type="Entity.AreaGeometryEntityData">
<array name="Components" />
<field name="Enumeration">0</field>
<field name="Name" />
<complex name="Transform">0.980547/0/0.196286/*nonzero*/0/1.0/0/*nonzero*/-0.196286/0/0.980547/*nonzero*/800.0/150.0/-800.0/*nonzero*</complex>
<field ref="33332222-3333-4444-5555-666666666666" name="Next" />
<field ref="676CE750-9F3D-43B0-AA6F-CD7D26993997" name="Previous" />
<field name="Height">0</field>
<field name="Weight">1.0</field>
<field ref="null" name="Waypoint" />
</instance>
<instance guid="33332222-3333-4444-5555-666666666666" type="Entity.AreaGeometryEntityData">
<array name="Components" />
<field name="Enumeration">0</field>
<field name="Name" />
<complex name="Transform">0.980547/0/0.196286/*nonzero*/0/1.0/0/*nonzero*/-0.196286/0/0.980547/*nonzero*/800.0/150.0/800.0/*nonzero*</complex>
<field ref="11112222-3333-4444-5555-666666666666" name="Next" />
<field ref="22222222-3333-4444-5555-666666666666" name="Previous" />
<field name="Height">0</field>
<field name="Weight">1.0</field>
<field ref="null" name="Waypoint" />
</instance>
<instance guid="11112222-3333-4444-5555-666666666666" type="Entity.AreaGeometryEntityData">
<array name="Components" />
<field name="Enumeration">0</field>
<field name="Name" />
<complex name="Transform">0.980547/0/0.196286/*nonzero*/0/1.0/0/*nonzero*/-0.196286/0/0.980547/*nonzero*/-800.0/150.0/800.0/*nonzero*</complex>
<field ref="676CE750-9F3D-43B0-AA6F-CD7D26993997" name="Next" />
<field ref="33332222-3333-4444-5555-666666666666" name="Previous" />
<field name="Height">0</field>
<field name="Weight">1.0</field>
<field ref="null" name="Waypoint" />
</instance>
Notice that you will have to use the original ID three times, besides that, you can copy all this code or create any guid you want, as long as it has the correct amount of numbers/letters, this one belong to heavy metal cq (676CE750-9F...) but in every map it will be a different ID.
in this case we use this one because Frankelstner post it in a forum so all the credit it is for him...
7:
When you finish editing , press save, and then archive.
If you copy paste the previous code, you have now new borders in your map ready to test, they are all set at 800, that means you have a perfect square of 800x800 for borders, this is very big, I think every map limit it is 1021 (from the center to the edge), this is the place when you start falling (the actual edge of the map), so if you don't want the player to get that far, just edit the coordinates. 800 it is a standard value that I made, but you can edit the precise perimeter of the map by changing the coordinates and or adding more waypoints.
Coordinates:
To edit the coordinates you have to change the last three numbers before nonzero: /800.0/150.0/800.0/*nonzero*</complex>; this is /X/ Z/ Y/ respectively. The previous numbers represent a point close to the top left corner of the map.
Heavy_metal:
Atacama_Desert:
Relevant info:
To edit specific map characteristics (like the aerial height of the map, number of vehicles, etc) you have to use the files in \Dist\Linux\levels\
To edit common characteristics (weapons damage, ammo, etc) you have to use the files in Dist\Linux\levels\mp_common and mp2_common edit both of them.
To edit map descriptions, points, awards, achievements, etc, you have to use the file startup.fbrb in \Dist\linux\async
"allowmuliplespawn"
multiple spawn for vehicles: with this you can have the desired number of the same vehicle simultaneously, but born in the same place, so when you take the vehicle and move it, another one will spawn in the same place.
to do this: extract a map file, from Dist\linux\levels\, go to the main dbx, then search for the vehicle you want, e.g. mi28 (Havoc), then you have to change "allowmuliplespawn" from false to true, here you can also change the amount of vehicles, (total of vehicles that will spawn), the "spawnrange" (how far must be the vehicle so the other can spawn), SpawnDelay, MaxVehiclesPerMap, MaxVehicles, etc.
IMPORTANT NOTE: you have to be careful when you set muliplespawn on, because with some vehicles it will crash your game after a house is demolished. so, use this with caution, try to set muliplespawn for one vehicle at time, and then test it by destroying a house, if it works good, set the other vehicle, until you find the vehicle that doesn't work with multiple spawn.
"MaxVehicleHeight"
with this you can set how high vehicles can go.
"Combatarea"
by disabling this you will have your map with no borders.
"AlternativeSpawnPoints"
This are the various spawn points of one specific location, e.g. Every team has 6 different spawnpoint in B flag.
to use and modificate this: search for "AlternativeSpawnPoints" you will find several results, go to the one that belong to the desired flag or base, copy one referenced ID and search for it keep searching until you find the one that has this type: "GameSharedResources.AlternateSpawnEntityData" here is where you can modificate the coordinates of this spawn point, just change the coordinates where you want the player spawns.
Source:
http://www.mathopenref.com/coordplane.html
viewtopic.php?f=10&t=983
http://www.bfeditor.org/forums/index.ph ... opic=15699
That is all for now, If you have any questions, feel free to post it, and if you have more info, please share it with us.
I will be updating this post as soon as i can, good luck