I'm currently working on a very simple map conversion, turning Kashan Desert into a "training" map featuring most of the PR vehicles for wild tryouts. This is meant for internal use in our project only, as it would make it far easier to assess the strengths and weaknesses of the vehicles greatly (and well, training, of course
So, well, enough with the introduction!
As it really is only about the vehicles, the only file really concerned is the Gameplayobjects.con. But, for the sake of simplicity and non-crushing-PR-vanilla-files I wanted to make it a separate map folder. As it would be stupid to just copy&paste all the textures (filesize!) I tried to make the map read all these from the standard Kashan Desert map. But, sadly 'tis not working!
I also have to admit that I'm a fair rookie in BF2 mapping&modding. I'm a BF42 modder (Battlegroup42) for some years now which helps a great deal with the "basics", but I am not familiar with the more specific BF2 quirks and oddities.
The map loads fine up to 100%, but then, before the "Deploy"-Button appears (during "Validating"), the game simply CtDs without any error message...when running the debugger, it spits out a generic "BF2 has crashed" error...when checking the (vast) logfile, the last lines say this:
Code: Select all
D:\DiceCanada\BoosterPack2\Code\BF2\Geom\NametagManager.cpp(2611): Debug: Geom: NAMETAG: Inserting NametagItem ID: 1073772062 Type: TTObject
D:\DiceCanada\BoosterPack2\Code\BF2\Geom\NametagManager.cpp(869): Debug: Geom: NAMETAG: Attempting to removeItem for type: TTObject ID: 1073772062 From Slot: 14
D:\DiceCanada\BoosterPack2\Code\BF2\Geom\StaticMesh.cpp(2081): Assert: Geom: (m_activeLod < m_template->m_geomDependentMaterialList[m_activeGeom].size()) tl: lod: 2 of geom: 0 on mesh: conc_wall_dest_6m out of range [0,0
D:\DiceCanada\BoosterPack2\Code\BF2\Geom\StaticMesh.cpp(2081): Assert: Geom: (m_activeLod < m_template->m_geomDependentMaterialList[m_activeGeom].size()) tl: lod: 2 of geom: 0 on mesh: conc_wall_dest_8m out of range [0,0
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(466): Debug: SpawnSystem: Created SpawnGroup 215
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(510): Debug: SpawnSystem: Adding networkable for spawnGroup 215 net id 601
D:\DiceCanada\BoosterPack2\Code\BF2\Game\Objects\Weapons\GenericFireArm.cpp(276): Assert: Weapons: (m_fireComp != 0) No fire comp! mec_jet_su25a_ffarpods
D:\DiceCanada\BoosterPack2\Code\BF2\Game\Objects\Game\PlayerControlObject.cpp(2036): Warning: Game: Unknown weapon fire button for weapon, button : PINone
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(466): Debug: SpawnSystem: Created SpawnGroup 216
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(510): Debug: SpawnSystem: Adding networkable for spawnGroup 216 net id 602
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(466): Debug: SpawnSystem: Created SpawnGroup 217
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(510): Debug: SpawnSystem: Adding networkable for spawnGroup 217 net id 603
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(466): Debug: SpawnSystem: Created SpawnGroup 218
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(510): Debug: SpawnSystem: Adding networkable for spawnGroup 218 net id 604
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(466): Debug: SpawnSystem: Created SpawnGroup 219
D:\DiceCanada\BoosterPack2\Code\BF2\Game\GameLogic\SpawnSystem\SpawnManager.cpp(510): Debug: SpawnSystem: Adding networkable for spawnGroup 219 net id 605
D:\DiceCanada\BoosterPack2\Code\BF2\Game\Objects\Weapons\GenericFireArm.cpp(276): Assert: Weapons: (m_fireComp != 0) No fire comp! ch_apc_wz551a_Barrel
D:\DiceCanada\BoosterPack2\Code\BF2\Game\Objects\Weapons\GenericFireArm.cpp(276): Assert: Weapons: (m_fireComp != 0) No fire comp! ch_apc_wz551a_Barrel_HEI
It's also important to note that when I include my gameplayobjects.con in the original Kashan Desert (I put it in gpm_skirmish\64) the map loaded just fine and everything worked great, so I doubt the gpo.con is the problem at all.
Currently my map folder looks like this:
Envmaps (f)
GameModes (f)
HuD (f)
Info (f)
Lightmaps (f)
groundhemi.dds
Init.con
lowdetailtexture.dds
ServerArchives.con
StaticObjects.con
And the Init.con looks like this:
Code: Select all
run Levels/kashan_desert/Heightdata.con
run Levels/kashan_desert/Terrain.con v_arg2
run Levels/kashan_desert/Sky.con v_arg2
run Levels/kashan_desert/CompiledRoads.con
run Levels/kashan_desert/Sounds.con
run Levels/kashan_desert/SoundDistances.con
run Levels/kashan_desert/tmp.con v_arg1
Undergrowth.load Levels\kashan_desert\
run Levels/kashan_desert/Overgrowth/Overgrowth.con
run Levels/kashan_desert/Overgrowth/OvergrowthCollision.con
run Levels/kashan_desert/AmbientObjects.con
run Levels/kashan_desert/Water.con
run Levels/kashan_desert/TriggerableTemplates.con
rem ------------------------------- LevelSettings -------------------------------
rem -----------------------------------------------------------------------------
run ../../factions_usa/usa.con
run ../../factions_mec/mec.con
rem -----------------------------------------------------------------------------
gameLogic.setBeforeSpawnCamera -61/67/718 138/18/0
if v_arg1 == BF2Editor
LevelSettings.CustomTextureSuffix ""
else
texturemanager.customTextureSuffix ""
endIf
rem -----------------------------------------------------------------------------
GameLogic.MaximumLevelViewDistance 1000
rem -----------------------------------------------------------------------------
gameLogic.setDefaultNumberOfTicketsEx 16 1 400
gameLogic.setDefaultNumberOfTicketsEx 16 2 400
gameLogic.setDefaultNumberOfTicketsEx 32 1 600
gameLogic.setDefaultNumberOfTicketsEx 32 2 600
gameLogic.setDefaultNumberOfTicketsEx 64 1 600
gameLogic.setDefaultNumberOfTicketsEx 64 2 600
gameLogic.setDefaultNumberOfTicketsEx 128 1 100
gameLogic.setDefaultNumberOfTicketsEx 128 2 100
gameLogic.setDefaultTimeToNextAIWave 8
gameLogic.setTicketLossAtEndPerMin 1000
gameLogic.setTicketLossPerMin 1 10
gameLogic.setTicketLossPerMin 2 10The Lightmaps\ folder is in because I get an error message that the game is unable to find the Atlas.tai, even though I order it to read it from kashan_desert...weird. Though I only need to have the Lightmap\objects files included, the terrain lightmaps can be read from kashan desert without problems.
The Info\kashan_desert_testmap.desc :
Code: Select all
<map>
<name> Kashan Desert Testmap </name>
<briefing locid="MAPDESCRIPTION_kashan_desert">map description for modders maps not localized (english only)</briefing>
<music> common/sound/menu/music/map7.ogg </music>
<modes>
<mode type="gpm_cq">
<maptype players="64" type="headon" locid="GAMEMODE_DESCRIPTION_aasfullassets">Unlocalized test for this mode on this map</maptype>
</mode>
</modes>
</map>
