private GamePlayer EffectOwner;			// Owner of the effect

        public MinionRescueEffect()
            : base(RealmAbilities.MinionRescueAbility.DURATION)
        {
            // Init NPC & Timer array
            spirits = new GameNPC[spiritCount];
            spiritTimer = new RegionTimer[spiritCount];

            // Build spell
            DBSpell tSpell = new DBSpell();
            tSpell.AllowAdd = false;
            tSpell.Description = "Target is stunned and can't move or do any action during spell duration.";
            tSpell.Name = "Rescue stun";
            tSpell.Target = "Enemy";
            tSpell.Radius = 0;
            tSpell.Range = WorldMgr.VISIBILITY_DISTANCE;
            tSpell.CastTime = 0;
            tSpell.Duration = spellDuration;
            tSpell.Uninterruptible = true;
            tSpell.Type = "Stun";
            tSpell.ResurrectMana = 1;
            tSpell.ResurrectHealth = 1;
            tSpell.Damage = 0;
            tSpell.DamageType = 0;
            tSpell.Value = 0;
            tSpell.Icon = 7049;
            tSpell.ClientEffect = 7049;
            spiritSpell = new Spell(tSpell, 1);
            spiritSpellLine = new SpellLine("RAs", "RealmAbilitys", "RealmAbilitys", true);
        }
		/// <summary>
		/// FIXME this has nothing to do here !
		/// </summary>
		/// <param name="line"></param>
		/// <param name="spell"></param>
		/// <returns></returns>
		public override bool CanChangeCastingSpeed(SpellLine line, Spell spell)
		{
			if (spell.SpellType == "Chamber")
				return false;

			if ((line.KeyName == "Cursing"
				 || line.KeyName == "Cursing Spec"
				 || line.KeyName == "Hexing"
				 || line.KeyName == "Witchcraft")
				&& (spell.SpellType != "ArmorFactorBuff"
					&& spell.SpellType != "Bladeturn"
					&& spell.SpellType != "ArmorAbsorptionBuff"
					&& spell.SpellType != "MatterResistDebuff"
					&& spell.SpellType != "Uninterruptable"
					&& spell.SpellType != "Powerless"
					&& spell.SpellType != "Range"
					&& spell.Name != "Lesser Twisting Curse"
					&& spell.Name != "Twisting Curse"
					&& spell.Name != "Lesser Winding Curse"
					&& spell.Name != "Winding Curse"
					&& spell.Name != "Lesser Wrenching Curse"
					&& spell.Name != "Wrenching Curse"
					&& spell.Name != "Lesser Warping Curse"
					&& spell.Name != "Warping Curse"))
			{
				return false;
			}

			return true;
		}
Beispiel #3
0
 // constructor
 public CureMezzSpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
     // RR4: now it's a list
     m_spellTypesToRemove = new List<string>();
     m_spellTypesToRemove.Add("Mesmerize");
 }
        private int currentTick = 0;		// Count ticks

        public SearingPetEffect(GamePlayer owner)
            : base(RealmAbilities.SearingPetAbility.DURATION)
        {
            EffectOwner = owner;

            // Build spell
            DBSpell tSpell = new DBSpell();
            tSpell.AllowAdd = false;
            tSpell.Description = "Damage the target.";
            tSpell.Name = "PBAoE damage";
            tSpell.Target = "Enemy";
            tSpell.Radius = 0;
            tSpell.Range = WorldMgr.VISIBILITY_DISTANCE;
            tSpell.CastTime = 0;
            tSpell.Duration = 0;
            tSpell.Frequency = 0;
            tSpell.Pulse = 0;
            tSpell.Uninterruptible = true;
            tSpell.Type = "DirectDamage";
            tSpell.Damage = spellDamage;
            tSpell.DamageType = (int)eDamageType.Heat;
            tSpell.Value = 0;
            tSpell.Icon = 476;			// not official effect
            tSpell.ClientEffect = 476;	// not official effect
            petSpell = new Spell(tSpell, 1);
            petSpellLine = new SpellLine("RAs", "RealmAbilitys", "RealmAbilitys", true);
        }
		// constructor
		public CurePoisonSpellHandler(GameLiving caster, Spell spell, SpellLine line)
			: base(caster, spell, line)
		{
			// RR4: now it's a list
			m_spellTypesToRemove = new List<string>();
			m_spellTypesToRemove.Add("DamageOverTime");
            m_spellTypesToRemove.Add("StyleBleeding");
		} 
 // constructor
 public CureNearsightSpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
     // RR4: now it's a list
     m_spellTypesToRemove = new List<string>();
     m_spellTypesToRemove.Add("Nearsight");
     m_spellTypesToRemove.Add("Silence");
 }
