johnnylump Posted April 9, 2015 Share Posted April 9, 2015 Gotcha. That fixed it. Thanks. Link to comment Share on other sites More sharing options...
LiQuiD911 Posted April 9, 2015 Share Posted April 9, 2015 (edited) Use the roof patch I posted in Map Cleanup. The roof bugs are 100% solvable, I just need to create the patches.Also, I cannot reproduce the alien pod material fix. I was tweaking and removing some of the files and in some occasions the pods got their material. The log says that some meshes are not loaded. Damaged walls may not leave halfcover chunks. Edited April 9, 2015 by LiQuiD911 Link to comment Share on other sites More sharing options...
wghost81 Posted April 9, 2015 Share Posted April 9, 2015 (edited) LiQuiD911, I was talking about binary data in Texture2D objects. Judging by its definition, NetIndex is native private constant initialized somewhere in c++ code most probably when cooking. "editconst" means that is is visible in Editor but not changeable and noexport means that it is defined manually in some c++ header file. Can you point me directly to two or thee objects (upk files and full names) with the known NetIndex value? Edited April 9, 2015 by wghost81 Link to comment Share on other sites More sharing options...
LiQuiD911 Posted April 9, 2015 Share Posted April 9, 2015 Just use the log I posted, it's from URB_GasStation.UPK [0016.10] Error: (AddNetObject) Objects StaticMesh FX_Trash.Blowing.Trash_A and RB_BodySetup FX_Trash.Trash_Explosion.Trash_Debris_B:RB_BodySetup_1 have duplicate NetIndex 1090[0016.10] Error: (AddNetObject) Objects StaticMesh FX_Trash.Blowing.Trash_B and RB_BodySetup FX_Trash.Trash_Explosion.Trash_Debris_C:RB_BodySetup_2 have duplicate NetIndex 1091[0016.10] Error: (AddNetObject) Objects StaticMesh FX_Trash.Blowing.Trash_C and RB_BodySetup FX_Trash.Trash_Explosion.Trash_Debris_D:RB_BodySetup_3 have duplicate NetIndex 1092[0016.10] Error: (AddNetObject) Objects StaticMesh FX_Trash.Blowing.Trash_D and RB_BodySetup FX_Trash.Trash_Explosion.Trash_Debris_E:RB_BodySetup_4 have duplicate NetIndex 1093 Link to comment Share on other sites More sharing options...
wghost81 Posted April 9, 2015 Share Posted April 9, 2015 LiQuiD911, thanks, I'll look into those objects then. Link to comment Share on other sites More sharing options...
johnnylump Posted April 9, 2015 Share Posted April 9, 2015 For the patches to the map files, is it possible to just add a path to the tfc files in the EU folders? That would be easier than a bunch of file operations finding and copying the tfc files to EW's CookedPCConsole in the Long War installer. Link to comment Share on other sites More sharing options...
wghost81 Posted April 10, 2015 Share Posted April 10, 2015 (edited) No, they have to be renamed and copied. We can potentially rewrite all the offsets in EU map files to point to the new EW textures, but this will take ages, because there are tons of textures and we'll need to find the offsets first. Renaming the textures looks like the least painful way now. Edited April 10, 2015 by wghost81 Link to comment Share on other sites More sharing options...
LiQuiD911 Posted April 10, 2015 Share Posted April 10, 2015 Thanks to Gildor, we can now open fractured meshes with umodel.. I'll check the models of the terror maps, maybe it's possible to repair them for abduction variants. Link to comment Share on other sites More sharing options...
wghost81 Posted April 10, 2015 Share Posted April 10, 2015 (edited) I have an interesting piece of news here. While looking into NetIndex problem I discovered a very interesting thing: this number is what we call PrevObjRef. It occupies the very first 4 bytes of serialized data. Script packages have this number equal to the Export Table Index of previous export object, so we decided that this was some internal linker info, some kind of enumerator local to the package. But now it turns out that this number is in fact the NetIndex and that it is unique between all the packages. Crazy. I know where to find all the packages list, but I don't know where to find NetIndexes table or even if it exists or how to find max used NetIndex value. But I'll keep on searching. So, LiQuiD911, if you know the name of the object, you can change its NetIndex by writing at the beginning of its data:OBJECT=FX_Trash.Blowing.Trash_A UNSIGNED=1090 // 4 bytes of NetIndexUPD: After doing some more research I can't say for sure if NetIndex is globally unique. But it sure is unique for some of the object. It also gets assigned on Net Replication, so it can be dynamic. Edited April 10, 2015 by wghost81 Link to comment Share on other sites More sharing options...
wghost81 Posted April 11, 2015 Share Posted April 11, 2015 (edited) After doing some research I can say that 4 bytes of every export object serialized data are indeed a NetIndex. I tried to understand the NetIndex by looking closely at map packages. That's what I found. TheWorld.PersistentLevel objects have negative NetIndex values. This is probably related to the fact that all PersistentLevel objects are instances in the World. Objects of the same Type have identical NetIndex values. Objects outside TheWorld.PersistentLevel have ForcedExport flag set. Those appear to be a collection of various game assets, cooked directly into the package to decrease its loading time. All of them can be traced back to parent object of Package type, which has NetIndex=-1 and also has non-zero package GUID and NetObjectCount=1. NetObjects[0] appears to hold some flags and 4 bytes in between GUID and NetObjects[0] are different for each package, but I can't understand what exactly they represent. Child objects of each Package object appear to have unique NetIndex values. I.e. different objects in one upk file can have the same NetIndex values, but only if they belong to different packages. For example, in URB_GasStation.upk objects FX_Trash.Blowing.Trash_A and FX_Vehicle_Destruction.P_Car_Explosion.ParticleModuleSize_9 share the same NetIndex=1090, but they belong to different packages: FX_Trash and FX_Vehicle_Destruction respectively. This explains the fact that all the objects inside script packages have NetIndex=ObjRef-1. Since both URB_GasStation.upk:FX_Trash.Blowing.Trash_A and Weapon_FragGrenade_SF.upk:FX_Trash.Trash_Explosion.Trash_Debris_B belong to the same package FX_Trash, I assume that those indeed have to have different NetIndex values. I googled some bits and pieces of related unreal code and came to the conclusion that NetIndex is assigned by Linker and is unique to the package (not upk file, but uncooked package which name can be obtained by looking for objects of Package type inside upk file). While loading packages, NetIndex is taken directly from the upk file, if the file is cooked. Net Replication can also assign NetIndex to an object, but I haven't looked into this closely. BTW, I wonder what'll happen if we set all the duplicated NetIndexes to -1. Edited April 11, 2015 by wghost81 Link to comment Share on other sites More sharing options...
Recommended Posts