DB/ChrCustomization
Jump to navigation
Jump to search
struct ChrCustomizationRec { uint32_t m_ID; stringrefⁱ m_name; uint32_t m_sex; // 0x1 female, 0x3 both uint32_t m_baseSection; uint32_t m_uiCustomizationType; uint32_t m_flags; // only some tattoos have 0x1... int32_t m_componentSection[3]; // m_componentSection[0] is textureRegion for tattoos, rest are -1... uint32_t m_raceID; // 0 for all races };
enum UiCustomizationType { Skin = 0, Face = 1, Hair = 2, // Hair Style, Horn Style HairColor = 3, // Hair Color, Horn Color FacialHair = 4, // Facial Hair, Piercings, Markings, Features, Hair, Earrings, Tusks, Ears, Horn Style, Accessories CustomOptionTattoo = 5, // Tattoo Style CustomOptionHorn = 6, // Horn Style, Tusks CustomOptionFacewear = 7, // Blindfolds, Rune, Earrings, Posture CustomOptionTattooColor = 8 // Tattoo Color }
C# parsing example
(by TOM_RUS)
public static void DumpCustomizations() { foreach (var raceRec in ClientDB.ChrRaces.Records) { for (int gender = 0; gender < 2; gender++) { Console.WriteLine("Customizations for {0} {1}:", (Races)raceRec.Id, (Gender)gender); foreach (var cust in ClientDB.ChrCustomization.Records) { if ((cust.m_raceID == 0 || cust.m_raceID == raceRec.Id) && (cust.m_sexID == 3 || cust.m_sexID == gender)) { Console.WriteLine("{0}: field08 {1}, field0C {2}, field10 {3}, field14 [{4}, {5}, {6}]", cust.m_name, cust.field08, cust.field0C, cust.field10, cust.field14[0], cust.field14[1], cust.field14[2]); } } Console.WriteLine(); } } }