Beispiel #7
0
		public void OnCommand(GameClient client, string[] args)
		{
			if (args.Length == 1)
			{
				DisplaySyntax( client );
				return;
			}

			GamePlayer player = client.Player.TargetObject as GamePlayer;

			if ( player == null )
				player = client.Player;

			ushort model;

			if ( ushort.TryParse( args[1], out model ) == false )
			{
				DisplaySyntax( client );
				return;
			}

			int duration = 10;

			if ( args.Length > 2 )
			{
				if ( int.TryParse( args[2], out duration ) == false )
					duration = 10;
			}

			DBSpell dbSpell = new DBSpell();
			dbSpell.Name = "GM Morph";
			dbSpell.Description = "Target has been shapechanged.";
			dbSpell.ClientEffect = 8000;
			dbSpell.Icon = 805;
			dbSpell.Target = "Realm";
			dbSpell.Range = 4000;
			dbSpell.Power = 0;
			dbSpell.CastTime = 0;
			dbSpell.Type = "Morph";
			dbSpell.Duration = duration * 60;
			dbSpell.LifeDrainReturn = model;

			Spell morphSpell = new Spell( dbSpell, 0 );
			SpellLine gmLine = new SpellLine( "GMSpell", "GM Spell", "none", false );

			ISpellHandler spellHandler = ScriptMgr.CreateSpellHandler( client.Player, morphSpell, gmLine );

			if ( spellHandler == null )
			{
				DisplayMessage( client, "Unable to create spell handler." );
			}
			else
			{
				spellHandler.StartSpell( player );
			}
		}
 // constructor
 public CureAllSpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
     m_spellTypesToRemove = new List<string>();
     m_spellTypesToRemove.Add("DamageOverTime");
     m_spellTypesToRemove.Add("Nearsight");
     m_spellTypesToRemove.Add("Silence");
     m_spellTypesToRemove.Add("Disease");
     m_spellTypesToRemove.Add("StyleBleeding");
 }
 // constructor
 public BolsteringRoarSpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
     // RR4: now it's a list
     m_spellTypesToRemove = new List<string>();
     m_spellTypesToRemove.Add("Mesmerize");
     m_spellTypesToRemove.Add("SpeedDecrease");
     m_spellTypesToRemove.Add("StyleSpeedDecrease");
     m_spellTypesToRemove.Add("DamageSpeedDecrease");
     m_spellTypesToRemove.Add("HereticSpeedDecrease");
     m_spellTypesToRemove.Add("HereticDamageSpeedDecreaseLOP");
     m_spellTypesToRemove.Add("VampiirSpeedDecrease");
     m_spellTypesToRemove.Add("ValkyrieSpeedDecrease");
     m_spellTypesToRemove.Add("WarlockSpeedDecrease");
 }
