Midtown Madness 3
Midtown Madness 3 |
---|
Developer: Digital Illusions CE This game has unused code. |
The sequel of Midtown Madness 2, Midtown Madness 3 has been released only on Xbox. This sequel takes the player around two cities, Paris and Washington D.C., with 40 cars from both France and the United States. With multiplayer support and DLC, the game fully took advantage of Xbox Live.
Contents
- 1 Uncompiled Code
- 1.1 Data\Data_hd\Scripts
- 1.1.1 aidebug.lua
- 1.1.2 broadcasters.lua
- 1.1.3 dopeddebug.lua
- 1.1.4 E3settings.lua
- 1.1.5 logic_events.lua
- 1.1.6 logic_events.lua
- 1.1.7 logic_multi_client.lua
- 1.1.8 logic_multi_spawnlocations_paris.lua
- 1.1.9 logic_multi_spawnlocations_washington.lua
- 1.1.10 PedDebugSetup.lua
- 1.1.11 unlockallskins.lua
- 1.1.12 user.lua
- 1.1.13 userSetup.lua
- 1.2 Data\Data_hd\Scripts\Test
- 1.1 Data\Data_hd\Scripts
- 2 Debug Leftovers
- 3 Strange Folder
- 4 Regional Differences
Uncompiled Code
Data\Data_hd\Scripts
"Data\Data_hd\Scripts" contains 49 files with debugging features, complete game-mode scripts and other interesting stuff like E3 settings.
Note: Out of respect and to avoid copyright issues, the main files are not posted here (i.e. full game-mode scripts...).
aidebug.lua
----------------------------------------------------------------------------------------------------------------------- -- -- Debug script for AI -- -- ----------------------------------------------------------------------------------------------------------------------- function onInit() --setPedDebugFlags() --doAiTest() --debugPedestrians() --doSearchForStartSlowdown() --doTestSpawner() --doTestCinematicPeds() doSearchForAmbientCarLeak() end function loadCurves() setLogLevel( "projects/mmx/main/game/profiletools", "info" ) loadModule( "profiletools" ) profilerGraphAddCurve( "Main_update/ai", 255,255,255 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects",0,255,0 ) -- profilerGraphAddCurve( "Main_update/ai/SphereOfInterest", 0,0,255 ) profilerGraphAddCurve( "Main_update/ai/UpdateWeb", 226,6,209 ) -- purple -- profilerGraphAddCurve( "Main_update/ai/UpdateWeb/postUpdate/populateContainers", 0,215,232 ) -- light seablue -- profilerGraphAddCurve( "Main_update/ai/ExternalTestLine", 255,0,0 ) -- profilerGraphAddCurve( "Main_update/ai/InternalTestLine", 0,255,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdatePedestrians",226,133,5 ) -- yellow profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars",176,225,6 ) -- green profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateSubwayCars",72,159,126 ) -- light window green/blue profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdatePedestrians/LocomotionUpdate",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdatePedestrians/LocomotionUpdate/advancePoint",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdatePedestrians/LocomotionUpdate/checkDrift",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateLocomotion",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateLocomotion/adjustLocalVelocity",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateLocomotion/advancePoint",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateGraphics",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateCollisionTransform",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateSound",0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/UpdateAmbientCars/onPulse",0,0,0 ) profilerCounterToggle() profilerCounterAdd( "Main_update/ai/UpdateWeb" ) profilerCounterAdd( "Main_update/ai/UpdateObjects" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdatePedestrians" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateSubwayCars" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdatePedestrians/LocomotionUpdate" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdatePedestrians/LocomotionUpdate/advancePoint" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdatePedestrians/LocomotionUpdate/checkDrift" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateLocomotion" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateLocomotion/adjustLocalVelocity" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateLocomotion/advancePoint" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateGraphics" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateCollisionTransform" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/UpdateSound" ) profilerCounterAdd( "Main_update/ai/UpdateObjects/UpdateAmbientCars/onPulse" ) end function enablePulseUpdate() aiSetVariable( "objects::m_ambientCarUpdateFreq", 0.5 ) aiSetVariable( "objects::m_pedestrianUpdateFreq", 0.5 ) end function disablePulseUpdate() aiSetVariable( "objects::m_ambientCarUpdateFreq", 1 ) aiSetVariable( "objects::m_pedestrianUpdateFreq", 1 ) end function disableGroundAdjusts() -- Disable the ambient car reset stuff aiSetVariable( "ac::m_cameraAdjustRadius", -1 ) aiSetVariable( "ac::m_useHeightReset", 0 ) aiSetVariable( "ped::m_pedUseHeightReset", 0 ) end function enableGroundAdjusts() aiSetVariable( "ac::m_cameraAdjustRadius", 30 ) aiSetVariable( "ac::m_useHeightReset", 1 ) aiSetVariable( "ped::m_pedUseHeightReset", 1 ) end function enableOccluders() aiSetVariable( "web::m_useOccluders", 1 ) aiSetVariable( "web::m_useLazyOcclusion", 0 ) end function doSplitScreen() job = 0 city = 0 weather = 0 timeOfDay = 1 race = 0 opponentCount = 4 playType = 1 -- SinglePlayer = 0, SplitScreen = 1, Client = 2, Host = 3 startCruiseRace(city, weather, timeOfDay, playType) end function setPedDebugFlags() --aiSetVariable( "ped::m_maxAngleSpeed", 100 ) --aiSetVariable( "ped::m_avoidanceDistance", 150 ) --aiSetVariable( "system::m_cameraSphereRadius", 150 ) setLogLevel( "projects/mmx/main/shared/ai/engine/objects/pedestrian", "all" ) aiDebugSetPedestrianCount(1) setFixedDeltaTime( 33 ) aiTogglePedestrianInfo() aiSetFixedDeltaTime( 0.001 ) unloadModule( "dof" ) end function doAiTest() loadModule( "profiletools" ) unloadModule( "dof" ) toggleFps(1); --aiTogglePopulationInfo() profilerGraphSetSampleCount(128) profilerGraphSetYScale(200.0) setFixedDeltaTime(33) deviceSetFlipSync(0) profilerGraphSetSampleCount(128) profilerGraphAddCurve( "Main_update/ai", 255,255,255 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects",0,255,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateWeb", 226,6,209 ) -- purple profilerGraphAddCurve( "Main_update/ai/UpdateObjects/pedestrians",226,133,5 ) -- yellow profilerGraphAddCurve( "Main_update/ai/UpdateObjects/ambientcars",0,0,255 ) -- green -- renderSetViewDistance( 2000 ) -- aiSetVariable( "web::m_innerSphereRadius", 250 ) -- aiSetVariable( "web::m_maxContainerDistance", 400 ) -- aiSetVariable( "web::m_maxContainerPercentPopulatePerFrame", 0.2 ) -- aiSetVariable( "web::m_maxObjectSpawnedPerFrame", 3 ) end function debugPedestrians() memeDebug() aiDebugSetPedestrianCount(1) aiSetVariable( "ped::m_minorThreatFrequency", 1 ) aiSetVariable( "ped::m_majorThreatFrequency", 0.1 ) end function doSearchForStartSlowdown() loadModule( "profiletools" ) unloadModule( "dof" ) toggleFps(1); --aiTogglePopulationInfo() profilerGraphSetSampleCount(128) profilerGraphSetYScale(200.0) --setFixedDeltaTime(33) deviceSetFlipSync(0) profilerGraphSetSampleCount(128) profilerGraphAddCurve( "Main_update/ai", 0,0,0 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects",0,0,0 ) -- profilerGraphAddCurve( "Main_update/ai/UpdateObjects/ambientcars",255,100,100 ) -- profilerGraphAddCurve( "Main_update/ai/UpdateObjects/ambientcars/onPulse",0,10,255 ) -- profilerGraphAddCurve( "Main_update/ai/UpdateObjects/ambientcars/Update",0,255,10 ) -- profilerGraphAddCurve( "Main_update/ai/UpdateObjects/ambientcars/UpdateObjectCache",255,255,255 ) profilerGraphAddCurve( "Main_update/ai/UpdateObjects/pedestrians",0,0,0 ) end function doTestSpawner() setFixedDeltaTime(33) memeDebug() aiToggleCameraInfo(1) aiToggleContainerSortingInfo(1) aiToggleAmbientCarInfo(1) aiToggleAmbientCarStateInfo(1) aiToggleUpdateWebInfo(1) aiToggleContainerSortingInfo(1) renderSetViewDistance( 1000 ) aiSetVariable( "dbg::m_cameraRenderScale", 0.2 ) aiDebugSetPlayerCarPos(2075,29,556) aiSetVariable( "web::m_trailingPopulateThresholdSpeed", -1 ) end function doTestCinematicPeds() setFixedDeltaTime(33) memeDebug() aiSetVariable( "level::m_disablePedInterpolate", 1 ) aiSetVariable( "cin::m_defaultGridSize",0.5 ) aiSetVariable( "cin::m_defaultGridWidth", 10 ) aiSetVariable( "cin::m_defaultGridExtraExtend", 10 ) aiTogglePedestrianInfo(1) end function doSearchForAmbientCarLeak() cameraBindToPlayer( 1, "Comp--1", 0 ) aiTogglePopulationInfo(1) end
broadcasters.lua
With most of the file commented out, these functions were probably shown as part of an early version.
function onInit() -- Creating services mail mailRadius = 10 mailDuration = 5 aiCreateBroadCaster( 1332.65827 ,61.67926 - 1.811, 1258.69892 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1274.43449 ,61.6671 - 1.811, 1162.96391 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1226.28601 ,61.68954 - 1.811, 1260.2383 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1141.48446 ,55.22907 - 1.811, 1204.47642 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1112.94561 ,52.8401 - 1.811, 1275.65365 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1272.41749 ,56.79825 - 1.811, 1350.84961 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1048.79726 ,35.29428 - 1.811, 1444.6209 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 936.49465 ,33.27933 - 1.811, 1399.15838 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 744.93696 ,32.29973 - 1.811, 1353.62178 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1028.98182 ,52.8028 - 1.811, 1243.46753 , mailRadius, mailDuration, 'mail' ) --aiCreateBroadCaster( 1059.20696 ,46.5964 - 1.811, 1171.77081 , mailRadius, mailDuration, 'mail' ) -- Creating services trash trashRadius = 10 trashDuration = 2 aiCreateBroadCaster( 1168.38237 ,47.44184 , 1123.81628 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1142.65054 ,53.70776 , 1187.22191 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1120.24458 ,53.69802 , 1195.90994 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1052.22699 ,45.20135 , 1175.18068 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1026.6599 ,51.37973 , 1237.63743 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1092.24607 ,51.42217 , 1266.99937 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1097.926 ,51.08131 , 1296.06835 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1211.73156 ,55.40998 , 1327.74428 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1234.65614 ,60.28755 , 1239.43479 , trashRadius, trashDuration, 'trash' ) --aiCreateBroadCaster( 1253.72558 ,60.30076 , 1163.34658 , trashRadius, trashDuration, 'trash' ) -- Creating services rest --aiCreateBroadCaster( 1128.53097 ,33.12035 ,-1030.56577 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1143.24641 ,33.32184 ,-1035.80347 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1160.74997 ,33.51633 ,-1042.40397 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1173.67495 ,33.64051 ,-1047.77536 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1085.17152 ,40.10253 ,-1111.47153 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1113.56825 ,52.10391 ,-1163.78372 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1291.76677 ,54.3735 ,-1130.81722 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1330.27836 ,54.38406 ,-1147.96944 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1328.47942 ,46.11142 ,-1126.74483 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1308.34283 ,46.13301 ,-1117.97723 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1320.17179 ,36.89738 ,-1090.53882 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1340.61473 ,36.89738 ,-1099.61113 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1076.94821 ,51.38193 ,-1282.39252 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1073.29597 ,51.39886 ,-1293.20315 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1069.20546 ,51.41205 ,-1306.35121 , 10, 120, 'rest' ) --aiCreateBroadCaster( 589.25034 ,26.31558 ,-1147.28401 , 10, 120, 'rest' ) --aiCreateBroadCaster( 588.75196 ,25.03382 ,-1121.76616 , 10, 120, 'rest' ) --aiCreateBroadCaster( 588.04408 ,24.63449 ,-1113.18482 , 10, 120, 'rest' ) --aiCreateBroadCaster( 642.19163 ,31.93389 ,-1263.42969 , 10, 120, 'rest' ) --aiCreateBroadCaster( 652.26072 ,31.93389 ,-1263.42969 , 10, 120, 'rest' ) --aiCreateBroadCaster( 631.8763 ,31.93389 ,-1275.5048 , 10, 120, 'rest' ) --aiCreateBroadCaster( 631.8763 ,31.93389 ,-1283.10207 , 10, 120, 'rest' ) --aiCreateBroadCaster( 631.8763 ,30.6975 ,-1319.81102 , 10, 120, 'rest' ) --aiCreateBroadCaster( 631.8763 ,30.83273 ,-1312.21375 , 10, 120, 'rest' ) --aiCreateBroadCaster( 679.75364 ,31.93389 ,-1263.42969 , 10, 120, 'rest' ) --aiCreateBroadCaster( 669.68455 ,31.93389 ,-1263.42969 , 10, 120, 'rest' ) --aiCreateBroadCaster( 713.613 ,31.93389 ,-1263.42969 , 10, 120, 'rest' ) --aiCreateBroadCaster( 703.54391 ,31.93389 ,-1263.42969 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1170.13041 ,28.47486 ,-975.24921 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1170.13041 ,28.95063 ,-988.15536 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1910.40571 ,19.067 ,-816.97786 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1918.75099 ,19.12645 ,-830.88665 , 10, 120, 'rest' ) --aiCreateBroadCaster( 1930.26073 ,19.22818 ,-847.19211 , 10, 120, 'rest' ) end
dopeddebug.lua
Used for debug pedestrians.
function onInit() doReloadPed() end function doReloadPed() local pedCount = 1 local pedFile = "+Animation/Woman_Generic2/Woman_Generic2.mod" local pedPersonality = "Paris_Woman_Generic1" local pedFrequency = 1 aiClearCityProperties() aiAddCityPropPededstrian( pedFile, pedPersonality, pedFrequency ) aiDebugSetPedestrianCount( pedCount ) end
E3settings.lua
Settings for E3! Unfortunately, there isn't much to see here.
function onInit() gameLog("E3settings\n") renderSetCityLodZones(80, 100, 350) renderSetFov(62) renderFacadeSetMaxFloors(2) soundEnableStreamingSounds(1) gameLog("End E3settings\n") end
logic_events.lua
-- ******************************************************************************** -- ******************************************************************************** -- * Midtown Madness X * -- * Event script * -- * OBS: No modifications should be made to this file!!! * -- ******************************************************************************** -- ******************************************************************************** -- ******************************************************************************** -- * Variables * -- ******************************************************************************** event_prev_id = -1 event_obj_ids = 0 events = 4 -- ******************************************************************************** -- * Functions * -- ******************************************************************************** -- Run the commands on startup of the race function randomNewEvent() local new_id repeat new_id = rand(events) until not event_prev_id == new_id event_prev_id = new_id if new_id == 0 then eventAmbulance() end end function eventAmbulance() end function eventFiretruck() end function eventPoliceHunt() end function eventSpeeders() end function endEvents() for i = 0, event_obj_ids, 1 do endEvent(id) end end function endEvent() end
logic_events.lua
Note: This starts from line 702. All lines before that contain the main part of the game, so these aren't shown.
-- ******************************************************************************** -- * Debug functions (should be removed in final version!) * -- ******************************************************************************** function addTime() -- DEBUG timerChangeDelta("race_timer", 60) -- DEBUG gameLog("Added 60s to the counter ... enjoy!") -- DEBUG end -- DEBUG function setTime(new_time) -- DEBUG timerChange("race_timer", new_time) -- DEBUG gameLog("Set counter to " .. new_time .. "s ... enjoy!") -- DEBUG end -- DEBUG function forceWin() -- DEBUG career_result = 1 for i = 0, players_human_amount - 1, 1 do -- DEBUG raceFinish(1, ply_HUMAN_subname .. i) -- DEBUG end -- DEBUG if players_human_amount < players then -- DEBUG for i = 0, players - players_human_amount - 1, 1 do -- DEBUG raceFinish(0, ply_AI_subname .. i) -- DEBUG end -- DEBUG end -- DEBUG raceFinish(1) -- DEBUG end -- DEBUG function forceLose() -- DEBUG career_result = 0 for i = 0, players_human_amount - 1, 1 do -- DEBUG raceFinish(0, ply_HUMAN_subname .. i) -- DEBUG end -- DEBUG if players_human_amount < players then -- DEBUG for i = 0, players - players_human_amount - 1, 1 do -- DEBUG raceFinish(1, ply_AI_subname .. i) -- DEBUG end -- DEBUG end -- DEBUG raceFinish(0) -- DEBUG end -- DEBUG
logic_multi_client.lua
-- ******************************************************************************** -- ******************************************************************************** -- * Midtown Madness X * -- * Generic multiplayer : Cruise * -- * OBS: No modifications should be made to this file!!! * -- ******************************************************************************** -- ******************************************************************************** -- Only InitAmbience() should be called in this script gameLoadScript("logic_general.lua") -- ******************************************************************************** -- * Startup functions * -- ******************************************************************************** function generalOnRaceStart(player, view, timeLeft) local timer_in = 0.15 local timer_out = 0 local timer_show = (timeLeft/6) - timer_in - timer_out local timer_sound = 0 local timer_wait = (timeLeft/6) - timer_sound if (timeLeft > 1) then stack(0, "cameraPreRaceSweep(" .. view .. ", " .. (timeLeft/2) .. ")") stack(timeLeft/2, "gameCountDownStart(3, " .. timer_in .. ", " .. timer_show .. ", " .. timer_out .. ")") stack(timer_sound, "soundPlayEffect('321')") stack(timer_wait, "gameCountDownStart(2, " .. timer_in .. ", " .. timer_show .. ", " .. timer_out .. ")") stack(timer_sound, "soundPlayEffect('321')") stack(timer_wait, "gameCountDownStart(1, " .. timer_in .. ", " .. timer_show .. ", " .. timer_out .. ")") stack(timer_sound, "soundPlayEffect('321')") stack(timer_wait, "gameCountDownStart(0, " .. timer_in .. ", " .. timer_show .. ", " .. timer_out .. ")") stack(timer_sound, "soundPlayEffect('go')") stack(timer_sound, "playerEnableInput('" .. player .. "')") stack(timer_sound, "raceStart()") else gameLog("Quick countdown") sweepTime = 2 stack(0, "cameraPreRaceSweep(" .. view .. ", " .. sweepTime .. ")") stack(sweepTime, "playerEnableInput('" .. player .. "')") stack(timer_sound, "raceStart()") end stackRun() end
logic_multi_spawnlocations_paris.lua
This file contains all multiplayer spawn locations for the Paris map.
-- ******************************************************************************** -- ******************************************************************************** -- * Midtown Madness X * -- * Multiplayer Paris spawn-locations * -- ******************************************************************************** -- ******************************************************************************** -- ******************************************************************************** -- * Variables * -- ******************************************************************************** multi_spawn_location = {} -- Arc de Triumph multi_spawn_location[1] = {} multi_spawn_location[1]["constrain"] = {-703.014038,28.599976,885.903259, 525;} multi_spawn_location[1][1] = {-729.062622,28.860729,824.705627, 0.425785;} multi_spawn_location[1][2] = {-677.116394,28.857939,949.094666, 3.571365;} multi_spawn_location[1][3] = {-641.333069,28.863956,860.687378, 5.155476;} multi_spawn_location[1][4] = {-766.623108,28.857964,912.715942, 1.978534;} multi_spawn_location[1][5] = {-676.919922,28.857769,823.593689, 5.871404;} multi_spawn_location[1][6] = {-728.254639,28.857880,948.912903, 2.760859;} multi_spawn_location[1][7] = {-767.676270,28.857950,859.173645, 1.161324;} multi_spawn_location[1][8] = {-638.290466,28.857740,913.429626, 4.350385;} multi_spawn_location[1]["hunter"] = {-981.388855,23.768562,1018.33545, 2.041837;} -- Madelene multi_spawn_location[2] = {} multi_spawn_location[2]["constrain"] = {422.957336,17.246643,612.156738, 525;} multi_spawn_location[2][1] = {322.972992,16.837706,347.575134, 5.907536;} multi_spawn_location[2][2] = {334.735931,16.837709,373.062439, 5.909806;} multi_spawn_location[2][3] = {353.446503,16.837776,415.699432, 4.431984;} multi_spawn_location[2][4] = {366.081696,16.837925,443.371582, 4.377823;} multi_spawn_location[2][5] = {333.614349,16.837883,457.941254, 2.809117;} multi_spawn_location[2][6] = {321.175781,16.837658,430.809875, 2.794186;} multi_spawn_location[2][7] = {302.376709,16.837711,388.463440, 1.236599;} multi_spawn_location[2][8] = {289.608276,16.837986,361.928284, 1.226411;} multi_spawn_location[2]["hunter"] = {439.119110,17.847754,647.673523, 3.564979;} -- Sacre Coeur multi_spawn_location[3] = {} multi_spawn_location[3]["constrain"] = {1325.210571,59.870087,1250.398804, 425;} multi_spawn_location[3][1] = {1313.419067,60.337944,1194.342896, 3.189455;} multi_spawn_location[3][2] = {1317.712891,60.337757,1194.975830, 2.936446;} multi_spawn_location[3][3] = {1322.614136,60.337952,1196.053589, 2.857661;} multi_spawn_location[3][4] = {1327.407104,60.337914,1197.515991, 2.719390;} multi_spawn_location[3][5] = {1332.121338,60.337757,1200.257446, 2.714844;} multi_spawn_location[3][6] = {1336.138672,60.337765,1203.317993, 2.504399;} multi_spawn_location[3][7] = {1339.617676,60.337688,1207.518433, 2.518405;} multi_spawn_location[3][8] = {1342.158447,60.337975,1211.277466, 2.424995;} multi_spawn_location[3]["hunter"] = {1290.744629,60.334320,1284.734375, 2.759937;} -- Eleftower multi_spawn_location[4] = {} multi_spawn_location[4]["constrain"] = {-696.029297,18.000000,-49.686310, 425;} multi_spawn_location[4][1] = {-719.329651,18.447693,-26.505781, 2.349847;} multi_spawn_location[4][2] = {-695.599915,18.447969,-15.732449, 3.137931;} multi_spawn_location[4][3] = {-671.047241,18.447758,-25.033384, 3.931411;} multi_spawn_location[4][4] = {-661.050720,18.448000,-50.882565, 4.715195;} multi_spawn_location[4][5] = {-671.032288,18.447788,-74.669556, 5.502910;} multi_spawn_location[4][6] = {-694.474854,18.447910,-83.900726, 0.000088;} multi_spawn_location[4][7] = {-719.453979,18.447958,-74.749634, 0.810257;} multi_spawn_location[4][8] = {-729.589783,18.447727,-50.130402, 1.580507;} multi_spawn_location[4]["hunter"] = {-848.239014,18.347912,97.422989, 2.379388;} -- Ivalides multi_spawn_location[5] = {} multi_spawn_location[5]["constrain"] = {28.115973,18.720947,-79.843658, 425;} multi_spawn_location[5][1] = {69.609177,16.347717,54.545708, 3.918060;} multi_spawn_location[5][2] = {46.931175,16.347748,54.368378, 3.826791;} multi_spawn_location[5][3] = {6.487767,16.347996,54.640152, 2.510480;} multi_spawn_location[5][4] = {-14.708457,16.347748,54.839447, 2.419253;} multi_spawn_location[5][5] = {-14.491766,17.847687,-37.188122, 0.761890;} multi_spawn_location[5][6] = {4.228920,17.847748,-36.878803, 0.687307;} multi_spawn_location[5][7] = {49.918549,17.847965,-37.113750, 5.566256;} multi_spawn_location[5][8] = {68.750893,17.847935,-36.856266, 5.562202;} multi_spawn_location[5]["hunter"] = {27.721218,16.347717,331.313538, 3.157137;} -- City Isle multi_spawn_location[6] = {} multi_spawn_location[6]["constrain"] = {1448.582764,16.400024,-313.651245, 450;} multi_spawn_location[6][1] = {1393.877075,16.847881,-366.040558, 5.947467;} multi_spawn_location[6][2] = {1402.866943,16.847683,-346.525665, 5.948645;} multi_spawn_location[6][3] = {1419.379883,16.847746,-308.096161, 4.345691;} multi_spawn_location[6][4] = {1410.813599,16.847914,-328.220581, 4.377406;} multi_spawn_location[6][5] = {1348.520874,16.847792,-271.827545, 2.714844;} multi_spawn_location[6][6] = {1341.157715,16.847725,-289.324158, 2.694270;} multi_spawn_location[6][7] = {1333.005249,16.847767,-308.282532, 1.321308;} multi_spawn_location[6][8] = {1323.927490,16.897749,-327.855591, 1.248204;} multi_spawn_location[6]["hunter"] = {1166.150391,16.847935,-231.310135, 2.371164;} -- Unlimited multi_spawn_location[7] = {} multi_spawn_location[7][1] = {1313.419067,60.337944,1194.342896, 3.189455;} multi_spawn_location[7][2] = {1317.712891,60.337757,1194.975830, 2.936446;} multi_spawn_location[7][3] = {1322.614136,60.337952,1196.053589, 2.857661;} multi_spawn_location[7][4] = {1327.407104,60.337914,1197.515991, 2.719390;} multi_spawn_location[7][5] = {1332.121338,60.337757,1200.257446, 2.714844;} multi_spawn_location[7][6] = {1336.138672,60.337765,1203.317993, 2.504399;} multi_spawn_location[7][7] = {1339.617676,60.337688,1207.518433, 2.518405;} multi_spawn_location[7][8] = {1342.158447,60.337975,1211.277466, 2.424995;} multi_spawn_location[7]["hunter"] = {1290.744629,60.334320,1284.734375, 2.759937;} -- Cruise multi_spawn_location[8] = {} multi_spawn_location[8][1] = {180.986481,16.655756,58.177841, 1.593299;} multi_spawn_location[8][2] = {-615.324341,21.842503,412.393097, 3.931410;} multi_spawn_location[8][3] = {-1128.711670,24.289661,883.728882, 3.074329;} multi_spawn_location[8][4] = {54.421188,23.347857,1386.962402, 3.079253;} multi_spawn_location[8][5] = {1406.147461,53.851055,1266.255249, 1.336572;} multi_spawn_location[8][6] = {1861.869995,19.371660,630.421021, 5.883550;} multi_spawn_location[8][7] = {1497.211548,16.847780,-250.838928, 2.021087;} multi_spawn_location[8][8] = {1539.080200,16.937584,-566.287537, 4.717976;} -- Gold multi_spawn_location["gold"] = {} multi_spawn_location["gold"][1] = {27.619831,15.899979,151.004028;} -- 16 multi_spawn_location["gold"][2] = {510.128723,17.399979,802.096802;} -- 38 multi_spawn_location["gold"][3] = {637.825623,16.899979,439.395630;} -- 29 multi_spawn_location["gold"][4] = {70.373413,15.899979,594.340332;} -- 30 multi_spawn_location["gold"][5] = {325.681641,16.899979,-120.995880;} -- 17 multi_spawn_location["gold"][6] = {-137.839081,17.299988,729.480713;} -- 48 multi_spawn_location["gold"][7] = {613.216919,16.899979,-5.279836;} -- 23 multi_spawn_location["gold"][8] = {600.029785,17.310059,-145.191147;} -- 46 multi_spawn_location["gold"][9] = {-1555.703369,28.399979,-37.747147;} multi_spawn_location["gold"][10] = {-1022.544434,15.399979,-559.657471;} multi_spawn_location["gold"][11] = {-1355.485352,15.899979,-426.604187;} multi_spawn_location["gold"][12] = {-800.916809,17.899963,51.394344;} multi_spawn_location["gold"][13] = {-485.074951,17.899979,-451.198364;} multi_spawn_location["gold"][14] = {-748.948853,16.399979,-715.916992;} multi_spawn_location["gold"][15] = {-373.973633,16.899979,-5.527623;} multi_spawn_location["gold"][16] = {-1070.768311,21.899979,1061.608154;} multi_spawn_location["gold"][17] = {116.333023,17.899979,954.202881;} multi_spawn_location["gold"][18] = {305.166138,19.899979,-622.457764;} multi_spawn_location["gold"][19] = {49.180462,18.150024,-810.410339;} multi_spawn_location["gold"][20] = {1261.429932,26.899979,-676.699585;} multi_spawn_location["gold"][21] = {970.703003,21.899979,-359.442871;} multi_spawn_location["gold"][22] = {1095.965698,16.400055,-113.556137;} multi_spawn_location["gold"][23] = {-858.444824,28.899979,553.948975;} multi_spawn_location["gold"][24] = {1624.031372,16.399963,-386.684357;} multi_spawn_location["gold"][25] = {1481.129150,17.399979,77.869461;} multi_spawn_location["gold"][26] = {1824.858643,16.899979,32.501091;} multi_spawn_location["gold"][27] = {1876.052246,16.899979,442.743164;} multi_spawn_location["gold"][28] = {1617.268066,18.399979,644.669800;} multi_spawn_location["gold"][29] = {-437.763275,19.900024,1446.560913;} multi_spawn_location["gold"][30] = {66.243362,22.899979,1338.643799;} multi_spawn_location["gold"][31] = {772.134155,17.399979,846.217041;} multi_spawn_location["gold"][32] = {1102.542725,18.899979,566.972046;} multi_spawn_location["gold"][33] = {728.954590,31.899979,1194.063232;} multi_spawn_location["gold"][34] = {1132.948730,53.274979,1195.590088;} multi_spawn_location["gold"][35] = {1490.349609,35.900024,1392.827515;} multi_spawn_location["gold"][36] = {1047.189331,51.008362,1298.597046;} multi_spawn_location["gold"][37] = {361.496674,25.000000,1243.686157;} multi_spawn_location["gold"][38] = {-702.358643,18.899979,1179.706787;} multi_spawn_location["gold"][39] = {1630.941650,20.027954,838.434143;} multi_spawn_location["gold"][40] = {1170.390991,17.495758,227.624176;} multi_spawn_location["gold"][41] = {1516.652954,16.520050,-110.829979;} multi_spawn_location["gold"][42] = {1917.501221,17.861328,-129.258087;} multi_spawn_location["gold"][43] = {1703.364624,16.954834,-639.585083;} multi_spawn_location["gold"][44] = {960.939392,22.020508,-624.539551;} multi_spawn_location["gold"][45] = {543.715515,22.261963,-637.169373;} multi_spawn_location["gold"][46] = {-1155.555908,36.899979,238.722473;} multi_spawn_location["gold"][47] = {324.604584,16.499939,395.158051;} multi_spawn_location["gold"][48] = {-85.309006,16.399979,820.480103;} multi_spawn_location["gold"][49] = {-585.378174,21.987091,381.403778;} multi_spawn_location["gold"][50] = {-325.806000,18.100006,-415.904602;} multi_spawn_location["gold"][51] = {-695.418823,18.000000,-50.609802;} multi_spawn_location["gold"][52] = {-968.724731,15.863190,-365.412994;} multi_spawn_location["gold"][53] = {-1595.606934,28.481140,345.600647;} multi_spawn_location["gold"][54] = {-1205.456787,27.510010,524.623840;} multi_spawn_location["gold"][55] = {-964.912415,25.684845,884.870483;}
logic_multi_spawnlocations_washington.lua
This file contains all mutiplayer spawn locations for the Washington D.C. map.
-- ******************************************************************************** -- ******************************************************************************** -- * Midtown Madness X * -- * Multiplayer Paris spawn-locations * -- ******************************************************************************** -- ******************************************************************************** -- ******************************************************************************** -- * Variables * -- ******************************************************************************** multi_spawn_location = {} -- Georgetown multi_spawn_location[1] = {} multi_spawn_location[1]["constrain"] = {-2406.284912,28.233459,257.859772, 457.336243;} multi_spawn_location[1][1] = {-2312.196289,27.857698,273.762787, 6.264912;} multi_spawn_location[1][2] = {-2312.310303,29.223230,331.034180, 6.269712;} multi_spawn_location[1][3] = {-2298.087891,29.189545,346.298798, 1.559112;} multi_spawn_location[1][4] = {-2256.141602,27.876236,346.296539, 1.591613;} multi_spawn_location[1][5] = {-2241.240479,27.543348,331.015015, 3.143258;} multi_spawn_location[1][6] = {-2241.197510,26.403000,275.176086, 3.113431;} multi_spawn_location[1][7] = {-2255.969727,26.360155,259.507538, 4.702484;} multi_spawn_location[1][8] = {-2297.729004,27.643274,258.402679, 4.682470;} multi_spawn_location[1]["hunter"] = {-2148.211914,24.730377,306.304413, 4.709475;} -- Foggy Bottom multi_spawn_location[2] = {} multi_spawn_location[2]["constrain"] = {-1274.151245,25.806458,237.514755, 525;} multi_spawn_location[2][1] = {-1210.474854,26.254444,139.140472, 3.204724;} multi_spawn_location[2][2] = {-1142.356934,26.254408,67.950684, 1.648010;} multi_spawn_location[2][3] = {-1074.679199,26.254335,139.959030, 6.201978;} multi_spawn_location[2][4] = {-1142.934937,26.254213,201.887405, 4.776656;} multi_spawn_location[2][5] = {-1178.864380,26.254211,97.344765, 2.349544;} multi_spawn_location[2][6] = {-1101.678711,26.254206,101.780121, 0.628363;} multi_spawn_location[2][7] = {-1104.268799,26.254423,171.039917, 5.606558;} multi_spawn_location[2][8] = {-1175.988281,26.254255,175.927887, 4.012073;} multi_spawn_location[2]["hunter"] = {-906.435181,27.766840,346.279297, 4.008389;} -- Old Downtown multi_spawn_location[3] = {} multi_spawn_location[3]["constrain"] = {154.533295,13.246826,-604.300781, 425;} multi_spawn_location[3][1] = {253.174438,12.832956,-458.188568, 6.254433;} multi_spawn_location[3][2] = {254.085526,13.595224,-362.554382, 6.261364;} multi_spawn_location[3][3] = {212.474258,14.834875,-313.326752, 4.657073;} multi_spawn_location[3][4] = {126.169525,18.095253,-312.895813, 4.667452;} multi_spawn_location[3][5] = {86.928024,18.104650,-353.726746, 3.119173;} multi_spawn_location[3][6] = {87.669640,13.472976,-459.261383, 3.092720;} multi_spawn_location[3][7] = {123.060104,12.538389,-504.920013, 1.522342;} multi_spawn_location[3][8] = {215.124588,12.538510,-504.384888, 1.566956;} multi_spawn_location[3]["hunter"] = {399.824646,13.452885,-391.600189, 4.711599;} -- Tidal Basin multi_spawn_location[4] = {} multi_spawn_location[4]["constrain"] = {-1751.606079,5.042877,-1244.110840, 425;} multi_spawn_location[4][1] = {-1844.580811,4.047687,-1274.358765, 6.138587;} multi_spawn_location[4][2] = {-1855.360107,4.968145,-1188.194336, 0.014566;} multi_spawn_location[4][3] = {-1855.978149,6.616273,-997.628235, 3.269839;} multi_spawn_location[4][4] = {-1864.538940,4.926413,-1075.166870, 3.184719;} multi_spawn_location[4][5] = {-1728.561890,5.654915,-1138.595337, 4.932168;} multi_spawn_location[4][6] = {-1777.593872,7.935446,-1127.870850, 4.845860;} multi_spawn_location[4][7] = {-2000.258423,6.316060,-1142.433838, 1.308180;} multi_spawn_location[4][8] = {-1916.541382,8.947168,-1134.218872, 1.522468;} multi_spawn_location[4]["hunter"] = {-1554.485474,5.528229,-1138.989624, 4.696843;} -- The Mall multi_spawn_location[5] = {} multi_spawn_location[5]["constrain"] = {-53.649681,68.835258,-1095.499878, 425;} multi_spawn_location[5][1] = {-193.962738,9.486697,-745.444397, 1.572119;} multi_spawn_location[5][2] = {-57.936405,7.360875,-730.081665, 4.676148;} multi_spawn_location[5][3] = {-98.880318,7.730098,-735.058594, 4.718804;} multi_spawn_location[5][4] = {-158.140762,8.988713,-740.526245, 1.529459;} multi_spawn_location[5][5] = {-193.222382,7.961590,-811.556213, 1.561941;} multi_spawn_location[5][6] = {-63.259972,6.446536,-796.941040, 4.710402;} multi_spawn_location[5][7] = {-96.747589,6.737310,-801.879333, 4.681288;} multi_spawn_location[5][8] = {-159.718521,7.662846,-806.645325, 1.571498;} multi_spawn_location[5]["hunter"] = {197.416855,6.171320,-939.905396, 5.213995;} -- Capitol Hill multi_spawn_location[6] = {} multi_spawn_location[6]["constrain"] = {979.961731,23.781250,-1375.919434, 450;} multi_spawn_location[6][1] = {788.779358,5.832767,-1473.733887, 4.093361;} multi_spawn_location[6][2] = {756.3,5.832571,-1496.8, 4.108547;} multi_spawn_location[6][3] = {723.821838,5.832766,-1520.122192, 4.072991;} multi_spawn_location[6][4] = {696.873413,5.832688,-1551.566040, 4.103737;} multi_spawn_location[6][5] = {789.430298,5.832827,-1297.911377, 5.217075;} multi_spawn_location[6][6] = {760.426453,5.832639,-1269.318604, 5.222821;} multi_spawn_location[6][7] = {721.383362,5.832563,-1257.920898, 5.265994;} multi_spawn_location[6][8] = {692.771240,5.832766,-1228.780396, 5.229215;} multi_spawn_location[6]["hunter"] = {1035.887573,13.826936,-1613.959839, 4.726848;} -- Unlimited multi_spawn_location[7] = {} multi_spawn_location[7][1] = {-193.962738,9.486697,-745.444397, 1.572119;} multi_spawn_location[7][2] = {-57.936405,7.360875,-730.081665, 4.676148;} multi_spawn_location[7][3] = {-98.880318,7.730098,-735.058594, 4.718804;} multi_spawn_location[7][4] = {-158.140762,8.988713,-740.526245, 1.529459;} multi_spawn_location[7][5] = {-193.222382,7.961590,-811.556213, 1.561941;} multi_spawn_location[7][6] = {-63.259972,6.446536,-796.941040, 4.710402;} multi_spawn_location[7][7] = {-96.747589,6.737310,-801.879333, 4.681288;} multi_spawn_location[7][8] = {-159.718521,7.662846,-806.645325, 1.571498;} multi_spawn_location[7]["hunter"] = {197.416855,6.171320,-939.905396, 5.213995;} -- Cruise multi_spawn_location[8] = {} multi_spawn_location[8][1] = {1086.434570,13.006753,-691.295715, 3.161417;} multi_spawn_location[8][2] = {97.657379,6.513629,-1028.308838, 0.000000;} multi_spawn_location[8][3] = {-120.714798,21.335129,-308.182770, 4.716100;} multi_spawn_location[8][4] = {-1267.814575,18.625660,-112.020821, 3.145168;} multi_spawn_location[8][5] = {-2057.449219,28.237991,329.260193, 3.097996;} multi_spawn_location[8][6] = {-2654.936035,9.911852,-257.709259, 1.567365;} multi_spawn_location[8][7] = {-2086.356689,4.125021,-1158.038940, 2.287669;} multi_spawn_location[8][8] = {-622.063171,3.861327,-2366.347168, 3.278423;} multi_spawn_location["gold"] = {} multi_spawn_location["gold"][1] = {-823.757080,9.042435,-807.373047;} -- 18 multi_spawn_location["gold"][2] = {-215.927460,5.376343,-1149.390381;} -- 11 multi_spawn_location["gold"][3] = {-560.312073,11.648438,-1416.510498;} -- 45 multi_spawn_location["gold"][4] = {-823.286560,3.797882,-1383.062256;} -- 17 multi_spawn_location["gold"][5] = {-1152.007813,7.518433,-994.587402;} -- 25 multi_spawn_location["gold"][6] = {-915.442261,16.482178,-500.939667;} -- 47 multi_spawn_location["gold"][7] = {1331.952271,25.035522,-1378.985352;} -- 18 multi_spawn_location["gold"][8] = {252.642960,13.614441,-315.798004;} multi_spawn_location["gold"][9] = {90.469711,9.042435,-737.973389;} multi_spawn_location["gold"][10] = {-204.500488,24.282425,-123.829163;} multi_spawn_location["gold"][11] = {1226.847412,16.662430,-887.609253;} multi_spawn_location["gold"][12] = {90.463791,7.518433,-1619.827637;} multi_spawn_location["gold"][13] = {-373.016968,2.946426,-1915.495361;} multi_spawn_location["gold"][14] = {-881.556641,2.946472,-2382.582275;} multi_spawn_location["gold"][15] = {-1248.853638,2.946442,-1815.185059;} multi_spawn_location["gold"][16] = {-1692.629150,3.556030,-1651.590576;} multi_spawn_location["gold"][17] = {899.436768,11.898163,-1382.999512;} multi_spawn_location["gold"][18] = {850.169312,13.614441,-469.590607;} multi_spawn_location["gold"][19] = {-475.943298,16.662430,-460.694519;} multi_spawn_location["gold"][20] = {-744.277466,18.186417,-189.698212;} multi_spawn_location["gold"][21] = {-908.473938,26.092407,138.648117;} multi_spawn_location["gold"][22] = {-569.073975,27.025635,331.281403;} multi_spawn_location["gold"][23] = {-1409.874390,33.426453,592.885437;} multi_spawn_location["gold"][24] = {-1259.039673,19.710449,-314.376343;} multi_spawn_location["gold"][25] = {405.971344,7.017456,-1315.076416;} multi_spawn_location["gold"][26] = {-1565.794678,19.710449,-605.743774;} multi_spawn_location["gold"][27] = {-1812.878418,3.246796,-681.379578;} multi_spawn_location["gold"][28] = {-1893.446777,9.278564,-1126.059570;} multi_spawn_location["gold"][29] = {-2190.589844,4.420425,-426.005554;} multi_spawn_location["gold"][30] = {-2379.901123,2.943787,-454.653198;} multi_spawn_location["gold"][31] = {-2315.466309,15.419510,-60.655846;} multi_spawn_location["gold"][32] = {-1689.187744,18.186417,-55.506271;} multi_spawn_location["gold"][33] = {-2438.995605,33.426407,348.999146;} multi_spawn_location["gold"][34] = {-2735.429443,54.762451,850.812134;} multi_spawn_location["gold"][35] = {-1776.693481,22.532410,541.993652;} multi_spawn_location["gold"][36] = {-2337.846680,30.378448,1067.245850;} multi_spawn_location["gold"][37] = {-2147.818848,24.282425,305.503845;} multi_spawn_location["gold"][38] = {-2820.763672,2.992188,-292.342377;} multi_spawn_location["gold"][39] = {-1693.137329,20.848450,-313.710663;} multi_spawn_location["gold"][40] = {-1769.080933,14.698730,-667.219421;} multi_spawn_location["gold"][41] = {-1994.677490,16.113220,-994.193909;} multi_spawn_location["gold"][42] = {-1550.736328,4.171875,-1445.967041;} multi_spawn_location["gold"][43] = {-1006.503418,2.946411,-1639.946655;} multi_spawn_location["gold"][44] = {-592.787354,3.231445,-2198.611328;} multi_spawn_location["gold"][45] = {828.365845,6.604019,-1141.348633;} multi_spawn_location["gold"][46] = {-593.308411,6.437500,-989.502014;} multi_spawn_location["gold"][47] = {575.737183,12.040436,-871.566895;} multi_spawn_location["gold"][48] = {-1185.986938,28.467407,473.999695;} multi_spawn_location["gold"][49] = {-785.597656,24.601379,81.120331;} multi_spawn_location["gold"][50] = {-498.295013,19.783508,-218.474136;} multi_spawn_location["gold"][51] = {159.620483,5.681335,-1033.451904;} multi_spawn_location["gold"][52] = {454.527954,12.440735,-684.490051;} multi_spawn_location["gold"][53] = {1244.252930,12.734436,-694.813843;} multi_spawn_location["gold"][54] = {1331.838745,25.806427,-1707.602295;} multi_spawn_location["gold"][55] = {709.055664,5.384827,-1732.383423;}
PedDebugSetup.lua
Another file for debugging pedestrians.
function peddebug() objectCreate(1,"pedDebugTarget") objectSetPos( 355, 16.40, 369 ) objectEnable( "pedDebugTarget" ) objectShow( "pedDebugTarget" ) objectCreate(6,"myPed") objectSetParam( "Cinematic Pedestrian1" ) objectSetPos( 269, 16.40, 377 ) objectEnable( "myPed" ) objectShow( "myPed" ) objectUpdateAdd( "myPed" ) objectSetActive( "myPed" ) pedGoTo( "pedDebugTarget" ) end
unlockallskins.lua
-- -- Unlocks all the skins. -- function onInit() local mytable = { {"Ambulance", 2 }, {"ArmoredCar", 2 }, {"AudiTT", 2 }, --{"Avalanche", 0 }, {"Avant", 3 }, {"Cement", 2 }, {"ChevySSR", 3 }, {"Corvette", 2 }, {"Crossfire", 2 }, {"DCBus", 2 }, {"Escalade", 2 }, {"FireTruck", 2 }, {"Freightliner", 2 }, {"Garbage", 2 }, {"HummerH2", 2 }, {"Koenigsegg", 2 }, {"Limo", 2 }, {"Lotus", 2 }, {"MFastBack", 3 }, {"Microcar", 2 }, {"mini", 2 }, {"mv_badguy", 2 }, {"NewBeetle", 2 }, {"Opel_Astra", 0 }, {"ParisBus", 2 }, {"ParisPolice", 2 }, {"ParisTaxi", 2 }, {"Pt", 2 }, {"Renault5", 2 }, {"Saab93", 2 }, --{"SerpentMk2", 0 }, {"Seville", 2 }, {"WashingtonPolice", 2 }, {"WashingtonTaxi", 2 }, {"Viper", 0 }, } local index = 0 for i,v in mytable do index = 1 while index <= v[2] do playerProfileAddKey( v[1] .. "." .. index ) index = index + 1 end end playerProfileAddKey( "Avalanche" ) playerProfileAddKey( "SerpentMk2" ) end
user.lua
A basic initialization routine.
function onInit() gameLog("running user init...\n") cityAdd("Paris", "d:\\Data\\Shared\\Paris\\Paris", "d:\\Data\\Shared\\Paris\\ParisSplit") cityAdd("Washington", "d:\\Data\\Shared\\Washington\\Washington", "d:\\Data\\Shared\\Washington\\WashingtonSplit") gameLog("exiting user init...\n") -- Moved to E3settings.lua -- renderSetFov(65) -- 56 end
userSetup.lua
-- Description: -- Configure the game settings per user. -- -- Dependencies: -- [Which scripts / modules / states must be set/run/ok] -- -- function onInit() gameLog("running user setup...\n") -- -- Disable some loglevels... -- if queryBuildMode() == 1 then -- NDEBUG setLogLevel("", "warning") else setLogLevel("", "warning") end gameLog("exiting user setup...\n") end
Data\Data_hd\Scripts\Test
This folder and the AI subfolder contain seven files.
test_Base.lua
-- callbacks that can be overloaded by other test scripts function test_onEnterFrontEndFirstTime() end function test_onEnterFrontEnd() end function test_onStartRace() end function test_onFinishRace() end function test_onUpdate(deltaTime, state) end -- utility functions used by other test scripts function test_exitToMenu() input("s2dara") end
test_CarsParisBlitz.lua
test_isFirstTime = 0 function test_onEnterFrontEnd() if (test_isFirstTime == 0) then input("sdadaa2ra") input("20la") test_isFirstTime = 1 else input("2ara") end end function test_onStartRace() input("s2da") end
test_ParisCruise.lua
test_isFirstTime = 0 function test_onEnterFrontEnd() if (test_isFirstTime == 0) then input("ad5a") test_isFirstTime = 1 else input("2a") end end function test_onStartRace() input("s2da") end
test_RestartParisCruise.lua
function test_onEnterFrontEndFirstTime() input("ad6a") end test_firstTime = 0 function test_onStartRace() if (firstTime == 0) then input("sdala") test_firstTime = 1 else input("ala") end end
test_SwitchCity.lua
test_isFirstTime = 0 test_city = 0 function test_onEnterFrontEndFirstTime() input("ad5a") end function test_onEnterFrontEnd() if (test_city == 0) then input("br3a") test_city = 1 else input("bl3a") test_city = 0 end end function test_onStartRace() test_exitToMenu() end
\AI\test_CruiseParis.lua
test_haveRun = nil function test_onEnterFrontEnd() if( not test_haveRun ) then command = "" -- Enter profile menu command = command .. "s" -- Select default profile command = command .. "a" -- Enter single race command = command .. "da" -- Select cruise command = command .. "a" -- Select paris city command = command .. "a" -- Select the parameters (just accept the default) command = command .. "a" -- Select car and transmission (just take the default) command = command .. "a" -- Send command to MEME. input( command ); -- Set flag to true test_haveRun = 1 else -- Restart race directly -- input( "aaa" ) end end function test_onStartRace() -- input("s2da") end
\AI\test_TaxiCareer0103.lua
test_haveRun = nil function test_onEnterFrontEnd() gameLog( "Automatic AI test script - starting taxi race" ) if( not test_haveRun ) then command = "" -- Enter main menu command = command .. "s" -- Enter career sub menu command = command .. "a" -- Select paris city command = command .. "a" -- This doesn't work ??? -- Skip movie -- command = command .. "a" -- Choose taxi command = command .. "da" -- Chose race 4 command = command .. "ddda" -- Choose transmission automatic command = command .. "a" -- Send command to MEME. input( command ); -- Set flag to true test_haveRun = 1 else -- Restart race directly -- input( "aaa" ) end end function test_onStartRace() -- input("s2da") end
Debug Leftovers
In 'Data\Data_hd\Menu' , there are two folders named 'Debug' and 'DebugHUD'. In 'Debug', a single file named DebugMenu is present. Inside 'DebugHUD', a file called DebugHUD is present.
DebugHUD
The debug HUD shows car speed, RPM, gear, position (in X, Y and Z); brake, engine, gear and suspension damage; camera positions (in X, Y, Z and angle).
However, the final version only has engine damage. Gear, suspension and brake damage were probably present in an early version.
DebugMenu
The debugMenu file can be loaded and we can extract the strings, that indicates the available options. This debug menu can change level-of-detail (draw distance), anti-aliasing, V-sync and AI options; Enable/Disable traffic, debug HUD, peds, skybox and a wireframe mode but in-game it is broken you only can select the options but they don't do anything.
dice::meme::NameNode dice::meme::TabstopManagerNode dice::meme::CullEventActionNode"dice::meme::TransitionalEffectNode dice::meme::TransformNode dice::meme::TextNode variables/varFogLength dice::meme::IntData styles/styleDebugValue dice::meme::Style dice::meme::FocusEffectNode dice::meme::TabstopNode dice::meme::ModifyVariableAction dice::meme::ButtonEvent dice::meme::WstringData styles/styleDebugItem dice::meme::RightAlignedStyle dice::meme::ColorEffect variables/varFarClip variables/varLODFar options/optionLODFar variables/varLODNear options/optionLODNear dice::meme::IndexDataData dice::meme::DataListData variables/varAliasMode options/optionAliasing variables/enableVSync dice::meme::BoolData dice::meme::ToggleVariableAction options/optionVSync variables/paintAiAmbientDebug options/optionAiAmbientDebug variables/paintAiGraph options/optionAiGraph&variables/enableTrafficLightIndicators$options/optionTrafficLightIndicators variables/enableDebugHud options/optionDebugHud ariables/enableTraffic options/optionTraffic variables/enablePeds options/optionPedsvariables/enableWireframe options/optionWireframe variables/enableSkyBox options/optionSkyBox styles/styleDebugTitle dice::meme::CenterAlignedStyle dice::meme::EffectNode dice::meme::PictureNode dice::meme::AlphaFadeEffect dice::meme::SetTabstopAction optionsTab dice::meme::TypeEvent
Strange Folder
'Data\Data_dvd\Constrain' contains two files, 'MatrixCode.cdds' and 'Secret.cdds' and one subfolder 'bak' containing what appears to be an early version of 'MatrixCode.cdds', because both files have the same name.
Regional Differences
'Data\Data_dvd\Menu\Gfx' contains error messages for dirty/damaged DVDs. 'badgamedisc.tga' contains an early version of this screen in English, with an edit date of February 23, 2003, compared to May 9, 2003 in the final version. The only change is that the small text blurb saying "Press A to continue" was removed. However, the file used for the Japanese version, 'BadGameDiscJapanese.tga', is a copy of the early version!
Early/Japan | Final |
---|---|
The Madness series
| |
---|---|
Monster Truck Madness | |
Windows | Monster Truck Madness • Monster Truck Madness 2 |
Nintendo 64 | Monster Truck Madness 64 |
Game Boy Advance | Monster Truck Madness |
Midtown Madness | |
Windows | Midtown Madness (Prototypes) • Midtown Madness 2 (Prototypes) |
Xbox | Midtown Madness 3 |
- Pages missing developer references
- Games developed by Digital Illusions CE
- Pages missing publisher references
- Games published by Microsoft Game Studios
- Xbox games
- Pages missing date references
- Games released in 2003
- Games released in June
- Games released on June 17
- Games released on June 27
- Games with unused code
- Games with uncompiled source code
- Games with hidden development-related text
- Games with unused graphics
- Games with debugging functions
- Games with regional differences
- Madness series
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with regional differences
Games > Games by content > Games with uncompiled source code
Games > Games by content > Games with unused code
Games > Games by content > Games with unused graphics
Games > Games by developer > Games developed by Electronic Arts > Games developed by EA DICE > Games developed by Digital Illusions CE
Games > Games by platform > Xbox games
Games > Games by publisher > Games published by Microsoft > Games published by Xbox Game Studios > Games published by Microsoft Game Studios
Games > Games by release date > Games released in 2003
Games > Games by release date > Games released in June
Games > Games by release date > Games released in June > Games released on June 17
Games > Games by release date > Games released in June > Games released on June 27
Games > Games by series > Madness series