Пример #1
0
        public static void Initialize()
        {
            try
            {
                StringList = new Ultima.StringList("enu");
            }
            catch (Exception e) { Server.Diagnostics.ExceptionLogging.LogException(e); }

            CommandSystem.Register("GetOPLString", AccessLevel.Administrator, e =>
            {
                e.Mobile.BeginTarget(-1, false, TargetFlags.None, (m, targeted) =>
                {
                    if (targeted is Item)
                    {
                        Console.WriteLine(GetItemName((Item)targeted));
                        e.Mobile.SendMessage(GetItemName((Item)targeted));
                    }
                });
            });

            Categories = new List <SearchCategory>();

            if (Contexts == null)
            {
                Contexts = new Dictionary <PlayerMobile, SearchCriteria>();
            }

            Timer.DelayCall(TimeSpan.FromSeconds(1), () =>
            {
                SearchCategory price = new SearchCategory(Category.PriceRange);
                Categories.Add(price);

                SearchCriteriaCategory.AllCategories.ToList().ForEach(x =>
                {
                    SearchCategory cat = new SearchCategory(x.Category);

                    x.Criteria.ToList().ForEach(y =>
                    {
                        if (y.PropCliloc != 0)
                        {
                            cat.Register(y.Object, y.Cliloc, y.PropCliloc);
                        }
                        else
                        {
                            cat.Register(y.Object, y.Cliloc);
                        }
                    });

                    Categories.Add(cat);
                });

                SearchCategory sort = new SearchCategory(Category.Sort);
                Categories.Add(sort);
            });

            Keywords = new Dictionary <string, Type>();

            Keywords["power scroll"] = typeof(PowerScroll);
            Keywords["stat scroll"]  = typeof(StatCapScroll);
        }