Beispiel #10
0
        public BeltOfMoon(GameLiving caster, Spell spell, SpellLine line)
			: base(caster, spell, line)
        {
            if (caster.CurrentRegion.IsNightTime)
            {
                if (caster.Realm == eRealm.Albion)
                {
                    m_MoonMace = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Moon_Mace'") ?? Mace;
                    items.Add(GameInventoryItem.Create<ItemTemplate>(m_MoonMace));

                    m_MoonStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Moon_Staff'") ?? Staff;
                    items.Add(GameInventoryItem.Create<ItemTemplate>(m_MoonStaff));
                    return;
                }

                if (caster.Realm == eRealm.Midgard)
                {
                    m_MoonMace = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Moon_MaceM'") ?? MaceM;
                    items.Add(GameInventoryItem.Create<ItemTemplate>(m_MoonMace));

                    m_MoonStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Moon_Staff'") ?? Staff;
                    items.Add(GameInventoryItem.Create<ItemTemplate>(m_MoonStaff));
                    return;
                }

                if (caster.Realm == eRealm.Hibernia)
                {
                    m_MoonMace = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Moon_MaceH'") ?? MaceH;
                    items.Add(GameInventoryItem.Create<ItemTemplate>(m_MoonMace));

                    m_MoonStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Moon_Staff'") ?? Staff;
                    items.Add(GameInventoryItem.Create<ItemTemplate>(m_MoonStaff));
                    return;
                }
            }

            else
            {
                MessageToCaster("The powers of the Belt of Moon, can only be Summon under the Moon light!", eChatType.CT_SpellResisted);
                return;
            }
        }
 public ThornweedFieldBase(int damage)
 {
     dbs = new DBSpell();
     dbs.Name = GetStaticName();
     dbs.Icon = GetStaticEffect();
     dbs.ClientEffect = GetStaticEffect();
     dbs.Damage = damage;
     dbs.DamageType = (int)eDamageType.Natural;
     dbs.Target = "Enemy";
     dbs.Radius = 0;
     dbs.Type = "DamageSpeedDecreaseNoVariance";
     dbs.Value = 50;
     dbs.Duration = 5;
     dbs.Pulse = 0;
     dbs.PulsePower = 0;
     dbs.Power = 0;
     dbs.CastTime = 0;
     dbs.Range = WorldMgr.VISIBILITY_DISTANCE;
     s = new Spell(dbs, 1);
     sl = new SpellLine("RAs", "RealmAbilitys", "RealmAbilitys", true);
 }
 public NegativeMaelstromBase(int damage)
 {
     this.damage = damage;
     dbs = new DBSpell();
     dbs.Name = GetStaticName();
     dbs.Icon = GetStaticEffect();
     dbs.ClientEffect = GetStaticEffect();
     dbs.Damage = damage;
     dbs.DamageType = (int)eDamageType.Cold;
     dbs.Target = "Enemy";
     dbs.Radius = 0;
     dbs.Type = "DirectDamageNoVariance";
     dbs.Value = 0;
     dbs.Duration = 0;
     dbs.Pulse = 0;
     dbs.PulsePower = 0;
     dbs.Power = 0;
     dbs.CastTime = 0;
     dbs.Range = WorldMgr.VISIBILITY_DISTANCE;
     sl = new SpellLine("RAs", "RealmAbilitys", "RealmAbilitys", true);
 }
 public StaticTempestBase(int stunDuration)
 {
     dbs = new DBSpell();
     dbs.Name = GetStaticName();
     dbs.Icon = GetStaticEffect();
     dbs.ClientEffect = GetStaticEffect();
     dbs.Damage = 0;
     dbs.DamageType = (int)eDamageType.Energy;
     dbs.Target = "Enemy";
     dbs.Radius = 0;
     dbs.Type = "UnresistableStun";
     dbs.Value = 0;
     dbs.Duration = stunDuration;
     dbs.Pulse = 0;
     dbs.PulsePower = 0;
     dbs.Power = 0;
     dbs.CastTime = 0;
     dbs.Range = WorldMgr.VISIBILITY_DISTANCE;
     s = new Spell(dbs, 1);
     sl = new SpellLine("RAs", "RealmAbilitys", "RealmAbilitys", true);
 }
 public virtual void CreateSpell(double damage)
 {
     m_dbspell = new DBSpell();
     m_dbspell.Name = "Anger of the Gods";
     m_dbspell.Icon = 7023;
     m_dbspell.ClientEffect = 7023;
     m_dbspell.Damage = damage;
     m_dbspell.DamageType = 0;
     m_dbspell.Target = "Group";
     m_dbspell.Radius = 0;
     m_dbspell.Type = "DamageAdd";
     m_dbspell.Value = 0;
     m_dbspell.Duration = 30;
     m_dbspell.Pulse = 0;
     m_dbspell.PulsePower = 0;
     m_dbspell.Power = 0;
     m_dbspell.CastTime = 0;
     m_dbspell.EffectGroup = 99999; // stacks with other damage adds
     m_dbspell.Range = 1000;
     m_spell = new Spell(m_dbspell, 0); // make spell level 0 so it bypasses the spec level adjustment code
     m_spellline = new SpellLine("RAs", "RealmAbilities", "RealmAbilities", true);
 }
