From f391c6649e1e60e77c54f0d4b27049eb39fdd359 Mon Sep 17 00:00:00 2001 From: Viaron Date: Wed, 6 Aug 2014 20:08:14 -0400 Subject: [PATCH] Transfer Commit --- README.md | 4 - SchematicDump.sln | 20 +++ SchematicDump.suo | Bin 0 -> 11264 bytes SchematicDump/Program.cs | 110 ++++++++++++++++ SchematicDump/Properties/AssemblyInfo.cs | 36 ++++++ .../Properties/Resources.Designer.cs | 71 +++++++++++ SchematicDump/Properties/Resources.resx | 117 ++++++++++++++++++ SchematicDump/Properties/Settings.Designer.cs | 30 +++++ SchematicDump/Properties/Settings.settings | 7 ++ SchematicDump/SchematicDump.csproj | 81 ++++++++++++ SchematicDump/bin/Debug/SchematicDump.exe | Bin 0 -> 9216 bytes SchematicDump/bin/Debug/test.iff | Bin 0 -> 2738 bytes SchematicDump/bin/Debug/test.txt | 14 +++ readme.txt | 13 ++ 14 files changed, 499 insertions(+), 4 deletions(-) delete mode 100644 README.md create mode 100644 SchematicDump.sln create mode 100644 SchematicDump.suo create mode 100644 SchematicDump/Program.cs create mode 100644 SchematicDump/Properties/AssemblyInfo.cs create mode 100644 SchematicDump/Properties/Resources.Designer.cs create mode 100644 SchematicDump/Properties/Resources.resx create mode 100644 SchematicDump/Properties/Settings.Designer.cs create mode 100644 SchematicDump/Properties/Settings.settings create mode 100644 SchematicDump/SchematicDump.csproj create mode 100644 SchematicDump/bin/Debug/SchematicDump.exe create mode 100644 SchematicDump/bin/Debug/test.iff create mode 100644 SchematicDump/bin/Debug/test.txt create mode 100644 readme.txt diff --git a/README.md b/README.md deleted file mode 100644 index 7cc700a..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -SchematicDump -============= - -Project SWG Schematic Dump Tool diff --git a/SchematicDump.sln b/SchematicDump.sln new file mode 100644 index 0000000..6010a01 --- /dev/null +++ b/SchematicDump.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SchematicDump", "SchematicDump\SchematicDump.csproj", "{8DD37A0E-E7C0-43AE-B628-0598EED554F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8DD37A0E-E7C0-43AE-B628-0598EED554F1}.Debug|x86.ActiveCfg = Debug|x86 + {8DD37A0E-E7C0-43AE-B628-0598EED554F1}.Debug|x86.Build.0 = Debug|x86 + {8DD37A0E-E7C0-43AE-B628-0598EED554F1}.Release|x86.ActiveCfg = Release|x86 + {8DD37A0E-E7C0-43AE-B628-0598EED554F1}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SchematicDump.suo b/SchematicDump.suo new file mode 100644 index 0000000000000000000000000000000000000000..0a099d1e869ff2a486683953ec0734181d50026a GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/SchematicDump/Program.cs b/SchematicDump/Program.cs new file mode 100644 index 0000000..dece480 --- /dev/null +++ b/SchematicDump/Program.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.IO; +using System.Text; + +namespace SchematicDump +{ + static class Program + { + static void Main() + { + Console.Title = "SchematicDump"; + int progress = 0; + + String[] allfiles = System.IO.Directory.GetFiles("./", "*.iff", System.IO.SearchOption.AllDirectories); + + foreach (string file in allfiles) + { + if (progress % 100 == 0) Console.WriteLine("Progress: {0}/{1}", progress, allfiles.Length); + + FileStream stream = File.OpenRead(file); + using (stream) + { + StreamWriter fileStream = new StreamWriter(file.Replace(".iff", ".txt")); + int index = 1; + foreach (string slot in findData(stream, "SISSPCNT")) + { + fileStream.WriteLine("Slot {0}: {1}", index, slot.Replace(Convert.ToChar(0x00), ' ').Replace(Convert.ToChar(0x01), ' ')); + index++; + } + index = 1; + foreach (string attribute in findData(stream, "DSSAPCNT")) + { + fileStream.WriteLine("Attribute {0}: {1}", index, attribute.Replace(Convert.ToChar(0x00), ' ').Replace(Convert.ToChar(0x01), ' ')); + index++; + } + fileStream.Write("Crafted Template: {0}", findCraftedTemplate(stream, file)); + fileStream.Close(); + } + progress++; + } + + Console.WriteLine("Finished generating {0} files.", allfiles.Length); + Console.Read(); + } + + static List findData(Stream dataStream, string type) + { + // "SISSPCNT" + // "DSSAPCNT" + + int offset1 = 0x07; + int offset2 = 0x0f; + + List results = new List(); + + byte[] nameMatch = Encoding.ASCII.GetBytes(type); + byte[] temp = new byte[nameMatch.Length]; + + for (int i = 0; i < dataStream.Length; i++) + { + dataStream.Position = i; + dataStream.Read(temp, 0, nameMatch.Length); + + if (temp.SequenceEqual(nameMatch)) + { + dataStream.Position += offset2; + + byte[] resultData = new byte[dataStream.ReadByte() - offset1 - 1]; + + dataStream.Position += offset1; + dataStream.Read(resultData, 0, resultData.Length); + + results.Add(Encoding.UTF8.GetString(resultData, 0, resultData.Length)); + } + } + return results; + } + static string findCraftedTemplate(Stream dataStream, string file) + { + byte[] nameMatch = Encoding.ASCII.GetBytes("crafted"); + byte[] temp = new byte[nameMatch.Length]; + + for (int i = 0; i < dataStream.Length; i++) + { + dataStream.Position = i; + dataStream.Read(temp, 0, nameMatch.Length); + if (temp.SequenceEqual(nameMatch)) + { + dataStream.Position -= (nameMatch.Length + 1); + + byte[] resultData = new byte[dataStream.ReadByte()]; + dataStream.Position += 0x17; + + dataStream.Read(resultData, 0, resultData.Length); + + if (resultData.Length - 0x18 <= 0) + { + Console.WriteLine("Error: Crafted Template Length less than 0 for file {0} when removing trail-space", file); + return Encoding.UTF8.GetString(resultData, 0, resultData.Length); + } + return Encoding.UTF8.GetString(resultData, 0, resultData.Length - 0x18); + } + } + return "Unknown"; + } + } +} diff --git a/SchematicDump/Properties/AssemblyInfo.cs b/SchematicDump/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..87d7283 --- /dev/null +++ b/SchematicDump/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SchematicDump")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SchematicDump")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("94799e64-0910-405d-9226-3a83a1088583")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SchematicDump/Properties/Resources.Designer.cs b/SchematicDump/Properties/Resources.Designer.cs new file mode 100644 index 0000000..a48fdec --- /dev/null +++ b/SchematicDump/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18408 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SchematicDump.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SchematicDump.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/SchematicDump/Properties/Resources.resx b/SchematicDump/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SchematicDump/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SchematicDump/Properties/Settings.Designer.cs b/SchematicDump/Properties/Settings.Designer.cs new file mode 100644 index 0000000..907e184 --- /dev/null +++ b/SchematicDump/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18408 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SchematicDump.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/SchematicDump/Properties/Settings.settings b/SchematicDump/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/SchematicDump/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SchematicDump/SchematicDump.csproj b/SchematicDump/SchematicDump.csproj new file mode 100644 index 0000000..f5414ba --- /dev/null +++ b/SchematicDump/SchematicDump.csproj @@ -0,0 +1,81 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {8DD37A0E-E7C0-43AE-B628-0598EED554F1} + Exe + Properties + SchematicDump + SchematicDump + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/SchematicDump/bin/Debug/SchematicDump.exe b/SchematicDump/bin/Debug/SchematicDump.exe new file mode 100644 index 0000000000000000000000000000000000000000..15dce86d09d081d7d77b52f5f1bfaacc6777ff6d GIT binary patch literal 9216 zcmeHMYiu0Xbv}1@XZAsIr6na&ie4kqb|_I?Ek#NqRna0vQZj8lXe}j6sUm5(J6w*m zJF}XZr9?YU=n8J(I&ovW4VoBj;<#uLByHo`L7cj2>?S~(qH)wmPy`85|8UT>XzKKZ z76vNyJ9lQ5OG zf10Kjli%L@k~s41t0nuy*9O2Vg}8^l|~GlGYKhF8S58#QS^ziAN<=v<;S@+i@2 z`M>lIP@jbokelcF2+;*4AU3`(5H$n8u$O3KBmHO9wYuq&GXeabhCW%(xat8ft^+`u z^fj;>m@FF9W*yfl0F$GH-V@JS9O#pw18Qx{t9_d~~lmhp5YRg4wKWc&~Lmvi=t+^rEZ;0kZZznmx ztJh&=qKL=oM0@2+J&=%`xQz+^DA*kILCe_}; z)aIVi*5+=Ft14w;&ezbKQKa0A+TOht4O=w36R(a&#D)PW$|xPDAru0zU{cb+Kl$OR z*5(`S@O*=f!Aa2%$k+S*x78bGy+3Kt8~^#}h151d)nuYO&hFkNEsojm=QsUuO{NLs zEp1L@nnGLEj?-`}3Ad7&WG3;1c_YRw`>Y!`Z#oActseAl7Sp{A@UHDNdc>d7Ph%eN zM)4y&tMG6^D5wbo%JdK7-AFe;dp~F&#e<0{OIuE%@1TY~FGHJBTUIr>+o7eoy9Y38 z?*ME`K4E^W7gL}u*50NJKF0kb8Reo4S_-vTI~eRNkh?OmWH*HO@B~U^61`_Aa;Kd` zOZ?*LfZgr`s-EdMVFXn=m4XUsK~sD4;PcX@MCehxy{>~pYzaKt(ouIQxfCIUYRkGa?KdKAkk_k`^D$Ty?e@o)ef4?S)3#X8 zUg^Fhp_d&{w^E|xbaP_Kb2e>1Ja=|QsETfw;uu8u@9z~@f7mOc;a+jdO=5<2?|}*r z!yZ}WmhGD(-PqPs-0wv^ul?1Ve~yu)C-Ic?3$ABWvL_7Jt~mw6t=CQ%deLxpXcf0$ zJ7sfbhjz+vT+_CO2eLW-+o6rs%3jSehApG!IeK}AHdUJ`n}z#~g=zbeVGYmh-K*~| z?B3Hi)IVV428X(CRaUb+vtoqW^M=QhJS^gjMavW`Qzy}eiu7hQJ zhM7^oDjrz-*<=#&q_^(uC+yp-9TQ%j!C;qD6{-laCG714m2!=88%&XP?!!30ed|-f zTP2H1kn!tOL(doJvw&}4y{hy9aX_eaN$7yDi`M}EN5VA`uJ=oLL_$NtMG2pg@b4lo zMpXJI3IAJC(oya;5$%bpbUAu1nx{u$kV-E`e-o6y2TV~a_8+KkjhzF$JI3@gu@ZRB zN%$+V*F=i`DE8a26nzs=r5{N8zs1H+Aws^V~}N6a7h)kp{K!bmf=C|1(}It(nzI{>hgXiEZ1 zU^#ppQO(d#Au~h2Ar8@$#`B@u zav011>LipWai9+XyWZtv4~YX9>+5$g_KC!&#l7(J|0MRSQXj@bVo$EStme?hv)~0x z1VLW`jL

faKW%wn2GC7hJ-ehJS=s7q){cv->)z%%rStUo3p)-)u1Qo?5e&(ZUM zMfwV0E4>P6(zj&&ZzN1g_&ut|zC_=n$76p+>p^*y_g3*;65@^68F5&vBJG zPpiL+zBB6YgFcJaN5rFQHj%oCwG;Q zBIul~@=g;LfgOd*a@t#1B7R|sPhk?Cr>D5O|EOK8m5sY8Uzjs0x@Q)~Yn5u&xN1EmNO8xa8GW!;kiNnrccLbE*b?dz_MeuHEWh?4wTv!jaI8T zH)K8Re^7Ugka@|Nuy$0p^pfF_6C7K>L*~QS#PzcIpf5Q%q9(0byUrZYC|mGshf0Qb zex+EZg6ML94~OAQ4SGWIxZxHYv&xp=+PG|dZr5C?>ej-o4VVB zIA&??HcitGGL4GvT)Is!Kf_pR2r~#jZ^%wso`D&eH=KDB$qS9yl~bl`&NTXaxMmiY z1ccrP$;_<{hY-wL8ds+4LGlDUdz}RpWLAi_n)& za^7MN7P)0fm~Wfm9J8&HuHh_i3_I8RF7=z{Nf}te^?P)yh#7j=@EAMf*p+}14u+iT zb);@(rD|J-<#A-nG*L9MTn{?-6?b_AS2W~3UQC$3t__{Mdgc75anr#vwVefQQMyx@ zJ1%EF8^t5;5~foBE_%Q*J>!UJ8N^fxf|Yi>YFL~T^IGPCKVe|mVww8QvY$f}R;^-S zQ^URj!3`MZ2zC_5fjey5JoZqUw#Vjlho7L0%QXX=(!}MOUY0uQve*=VU@f&Y`AjAU9rVmg*nHz z%m)pGcG)?!bk@`_B`&`I1Q!*YUlVzp(Q{-_g>>@B1U8OrxlrH*QZsA@C*G`Gy7`hSsl}aNHd5i z0GX3qO(iE+b+9VEFs$};q=CqSqu}DgEg~^TX{UVf+N!ta6(1? zT*+LHY1CR%S#E1B9*?%Rw6;WIahNOBKAaH9FS*1B_TaL#DVZ2Vb&%^1|}8PqKQpPBGI~9L=eoyuZqnSyrLP&fHTN1EblfTts81l@PkEI77n&w5#;2H3vxUag34TK=(tI0p$U z(jl{i^sP?FV>>Myd<+Cfob4p~Xq%urh6eTy4H#@2nsmAq8{ZG&eSZlm-e zd>HueFu@@U%Sl z?7SQ&&6NYi0n43*Wqf^b&n}Dd3e29lc=qbxp0hGBed7H6Q6a>4HaTtCKjjcd1- z@b`kHmh)q_GjY|BslUA27)G{O=I>7UMd?n`Mr7?5;Jpxm2>)8fL%+BVZ%l(lyc&xC z#cAqo=ySKBbLYhd34YaI7#|1nnGquX6(}s#F`|D7)(z9HN3bc-DV+M}0Vj~BaK3OH znZkLzkI^C2xqLPD<_-VLK-k%TACRs7%|C1jNXUt}$0;0w4&?Y}_#}=$K3cilK{%_B zDe#eL;kfj31rx3Eh(y~LV>#F^V3VJLa9(h$q-M#J!?ErE4Iop=q4zkx#EClpxXd6p zdoXb@bCwb6d51g+tIsUwg8<7N?yNc1K3851+}=ufn)ep$%0At#Was-jwTf<;vxe)1r=ipaQJPj4Hd(~k zg4^&ii}+ma)GVBd!<|PL8a_j1^=h?qr!T>CYA!y@%-ZkLo?V@?A9TA$p@s|PLV$zf z@I?y0xD=-xa~?-^$#CDL)c#PahO#6FM^d52m%1ayyiwN542L^)chZ{2Z!k`$Rx?Kn z_%wnr&gx~?2%M5acHYLC(Da?lY~R1L9t1G#-x-b&5KQp*LcvCa@62?e;rxFunEeYI Ie?AfTe}N35bN~PV literal 0 HcmV?d00001 diff --git a/SchematicDump/bin/Debug/test.iff b/SchematicDump/bin/Debug/test.iff new file mode 100644 index 0000000000000000000000000000000000000000..ae960eac59ca4276ea59e787082c18f0c70c68a6 GIT binary patch literal 2738 zcmc(hTW`}a6vv&7A%wUT7&n0gNW4Oecz_3Z*j6Sc!3Ik-frJ#f&S`6KeS+P-7Xv3JN={8YCV3lwVRN=Q>*k>+HP2d z&N6m}rlL6BiA%nqVI20aO!q(0d;lzpgxA8&08J`&k0eOY&Ze40JkNm}t_7rB!+V2b zKH$!g+AK$@9gD);T9upDa33$h^S+` zQiEOIvma_s*;;%`15$U<2qM)9z|R+hE4f?M zfck&Z-530w)5F?T?#NM{p#!StwW6Lk;<#PbbJmXIjZn{(`oCTE38fW_1P*cqBk7KU z;RcLyFwzGiNqasi?V+?u6wehp!ucf4>Yh%-$0t&T0T@R zbq0|#E%dZ;cbQpCJ5oTNs!DTP{T%NkyZ@$fvIaHIRw$gp@ng=)&-mqD@^6?c-&(Cl z6XvyPpx=%ixx2Up`&L-_nAJEj1nz1Ej!Oku8>}!g_sI|z&nd)D8!my7o21-Dt9hPa z0>*HuC({i|ZZbr9l^o^3*xfQiuTSO=Pz?w0N)99$3(MynT?pQA1&*>MU~d#Rlb{F9 zHp%lT9M literal 0 HcmV?d00001 diff --git a/SchematicDump/bin/Debug/test.txt b/SchematicDump/bin/Debug/test.txt new file mode 100644 index 0000000..debe678 --- /dev/null +++ b/SchematicDump/bin/Debug/test.txt @@ -0,0 +1,14 @@ +Slot 1: craft_armor_ingredients_n appearance_fragments +Slot 2: craft_armor_ingredients_n armor_core_frame +Slot 3: craft_armor_ingredients_n armor_core +Slot 4: craft_armor_ingredients_n load_bearing_harness +Slot 5: craft_armor_ingredients_n reinforcement +Slot 6: craft_armor_ingredients_n enhancement_cartridge +Slot 7: craft_armor_ingredients_n appearance_enhancement_one +Slot 8: craft_armor_ingredients_n appearance_enhancement_two +Attribute 1: crafting complexity +Attribute 2: crafting xp +Attribute 3: crafting sockets +Attribute 4: crafting condition +Attribute 5: crafting general_protection +Crafted Template: object/tangible/wearables/armor/assault_trooper/shared_armor_assault_trooper_bicep_l.iff \ No newline at end of file diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..9bd08b1 --- /dev/null +++ b/readme.txt @@ -0,0 +1,13 @@ +Place SchematicDump.exe in the root of your object/draft_schematics/ folder or whatever folder all your schematic templates are in. + +For all files in the current directory and child directories, the tool will dump all information regarding a draft schematic's ingredient slots and experimentation attributes to a text file. + +Example: object\draft_schematic\instrument\shared_instrument_bandfill.iff -> object\draft_schematic\instrument\shared_instrument_bandfill.txt +Contents: +Slot 1: craft_furniture_ingredients_n frame +Slot 2: craft_furniture_ingredients_n valving +Attribute 1: crafting complexity +Attribute 2: crafting xp +Attribute 3: crafting hitPoints +Attribute 4: crafting quality +Crafted Template: object/tangible/instrument/shared_bandfill_hue.iff \ No newline at end of file