Пример #2
0
        public static void LoadCliLoc()
        {
            if (m_CliLocName == null || m_CliLocName.Length <= 0)
            {
                m_CliLocName = "enu";
            }

            try
            {
                m_CliLoc = new Ultima.StringList(m_CliLocName.ToLower());
            }
            catch (Exception e)
            {
                string fileName = "[CliLoc]";
                try
                {
                    fileName = Ultima.Client.GetFilePath(String.Format("cliloc.{0}", m_CliLocName));
                }
                catch {}

                new MessageDialog("Error loading CliLoc", true, "There was an exception while attempting to load '{0}':\n{1}", fileName, e).ShowDialog(Engine.ActiveWindow);
            }

            if (m_CliLoc == null || m_CliLoc.Entries == null || m_CliLoc.Entries.Length < 10)
            {
                m_CliLoc = null;
                if (m_CliLocName != "enu")
                {
                    m_CliLocName = "enu";
                    LoadCliLoc();
                    return;
                }
                else
                {
                    MessageBox.Show(Engine.ActiveWindow, Language.GetString(LocString.NoCliLocMsg), Language.GetString(LocString.NoCliLoc), MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
Пример #3
0
        public static void Initialize()
        {
            try
            {
                StringList = new Ultima.StringList("enu");
            }
            catch { }

            CommandSystem.Register("GetOPLString", AccessLevel.Administrator, e =>
            {
                e.Mobile.BeginTarget(-1, false, TargetFlags.None, (m, targeted) =>
                {
                    if (targeted is Item)
                    {
                        Console.WriteLine(GetItemName((Item)targeted));
                        e.Mobile.SendMessage(GetItemName((Item)targeted));
                    }
                });
            });

            Categories = new List <SearchCategory>();
            Contexts   = new Dictionary <PlayerMobile, SearchCriteria>();

            Timer.DelayCall(TimeSpan.FromSeconds(1), () =>
            {
                SearchCategory price         = new SearchCategory(Category.PriceRange);
                SearchCategory equipment     = new SearchCategory(Category.Equipment);
                SearchCategory misc          = new SearchCategory(Category.Misc);
                SearchCategory combat        = new SearchCategory(Category.Combat);
                SearchCategory casting       = new SearchCategory(Category.Casting);
                SearchCategory damagetype    = new SearchCategory(Category.DamageType);
                SearchCategory hitspell      = new SearchCategory(Category.HitSpell);
                SearchCategory hitarea       = new SearchCategory(Category.HitArea);
                SearchCategory resists       = new SearchCategory(Category.Resists);
                SearchCategory stats         = new SearchCategory(Category.Stats);
                SearchCategory slayer1       = new SearchCategory(Category.Slayer1);
                SearchCategory slayer2       = new SearchCategory(Category.Slayer2);
                SearchCategory slayer3       = new SearchCategory(Category.Slayer3);
                SearchCategory requiredskill = new SearchCategory(Category.RequiredSkill);
                SearchCategory skill1        = new SearchCategory(Category.Skill1);
                SearchCategory skill2        = new SearchCategory(Category.Skill2);
                SearchCategory skill3        = new SearchCategory(Category.Skill3);
                SearchCategory skill4        = new SearchCategory(Category.Skill4);
                SearchCategory skill5        = new SearchCategory(Category.Skill5);
                SearchCategory skill6        = new SearchCategory(Category.Skill6);
                SearchCategory sort          = new SearchCategory(Category.Sort);

                object[] enums = new object[15];
                int[] labels   = new int[15];
                int index      = 0;

                foreach (int i in Enum.GetValues(typeof(Misc)))
                {
                    enums[index]  = (Misc)i;
                    labels[index] = i;
                    index++;
                }

                misc.Register(enums, labels);
                misc.Register(new object[] { AosAttribute.EnhancePotions, AosArmorAttribute.LowerStatReq, AosAttribute.Luck, AosAttribute.ReflectPhysical, AosArmorAttribute.SelfRepair });
                misc.Register(new object[] { "ArtifactRarity" }, new int[] { 1154693 });

                equipment.Register(new object[] { Layer.Shoes, Layer.Pants, Layer.Shirt, Layer.Helm, Layer.Gloves, Layer.Ring, Layer.Talisman, Layer.Neck, Layer.Waist, Layer.InnerTorso,
                                                  Layer.Bracelet, Layer.MiddleTorso, Layer.Earrings, Layer.Arms, Layer.Cloak, Layer.OuterTorso, Layer.OuterLegs },
                                   new int[] { 1154602, 1154603, 1154604, 1154605, 1154606, 1154607, 1154608, 1154609, 1154611, 1154612, 1154613, 1154616, 1154617, 1154618, 1154619, 1154621, 1154622 });

                combat.Register(new object[] { AosAttribute.WeaponDamage, AosAttribute.DefendChance, AosAttribute.AttackChance, AosAttribute.WeaponSpeed, AosArmorAttribute.SoulCharge,
                                               AosWeaponAttribute.UseBestSkill, AosWeaponAttribute.ReactiveParalyze, /*TODO: Assassin Honed*/ "SearingWeapon", AosWeaponAttribute.BloodDrinker, AosWeaponAttribute.BattleLust,
                                               AosAttribute.BalancedWeapon, SAAbsorptionAttribute.CastingFocus, SAAbsorptionAttribute.EaterFire, SAAbsorptionAttribute.EaterCold,
                                               SAAbsorptionAttribute.EaterPoison, SAAbsorptionAttribute.EaterEnergy, SAAbsorptionAttribute.EaterDamage });

                casting.Register(new object[] { SAAbsorptionAttribute.ResonanceFire, SAAbsorptionAttribute.ResonanceCold, SAAbsorptionAttribute.ResonancePoison, SAAbsorptionAttribute.ResonanceEnergy,
                                                SAAbsorptionAttribute.ResonanceKinetic, AosAttribute.SpellDamage, SAAbsorptionAttribute.CastingFocus, AosAttribute.CastRecovery, AosAttribute.CastSpeed,
                                                AosAttribute.LowerManaCost, AosAttribute.LowerRegCost, AosWeaponAttribute.MageWeapon, AosArmorAttribute.MageArmor, AosAttribute.SpellChanneling });

                damagetype.Register(new object[] { AosElementAttribute.Physical, AosElementAttribute.Fire, AosElementAttribute.Cold, AosElementAttribute.Poison, AosElementAttribute.Energy },
                                    new int[] { 1151800, 1151801, 1151802, 1151803, 1151804 });

                hitspell.Register(new object[] { AosWeaponAttribute.HitDispel, AosWeaponAttribute.HitFireball, AosWeaponAttribute.HitHarm, AosWeaponAttribute.HitCurse, AosWeaponAttribute.HitLeechHits,
                                                 AosWeaponAttribute.HitLightning, "WeaponVelocity", AosWeaponAttribute.HitLowerAttack, AosWeaponAttribute.HitLowerDefend, AosWeaponAttribute.HitMagicArrow,
                                                 AosWeaponAttribute.HitLeechMana, AosWeaponAttribute.HitLeechStam, AosWeaponAttribute.HitFatigue, AosWeaponAttribute.HitManaDrain, AosWeaponAttribute.SplinteringWeapon /*TODO: Bane*/ });

                hitarea.Register(new object[] { AosWeaponAttribute.HitColdArea, AosWeaponAttribute.HitEnergyArea, AosWeaponAttribute.HitFireArea, AosWeaponAttribute.HitPhysicalArea, AosWeaponAttribute.HitPoisonArea });

                resists.Register(new object[] { AosElementAttribute.Physical, AosElementAttribute.Fire, AosElementAttribute.Cold, AosElementAttribute.Poison, AosElementAttribute.Energy });

                stats.Register(new object[] { AosAttribute.BonusStr, AosAttribute.BonusDex, AosAttribute.BonusInt, AosAttribute.BonusHits, AosAttribute.BonusStam, AosAttribute.BonusMana, AosAttribute.RegenHits, AosAttribute.RegenStam, AosAttribute.RegenMana });

                slayer1.Register(new object[] { SlayerName.ReptilianDeath, SlayerName.DragonSlaying, SlayerName.LizardmanSlaughter, SlayerName.Ophidian, SlayerName.SnakesBane, SlayerName.ArachnidDoom, SlayerName.ScorpionsBane, SlayerName.SpidersDeath, SlayerName.Terathan });

                slayer2.Register(new object[] { SlayerName.Repond, TalismanSlayerName.Bear, TalismanSlayerName.Beetle, TalismanSlayerName.Bird, TalismanSlayerName.Bovine, TalismanSlayerName.Flame, TalismanSlayerName.Goblin, TalismanSlayerName.Ice,
                                                TalismanSlayerName.Mage, SlayerName.OgreTrashing, SlayerName.OrcSlaying, SlayerName.TrollSlaughter, TalismanSlayerName.Vermin, TalismanSlayerName.Undead });
                slayer3.Register(new object[] { SlayerName.Exorcism, SlayerName.GargoylesFoe, SlayerName.Fey, SlayerName.ElementalBan, SlayerName.Vacuum, SlayerName.BloodDrinking, SlayerName.EarthShatter, SlayerName.FlameDousing, SlayerName.ElementalHealth, SlayerName.SummerWind, SlayerName.WaterDissipation });

                requiredskill.Register(new object[] { SkillName.Swords, SkillName.Macing, SkillName.Fencing, SkillName.Archery, SkillName.Throwing });

                skill1.Register(new object[] { SkillName.Swords, SkillName.Fencing, SkillName.Macing, SkillName.Magery, SkillName.Musicianship });
                skill2.Register(new object[] { SkillName.Wrestling, SkillName.Tactics, SkillName.AnimalTaming, SkillName.Provocation, SkillName.SpiritSpeak });
                skill3.Register(new object[] { SkillName.Stealth, SkillName.Parry, SkillName.Meditation, SkillName.AnimalLore, SkillName.Discordance, SkillName.Focus });
                skill4.Register(new object[] { SkillName.Stealing, SkillName.Anatomy, SkillName.EvalInt, SkillName.Veterinary, SkillName.Necromancy, SkillName.Bushido, SkillName.Mysticism });
                skill5.Register(new object[] { SkillName.Healing, SkillName.MagicResist, SkillName.Peacemaking, SkillName.Archery, SkillName.Chivalry, SkillName.Ninjitsu, SkillName.Throwing });
                skill6.Register(new object[] { SkillName.Lumberjacking, SkillName.Snooping, SkillName.Mining });

                Categories.Add(price);
                Categories.Add(misc);
                Categories.Add(equipment);
                Categories.Add(combat);
                Categories.Add(casting);
                Categories.Add(damagetype);
                Categories.Add(hitspell);
                Categories.Add(hitarea);
                Categories.Add(resists);
                Categories.Add(stats);
                Categories.Add(slayer1);
                Categories.Add(slayer2);
                Categories.Add(slayer3);
                Categories.Add(requiredskill);
                Categories.Add(skill1);
                Categories.Add(skill2);
                Categories.Add(skill3);
                Categories.Add(skill4);
                Categories.Add(skill5);
                Categories.Add(skill6);
                Categories.Add(sort);
            });

            Keywords = new Dictionary <string, Type>();

            Keywords["power scroll"] = typeof(PowerScroll);
            Keywords["stat scroll"]  = typeof(StatCapScroll);
        }
Пример #4
0
        public static void Initialize()
        {
            try
            {
                StringList = new Ultima.StringList("enu");
            }
            catch { }

            CommandSystem.Register("GetOPLString", AccessLevel.Administrator, e =>
                {
                    e.Mobile.BeginTarget(-1, false, TargetFlags.None, (m, targeted) =>
                        {
                            if (targeted is Item)
                            {
                                Console.WriteLine(GetItemName((Item)targeted));
                                e.Mobile.SendMessage(GetItemName((Item)targeted));
                            }
                        });
                });

            Categories = new List<SearchCategory>();
            Contexts = new Dictionary<PlayerMobile, SearchCriteria>();

            Timer.DelayCall(TimeSpan.FromSeconds(1), () =>
                {
                    SearchCategory price = new SearchCategory(Category.PriceRange);
                    SearchCategory equipment = new SearchCategory(Category.Equipment);
                    SearchCategory misc = new SearchCategory(Category.Misc);
                    SearchCategory combat = new SearchCategory(Category.Combat);
                    SearchCategory casting = new SearchCategory(Category.Casting);
                    SearchCategory damagetype = new SearchCategory(Category.DamageType);
                    SearchCategory hitspell = new SearchCategory(Category.HitSpell);
                    SearchCategory hitarea = new SearchCategory(Category.HitArea);
                    SearchCategory resists = new SearchCategory(Category.Resists);
                    SearchCategory stats = new SearchCategory(Category.Stats);
                    SearchCategory slayer1 = new SearchCategory(Category.Slayer1);
                    SearchCategory slayer2 = new SearchCategory(Category.Slayer2);
                    SearchCategory slayer3 = new SearchCategory(Category.Slayer3);
                    SearchCategory requiredskill = new SearchCategory(Category.RequiredSkill);
                    SearchCategory skill1 = new SearchCategory(Category.Skill1);
                    SearchCategory skill2 = new SearchCategory(Category.Skill2);
                    SearchCategory skill3 = new SearchCategory(Category.Skill3);
                    SearchCategory skill4 = new SearchCategory(Category.Skill4);
                    SearchCategory skill5 = new SearchCategory(Category.Skill5);
                    SearchCategory skill6 = new SearchCategory(Category.Skill6);
                    SearchCategory sort = new SearchCategory(Category.Sort);

                    object[] enums = new object[15];
                    int[] labels = new int[15];
                    int index = 0;

                    foreach (int i in Enum.GetValues(typeof(Misc)))
                    {
                        enums[index] = (Misc)i;
                        labels[index] = i;
                        index++;
                    }

                    misc.Register(enums, labels);
                    misc.Register(new object[] { AosAttribute.EnhancePotions, AosArmorAttribute.LowerStatReq, AosAttribute.Luck, AosAttribute.ReflectPhysical, AosArmorAttribute.SelfRepair });
                    misc.Register(new object[] { "ArtifactRarity" }, new int[] { 1154693 });

                    equipment.Register(new object[] { Layer.Shoes, Layer.Pants, Layer.Shirt, Layer.Helm, Layer.Gloves, Layer.Ring, Layer.Talisman, Layer.Neck, Layer.Waist, Layer.InnerTorso,
                                                          Layer.Bracelet, Layer.MiddleTorso, Layer.Earrings, Layer.Arms, Layer.Cloak, Layer.OuterTorso, Layer.OuterLegs },
                                       new int[] { 1154602, 1154603, 1154604, 1154605, 1154606, 1154607, 1154608, 1154609, 1154611, 1154612, 1154613, 1154616, 1154617, 1154618, 1154619, 1154621, 1154622 });

                    combat.Register(new object[] { AosAttribute.WeaponDamage, AosAttribute.DefendChance, AosAttribute.AttackChance, AosAttribute.WeaponSpeed, AosArmorAttribute.SoulCharge, 
                                                       AosWeaponAttribute.UseBestSkill, AosWeaponAttribute.ReactiveParalyze, /*TODO: Assassin Honed*/"SearingWeapon", AosWeaponAttribute.BloodDrinker, AosWeaponAttribute.BattleLust, 
                                                       "BalancedWeapon", SAAbsorptionAttribute.CastingFocus, SAAbsorptionAttribute.EaterFire, SAAbsorptionAttribute.EaterCold,
                                                       SAAbsorptionAttribute.EaterPoison, SAAbsorptionAttribute.EaterEnergy, SAAbsorptionAttribute.EaterDamage });

                    casting.Register(new object[] { SAAbsorptionAttribute.ResonanceFire, SAAbsorptionAttribute.ResonanceCold, SAAbsorptionAttribute.ResonancePoison, SAAbsorptionAttribute.ResonanceEnergy,
                                                        SAAbsorptionAttribute.ResonanceKinetic, AosAttribute.SpellDamage, SAAbsorptionAttribute.CastingFocus, AosAttribute.CastRecovery, AosAttribute.CastSpeed,
                                                        AosAttribute.LowerManaCost, AosAttribute.LowerRegCost, AosWeaponAttribute.MageWeapon, AosArmorAttribute.MageArmor, AosAttribute.SpellChanneling });

                    damagetype.Register(new object[] { AosElementAttribute.Physical, AosElementAttribute.Fire, AosElementAttribute.Cold, AosElementAttribute.Poison, AosElementAttribute.Energy },
                                        new int[] { 1151800, 1151801, 1151802, 1151803, 1151804 });

                    hitspell.Register(new object[] { AosWeaponAttribute.HitDispel, AosWeaponAttribute.HitFireball, AosWeaponAttribute.HitHarm, AosWeaponAttribute.HitCurse, AosWeaponAttribute.HitLeechHits,
                                                         AosWeaponAttribute.HitLightning, "WeaponVelocity", AosWeaponAttribute.HitLowerAttack, AosWeaponAttribute.HitLowerDefend, AosWeaponAttribute.HitMagicArrow,
                                                         AosWeaponAttribute.HitLeechMana, AosWeaponAttribute.HitLeechStam, AosWeaponAttribute.HitFatigue, AosWeaponAttribute.HitManaDrain, AosWeaponAttribute.SplinteringWeapon /*TODO: Bane*/});

                    hitarea.Register(new object[] { AosWeaponAttribute.HitColdArea, AosWeaponAttribute.HitEnergyArea, AosWeaponAttribute.HitFireArea, AosWeaponAttribute.HitPhysicalArea, AosWeaponAttribute.HitPoisonArea });

                    resists.Register(new object[] { AosElementAttribute.Physical, AosElementAttribute.Fire, AosElementAttribute.Cold, AosElementAttribute.Poison, AosElementAttribute.Energy });

                    stats.Register(new object[] { AosAttribute.BonusStr, AosAttribute.BonusDex, AosAttribute.BonusInt, AosAttribute.BonusHits, AosAttribute.BonusStam, AosAttribute.BonusMana, AosAttribute.RegenHits, AosAttribute.RegenStam, AosAttribute.RegenMana });

                    slayer1.Register(new object[] { SlayerName.ReptilianDeath, SlayerName.DragonSlaying, SlayerName.LizardmanSlaughter, SlayerName.Ophidian, SlayerName.SnakesBane, SlayerName.ArachnidDoom, SlayerName.ScorpionsBane, SlayerName.SpidersDeath, SlayerName.Terathan });

                    slayer2.Register(new object[] { SlayerName.Repond, TalismanSlayerName.Bear, TalismanSlayerName.Beetle, TalismanSlayerName.Bird, TalismanSlayerName.Bovine, TalismanSlayerName.Flame, TalismanSlayerName.Goblin, TalismanSlayerName.Ice, 
                                                        TalismanSlayerName.Mage, SlayerName.OgreTrashing, SlayerName.OrcSlaying, SlayerName.TrollSlaughter, TalismanSlayerName.Vermin, TalismanSlayerName.Undead });
                    slayer3.Register(new object[] { SlayerName.Exorcism, SlayerName.GargoylesFoe, SlayerName.Fey, SlayerName.ElementalBan, SlayerName.Vacuum, SlayerName.BloodDrinking, SlayerName.EarthShatter, SlayerName.FlameDousing, SlayerName.ElementalHealth, SlayerName.SummerWind, SlayerName.WaterDissipation });

                    requiredskill.Register(new object[] { SkillName.Swords, SkillName.Macing, SkillName.Fencing, SkillName.Archery, SkillName.Throwing });

                    skill1.Register(new object[] { SkillName.Swords, SkillName.Fencing, SkillName.Macing, SkillName.Magery, SkillName.Musicianship });
                    skill2.Register(new object[] { SkillName.Wrestling, SkillName.Tactics, SkillName.AnimalTaming, SkillName.Provocation, SkillName.SpiritSpeak });
                    skill3.Register(new object[] { SkillName.Stealth, SkillName.Parry, SkillName.Meditation, SkillName.AnimalLore, SkillName.Discordance, SkillName.Focus });
                    skill4.Register(new object[] { SkillName.Stealing, SkillName.Anatomy, SkillName.EvalInt, SkillName.Veterinary, SkillName.Necromancy, SkillName.Bushido, SkillName.Mysticism });
                    skill5.Register(new object[] { SkillName.Healing, SkillName.MagicResist, SkillName.Peacemaking, SkillName.Archery, SkillName.Chivalry, SkillName.Ninjitsu, SkillName.Throwing });
                    skill6.Register(new object[] { SkillName.Lumberjacking, SkillName.Snooping, SkillName.Mining });

                    Categories.Add(price);
                    Categories.Add(misc);
                    Categories.Add(equipment);
                    Categories.Add(combat);
                    Categories.Add(casting);
                    Categories.Add(damagetype);
                    Categories.Add(hitspell);
                    Categories.Add(hitarea);
                    Categories.Add(resists);
                    Categories.Add(stats);
                    Categories.Add(slayer1);
                    Categories.Add(slayer2);
                    Categories.Add(slayer3);
                    Categories.Add(requiredskill);
                    Categories.Add(skill1);
                    Categories.Add(skill2);
                    Categories.Add(skill3);
                    Categories.Add(skill4);
                    Categories.Add(skill5);
                    Categories.Add(skill6);
                    Categories.Add(sort);
                });

            Keywords = new Dictionary<string, Type>();

            Keywords["power scroll"] = typeof(PowerScroll);
            Keywords["stat scroll"] = typeof(StatCapScroll);
        }
Пример #5
0
        public override void AddGumpLayout()
        {
            AddAlphaRegion(50, 50, 50, 50);
            AddImage(0, 0, 5400);

            AddHtmlLocalized(150, 37, 190, 16, CenterLoc, "#1116689", darkHue, false, false);  // WANTED FOR PIRACY
            AddHtmlLocalized(150, 320, 190, 16, CenterLoc, "#1116703", darkHue, false, false); // WANTED DEAD OR ALIVE

            AddHtmlLocalized(180, 135, 200, 16, 1116704, lightHue, false, false);              //Notice to all sailors
            AddHtmlLocalized(130, 150, 300, 16, 1116705, lightHue, false, false);              //There be a bounty on these lowlifes!
            AddHtmlLocalized(150, 170, 300, 16, 1116706, lightHue, false, false);              //See officers fer information.
            AddHtmlLocalized(195, 190, 300, 16, 1116707, lightHue, false, false);              //********

            if (Index < 0)
            {
                Index = 0;
            }
            if (Index >= BountyQuestSpawner.Bounties.Count)
            {
                Index = BountyQuestSpawner.Bounties.Count - 1;
            }

            List <Mobile> mobs = new List <Mobile>(BountyQuestSpawner.Bounties.Keys);

            if (mobs.Count == 0)
            {
                return;
            }

            int y   = 210;
            int idx = 0;

            for (int i = Index; i < mobs.Count; i++)
            {
                if (idx++ > 4)
                {
                    break;
                }

                Mobile mob      = mobs[i];
                int    toReward = 1000;

                BountyQuestSpawner.Bounties.TryGetValue(mob, out toReward);
                PirateCaptain capt = mob as PirateCaptain;

                if (capt == null)
                {
                    continue;
                }

                string args;

                if (User.NetState != null && User.NetState.IsEnhancedClient && VendorSearch.StringList != null)
                {
                    Ultima.StringList strList = VendorSearch.StringList;

                    args = String.Format("{0} {1} {2}", strList.GetString(capt.Adjective), strList.GetString(capt.Noun), capt.PirateName > 0 ? strList.GetString(capt.PirateName) : capt.Name);

                    AddHtml(110, y, 400, 16, Color(C16232(lightHue), args), false, false);
                }
                else
                {
                    if (capt.PirateName > 0)
                    {
                        args = String.Format("#{0}\t#{1}\t#{2}", capt.Adjective, capt.Noun, capt.PirateName);
                    }
                    else
                    {
                        args = String.Format("#{0}\t#{1}\t{2}", capt.Adjective, capt.Noun, capt.Name);
                    }

                    AddHtmlLocalized(110, y, 400, 16, 1116690 + (idx - 1), args, lightHue, false, false); // ~1_val~ ~2_val~ ~3_val~
                }

                AddHtmlLocalized(280, y, 125, 16, 1116696 + (idx - 1), toReward.ToString(), lightHue, false, false); // Reward: ~1_val~

                y += 16;
            }

            AddButton(362, 115, 2084, 2084, 1 + Index, GumpButtonType.Reply, 0);
            AddButton(362, 342, 2085, 2085, 500 + Index, GumpButtonType.Reply, 0);
        }