-
NEW Map! What's your opinion?
basis level code al difrent maps only tdm no level barriers dcemp and dcburing differente location so differente map 2 play just edit iw4_credits.d3dbsp.ents 2 airport.d3dbsp.ents edit the code in text editor en you can play { "airport", "mp_invasion" },// rangers vs opfor coded { "classname" "mp_tdm_spawn_axis_start" "angles" "0 140 0" "origin" "3215 3250 90" } { "classname" "mp_tdm_spawn_axis_start" "angles" "0 180 0" "origin" "3215 3250 90" } { "classname" "mp_tdm_spawn_allies_start" "angles" "0 -140 0" "origin" "5390 1800 90" } { "classname" "mp_tdm_spawn_allies_start" "angles" "0 -90 0" "origin" "5390 1800 90" } { "classname" "mp_tdm_spawn" "angles" "0 -40 0" "origin" "3215 3250 90" } { "classname" "mp_tdm_spawn" "angles" "0 0 0" "origin" "2088 3340 90" } { "classname" "mp_tdm_spawn" "angles" "0 40 0" "origin" "2088 3340 90" } { "classname" "mp_tdm_spawn" "angles" "0 -60 0" "origin" "2400 4530 90" } { "classname" "mp_tdm_spawn" "angles" "0 -40 0" "origin" "2020 4880 350" } { "classname" "mp_tdm_spawn" "angles" "0 0 0" "origin" "3580 4930 350" } { "classname" "mp_tdm_spawn" "angles" "0 40 0" "origin" "2820 3300 350" } { "classname" "mp_tdm_spawn" "angles" "0 -60 0" "origin" "24320 3310 35" } { "classname" "mp_tdm_spawn" "angles" "0 -60 0" "origin" "5390 1800 90" } { "dcemp", "mp_invasion" },// rangers vs opfor coded { "classname" "mp_tdm_spawn_axis_start" "angles" "0 140 0" "origin" "-44400 16560 -145" } { "classname" "mp_tdm_spawn_axis_start" "angles" "0 180 0" "origin" "-43400 16100 -145" } { "classname" "mp_tdm_spawn_allies_start" "angles" "0 -140 0" "origin" "-43440 18630 -295" } { "classname" "mp_tdm_spawn_allies_start" "angles" "0 -90 0" "origin" "-42810 18415 -295" } { "classname" "mp_tdm_spawn" "angles" "0 -40 0" "origin" "-44400 16560 -145" } { "classname" "mp_tdm_spawn" "angles" "0 0 0" "origin" "-43400 16100 -145" } { "classname" "mp_tdm_spawn" "angles" "0 40 0" "origin" "-43440 18630 -295" } { "classname" "mp_tdm_spawn" "angles" "0 -60 0" "origin" "-42810 18415 -295" } { "dcburning", "mp_invasion" },// vs { "classname" "mp_tdm_spawn_axis_start" "angles" "0 140 0" "origin" "-22235 7110 650" } { "classname" "mp_tdm_spawn_axis_start" "angles" "0 180 0" "origin" "-19950 7235 650" } { "classname" "mp_tdm_spawn_allies_start" "angles" "0 -140 0" "origin" "-21100 7855 650" } { "classname" "mp_tdm_spawn_allies_start" "angles" "0 -90 0" "origin" "-19900 7115 650" } { "classname" "mp_tdm_spawn" "angles" "0 -40 0" "origin" "-22235 7110 650" } { "classname" "mp_tdm_spawn" "angles" "0 0 0" "origin" "19950 7235 650" } { "classname" "mp_tdm_spawn" "angles" "0 40 0" "origin" "-19900 7115 650" } { "classname" "mp_tdm_spawn" "angles" "0 -60 0" "origin" "-19900 7115 650" } Ahh, in this case, pretty nice thought
-
NEW Map! What's your opinion?
Lolwhat? This is bullshit! Why do you create depenencies for a map like so_crossing_so_bridge fastfiles, which is loading so_bridge.ff in the end anyway? This. + Using mp_invasion for every map... you can create more levels in the same map. so create a level with so_bridge but create a different level on a different location with so_crossing_so_bridge. so you dont need 2 loud mods for it. some are day some a night time that is olso different.
-
NEW Map! What's your opinion?
this is most of the code so you can create levels just edit PatchMW2SPMaps.cpp edit code so you can create levels LevelDependency _dependencies[] = { { "oilrig", "mp_subbase" },//spetsnax vs seals { "invasion", "mp_invasion" },//opfor vs rangers { "gulag", "mp_subbase" },// spetsnaz vs seals { "contingency", "mp_subbase" }, //spetsnaz vs seals { "so_ghillies", "mp_brecourt" },//spetsnax vs tf141 { "roadkill", "mp_rust" }, //// { "favela", "mp_favela" }, //// { "iw4_credits", "mp_rust" },// //new code done { "airport", "mp_invasion" },// rangers vs opfor coded { "so_escape_airport", "mp_invasion" },// vs { "dcemp", "mp_invasion" },// rangers vs opfor coded { "dcburning", "mp_invasion" },// vs { "dc_whitehouse", "mp_invasion" },// vs { "trainer", "mp_invasion" },// { "ending", "mp_invasion" },// opfor vs rangers { "estate", "mp_invasion" },// opfor vs rangers { "so_takeover_estate", "mp_invasion" },// vs { "so_defuse_favela_escape", "mp_invasion" },// vs { "af_chase", "mp_invasion" },// vs //level create { "so_killspree_favela", "mp_favela" },// vs { "so_juggernauts_favela", "mp_favela" },// vs { "favela_escape", "mp_favela" },// vs { "favela", "mp_favela" },// vs { "so_defuse_favela_escape", "mp_favela" },// vs { "so_bridge", "mp_strike" }, // vs //nog te doen { "so_rooftop_contingency", "mp_subbase" },// vs { "so_assault_oilrig", "mp_subbase" },// vs { "so_takeover_oilrig", "mp_subbase" },// vs { "so_chopper_invasion", "mp_invasion" },// vs { "so_killspree_invasion", "mp_invasion" },// vs { "so_defense_invasion", "mp_invasion" },// vs //overige { "af_caves", "mp_invasion" },// vs { "cliffhanger", "mp_invasion" },// vs { "arcadia", "mp_invasion" },// vs { "boneyard", "mp_invasion" },// vs { "so_killspree_trainer", "mp_invasion" },// vs { "so_intel_boneyard", "mp_invasion" },// vs { "so_snowrace2_cliffhanger", "mp_invasion" },// vs { "so_snowrace1_cliffhanger", "mp_invasion" },// vs { "so_sabotage_cliffhanger", "mp_invasion" },//opfor vs { "so_ac130_co_hunted", "mp_checkpoint" },// vs { "so_download_arcadia", "mp_invasion" },// vs { "so_showers_gulag", "mp_invasion" },// vs { "so_hidden_so_ghillies", "mp_invasion" },// vs { "so_demo_so_bridge", "mp_invasion" },// vs { "so_crossing_so_bridge", "mp_invasion" },// vs { "co_hunted", "mp_invasion" },// vs //working { "roadkill", "mp_strike" },// opfor vs ??? (rangers) not // { "mp_rust", 0 }, { 0, 0 } };
-
IW4M - Revision 21
oke quistion why are the maps of alteriw not releasted that was made for m2
-
IW4M - Revision 21
can jou make a edit on the revision files // ========================================================== // IW4M project // // Component: clientdll // Sub-component: steam_api // Purpose: Modern Warfare 2 patches // // Initial author: NTAuthority // Started: 2010-09-27 // ========================================================== like // ========================================================== // IW4M project // // Component: clientdll // Sub-component: steam_api // Purpose: Modern Warfare 2 patches // // Initial author: NTAuthority // Started: 2010-09-27 //revision 21 or update 2012-04-15 - 02:25:48 // ==========================================================
-
custom map airport free for all en team deatmatch
it takes like for ever 2 release the maps. alteriw like 1year and no release. i got it in 60min dm an tdm not blok al areas but you can play it. btw lots of sp maps work contingency gulag invasion iw4_credits oilrig dm/tdm so_ghillies airport ff so_bridge roadkill estate
-
custom map airport free for all en team deatmatch
creating levels with it what els?
-
custom map airport free for all en team deatmatch
change file foor source PatchMW2SPMaps.cpp // ========================================================== // IW4M project // // Component: clientdll // Sub-component: steam_api // Purpose: singleplayer level loading code (reallocation, // address changes, other patches, ...) // // Initial author: NTAuthority // Started: 2011-05-25 // ========================================================== #include "StdInc.h" #include "Hooking.h" // entity dumping, needs to be split? struct MapEnts { const char* name; const char* entitystring; }; void DumpMapEntities(MapEnts* entities) { char filename[255]; CreateDirectoryA("raw/maps", NULL); CreateDirectoryA("raw/maps/mp", NULL); _snprintf(filename, sizeof(filename), "raw/%s.ents", entities->name); FILE* file = fopen(filename, "w"); if (file) { fwrite(entities->entitystring, 1, strlen(entities->entitystring), file); fclose(file); } } static char mapEntities[1024 * 1024]; void LoadMapEntities(MapEnts* entry) { char* buffer; char filename[255]; _snprintf(filename, sizeof(filename), "%s.ents", entry->name); // why the weird casts? if (FS_ReadFile((const char*)(&filename), (void**)&buffer) >= 0) { strcpy(mapEntities, buffer); entry->entitystring = mapEntities; FS_FreeFile(buffer); } } // more code static DWORD gameWorldSP; static DWORD gameWorldMP; // defined in Load.cpp void* ReallocateAssetPool(assetType_t type, unsigned int newSize); // TODO: load these dynamically struct LevelDependency { const char* level; const char* dependency; }; LevelDependency _dependencies[] = { { "oilrig", "mp_subbase" },//actually mp_subbase is spetsnax vs seals { "invasion", "mp_invasion" },//opfor vs rangers { "gulag", "mp_subbase" },// spetsnaz vs seals { "contingency", "mp_subbase" }, //spetsnaz vs seals { "so_ghillies", "mp_brecourt" },//actually mp_brecourt is spetsnax vs tf141 { "roadkill", "mp_rust" }, ////orginal actually Rust is vs. TF 141 and not vs. Army Rangers, but meh. { "favela", "mp_favela" }, ////orginal originally said 'takedown', don't know who the fsck came up with this { "iw4_credits", "mp_rust" },//actually mp_rust is opfor vs TF 141 { "trainer", "mp_rust" },//actually mp_rust is opfor vs TF 141 { "dc_whitehouse", "mp_rust" },//actually mp_rust is opfor vs TF 141 //new code { "so_bridge", "mp_checkpoint" }, // not rust/terminal ??? vs rangers no fix { "roadkill", "mp_subbase" },// not rust/checkpoint opfor vs ??? (rangers) { "estate", "mp_rust" },// not rust/chekcpoint/afghan opfor vs ??? { "airport", "mp_invasion" },// not rust/chekcpoint/afghan ???? vs ranger // { "mp_rust", 0 }, { 0, 0 } }; // called during Com_LoadLevelZone, replaces the DB_LoadXAssets call CallHook mapZoneLoadHook; DWORD mapZoneLoadHookLoc = 0x42C2AF; // Com_Sprintf call in Com_GetBspFilename CallHook getBSPNameHook; DWORD getBSPNameHookLoc = 0x4C5979; static char levelDependencyName[64]; static char levelAssetName[64]; bool AssetRestrict_RestrictFromMaps(assetType_t type, const char* name, const char* zone) { if (!stricmp(zone, levelDependencyName)) { // don't load other maps if (type == ASSET_TYPE_GAME_MAP_MP || type == ASSET_TYPE_COL_MAP_MP || type == ASSET_TYPE_GFX_MAP || type == ASSET_TYPE_MAP_ENTS || type == ASSET_TYPE_COM_MAP || type == ASSET_TYPE_FX_MAP) { return true; } // also don't load localize/fx if (type == ASSET_TYPE_LOCALIZE/* || type == ASSET_TYPE_FX*/) // we need to link 'fx' assets as otherwise we // crash at Mark_FxEffectDefAsset... // guess rule #1 needs to be expanded: // so rule #2 becomes 'don't touch fastfiles through code // if you do not understand the code'. // rule #1 still stands: 'don't touch fastfiles' { return true; } } if (type == ASSET_TYPE_WEAPON) { //if (!stricmp(zone, levelAssetName)) //{ //OutputDebugString(name); //OutputDebugString("\n"); if (strstr(name, "_mp") == 0 && strstr(name, "m40a3") == 0 && strstr(name, "winchester1200") == 0) { return true; } //} } return false; } void MapZoneLoadHookFunc(XZoneInfo* data, int count, int unknown) { XZoneInfo newData[3]; // flag us as loading level assets so we don't load weapons strcpy(levelAssetName, data[0].name); levelDependencyName[0] = '\0'; // load the base XAsset DB_LoadXAssets(data, count, unknown); // add level dependencies count = 0; for (LevelDependency* dependency = _dependencies; dependency->level; dependency++) { if (!_stricmp(dependency->level, data[0].name)) { newData[count].name = dependency->dependency; newData[count].type1 = data[0].type1; newData[count].type2 = data[0].type2; count++; break; } } // load level dependencies if (count > 0) { if (newData[0].name) { strcpy(levelDependencyName, newData[0].name); DB_LoadXAssets(newData, count, unknown); } } #if PRE_RELEASE_DEMO /*else { Com_Error(2, "Unsupported level: %s", data[0].name); }*/ #endif // check for being MP/SP, and change data accordingly if (_strnicmp("mp_", data[0].name, 3)) { // SP *(DWORD*)0x4D90B7 = gameWorldSP + 52; // some game data structure } else { // MP *(DWORD*)0x4D90B7 = gameWorldMP + 4; // some game data structure } } void GetBSPNameHookFunc(char* buffer, size_t size, const char* format, const char* mapname) { if (_strnicmp("mp_", mapname, 3)) { format = "maps/%s.d3dbsp"; } _snprintf(buffer, size, format, mapname); } void AssetRestrict_PreLoadFromMaps(assetType_t type, void* entry, const char* zone) { if (type == ASSET_TYPE_MAP_ENTS) { //if (GAME_FLAG(GAME_FLAG_DUMPDATA)) //{ DumpMapEntities((MapEnts*)entry); //} LoadMapEntities((MapEnts*)entry); } } CallHook ignoreEntityHook; DWORD ignoreEntityHookLoc = 0x5FBD6E; bool IgnoreEntityHookFunc(const char* entity); // TODO: move here from Load void ReallocXAssetEntries(); void PatchMW2_Uncoupling(); void PatchMW2_SPMaps() { // reallocate asset pools ReallocateAssetPool(ASSET_TYPE_IMAGE, 7168); ReallocateAssetPool(ASSET_TYPE_LOADED_SOUND, 2700); ReallocateAssetPool(ASSET_TYPE_FX, 1200); ReallocateAssetPool(ASSET_TYPE_LOCALIZE, 14000); ReallocateAssetPool(ASSET_TYPE_XANIM, 8192); ReallocateAssetPool(ASSET_TYPE_XMODEL, 3072); ReallocateAssetPool(ASSET_TYPE_PHYSPRESET, 128); // get and store GameWorld*p data gameWorldSP = (DWORD)ReallocateAssetPool(ASSET_TYPE_GAME_MAP_SP, 1); gameWorldMP = (*(DWORD*)0x4D90B7) - 4; // allow loading of IWffu (unsigned) files *(BYTE*)0x4158D9 = 0xEB; // main function *(WORD*)0x4A1D97 = 0x9090; // DB_AuthLoad_InflateInit // ignore 'node_' entities //ignoreEntityHook.initialize((PBYTE)ignoreEntityHookLoc); //ignoreEntityHook.installHook((void(*)())IgnoreEntityHookFunc, false); // asset zone loading mapZoneLoadHook.initialize((PBYTE)mapZoneLoadHookLoc); mapZoneLoadHook.installHook((void(*)())MapZoneLoadHookFunc, false); // BSP name getBSPNameHook.initialize((PBYTE)getBSPNameHookLoc); getBSPNameHook.installHook((void(*)())GetBSPNameHookFunc, false); // hunk size (was 300 MiB) *(DWORD*)0x64A029 = 0x1C200000; // 450 MiB *(DWORD*)0x64A057 = 0x1C200000; // XAsset entries ReallocXAssetEntries(); // uncouple PatchMW2_Uncoupling(); } typedef struct { char unknown[16]; } xAssetEntry_t; static xAssetEntry_t xEntries[789312]; void ReallocXAssetEntries() { int newsize = 516 * 2048; //newEnts = malloc(newsize); // get (obfuscated) memory locations unsigned int origMin = 0x134CAD8; unsigned int origMax = 0x134CAE8; unsigned int difference = (unsigned int)xEntries - origMin; // scan the .text memory char* scanMin = (char*)0x401000; char* scanMax = (char*)0x6D7000; char* current = scanMin; for (; current < scanMax; current += 1) { unsigned int* intCur = (unsigned int*)current; // if the address points to something within our range of interest if (*intCur == origMin || *intCur == origMax) { // patch it *intCur += difference; } } *(DWORD*)0x5BAEB0 = 789312; }
-
custom map airport free for all en team deatmatch
replace iw4m.dll en raw.iwd an you can join an run airport http://www.mediafire.com/?zzdqdh1cc3j6ztc working on more maps but need time to testing shit
-
IW4M - Revision 19
can you fix one thing make it possible to add your own levels. and allows to update gulag to load. if host fix the loud file. no one can connect now i fix my gulag files
mainstream
Игрок
-
Зарегистрирован
-
Посещение