Ejemplo n.º 1
0
 public bool CheckRaceClassConditions(RaceMask raceMask, ClassMask classMask)
 {
     return((RaceMask.HasFlag(raceMask) && ClassMask.HasFlag(classMask)) ||
            (RaceMask.HasFlag(raceMask) && ClassMask == ClassMask.All) ||
            (RaceMask == RaceMask.All && ClassMask.HasFlag(classMask)) ||
            (RaceMask == RaceMask.All && ClassMask == ClassMask.All));
 }
Ejemplo n.º 2
0
 public bool CheckRaceClassConditions(RaceMask raceMask, ClassMask classMask)
 {
     return (RaceMask.HasFlag(raceMask) && ClassMask.HasFlag(classMask)) ||
            (RaceMask.HasFlag(raceMask) && ClassMask == ClassMask.All) ||
            (RaceMask == RaceMask.All && ClassMask.HasFlag(classMask)) ||
            (RaceMask == RaceMask.All && ClassMask == ClassMask.All);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Method used to add custom search criterias. Added Who List custom search criterias to the default ones.
 /// </summary>
 /// <param name="character">The <see cref="T:WCell.RealmServer.Entities.Character" /> to be checked against custom search criterias.</param>
 /// <returns>True if the character pass all custom search criterias. False otherwise.</returns>
 protected override bool IncludeCharacter(Character character)
 {
     return(base.IncludeCharacter(character) &&
            (Faction == FactionGroup.Invalid || character.Faction.Group == Faction) &&
            (string.IsNullOrEmpty(GuildName) && RaceMask.HasAnyFlag(character.RaceMask2) &&
             ClassMask.HasAnyFlag(character.ClassMask2)) &&
            ((Zones.Count <= 0 || Zones.Contains(character.Zone.Id)) &&
             (Names.Count <= 0 || Names.Contains(character.Name.ToLower()))));
 }
Ejemplo n.º 4
0
 /// <summary>Determine Trainer-information, based on first Spell</summary>
 /// <param name="spell"></param>
 private void SetupTrainer(Spell spell)
 {
     if (spell.Ability == null)
     {
         return;
     }
     RaceMask  = spell.Ability.RaceMask;
     ClassMask = spell.Ability.ClassMask;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Determine Trainer-information, based on first Spell
 /// </summary>
 /// <param name="spell"></param>
 private void SetupTrainer(Spell spell)
 {
     // determine Classes & Races
     if (spell.Ability != null)
     {
         RaceMask  = spell.Ability.RaceMask;
         ClassMask = spell.Ability.ClassMask;
     }
 }
Ejemplo n.º 6
0
        public static RaceId GetRaceType(RaceMask mask)
        {
            RaceId raceId;

            if (!WCellConstants.RaceTypesByMask.TryGetValue(mask, out raceId))
            {
                Debugger.Break();
            }
            return(raceId);
        }
Ejemplo n.º 7
0
        public static RaceId GetRaceType(RaceMask mask)
        {
            RaceId id;

            if (!RaceTypesByMask.TryGetValue(mask, out id))
            {
                Debugger.Break();
            }
            return(id);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Method used to add custom search criterias. Added Who List custom search criterias to the default ones.
        /// </summary>
        /// <param name="character">The <see cref="Character"/> to be checked against custom search criterias.</param>
        /// <returns>True if the character pass all custom search criterias. False otherwise.</returns>
        protected override bool IncludeCharacter(Character character)
        {
            if (!base.IncludeCharacter(character))
            {
                return(false);
            }

            if (Faction != FactionGroup.Invalid && character.Faction.Group != Faction)
            {
                return(false);
            }

            if (!string.IsNullOrEmpty(GuildName) /*&& character.Guild.Name != GuildName */)
            {
                return(false);
            }

            if (!RaceMask.HasAnyFlag(character.RaceMask2))
            {
                return(false);
            }

            if (!ClassMask.HasAnyFlag(character.ClassMask2))
            {
                return(false);
            }

            if (Zones.Count > 0 && !Zones.Contains(character.Zone.Id))
            {
                return(false);
            }

            if (Names.Count > 0 && !Names.Contains(character.Name.ToLower()))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 9
0
		/// <summary>
		/// Determine Trainer-information, based on first Spell
		/// </summary>
		/// <param name="spell"></param>
		private void SetupTrainer(Spell spell)
		{
			// determine Classes & Races
			if (spell.Ability != null)
			{
				RaceMask = spell.Ability.RaceMask;
				ClassMask = spell.Ability.ClassMask;
			}
		}
Ejemplo n.º 10
0
		public static RaceId GetRaceType(RaceMask mask)
		{
			RaceId id;
			if (!RaceTypesByMask.TryGetValue(mask, out id))
			{
				Debugger.Break();
			}
			return id;
		}
Ejemplo n.º 11
0
 public static bool HasAnyFlag(this RaceMask flags, RaceMask otherFlags)
 {
     return((flags & otherFlags) != ~RaceMask.AllRaces1);
 }
Ejemplo n.º 12
0
		public static bool HasAnyFlag(this  RaceMask flags, RaceMask otherFlags)
		{
			return (flags & otherFlags) != 0;
		}
Ejemplo n.º 13
0
        public string GetCommand(int entry, ItemClass iClass, int subClass, int unk0, string[] name,
                                 int dispId, ItemQuality quality, ItemFlag flags, ItemFlagExtra flags2, int buyPrice,
                                 int sellPrice, InventoryType invType, ClassMask allowClass, RaceMask allowRace, int itemLvl,
                                 int reqLvl, int reqSkill, int reqSkLvl, int reqSpell, int reqHonor, int reqCity,
                                 int reqRepFaction, int reqRepValue, int maxCount, int stacks, int contSlots, int statsCount,
                                 ItemModType[] statType, int[] statValue, int ssdId, int ssdVal, float[] dmgMin,
                                 float[] dmgMax, DamageType[] dmgType, int[] resistance, int delay, AmmoType ammoType,
                                 float rangedMod, int[] spellId, ItemSpellTriggerType[] spellTrigger, int[] spellCharges,
                                 int[] spellCooldown, int[] spellCategory, int[] spellCatCooldown, ItemBonding binding,
                                 string description, int pageText, Language langId, PageMaterial pageMat, int startQuest,
                                 int lockId, Material material, SheathType sheath, int randomProp, int randomSuffix,
                                 int block, int itemSet, int maxDura, int area, int map, BagFamilyMask bagFamily,
                                 TotemCategory totemCat, ItemSocketColor[] color, int[] content, int socketBonus,
                                 int gemProps, int reqDisEnchSkill, float armorDmgMod, int duration, int limitCategory,
                                 Holiday holidayId)
        {
            var builder = new CommandBuilder("item_template");

            builder.AddColumnValue("entry", entry);
            builder.AddColumnValue("class", (int)iClass);
            builder.AddColumnValue("subclass", subClass);
            builder.AddColumnValue("unk0", unk0);
            builder.AddColumnValue("name", name[0]);
            builder.AddColumnValue("displayid", dispId);
            builder.AddColumnValue("Quality", (int)quality);
            builder.AddColumnValue("Flags", (int)flags);
            builder.AddColumnValue("BuyCount", 1);
            builder.AddColumnValue("BuyPrice", buyPrice);
            builder.AddColumnValue("SellPrice", sellPrice);
            builder.AddColumnValue("InventoryType", (int)invType);
            builder.AddColumnValue("AllowableClass", (int)allowClass);
            builder.AddColumnValue("AllowableRace", (int)allowRace);
            builder.AddColumnValue("ItemLevel", itemLvl);
            builder.AddColumnValue("RequiredLevel", reqLvl);
            builder.AddColumnValue("RequiredSkill", reqSkill);
            builder.AddColumnValue("RequiredSkillRank", reqSkLvl);
            builder.AddColumnValue("requiredspell", reqSpell);
            builder.AddColumnValue("requiredhonorrank", reqHonor);
            builder.AddColumnValue("RequiredCityRank", reqCity);
            builder.AddColumnValue("RequiredReputationFaction", reqRepFaction);
            builder.AddColumnValue("RequiredReputationRank", reqRepValue);
            builder.AddColumnValue("maxcount", maxCount);

            var stackVal = stacks;

            if (SQLOutput.Format == SqlFormat.Mangos && stacks > 1000)
            {
                stackVal = -1;
            }

            builder.AddColumnValue("stackable", stackVal);
            builder.AddColumnValue("ContainerSlots", contSlots);
            builder.AddColumnValue("StatsCount", statsCount);

            for (var i = 0; i < 10; i++)
            {
                int type;
                int value;

                if (i > statsCount - 1)
                {
                    type  = 0;
                    value = 0;
                }
                else
                {
                    type  = (int)statType[i];
                    value = statValue[i];
                }

                builder.AddColumnValue("stat_type" + (i + 1), type);
                builder.AddColumnValue("stat_value" + (i + 1), value);
            }

            builder.AddColumnValue("ScalingStatDistribution", ssdId);
            builder.AddColumnValue("ScalingStatValue", ssdVal);

            for (var i = 0; i < 2; i++)
            {
                builder.AddColumnValue("dmg_min" + (i + 1), dmgMin[i]);
                builder.AddColumnValue("dmg_max" + (i + 1), dmgMax[i]);
                builder.AddColumnValue("dmg_type" + (i + 1), (int)dmgType[i]);
            }

            builder.AddColumnValue("armor", resistance[0]);
            builder.AddColumnValue("holy_res", resistance[1]);
            builder.AddColumnValue("fire_res", resistance[2]);
            builder.AddColumnValue("nature_res", resistance[3]);
            builder.AddColumnValue("frost_res", resistance[4]);
            builder.AddColumnValue("shadow_res", resistance[5]);
            builder.AddColumnValue("arcane_res", resistance[6]);
            builder.AddColumnValue("delay", delay);
            builder.AddColumnValue("ammo_type", (int)ammoType);
            builder.AddColumnValue("RangedModRange", rangedMod);

            for (var i = 0; i < 5; i++)
            {
                builder.AddColumnValue("spellid_" + (i + 1), spellId[i]);
                builder.AddColumnValue("spelltrigger_" + (i + 1), (int)spellTrigger[i]);
                builder.AddColumnValue("spellcharges_" + (i + 1), spellCharges[i]);
                builder.AddColumnValue("spellppmRate_" + (i + 1), 0);
                builder.AddColumnValue("spellcooldown_" + (i + 1), spellCooldown[i]);
                builder.AddColumnValue("spellcategory_" + (i + 1), spellCategory[i]);
                builder.AddColumnValue("spellcategorycooldown_" + (i + 1), spellCatCooldown[i]);
            }

            builder.AddColumnValue("bonding", (int)binding);
            builder.AddColumnValue("description", description);
            builder.AddColumnValue("PageText", pageText);
            builder.AddColumnValue("LanguageID", (int)langId);
            builder.AddColumnValue("PageMaterial", (int)pageMat);
            builder.AddColumnValue("startquest", startQuest);
            builder.AddColumnValue("lockid", lockId);
            builder.AddColumnValue("Material", (int)material);
            builder.AddColumnValue("sheath", (int)sheath);
            builder.AddColumnValue("RandomProperty", randomProp);
            builder.AddColumnValue("RandomSuffix", randomSuffix);
            builder.AddColumnValue("block", block);
            builder.AddColumnValue("itemset", itemSet);
            builder.AddColumnValue("MaxDurability", maxDura);
            builder.AddColumnValue("area", area);
            builder.AddColumnValue("map", map);
            builder.AddColumnValue("BagFamily", (int)bagFamily);
            builder.AddColumnValue("TotemCategory", (int)totemCat);

            for (var i = 0; i < 3; i++)
            {
                builder.AddColumnValue("socketColor_" + (i + 1), (int)color[i]);
                builder.AddColumnValue("socketContent_" + (i + 1), content[i]);
            }

            builder.AddColumnValue("socketBonus", socketBonus);
            builder.AddColumnValue("GemProperties", gemProps);
            builder.AddColumnValue("RequiredDisenchantSkill", reqDisEnchSkill);
            builder.AddColumnValue("ArmorDamageModifier", armorDmgMod);
            builder.AddColumnValue("Duration", duration);
            builder.AddColumnValue("ItemLimitCategory", limitCategory);
            builder.AddColumnValue("HolidayID", (int)holidayId);
            builder.AddColumnValue("ScriptName", string.Empty);
            builder.AddColumnValue("DisenchantID", 0);
            builder.AddColumnValue("FoodType", 0);
            builder.AddColumnValue("minMoneyLoot", 0);
            builder.AddColumnValue("maxMoneyLoot", 0);
            builder.AddColumnValue("NonConsumable", 0);

            return(builder.BuildInsert(true));
        }
Ejemplo n.º 14
0
        public string GetCommand(int entry, ItemClass iClass, int subClass, int unk0, string[] name,
            int dispId, ItemQuality quality, ItemFlag flags, ItemFlagExtra flags2, int buyPrice,
            int sellPrice, InventoryType invType, ClassMask allowClass, RaceMask allowRace, int itemLvl,
            int reqLvl, int reqSkill, int reqSkLvl, int reqSpell, int reqHonor, int reqCity,
            int reqRepFaction, int reqRepValue, int maxCount, int stacks, int contSlots, int statsCount,
            ItemModType[] statType, int[] statValue, int ssdId, int ssdVal, float[] dmgMin,
            float[] dmgMax, DamageType[] dmgType, int[] resistance, int delay, AmmoType ammoType,
            float rangedMod, int[] spellId, ItemSpellTriggerType[] spellTrigger, int[] spellCharges,
            int[] spellCooldown, int[] spellCategory, int[] spellCatCooldown, ItemBonding binding,
            string description, int pageText, Language langId, PageMaterial pageMat, int startQuest,
            int lockId, Material material, SheathType sheath, int randomProp, int randomSuffix,
            int block, int itemSet, int maxDura, int area, int map, BagFamilyMask bagFamily,
            TotemCategory totemCat, ItemSocketColor[] color, int[] content, int socketBonus,
            int gemProps, int reqDisEnchSkill, float armorDmgMod, int duration, int limitCategory,
            Holiday holidayId)
        {
            var builder = new CommandBuilder("item_template");

            builder.AddColumnValue("entry", entry);
            builder.AddColumnValue("class", (int)iClass);
            builder.AddColumnValue("subclass", subClass);
            builder.AddColumnValue("unk0", unk0);
            builder.AddColumnValue("name", name[0]);
            builder.AddColumnValue("displayid", dispId);
            builder.AddColumnValue("Quality", (int)quality);
            builder.AddColumnValue("Flags", (int)flags);
            builder.AddColumnValue("BuyCount", 1);
            builder.AddColumnValue("BuyPrice", buyPrice);
            builder.AddColumnValue("SellPrice", sellPrice);
            builder.AddColumnValue("InventoryType", (int)invType);
            builder.AddColumnValue("AllowableClass", (int)allowClass);
            builder.AddColumnValue("AllowableRace", (int)allowRace);
            builder.AddColumnValue("ItemLevel", itemLvl);
            builder.AddColumnValue("RequiredLevel", reqLvl);
            builder.AddColumnValue("RequiredSkill", reqSkill);
            builder.AddColumnValue("RequiredSkillRank", reqSkLvl);
            builder.AddColumnValue("requiredspell", reqSpell);
            builder.AddColumnValue("requiredhonorrank", reqHonor);
            builder.AddColumnValue("RequiredCityRank", reqCity);
            builder.AddColumnValue("RequiredReputationFaction", reqRepFaction);
            builder.AddColumnValue("RequiredReputationRank", reqRepValue);
            builder.AddColumnValue("maxcount", maxCount);

            var stackVal = stacks;
            if (SQLOutput.Format == SqlFormat.Mangos && stacks > 1000)
                stackVal = -1;

            builder.AddColumnValue("stackable", stackVal);
            builder.AddColumnValue("ContainerSlots", contSlots);
            builder.AddColumnValue("StatsCount", statsCount);

            for (var i = 0; i < 10; i++)
            {
                int type;
                int value;

                if (i > statsCount - 1)
                {
                    type = 0;
                    value = 0;
                }
                else
                {
                    type = (int)statType[i];
                    value = statValue[i];
                }

                builder.AddColumnValue("stat_type" + (i + 1), type);
                builder.AddColumnValue("stat_value" + (i + 1), value);
            }

            builder.AddColumnValue("ScalingStatDistribution", ssdId);
            builder.AddColumnValue("ScalingStatValue", ssdVal);

            for (var i = 0; i < 2; i++)
            {
                builder.AddColumnValue("dmg_min" + (i + 1), dmgMin[i]);
                builder.AddColumnValue("dmg_max" + (i + 1), dmgMax[i]);
                builder.AddColumnValue("dmg_type" + (i + 1), (int)dmgType[i]);
            }

            builder.AddColumnValue("armor", resistance[0]);
            builder.AddColumnValue("holy_res", resistance[1]);
            builder.AddColumnValue("fire_res", resistance[2]);
            builder.AddColumnValue("nature_res", resistance[3]);
            builder.AddColumnValue("frost_res", resistance[4]);
            builder.AddColumnValue("shadow_res", resistance[5]);
            builder.AddColumnValue("arcane_res", resistance[6]);
            builder.AddColumnValue("delay", delay);
            builder.AddColumnValue("ammo_type", (int)ammoType);
            builder.AddColumnValue("RangedModRange", rangedMod);

            for (var i = 0; i < 5; i++)
            {
                builder.AddColumnValue("spellid_" + (i + 1), spellId[i]);
                builder.AddColumnValue("spelltrigger_" + (i + 1), (int)spellTrigger[i]);
                builder.AddColumnValue("spellcharges_" + (i + 1), spellCharges[i]);
                builder.AddColumnValue("spellppmRate_" + (i + 1), 0);
                builder.AddColumnValue("spellcooldown_" + (i + 1), spellCooldown[i]);
                builder.AddColumnValue("spellcategory_" + (i + 1), spellCategory[i]);
                builder.AddColumnValue("spellcategorycooldown_" + (i + 1), spellCatCooldown[i]);
            }

            builder.AddColumnValue("bonding", (int)binding);
            builder.AddColumnValue("description", description);
            builder.AddColumnValue("PageText", pageText);
            builder.AddColumnValue("LanguageID", (int)langId);
            builder.AddColumnValue("PageMaterial", (int)pageMat);
            builder.AddColumnValue("startquest", startQuest);
            builder.AddColumnValue("lockid", lockId);
            builder.AddColumnValue("Material", (int)material);
            builder.AddColumnValue("sheath", (int)sheath);
            builder.AddColumnValue("RandomProperty", randomProp);
            builder.AddColumnValue("RandomSuffix", randomSuffix);
            builder.AddColumnValue("block", block);
            builder.AddColumnValue("itemset", itemSet);
            builder.AddColumnValue("MaxDurability", maxDura);
            builder.AddColumnValue("area", area);
            builder.AddColumnValue("map", map);
            builder.AddColumnValue("BagFamily", (int)bagFamily);
            builder.AddColumnValue("TotemCategory", (int)totemCat);

            for (var i = 0; i < 3; i++)
            {
                builder.AddColumnValue("socketColor_" + (i + 1), (int)color[i]);
                builder.AddColumnValue("socketContent_" + (i + 1), content[i]);
            }

            builder.AddColumnValue("socketBonus", socketBonus);
            builder.AddColumnValue("GemProperties", gemProps);
            builder.AddColumnValue("RequiredDisenchantSkill", reqDisEnchSkill);
            builder.AddColumnValue("ArmorDamageModifier", armorDmgMod);
            builder.AddColumnValue("Duration", duration);
            builder.AddColumnValue("ItemLimitCategory", limitCategory);
            builder.AddColumnValue("HolidayID", (int)holidayId);
            builder.AddColumnValue("ScriptName", string.Empty);
            builder.AddColumnValue("DisenchantID", 0);
            builder.AddColumnValue("FoodType", 0);
            builder.AddColumnValue("minMoneyLoot", 0);
            builder.AddColumnValue("maxMoneyLoot", 0);
            builder.AddColumnValue("NonConsumable", 0);

            return builder.BuildInsert(true);
        }
Ejemplo n.º 15
0
		public static bool Has(this RaceMask mask, RaceMask toCheck)
		{
			return (mask & toCheck) != 0;
		}