Drakous79 Posted March 13, 2014 Share Posted March 13, 2014 Have you noticed women have smaller weapons and are holding them wrong? Well, the size part can be solved in XComGame.upk, XComUnitPawn.AttachItem. May be old news. if(bIsFemale && !IsA('XComMecPawn')) { MeshComp.SetScale(0.750); }Wrong holding seems to be model issue. PatcherGUI mod file (try FLOAT=2.0): DESCRIPTION=Gives big guns to girls. The same as boys have. UPK_FILE=XComGame.upk OBJECT=XComUnitPawn.AttachItem REL_OFFSET=0xB8 FLOAT=1.0 Link to comment Share on other sites More sharing options...
Krazyguy75 Posted March 13, 2014 Share Posted March 13, 2014 (edited) Yeah, we've dealt with this before. Not sure where, but I remember it being done. EDIT: Also, give everyone MEC weapons. Crab walk FTW! Edited March 13, 2014 by Krazyguy75 Link to comment Share on other sites More sharing options...
Amineri Posted March 13, 2014 Share Posted March 13, 2014 I'd noticed this -- it was the inspiration for performing overall scaling on the alien models that we use in Long War EW to differentiate more powerful aliens from the regular ones. Also, I don't really care for the oversize "cartoony" big gun effect so in Long War EW we also scale down the male weapon models to 85%. I agree that the slightly "off" way they are holding it appears to be an issue with the model animation. Here's my UPKmodder file that is used in Long War, which scales female weapons to 75% and male weapons to 85% : MODFILEVERSION=4 UPKFILE=XComGame.upk GUID=1C 18 A1 1A 2B C3 34 4E 8B 2C 72 33 CD 16 7E 3E // XComGame_EW_patch3.upk FUNCTION=AttachItem@XComUnitPawn //slightly scale down ridiculously large weapons on male pawns [BEFORE_HEX] [HEADER] [/HEADER] [CODE] //if(bIsFemale && !IsA('XComMecPawn')) 07 C9 00 82 2D 01 51 3D 00 00 18 0E 00 81 C5 21 E3 80 00 00 00 00 00 00 16 16 16 //MeshComp.SetScale(0.750) 19 00 71 3E 00 00 0F 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 1E 00 00 40 3F 16 //Mesh.AttachComponentToSocket(MeshComp, SocketName) 19 01 47 FD FF FF 1C 00 00 00 00 00 00 1C 6A FA FF FF 00 71 3E 00 00 00 74 3E 00 00 16 //kFoundMeshComponent = MeshComp 0F 48 72 3E 00 00 00 71 3E 00 00 //MeshComp.SetLightEnvironment(LightEnvironment) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C A0 FA FF FF 01 61 3D 00 00 16 //MeshComp.SetShadowParent(Mesh) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C 97 FA FF FF 01 47 FD FF FF 16 //MeshComp.CastShadow = false 14 19 00 71 3E 00 00 0A 00 F3 FE FF FF 00 2D 01 F3 FE FF FF 28 //MeshComp.PrestreamTextures(1.0, true) 19 00 71 3E 00 00 11 00 00 00 00 00 00 1C 7D FB FF FF 1E 00 00 80 3F 27 4A 16 //0b [/CODE] [/BEFORE_HEX] [AFTER_HEX] [HEADER] [/HEADER] [CODE] //start 0x86 //if(!IsA('XComMecPawn') 07 EA 00 81 C5 21 E3 80 00 00 00 00 00 00 16 16 //MeshComp.SetScale((bIsFemale ? 0.75 : 0.85)) 19 00 71 3E 00 00 18 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 45 2D 01 51 3D 00 00 05 00 1E 00 00 40 3F 05 00 1E 9A 99 59 3F 16 // null ops 00 71 3E 00 00 00 71 3E 00 00 00 71 3E 00 00 0B //Mesh.AttachComponentToSocket(MeshComp, SocketName) 19 01 47 FD FF FF 1C 00 00 00 00 00 00 1C 6A FA FF FF 00 71 3E 00 00 00 74 3E 00 00 16 //kFoundMeshComponent = MeshComp 0F 48 72 3E 00 00 00 71 3E 00 00 //MeshComp.SetLightEnvironment(LightEnvironment) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C A0 FA FF FF 01 61 3D 00 00 16 //MeshComp.SetShadowParent(Mesh) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C 97 FA FF FF 01 47 FD FF FF 16 //MeshComp.PrestreamTextures(1.0, true) 19 00 71 3E 00 00 11 00 00 00 00 00 00 1C 7D FB FF FF 1E 00 00 80 3F 27 4A 16 //0b [/CODE] [/AFTER_HEX] Also, here's the snippet of code I use the the XGUnit.DebugAnims helper function to rescale aliens based on DGC.ini variables : //if(m_iFlamethrowerCharges != 0) 07 5F 05 9B 01 01 3A 00 00 25 16 //vScreenPos.X = float(1) + float(m_iFlamethrowerCharges)/float(100) 0F 35 0C FD FF FF 16 F9 FF FF 00 01 00 E8 CA 00 00 AE 38 3F 2C 01 AC 38 3F 01 01 3A 00 00 38 3F 2C 64 16 16 //vScreenPos.X = FClamp(vScreenPos.X, 0.2, 10.0) 0F 35 0C FD FF FF 16 F9 FF FF 00 01 00 E8 CA 00 00 F6 35 0C FD FF FF 16 F9 FF FF 00 01 00 E8 CA 00 00 1E CD CC 4C 3E 1E 00 00 20 41 16 //foreach GetPawn().ComponentList(class'MeshComponent', MeshComp) 2F 19 1B 9F 3A 00 00 00 00 00 00 16 5B 00 00 00 00 00 00 1C 5D FC FF FF 20 00 FE FF FF 00 71 3E 00 00 16 5E 05 //MeshComp.SetScale(vScreenPos.X) 19 00 71 3E 00 00 26 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 35 0C FD FF FF 16 F9 FF FF 00 01 00 E8 CA 00 00 16 //IN 31 //IP 30 I use the m_iFlamethrowerCharges variable to store the accumulated size increase (since aliens can't have flamethrowers). It's all set up so that each level of leader or navigator can provide it's own small bit of increase which add up. Link to comment Share on other sites More sharing options...
Max1944 Posted April 7, 2014 Share Posted April 7, 2014 Could someone of you make a Version of the smaller weapons for males, but for the PatcherGUI?I installed the female 1.0 weapon scaling from Drakus79 for testing and it worked, but with the one from Amineri I get an error. I suppose that one from Amineri will not work with the PatcherGUI (or without the Long War mod) ? I would be grateful if someone could help. Link to comment Share on other sites More sharing options...
Amineri Posted April 8, 2014 Share Posted April 8, 2014 The file I posted is something I created for use with UPKmodder. The PatcherGUI format is similar but not quite the same, so it will require a little bit of tweaking to get working. However it's basically just a before/after hex replacement -- no resizing or anything fancy. Link to comment Share on other sites More sharing options...
Max1944 Posted April 8, 2014 Share Posted April 8, 2014 (edited) Edit: Solved Edited April 8, 2014 by Max1944 Link to comment Share on other sites More sharing options...
wghost81 Posted April 8, 2014 Share Posted April 8, 2014 UPK_FILE=XComGame.upk OBJECT=XComUnitPawn.AttachItem //slightly scale down ridiculously large weapons on male pawns [BEFORE_HEX] //if(bIsFemale && !IsA('XComMecPawn')) 07 C9 00 82 2D 01 51 3D 00 00 18 0E 00 81 C5 21 E3 80 00 00 00 00 00 00 16 16 16 //MeshComp.SetScale(0.750) 19 00 71 3E 00 00 0F 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 1E 00 00 40 3F 16 //Mesh.AttachComponentToSocket(MeshComp, SocketName) 19 01 47 FD FF FF 1C 00 00 00 00 00 00 1C 6A FA FF FF 00 71 3E 00 00 00 74 3E 00 00 16 //kFoundMeshComponent = MeshComp 0F 48 72 3E 00 00 00 71 3E 00 00 //MeshComp.SetLightEnvironment(LightEnvironment) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C A0 FA FF FF 01 61 3D 00 00 16 //MeshComp.SetShadowParent(Mesh) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C 97 FA FF FF 01 47 FD FF FF 16 //MeshComp.CastShadow = false 14 19 00 71 3E 00 00 0A 00 F3 FE FF FF 00 2D 01 F3 FE FF FF 28 //MeshComp.PrestreamTextures(1.0, true) 19 00 71 3E 00 00 11 00 00 00 00 00 00 1C 7D FB FF FF 1E 00 00 80 3F 27 4A 16 //0b [/BEFORE_HEX] [AFTER_HEX] //start 0x86 //if(!IsA('XComMecPawn') 07 EA 00 81 C5 21 E3 80 00 00 00 00 00 00 16 16 //MeshComp.SetScale((bIsFemale ? 0.75 : 0.85)) 19 00 71 3E 00 00 18 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 45 2D 01 51 3D 00 00 05 00 1E 00 00 40 3F 05 00 1E 9A 99 59 3F 16 // null ops 00 71 3E 00 00 00 71 3E 00 00 00 71 3E 00 00 0B //Mesh.AttachComponentToSocket(MeshComp, SocketName) 19 01 47 FD FF FF 1C 00 00 00 00 00 00 1C 6A FA FF FF 00 71 3E 00 00 00 74 3E 00 00 16 //kFoundMeshComponent = MeshComp 0F 48 72 3E 00 00 00 71 3E 00 00 //MeshComp.SetLightEnvironment(LightEnvironment) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C A0 FA FF FF 01 61 3D 00 00 16 //MeshComp.SetShadowParent(Mesh) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C 97 FA FF FF 01 47 FD FF FF 16 //MeshComp.PrestreamTextures(1.0, true) 19 00 71 3E 00 00 11 00 00 00 00 00 00 1C 7D FB FF FF 1E 00 00 80 3F 27 4A 16 //0b [/AFTER_HEX] Should work with PatcherGUI. Link to comment Share on other sites More sharing options...
Max1944 Posted April 8, 2014 Share Posted April 8, 2014 (edited) It works and it is awesome! Many thanks to all of you. Edited April 9, 2014 by Max1944 Link to comment Share on other sites More sharing options...
ViperCanel Posted November 26, 2015 Share Posted November 26, 2015 (edited) Thanks a lot guys! Making epic size differences between soldiers was one of the most horible things I have encountered in this game. The game is more immersive for me now. I modified the code a little to give both sexes %85 scale on weapons and added info for customization:DESCRIPTION=Scales all weapons to 85% for both sexes. Original script by Amineri, converted for PatcherGUI by wghost81. Modified script by ViperCanel to 85% scale for both sexes. Also added scale table of Bertilsson for easy customization. UPK_FILE=XComGame.upk OBJECT=XComUnitPawn.AttachItem // Scale code table // Scale 1.50: 00 00 C0 3F // Scale 1.00: 00 00 80 3F (original male weapons) // Scale 0.95: 33 33 73 3F // Scale 0.90: 66 66 66 3F // Scale 0.85: 9A 99 59 3F // Scale 0.80: CD CC 4C 3F // Scale 0.75: 00 00 40 3F (original female weapons) [BEFORE_HEX] //if(bIsFemale && !IsA('XComMecPawn')) 07 C9 00 82 2D 01 51 3D 00 00 18 0E 00 81 C5 21 E3 80 00 00 00 00 00 00 16 16 16 //MeshComp.SetScale(0.750) 19 00 71 3E 00 00 0F 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 1E 00 00 40 3F 16 //Mesh.AttachComponentToSocket(MeshComp, SocketName) 19 01 47 FD FF FF 1C 00 00 00 00 00 00 1C 6A FA FF FF 00 71 3E 00 00 00 74 3E 00 00 16 //kFoundMeshComponent = MeshComp 0F 48 72 3E 00 00 00 71 3E 00 00 //MeshComp.SetLightEnvironment(LightEnvironment) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C A0 FA FF FF 01 61 3D 00 00 16 //MeshComp.SetShadowParent(Mesh) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C 97 FA FF FF 01 47 FD FF FF 16 //MeshComp.CastShadow = false 14 19 00 71 3E 00 00 0A 00 F3 FE FF FF 00 2D 01 F3 FE FF FF 28 //MeshComp.PrestreamTextures(1.0, true) 19 00 71 3E 00 00 11 00 00 00 00 00 00 1C 7D FB FF FF 1E 00 00 80 3F 27 4A 16 //0b [/BEFORE_HEX] [AFTER_HEX] //start 0x86 //if(!IsA('XComMecPawn') 07 EA 00 81 C5 21 E3 80 00 00 00 00 00 00 16 16 //MeshComp.SetScale((bIsFemale ? 0.85 : 0.85)) // (female scale : male scale) 19 00 71 3E 00 00 18 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 45 2D 01 51 3D 00 00 05 00 1E 9A 99 59 3F 05 // set female weapons to 0.85 scale 00 1E 9A 99 59 3F 16 // set male weapons to 0.85 scale // null ops 00 71 3E 00 00 00 71 3E 00 00 00 71 3E 00 00 0B //Mesh.AttachComponentToSocket(MeshComp, SocketName) 19 01 47 FD FF FF 1C 00 00 00 00 00 00 1C 6A FA FF FF 00 71 3E 00 00 00 74 3E 00 00 16 //kFoundMeshComponent = MeshComp 0F 48 72 3E 00 00 00 71 3E 00 00 //MeshComp.SetLightEnvironment(LightEnvironment) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C A0 FA FF FF 01 61 3D 00 00 16 //MeshComp.SetShadowParent(Mesh) 19 00 71 3E 00 00 13 00 00 00 00 00 00 1C 97 FA FF FF 01 47 FD FF FF 16 //MeshComp.PrestreamTextures(1.0, true) 19 00 71 3E 00 00 11 00 00 00 00 00 00 1C 7D FB FF FF 1E 00 00 80 3F 27 4A 16 //0b [/AFTER_HEX] Edited December 3, 2015 by ViperCanel Link to comment Share on other sites More sharing options...
dubiousintent Posted November 28, 2015 Share Posted November 28, 2015 (edited) Thanks a lot guys! Making epic size differences between soldiers was one of the most horible things I have encountered in this game. The game is more immersive for me now. I modified the code a little to give both sexes %85 scale on weapons. If anyone comes across wishing someone had done it like I did:...Thanks for sharing. I've added this to the DIY Mods wiki article. Only suggestion I would make is the split out the changes to show exactly which bytes contain the scale for both males and females. Something along the lines of this: //MeshComp.SetScale((bIsFemale ? 0.85 : 0.85)) 19 00 71 3E 00 00 18 00 00 00 00 00 00 1B EC 6E 00 00 00 00 00 00 45 2D 01 51 3D 00 00 05 00 1E 9A 99 59 3F 05 00 // Set Females to 0.85 scale 1E 9A 99 59 3F 16 00 // Set Males to 0.85 scale // null ops 71 3E 00 00 00 71 3E 00 00 00 71 3E 00 00 0B but with the specific scale bytes given to make it easy for a novice to tell what to change to suit themselves. (Recall that PatcherGUI ignores comments at the end of a line.) -Dubious- Edited November 28, 2015 by dubiousintent Link to comment Share on other sites More sharing options...
Recommended Posts