Beispiel #15
0
        // constructor
        public DazzlingArraySpellHandler(GameLiving caster, Spell spell, SpellLine line)
            : base(caster, spell, line)
        {
            //Construct a new storm.
            storm = new GameStorm();
            storm.Realm = caster.Realm;
            storm.X = caster.X;
            storm.Y = caster.Y;
            storm.Z = caster.Z;
            storm.CurrentRegionID = caster.CurrentRegionID;
            storm.Heading = caster.Heading;
            storm.Owner = (GamePlayer)caster;
            storm.Movable = true;

            // Construct the storm spell
            dbs = new DBSpell();
            dbs.Name = spell.Name;
            dbs.Icon = 7210;
            dbs.ClientEffect = 7210;
            dbs.Damage = spell.Damage;
            dbs.DamageType = (int)spell.DamageType;
            dbs.Target = "Realm";
            dbs.Radius = 0;
            dbs.Type = "StormMissHit";
            dbs.Value = spell.Value;
            dbs.Duration = spell.ResurrectHealth; // should be 4
            dbs.Frequency = spell.ResurrectMana;
            dbs.Pulse = 0;
            dbs.PulsePower = 0;
            dbs.LifeDrainReturn = spell.LifeDrainReturn;
            dbs.Power = 0;
            dbs.CastTime = 0;
            dbs.Range = WorldMgr.VISIBILITY_DISTANCE;
            sRadius = 350;
            s = new Spell(dbs, 1);
            sl = SkillBase.GetSpellLine(GlobalSpellsLines.Reserved_Spells);
            tempest = ScriptMgr.CreateSpellHandler(m_caster, s, sl);
        }
Beispiel #16
0
        public AtensShield(GameLiving caster, Spell spell, SpellLine line)
            : base(caster, spell, line)
        {
            if (caster.Realm == eRealm.Albion)
            {
                m_goldenTridentofFlame = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Golden_Trident_of_Flame'") ?? Javelin;
                items.Add (GameInventoryItem.Create(m_goldenTridentofFlame));
                return;
            }

            if (caster.Realm == eRealm.Midgard)
            {
                m_goldenTridentofFlame = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Golden_Trident_of_Flame'") ?? JavelinM;
                items.Add (GameInventoryItem.Create(m_goldenTridentofFlame));
                return;
            }
            if (caster.Realm == eRealm.Hibernia)
            {
                m_goldenTridentofFlame = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Golden_Trident_of_Flame'") ?? JavelinH;
                items.Add (GameInventoryItem.Create(m_goldenTridentofFlame));
                return;
            }
        }
Beispiel #17
0
 // constructor
 public ToHitSkillDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #18
0
 // constructor
 public CombatSpeedDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #19
0
 // constructor
 public SingleStatDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #20
0
 // constructor
 public CrushSlashThrustDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #21
0
 public StyleHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
Beispiel #22
0
 // constructor
 public FumbleChanceDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #23
0
 // constructor
 public MeleeDamageDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #24
0
 // constructor
 public ArmorFactorDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #25
0
 // constructor
 public QuicknessDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #26
