public static void WriteEntryYaml(StringBuilder builder, ReadableTuple <int> tuple, MetaTable <int> itemDb) { if (tuple != null) { builder.AppendLine(" - Id: " + tuple.GetKey <int>().ToString(CultureInfo.InvariantCulture)); builder.AppendLine(" AegisName: " + tuple.GetValue <string>(ServerMobAttributes.AegisName)); builder.AppendLine(" Name: " + DbIOUtils.QuoteCheck(tuple.GetValue <string>(ServerMobAttributes.IRoName))); if (tuple.GetValue <string>(ServerMobAttributes.IRoName) != tuple.GetValue <string>(ServerMobAttributes.KRoName)) { builder.AppendLine(" JapaneseName: " + DbIOUtils.QuoteCheck(tuple.GetValue <string>(ServerMobAttributes.KRoName))); } int value; //bool valueB; string valueS; //int type = 0; builder.AppendLine(" Level: " + tuple.GetValue <int>(ServerMobAttributes.Lv)); if ((value = tuple.GetValue <int>(ServerMobAttributes.Hp)) != 1) { builder.AppendLine(" Hp: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Sp)) != 1) { builder.AppendLine(" Sp: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Exp)) != 0) { builder.AppendLine(" BaseExp: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.JExp)) != 0) { builder.AppendLine(" JobExp: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.MvpExp)) != 0) { builder.AppendLine(" MvpExp: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Atk1)) != 0) { builder.AppendLine(" Attack: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Atk2)) != 0) { builder.AppendLine(" Attack2: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Def)) != 0) { builder.AppendLine(" Defense: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Mdef)) != 0) { builder.AppendLine(" MagicDefense: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Str)) != 1) { builder.AppendLine(" Str: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Agi)) != 1) { builder.AppendLine(" Agi: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Vit)) != 1) { builder.AppendLine(" Vit: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Int)) != 1) { builder.AppendLine(" Int: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Dex)) != 1) { builder.AppendLine(" Dex: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.Luk)) != 1) { builder.AppendLine(" Luk: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.AttackRange)) != 0) { builder.AppendLine(" AttackRange: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.ViewRange)) != 0) { builder.AppendLine(" SkillRange: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.ChaseRange)) != 0) { builder.AppendLine(" ChaseRange: " + value); } //if ((value = tuple.GetValue<int>(ServerMobAttributes.Size)) != 0) { builder.AppendLine(" Size: " + Constants.ToString <SizeType>(tuple.GetValue <int>(ServerMobAttributes.Size))); //} builder.AppendLine(" Race: " + Constants.ToString <MobRaceType>(tuple.GetValue <int>(ServerMobAttributes.Race))); DbIOUtils.ExpandFlag <MobGroup2Type>(builder, tuple, "RaceGroups", ServerMobAttributes.RaceGroups, YamlParser.Indent4, YamlParser.Indent6); int elementLevel = tuple.GetValue <int>(ServerMobAttributes.Element) / 20; int element = tuple.GetValue <int>(ServerMobAttributes.Element) % 20; switch (element) { case 0: builder.AppendLine(" Element: Neutral"); break; case 1: builder.AppendLine(" Element: Water"); break; case 2: builder.AppendLine(" Element: Earth"); break; case 3: builder.AppendLine(" Element: Fire"); break; case 4: builder.AppendLine(" Element: Wind"); break; case 5: builder.AppendLine(" Element: Poison"); break; case 6: builder.AppendLine(" Element: Holy"); break; case 7: builder.AppendLine(" Element: Dark"); break; case 8: builder.AppendLine(" Element: Ghost"); break; case 9: builder.AppendLine(" Element: Undead"); break; } builder.AppendLine(" ElementLevel: " + elementLevel); if ((value = tuple.GetValue <int>(ServerMobAttributes.MoveSpeed)) != 0) { builder.AppendLine(" WalkSpeed: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.AttackDelay)) != 0) { builder.AppendLine(" AttackDelay: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.AttackMotion)) != 0) { builder.AppendLine(" AttackMotion: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.DamageMotion)) != 0) { builder.AppendLine(" DamageMotion: " + value); } if ((value = tuple.GetValue <int>(ServerMobAttributes.DamageTaken)) != 100) { builder.AppendLine(" DamageTaken: " + value); } long mode = FormatConverters.LongOrHexConverter(tuple.GetValue <string>(ServerMobAttributes.NewMode)); if ((mode & 0xB695) == 0xB695) { builder.AppendLine(" Ai: 26"); mode &= ~0xB695; } else if ((mode & 0x8084) == 0x8084) { builder.AppendLine(" Ai: 27"); mode &= ~0x8084; } else if ((mode & 0x7085) == 0x7085) { builder.AppendLine(" Ai: 08"); mode &= ~0x7085; } else if ((mode & 0x3885) == 0x3885) { builder.AppendLine(" Ai: 04"); mode &= ~0x3885; } else if ((mode & 0x3695) == 0x3695) { builder.AppendLine(" Ai: 21"); mode &= ~0x3695; } else if ((mode & 0x3295) == 0x3295) { builder.AppendLine(" Ai: 20"); mode &= ~0x3295; } else if ((mode & 0x3095) == 0x3095) { builder.AppendLine(" Ai: 09"); mode &= ~0x3095; } else if ((mode & 0x308D) == 0x308D) { builder.AppendLine(" Ai: 13"); mode &= ~0x308D; } else if ((mode & 0x2085) == 0x2085) { builder.AppendLine(" Ai: 05"); mode &= ~0x2085; } else if ((mode & 0x108B) == 0x108B) { builder.AppendLine(" Ai: 07"); mode &= ~0x108B; } else if ((mode & 0x1089) == 0x1089) { builder.AppendLine(" Ai: 03"); mode &= ~0x1089; } else if ((mode & 0xA1) == 0xA1) { builder.AppendLine(" Ai: 24"); mode &= ~0xA1; } else if ((mode & 0x91) == 0x91) { builder.AppendLine(" Ai: 17"); mode &= ~0x91; } else if ((mode & 0x84) == 0x84) { builder.AppendLine(" Ai: 10"); mode &= ~0x84; } else if ((mode & 0x83) == 0x83) { builder.AppendLine(" Ai: 02"); mode &= ~0x83; } else if ((mode & 0x81) == 0x81) { builder.AppendLine(" Ai: 01"); mode &= ~0x81; } else if ((mode & 0x1) == 0x1) { builder.AppendLine(" Ai: 25"); mode &= ~0x1; } if ((value = tuple.GetValue <int>(ServerMobAttributes.Class)) != 0) { builder.AppendLine(" Class: " + Constants.ToString <ClassType>(value)); } if (mode > 0) { builder.AppendLine(" Modes:"); if ((mode & 0x1) == 0x1) { builder.AppendLine(" CanMove: true"); } if ((mode & 0x80) == 0x80) { builder.AppendLine(" CanAttack: true"); } if ((mode & 0x40) == 0x40) { builder.AppendLine(" NoCast: true"); } if ((mode & 0x2) == 0x2) { builder.AppendLine(" Looter: true"); } if ((mode & 0x4) == 0x4) { builder.AppendLine(" Aggressive: true"); } if ((mode & 0x8) == 0x8) { builder.AppendLine(" Assist: true"); } if ((mode & 0x20) == 0x20) { builder.AppendLine(" NoRandomWalk: true"); } if ((mode & 0x200) == 0x200) { builder.AppendLine(" CastSensorChase: true"); } if ((mode & 0x10) == 0x10) { builder.AppendLine(" CastSensorIdle: true"); } if ((mode & 0x800) == 0x800) { builder.AppendLine(" Angry: true"); } if ((mode & 0x400) == 0x400) { builder.AppendLine(" ChangeChase: true"); } if ((mode & 0x1000) == 0x1000) { builder.AppendLine(" ChangeTargetMelee: true"); } if ((mode & 0x2000) == 0x2000) { builder.AppendLine(" ChangeTargetChase: true"); } if ((mode & 0x4000) == 0x4000) { builder.AppendLine(" TargetWeak: true"); } if ((mode & 0x8000) == 0x8000) { builder.AppendLine(" RandomTarget: true"); } if ((mode & 0x20000) == 0x20000) { builder.AppendLine(" IgnoreMagic: true"); } if ((mode & 0x10000) == 0x10000) { builder.AppendLine(" IgnoreMelee: true"); } if ((mode & 0x100000) == 0x100000) { builder.AppendLine(" IgnoreMisc: true"); } if ((mode & 0x40000) == 0x40000) { builder.AppendLine(" IgnoreRanged: true"); } if ((mode & 0x400000) == 0x400000) { builder.AppendLine(" TeleportBlock: true"); } if ((mode & 0x1000000) == 0x1000000) { builder.AppendLine(" FixedItemDrop: true"); } if ((mode & 0x2000000) == 0x2000000) { builder.AppendLine(" Detector: true"); } if ((mode & 0x200000) == 0x200000) { builder.AppendLine(" KnockBackImmune: true"); } if ((mode & 0x4000000) == 0x4000000) { builder.AppendLine(" StatusImmune: true"); } if ((mode & 0x8000000) == 0x8000000) { builder.AppendLine(" SkillImmune: true"); } if ((mode & 0x80000) == 0x80000) { builder.AppendLine(" Mvp: true"); } } int stat = 0; for (int i = 0; i < 6; i += 2) { stat += tuple.GetIntNoThrow(ServerMobAttributes.Mvp1ID.Index + i); } if (stat != 0) { builder.AppendLine(" MvpDrops:"); for (int i = 0; i < 6; i += 2) { valueS = tuple.GetValue <string>(ServerMobAttributes.Mvp1ID.Index + i); if (stat != 0 && valueS != "0" && valueS != "") { builder.AppendLine(" - Item: " + DbIOUtils.Id2Name(itemDb, ServerItemAttributes.AegisName, valueS)); builder.AppendLine(" Rate: " + tuple.GetValue <int>(ServerMobAttributes.Mvp1ID.Index + i + 1)); if ((valueS = tuple.GetValue <string>(ServerMobAttributes.Mvp1RandomOptionGroup.Index + (i / 2))) != "") { builder.AppendLine(" RandomOptionGroup: " + valueS); } } } } stat = 0; for (int i = 0; i < 20; i += 2) { stat += tuple.GetIntNoThrow(ServerMobAttributes.Drop1ID.Index + i); } if (stat != 0) { builder.AppendLine(" Drops:"); for (int i = 0; i < 20; i += 2) { valueS = tuple.GetValue <string>(ServerMobAttributes.Drop1ID.Index + i); if (stat != 0 && valueS != "0" && valueS != "") { builder.AppendLine(" - Item: " + DbIOUtils.Id2Name(itemDb, ServerItemAttributes.AegisName, valueS)); builder.AppendLine(" Rate: " + tuple.GetValue <int>(ServerMobAttributes.Drop1ID.Index + i + 1)); if ((valueS = tuple.GetValue <string>(ServerMobAttributes.Drop1Flags.Index + (i / 2))) != "" && valueS != null) { if (FormatConverters.BooleanConverter(valueS)) { builder.AppendLine(" StealProtected: true"); } } if ((valueS = tuple.GetValue <string>(ServerMobAttributes.Drop1RandomOptionGroup.Index + (i / 2))) != "") { builder.AppendLine(" RandomOptionGroup: " + valueS); } } } } } }
public static void WriteEntryYaml(StringBuilder builder, ReadableTuple <int> tuple, MetaTable <int> itemDb) { if (tuple != null) { int value; bool valueB; string valueS; builder.AppendLine(" - Id: " + tuple.GetKey <int>().ToString(CultureInfo.InvariantCulture)); if ((valueS = tuple.GetValue <string>(ServerSkillAttributes.Name)) != "") { builder.AppendLine(" Name: " + DbIOUtils.QuoteCheck(valueS)); } if ((valueS = tuple.GetValue <string>(ServerSkillAttributes.Desc)) != "") { builder.AppendLine(" Description: " + DbIOUtils.QuoteCheck(valueS)); } builder.AppendLine(" MaxLevel: " + tuple.GetValue <int>(ServerSkillAttributes.MaxLevel)); if ((value = tuple.GetValue <int>(ServerSkillAttributes.AttackType)) != 0) { builder.AppendLine(" Type: " + Constants.ToString <AttackTypeType>(value)); } if ((value = tuple.GetValue <int>(ServerSkillAttributes.SkillTargetType)) != 0) { builder.AppendLine(" TargetType: " + Constants.ToString <SkillTargetType>(value)); } DbIOUtils.ExpandFlag <SkillDamageType>(builder, tuple, "DamageFlags", ServerSkillAttributes.DamageFlags, YamlParser.Indent4, YamlParser.Indent6); DbIOUtils.ExpandFlag <SkillType2TypeNew>(builder, tuple, "Flags", ServerSkillAttributes.Inf2New, YamlParser.Indent4, YamlParser.Indent6); _expandList(builder, tuple, "Range", " - Level", "Size", ServerSkillAttributes.Range, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); if ((value = tuple.GetValue <int>(ServerSkillAttributes.HitMode)) != 0) { builder.AppendLine(" Hit: " + Constants.ToString <HitType>(value)); } _expandList(builder, tuple, "HitCount", " - Level", "Count", ServerSkillAttributes.HitCount, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "Element", " - Level", "Element", ServerSkillAttributes.SkillElement, YamlParser.Indent4, YamlParser.Indent8, "Neutral", itemDb); _expandList(builder, tuple, "SplashArea", " - Level", "Area", ServerSkillAttributes.SplashArea, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "ActiveInstance", " - Level", "Max", ServerSkillAttributes.ActiveInstance, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "Knockback", " - Level", "Amount", ServerSkillAttributes.Knockback, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); if (tuple.GetValue <int>(ServerSkillAttributes.CopyFlags) > 0 || tuple.GetValue <int>(ServerSkillAttributes.CopyFlagsRemovedRequirement) > 0) { builder.AppendLine(" CopyFlags:"); DbIOUtils.ExpandFlag <SkillCopyType>(builder, tuple, "Skill", ServerSkillAttributes.CopyFlags, YamlParser.Indent6, YamlParser.Indent8); DbIOUtils.ExpandFlag <SkillCopyRemoveRequirementType>(builder, tuple, "RemoveRequirement", ServerSkillAttributes.CopyFlagsRemovedRequirement, YamlParser.Indent6, YamlParser.Indent8); } if (tuple.GetValue <int>(ServerSkillAttributes.NoNearNPCRange) > 0 || tuple.GetValue <int>(ServerSkillAttributes.NoNearNPCType) > 0) { builder.AppendLine(" NoNearNPC:"); if ((value = tuple.GetValue <int>(ServerSkillAttributes.NoNearNPCRange)) != 0) { builder.AppendLine(" AdditionalRange: " + value); } DbIOUtils.ExpandFlag <NoNearNpcType>(builder, tuple, "Type", ServerSkillAttributes.NoNearNPCType, YamlParser.Indent6, YamlParser.Indent8); } if ((valueB = tuple.GetValue <bool>(ServerSkillAttributes.CastInterrupt)) != false) { builder.AppendLine(" CastCancel: " + (valueB ? "true" : "false")); } if ((value = tuple.GetValue <int>(ServerSkillAttributes.CastDefenseReduction)) != 0) { builder.AppendLine(" CastDefenseReduction: " + value); } _expandList(builder, tuple, "CastTime", " - Level", "Time", ServerSkillAttributes.CastingTime, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "AfterCastActDelay", " - Level", "Time", ServerSkillAttributes.AfterCastActDelay, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "AfterCastWalkDelay", " - Level", "Time", ServerSkillAttributes.AfterCastWalkDelay, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "Duration1", " - Level", "Time", ServerSkillAttributes.Duration1, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "Duration2", " - Level", "Time", ServerSkillAttributes.Duration2, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "Cooldown", " - Level", "Time", ServerSkillAttributes.Cooldown, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); _expandList(builder, tuple, "FixedCastTime", " - Level", "Time", ServerSkillAttributes.FixedCastTime, YamlParser.Indent4, YamlParser.Indent8, "0", itemDb); DbIOUtils.ExpandFlag <CastingFlags>(builder, tuple, "CastTimeFlags", ServerSkillAttributes.CastTimeFlags, YamlParser.Indent4, YamlParser.Indent6); DbIOUtils.ExpandFlag <CastingFlags>(builder, tuple, "CastDelayFlags", ServerSkillAttributes.CastDelayFlags, YamlParser.Indent4, YamlParser.Indent6); StringBuilder require = new StringBuilder(); _expandList(require, tuple, "HpCost", " - Level", "Amount", ServerSkillAttributes.RequireHpCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(require, tuple, "SpCost", " - Level", "Amount", ServerSkillAttributes.RequireSpCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(require, tuple, "HpRateCost", " - Level", "Amount", ServerSkillAttributes.RequireHpRateCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(require, tuple, "SpRateCost", " - Level", "Amount", ServerSkillAttributes.RequireSpRateCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(require, tuple, "MaxHpTrigger", " - Level", "Amount", ServerSkillAttributes.RequireMaxHpTrigger, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(require, tuple, "ZenyCost", " - Level", "Amount", ServerSkillAttributes.RequireZenyCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); value = tuple.GetValue <int>(ServerSkillAttributes.RequireWeapons); if (value != 0xFFFFFF) { DbIOUtils.ExpandFlag <WeaponType>(require, tuple, "Weapon", ServerSkillAttributes.RequireWeapons, YamlParser.Indent6, YamlParser.Indent8); } DbIOUtils.ExpandFlag <AmmoType>(require, tuple, "Ammo", ServerSkillAttributes.RequireAmmoTypes, YamlParser.Indent6, YamlParser.Indent8); _expandList(require, tuple, "AmmoAmount", " - Level", "Amount", ServerSkillAttributes.RequireAmmoAmount, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); if ((value = tuple.GetValue <int>(ServerSkillAttributes.RequireState)) > 0) { valueS = ""; switch ((RequiredStateTypeNew)value) { case RequiredStateTypeNew.Hidden: valueS = "Hidden"; break; case RequiredStateTypeNew.Riding: valueS = "Riding"; break; case RequiredStateTypeNew.Falcon: valueS = "Falcon"; break; case RequiredStateTypeNew.Cart: valueS = "Cart"; break; case RequiredStateTypeNew.Shield: valueS = "Shield"; break; case RequiredStateTypeNew.RecoverWeightRate: valueS = "Recover_Weight_Rate"; break; case RequiredStateTypeNew.MoveEnable: valueS = "Move_Enable"; break; case RequiredStateTypeNew.Water: valueS = "Water"; break; case RequiredStateTypeNew.RidingDragon: valueS = "Ridingdragon"; break; case RequiredStateTypeNew.Warg: valueS = "Wug"; break; case RequiredStateTypeNew.Ridingwarg: valueS = "Ridingwug"; break; case RequiredStateTypeNew.Mado: valueS = "Mado"; break; case RequiredStateTypeNew.Elementalspirit: valueS = "Elementalspirit"; break; case RequiredStateTypeNew.Elementalspirit2: valueS = "Elementalspirit2"; break; case RequiredStateTypeNew.RidingPeco: valueS = "Peco"; break; case RequiredStateTypeNew.SunStance: valueS = "Sunstance"; break; case RequiredStateTypeNew.MoonStance: valueS = "Moonstance"; break; case RequiredStateTypeNew.StarsStance: valueS = "Starstance"; break; case RequiredStateTypeNew.UniverseStance: valueS = "Universestance"; break; default: valueS = ""; break; } require.Append(" State: "); require.AppendLine(valueS); } if ((valueS = tuple.GetValue <string>(ServerSkillAttributes.RequireStatuses)) != "" && valueS != "0") { var data = valueS.Split(':'); if (data.Length > 0) { require.AppendLine(" Status:"); foreach (var da in data) { require.Append(" "); require.Append(da); require.AppendLine(": true"); } } } //_DbIOUtils.ExpandFlag<AmmoType>(require, tuple, "Status", ServerSkillAttributes.RequireStatuses, YamlParser2.Indent6, YamlParser2.Indent8); _expandList(require, tuple, "SpiritSphereCost", " - Level", "Amount", ServerSkillAttributes.RequireSpiritSphereCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(require, tuple, "ItemCost", " - Item", "Amount", ServerSkillAttributes.RequireItemCost, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); if ((valueS = tuple.GetValue <string>(ServerSkillAttributes.RequiredEquipment)) != "" && valueS != "0") { var data = valueS.Split(':'); require.AppendLine(" Equipment:"); foreach (var item in data) { require.Append(" "); require.Append(DbIOUtils.Id2Name(itemDb, ServerItemAttributes.AegisName, item)); require.AppendLine(": true"); } } //_expandList(require, tuple, "Equipment", "", "", ServerSkillAttributes.RequiredEquipment, YamlParser2.Indent6, YamlParser2.Indent8, "", itemDb); string requireData = require.ToString(); if (requireData != "") { builder.AppendLine(" Requires:"); builder.Append(requireData); } StringBuilder unit = new StringBuilder(); if ((valueS = tuple.GetValue <string>(ServerSkillAttributes.UnitId)) != "" && valueS != "0") { unit.Append(" Id: "); unit.AppendLine(valueS); } if ((valueS = tuple.GetValue <string>(ServerSkillAttributes.UnitAlternateId)) != "" && valueS != "0") { unit.Append(" AlternateId: "); unit.AppendLine(valueS); } _expandList(unit, tuple, "Layout", " - Level", "Size", ServerSkillAttributes.UnitLayout, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); _expandList(unit, tuple, "Range", " - Level", "Size", ServerSkillAttributes.UnitRange, YamlParser.Indent6, YamlParser.Indent10, "0", itemDb); if ((value = tuple.GetValue <int>(ServerSkillAttributes.UnitInterval)) != 0) { unit.Append(" Interval: "); unit.AppendLine(value.ToString(CultureInfo.InvariantCulture)); } if ((value = tuple.GetValue <int>(ServerSkillAttributes.UnitTarget)) != 0x3F0000) { unit.Append(" Target: "); var flag = FlagsManager.GetFlag <UnitTargetType>(); valueS = flag.Value2Name[value]; unit.AppendLine(valueS); } DbIOUtils.ExpandFlag <UnitFlagType>(unit, tuple, "Flag", ServerSkillAttributes.UnitFlag, YamlParser.Indent6, YamlParser.Indent8); string unitData = unit.ToString(); if (unitData != "") { builder.AppendLine(" Unit:"); builder.Append(unit); } } }