} // method ApplyWarpaint ends /* * ChangeFatiguesCamo * Changes which camo the fatigues use. */ public static void ChangeFatiguesCamo(string outputPath, string character, string outfitName, string camoName) { string playerOutfitName = ""; string fpkOutputPath = ""; string outfitPath = ""; //get the outfit path. switch (character) { case "snake": outfitPath = @"\Assets\tpp\chara\sna\Scenes\sna0_arm0_cov.fmdl"; break; case "female": outfitPath = @"\Assets\tpp\chara\dds\Scenes\dds6_head_z_cov.fmdl"; break; default: outfitPath = @"\Assets\tpp\chara\dds\Scenes\dds5_head_z_cov.fmdl"; break; } //switch ends playerOutfitName = GetPlayerOutfitName(character, outfitName); //get the player outfit name. outputPath += @"\Assets\tpp\pack\player\parts\" + playerOutfitName; fpkOutputPath = outputPath + "_fpk"; AddTextures(outputPath, @"\camo\" + camoName, "3014d9368df48"); HexSwapper.Swap(fpkOutputPath + outfitPath, "60A62DF597596A", "48DF68934D016B"); MessageBox.Show("Done!"); } //method ChangeFatiguesCamo ends
} //method EditOutfit ends /* * EditShirt * Retextures the shirt for the Naked Snake and T-Shirt outfits. */ public static void EditShirt(string outputPath, string character, string outfitName, string textureName) { //make sure the character is Snake. if (character != "snake") { MessageBox.Show("This option is only valid for Snake!", "Invalid Character!"); return; } //if ends string playerOutfitName = ""; string fpkOutputPath = ""; playerOutfitName = GetPlayerOutfitName(character, outfitName); //get the player outfit name. outputPath += @"\Assets\tpp\pack\player\parts\" + playerOutfitName; fpkOutputPath = outputPath + "_fpk"; AddTextures(outputPath, @"\pftxs\" + textureName, "15d597f03fc1c"); //add the new texture. //hex edit the model to load the new texture. HexSwapper.Swap(fpkOutputPath + @"\Assets\tpp\chara\sna\Scenes\sna0_face0_cov.fmdl", "0EA702C4BFBE68", "1CFC037F595D69"); MessageBox.Show("Done!"); } //method EditShirt ends
/* * EditOutfit * Retextures the specified outfit. */ public static void EditOutfit(string outputPath, string character, string outfitName, string textureName) { string playerOutfitName = ""; string fpkOutputPath = ""; string outfitPath = ""; //get the outfit path. switch (character) { case "snake": outfitPath = @"\Assets\tpp\chara\sna\Scenes\sna0_arm0_cov.fmdl"; break; case "female": outfitPath = @"\Assets\tpp\chara\dds\Scenes\dds6_head_z_cov.fmdl"; break; default: outfitPath = @"\Assets\tpp\chara\dds\Scenes\dds5_head_z_cov.fmdl"; break; } //switch ends playerOutfitName = GetPlayerOutfitName(character, outfitName); //get the player outfit name. outputPath += @"\Assets\tpp\pack\player\parts\" + playerOutfitName; fpkOutputPath = outputPath + "_fpk"; AddTextures(outputPath, @"\pftxs\" + textureName, "1f169d673ad4d"); //add the new textures. //hex edit the model to load the new texture. HexSwapper.Swap(fpkOutputPath + outfitPath, "0EA702C4BFBE68", "4DAD73D669F169"); HexSwapper.Swap(fpkOutputPath + outfitPath, "20BA1B1959A66B", "4DAD73D669F169"); HexSwapper.Swap(fpkOutputPath + outfitPath, "0652BCBFC56868", "4DAD73D669F169"); MessageBox.Show("Done!"); } //method EditOutfit ends
} //method EditShirt ends /* * ApplyWarpaint * Applies the warpaint effect/markings to Quiet's face. */ public static void ApplyWarpaint(string outputPath, string character, string outfitName) { GetOutfits(); //get the list of outfits. string playerOutfitName = ""; string fpkOutputPath = ""; string headPath = ""; string[] headHexValues = { "4B964A16F7456A", "9026CB9BCE5868", "DA54C09683856B", "6F38C22CB8B96A", "690F5C1861F968" }; Outfit outfit = new Outfit(); //get the outfit path. switch (character) { case "snake": headPath = @"\Assets\tpp\chara\sna\Scenes\sna0_face0_cov.fmdl"; break; case "female": headPath = @"\Assets\tpp\chara\dds\Scenes\dds6_head_z_cov.fmdl"; break; default: headPath = @"\Assets\tpp\chara\dds\Scenes\dds5_head_z_cov.fmdl"; break; } //switch ends playerOutfitName = GetPlayerOutfitName(character, outfitName); outputPath += @"\Assets\tpp\pack\player\parts\" + playerOutfitName; fpkOutputPath = outputPath + "_fpk"; //find which outfit we need to edit. for (int i = 0; i < outfits.Count; i++) { if (outfits[i].name == playerOutfitName) { outfit = outfits[i]; } } if (outfit.hasHead) { for (int i = 0; i < headHexValues.Length; i++) { if (HexSwapper.ContainsHex(fpkOutputPath + headPath, headHexValues[i])) { switch (i) { case 0: AddTextures(outputPath, @"\warpaint\default", "3509e66ed1e1b"); HexSwapper.Swap(fpkOutputPath + headPath, headHexValues[i], "1B1EED669E506B"); break; case 1: HexSwapper.Swap(fpkOutputPath + headPath, headHexValues[i], "E3FBF60F35746A"); break; case 2: AddTextures(outputPath, @"\warpaint\hospital", "274350ff6fbe3"); HexSwapper.Swap(fpkOutputPath + headPath, headHexValues[i], "E3FBF60F35746A"); break; case 3: AddTextures(outputPath, @"\warpaint\prisoner", "3509e66ed1e1b"); HexSwapper.Swap(fpkOutputPath + headPath, headHexValues[i], "1B1EED669E506B"); break; case 4: AddTextures(outputPath, @"\warpaint\sniperwolf", "3509e66ed1e1b"); HexSwapper.Swap(fpkOutputPath + headPath, headHexValues[i], "1B1EED669E506B"); break; } //switch ends MessageBox.Show("Done!"); return; } //if ends } } //if ends for (int i = 0; i < headHexValues.Length; i++) { if (HexSwapper.ContainsHex(fpkOutputPath + outfit.outfitPath, headHexValues[i])) { switch (i) { case 0: AddTextures(outputPath, @"\warpaint\default", "3509e66ed1e1b"); HexSwapper.Swap(fpkOutputPath + outfit.outfitPath, headHexValues[i], "1B1EED669E506B"); break; case 1: HexSwapper.Swap(fpkOutputPath + outfit.outfitPath, headHexValues[i], "E3FBF60F35746A"); break; case 2: AddTextures(outputPath, @"\warpaint\hospital", "274350ff6fbe3"); HexSwapper.Swap(fpkOutputPath + outfit.outfitPath, headHexValues[i], "E3FBF60F35746A"); break; case 3: AddTextures(outputPath, @"\warpaint\prisoner", "3509e66ed1e1b"); HexSwapper.Swap(fpkOutputPath + outfit.outfitPath, headHexValues[i], "1B1EED669E506B"); break; case 4: AddTextures(outputPath, @"\warpaint\sniperwolf", "3509e66ed1e1b"); HexSwapper.Swap(fpkOutputPath + outfit.outfitPath, headHexValues[i], "1B1EED669E506B"); break; } //switch ends MessageBox.Show("Done!"); return; } //if ends } MessageBox.Show("Could not find a valid model!"); } // method ApplyWarpaint ends