0
            /// <summary>
            /// Called on every timer tick
            /// </summary>
            protected override void OnTick()
            {
                GamePlayer player = (GamePlayer)m_actionSource;

                if ((m_flagSpeedData & 0x200) != 0)
                {
                    player.CurrentSpeed = (short)(-(m_flagSpeedData & 0x1ff)); // backward movement
                }
                else
                {
                    player.CurrentSpeed = (short)(m_flagSpeedData & 0x1ff); // forward movement
                }
                player.IsStrafing         = (m_flagSpeedData & 0x4000) != 0;
                player.TargetInView       = (m_targetVisible & 0xa000) != 0; // why 2 bits? that has to be figured out
                player.GroundTargetInView = ((m_flagSpeedData & 0x1000) != 0);

                List <Tuple <SpellLine, List <Skill> > > snap = player.GetAllUsableListSpells();
                Skill     sk = null;
                SpellLine sl = null;

                // is spelline in index ?
                if (m_spellLineIndex < snap.Count)
                {
                    int index = snap[m_spellLineIndex].Item2.FindIndex(s => s is Spell ?
                                                                       s.Level == m_spellLevel
                                                                       : (s is Styles.Style ? ((Styles.Style)s).SpecLevelRequirement == m_spellLevel
                                                                          : (s is Ability ? ((Ability)s).SpecLevelRequirement == m_spellLevel : false)));

                    if (index > -1)
                    {
                        sk = snap[m_spellLineIndex].Item2[index];
                    }

                    sl = snap[m_spellLineIndex].Item1;
                }

                if (sk is Spell && sl != null)
                {
                    player.CastSpell((Spell)sk, sl);
                }
                else if (sk is Styles.Style)
                {
                    player.ExecuteWeaponStyle((Styles.Style)sk);
                }
                else if (sk is Ability)
                {
                    Ability ab = (Ability)sk;
                    IAbilityActionHandler handler = SkillBase.GetAbilityActionHandler(ab.KeyName);
                    if (handler != null)
                    {
                        handler.Execute(ab, player);
                    }

                    ab.Execute(player);
                }
                else
                {
                    if (Log.IsWarnEnabled)
                    {
                        Log.Warn("Client <" + player.Client.Account.Name + "> requested incorrect spell at level " + m_spellLevel +
                                 " in spell-line " + ((sl == null || sl.Name == null) ? "unkown" : sl.Name));
                    }

                    player.Out.SendMessage(string.Format("Error : Spell (Line {0}, Level {1}) can't be resolved...", m_spellLineIndex, m_spellLevel), eChatType.CT_SpellResisted, eChatLoc.CL_SystemWindow);
                }
            }
Beispiel #27
0
        /// <summary>
        /// Is caster allowed to cast a spell
        /// </summary>
        /// <param name="caster"></param>
        /// <param name="target"></param>
        /// <param name="spell"></param>
        /// <param name="spellLine"></param>
        /// <returns>true if allowed</returns>
        public override bool IsAllowedToCastSpell(GameLiving caster, GameLiving target, Spell spell, SpellLine spellLine)
        {
            if (!base.IsAllowedToCastSpell(caster, target, spell, spellLine))
            {
                return(false);
            }

            GamePlayer casterPlayer = caster as GamePlayer;

            if (casterPlayer != null)
            {
                if (casterPlayer.IsInvulnerableToAttack)
                {
                    // always allow selftargeted spells
                    if (spell.Target == "Self")
                    {
                        return(true);
                    }

                    // only caster can be the target, can't buff/heal other players
                    // PBAE/GTAE doesn't need a target so we check spell type as well
                    if (caster != target || spell.Target == "Area" || spell.Target == "Enemy" || (spell.Target == "Group" && spell.SpellType != "SpeedEnhancement"))
                    {
                        MessageToLiving(caster, "You can only cast spells on yourself until your PvP invulnerability timer wears off!", eChatType.CT_Important);
                        return(false);
                    }
                }
            }
            return(true);
        }
Beispiel #28
0
 public Convoker10SpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #29
0
 public Convoker9Handler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
     m_player = caster as GamePlayer;
 }
Beispiel #30
0
 public BrittleGuardSpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
 }
Beispiel #31
0
 public PrescienceSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #32
0
 // constructor
 public EssenceResistDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #33
0
 // constructor
 public ConstitutionDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
 // constructor
 public DirectDamageDebuffSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
Beispiel #35
0
 // constructor
 public AcuityDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #36
0
 public AbstractIllnessSpellHandler(GameLiving caster, Spell spell, SpellLine spellLine)
     : base(caster, spell, spellLine)
 {
 }
Beispiel #37
0
 // constructor
 public FatigueConsumptionDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
 // constructor
 public HealthToEndurance(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
Beispiel #39
0
        protected virtual void WriteItemData(GSTCPPacketOut pak, InventoryItem item)
        {
            if (item == null)
            {
                pak.Fill(0x00, 19);
                return;
            }

            // Create a GameInventoryItem so item will display correctly in inventory window
            item = GameInventoryItem.Create(item);

            pak.WriteByte((byte)item.Level);

            int value1;             // some object types use this field to display count
            int value2;             // some object types use this field to display count

            switch (item.Object_Type)
            {
            case (int)eObjectType.GenericItem:
                value1 = item.Count & 0xFF;
                value2 = (item.Count >> 8) & 0xFF;
                break;

            case (int)eObjectType.Arrow:
            case (int)eObjectType.Bolt:
            case (int)eObjectType.Poison:
                value1 = item.Count;
                value2 = item.SPD_ABS;
                break;

            case (int)eObjectType.Thrown:
                value1 = item.DPS_AF;
                value2 = item.Count;
                break;

            case (int)eObjectType.Instrument:
                value1 = (item.DPS_AF == 2 ? 0 : item.DPS_AF);
                value2 = 0;
                break;                         // unused

            case (int)eObjectType.Shield:
                value1 = item.Type_Damage;
                value2 = item.DPS_AF;
                break;

            case (int)eObjectType.AlchemyTincture:
            case (int)eObjectType.SpellcraftGem:
                value1 = 0;
                value2 = 0;

                /*
                 * must contain the quality of gem for spell craft and think same for tincture
                 */
                break;

            case (int)eObjectType.HouseWallObject:
            case (int)eObjectType.HouseFloorObject:
            case (int)eObjectType.GardenObject:
                value1 = 0;
                value2 = item.SPD_ABS;

                /*
                 * Value2 byte sets the width, only lower 4 bits 'seem' to be used (so 1-15 only)
                 *
                 * The byte used for "Hand" (IE: Mini-delve showing a weapon as Left-Hand
                 * usabe/TwoHanded), the lower 4 bits store the height (1-15 only)
                 */
                break;

            default:
                value1 = item.DPS_AF;
                value2 = item.SPD_ABS;
                break;
            }

            pak.WriteByte((byte)value1);
            pak.WriteByte((byte)value2);

            // ChatUtil.SendDebugMessage(m_gameClient, string.Format("WriteItemDate189: name {0}, level {1}, object {2}, value1 {3}, value2 {4}", item.Id_nb, item.Level, item.Object_Type, value1, value2));

            if (item.Object_Type == (int)eObjectType.GardenObject)
            {
                pak.WriteByte((byte)(item.DPS_AF));
            }
            else
            {
                pak.WriteByte((byte)(item.Hand << 6));
            }

            pak.WriteByte((byte)((item.Type_Damage > 3 ? 0 : item.Type_Damage << 6) | item.Object_Type));
            pak.WriteShort((ushort)item.Weight);
            pak.WriteByte(item.ConditionPercent);        // % of con
            pak.WriteByte(item.DurabilityPercent);       // % of dur
            pak.WriteByte((byte)item.Quality);           // % of qua
            pak.WriteByte((byte)item.Bonus);             // % bonus
            pak.WriteShort((ushort)item.Model);
            pak.WriteByte((byte)item.Extension);

            int flag = 0;

            if (item.Emblem != 0)
            {
                pak.WriteShort((ushort)item.Emblem);
                flag |= (item.Emblem & 0x010000) >> 16;                 // = 1 for newGuildEmblem
            }
            else
            {
                pak.WriteShort((ushort)item.Color);
            }

            flag |= 0x02;             // enable salvage button

            // Enable craft button if the item can be modified and the player has alchemy or spellcrafting
            eCraftingSkill skill = CraftingMgr.GetCraftingSkill(item);

            switch (skill)
            {
            case eCraftingSkill.ArmorCrafting:
            case eCraftingSkill.Fletching:
            case eCraftingSkill.Tailoring:
            case eCraftingSkill.WeaponCrafting:
                if (m_gameClient.Player.CraftingSkills.ContainsKey(eCraftingSkill.Alchemy) ||
                    m_gameClient.Player.CraftingSkills.ContainsKey(eCraftingSkill.SpellCrafting))
                {
                    flag |= 0x04;                             // enable craft button
                }
                break;

            default:
                break;
            }

            ushort icon1       = 0;
            ushort icon2       = 0;
            string spell_name1 = "";
            string spell_name2 = "";

            if (item.Object_Type != (int)eObjectType.AlchemyTincture)
            {
                SpellLine chargeEffectsLine = SkillBase.GetSpellLine(GlobalSpellsLines.Item_Effects);

                if (chargeEffectsLine != null)
                {
                    if (item.SpellID > 0 /* && item.Charges > 0*/)
                    {
                        Spell spell = SkillBase.FindSpell(item.SpellID, chargeEffectsLine);
                        if (spell != null)
                        {
                            flag       |= 0x08;
                            icon1       = spell.Icon;
                            spell_name1 = spell.Name;                             // or best spl.Name ?
                        }
                    }
                    if (item.SpellID1 > 0 /* && item.Charges > 0*/)
                    {
                        Spell spell = SkillBase.FindSpell(item.SpellID1, chargeEffectsLine);
                        if (spell != null)
                        {
                            flag       |= 0x10;
                            icon2       = spell.Icon;
                            spell_name2 = spell.Name;                             // or best spl.Name ?
                        }
                    }
                }
            }

            pak.WriteByte((byte)flag);

            if ((flag & 0x08) == 0x08)
            {
                pak.WriteShort((ushort)icon1);
                pak.WritePascalString(spell_name1);
            }

            if ((flag & 0x10) == 0x10)
            {
                pak.WriteShort((ushort)icon2);
                pak.WritePascalString(spell_name2);
            }

            pak.WriteByte((byte)item.Effect);

            string name = item.Name;

            if (item.Count > 1)
            {
                name = item.Count + " " + name;
            }

            if (item.SellPrice > 0)
            {
                if (ServerProperties.Properties.CONSIGNMENT_USE_BP)
                {
                    name += "[" + item.SellPrice.ToString() + " BP]";
                }
                else
                {
                    name += "[" + Money.GetShortString(item.SellPrice) + "]";
                }
            }

            if (name.Length > MAX_NAME_LENGTH)
            {
                name = name.Substring(0, MAX_NAME_LENGTH);
            }

            pak.WritePascalString(name);
        }
Beispiel #40
0
 // constructor
 public ThrustResistDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #41
0
 // constructor
 public StrengthDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
 public HoTSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #43
0
 public Tartaros(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
 public GoldenSpearJavelin(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
     _artefJavelin = GameServer.Database.SelectObject <ItemTemplate>("Id_nb='Artef_Javelin'") ?? Javelin;
     items.Add(GameInventoryItem.Create <ItemTemplate>(_artefJavelin));
 }
Beispiel #45
0
 public MLABSBuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
 // counstructor
 public DamageSpeedDecreaseSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #47
0
        public BeltOfSun(GameLiving caster, Spell spell, SpellLine line)
            : base(caster, spell, line)
        {
            if (caster.CurrentRegion.IsNightTime)
            {
                MessageToCaster("The powers of the Belt of Sun, can only be Summon under the Sun light!", eChatType.CT_SpellResisted);
                return;
            }

            GamePlayer player = caster as GamePlayer;

            #region Alb
            if (player.CharacterClass.ID == (int)eCharacterClass.Armsman)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? Crush;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHanded;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_SunPolearmSpear = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Polearm'") ?? Polearm;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunPolearmSpear));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Friar)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? Crush;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Staff'") ?? Staff;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunStaff));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Heretic)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? Crush;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunFlexScytheClaw = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Flex'") ?? Flex;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunFlexScytheClaw));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Infiltrator)
            {
                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Mercenary)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? Crush;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Minstrel)
            {
                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Paladin)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? Crush;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHanded;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Reaver)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? Crush;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunFlexScytheClaw = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Flex'") ?? Flex;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunFlexScytheClaw));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Scout)
            {
                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? Slash;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? Thrust;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunBow = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Bow'") ?? Bow;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunBow));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.MaulerAlb)
            {
                m_SunMFist = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_MFist'") ?? MFist;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunMFist));

                m_SunMStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_MStaff'") ?? MStaff;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunMStaff));
                return;
            }
            #endregion Alb

            #region Mid
            if (player.CharacterClass.ID == (int)eCharacterClass.Berserker)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Axe'") ?? Axe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunAxe));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHandedM; // 2handed Sword
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_Sun2HCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HCrush'") ?? THCrushM;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HCrush));

                m_Sun2HAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HAxe'") ?? THAxe;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HAxe));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Hunter)
            {
                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunPolearmSpear = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Trust'") ?? SpearM; // Spear
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunPolearmSpear));

                m_SunBow = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Bow'") ?? BowM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunBow));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Savage)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Axe'") ?? Axe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunAxe));

                m_SunThrust = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Claw'") ?? Claw; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Shadowblade)
            {
                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Axe'") ?? Axe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunAxe));

                m_SunLeftAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_LeftAxe'") ?? LeftAxe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunLeftAxe));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHandedM; // 2handed Sword
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_Sun2HAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HAxe'") ?? THAxe;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HAxe));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Skald)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Axe'") ?? Axe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunAxe));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHandedM; // 2handed Sword
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_Sun2HCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HCrush'") ?? THCrushM;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HCrush));

                m_Sun2HAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HAxe'") ?? THAxe;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HAxe));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Thane)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Axe'") ?? Axe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunAxe));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHandedM; // 2handed Sword
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_Sun2HCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HCrush'") ?? THCrushM;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HCrush));

                m_Sun2HAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HAxe'") ?? THAxe;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HAxe));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Thane)
            {
                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHandedM; // 2handed Sword
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_SunPolearmSpear = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Trust'") ?? SpearM; // Spear
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunPolearmSpear));
                return;
            }


            if (player.CharacterClass.ID == (int)eCharacterClass.Warrior)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunSlash = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashM; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Axe'") ?? Axe; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunAxe));

                m_SunTwoHanded = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_TwoHanded'") ?? TwoHandedM; // 2handed Sword
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_Sun2HCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HCrush'") ?? THCrushM;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HCrush));

                m_Sun2HAxe = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_2HAxe'") ?? THAxe;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_Sun2HAxe));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.MaulerMid)
            {
                m_SunMFist = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_MFist'") ?? MFist;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunMFist));

                m_SunMStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_MStaff'") ?? MStaff;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunMStaff));
                return;
            }

            #endregion Mid

            #region Hib
            if (player.CharacterClass.ID == (int)eCharacterClass.Bard)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushH; // Blunt
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Blademaster)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushH; // Blunt
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? ThrustH; // Piercing
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Champion)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushH; // Blunt
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? ThrustH; // Piercing
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? TwoHandedH; // LargeWeapon
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Hero)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushH; // Blunt
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? ThrustH; // Piercing
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? TwoHandedH; // LargeWeapon
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunTwoHanded));

                m_SunPolearmSpear = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Spear'") ?? SpearH; // Spear
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunPolearmSpear));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Nightshade)
            {
                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? ThrustH; // Piercing
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Ranger)
            {
                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? ThrustH; // Piercing
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));

                m_SunBow = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Bow'") ?? BowH; //
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunBow));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Valewalker)
            {
                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_FlexScythe'") ?? Scythe;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunFlexScytheClaw));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Valewalker)
            {
                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Thrust'") ?? ThrustH; // Piercing
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunThrust));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.Warden)
            {
                m_SunCrush = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Crush'") ?? CrushH; // Blunt
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunCrush));

                m_SunStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_Slash'") ?? SlashH; // Blades
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunSlash));
                return;
            }

            if (player.CharacterClass.ID == (int)eCharacterClass.MaulerHib)
            {
                m_SunMFist = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_MFist'") ?? MFist;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunMFist));

                m_SunMStaff = GameServer.Database.SelectObject<ItemTemplate>("Id_nb='Sun_MStaff'") ?? MStaff;
                items.Add(GameInventoryItem.Create<ItemTemplate>(m_SunMStaff));
                return;
            }

            else
            {
                player.Out.SendMessage("" + player.CharacterClass.Name + "'s cant Summon Light!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }
        }
Beispiel #48
0
 public Arrogance(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
Beispiel #49
0
 public PveResurrectionIllness(GameLiving caster, Spell spell, SpellLine spellLine)
     : base(caster, spell, spellLine)
 {
 }
 public AtlantisTabletMorph(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
Beispiel #51
0
 public SummonHunterPet(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
 }
		public HereticPiercingMagic(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) {}
Beispiel #53
0
 public PetLifedrainSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #54
0
 // constructor
 public ArmorAbsorptionDebuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
 public VampiirSkillBonusDeBuff(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
 // constructor
 public DirectDamageSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line)
 {
 }
Beispiel #57
0
 // constructor
 public BoltSpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
 }
Beispiel #58
0
 /// <summary>
 /// Create a new handler for the power transfer spell.
 /// </summary>
 /// <param name="caster"></param>
 /// <param name="spell"></param>
 /// <param name="line"></param>
 public PowerTransferPet(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
 }
 public BothAblativeArmorSpellHandler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
Beispiel #60
0
 public IllusionBladeSummon(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
 }