本文整理汇总了C#中DOL.GS.Spell类的典型用法代码示例。如果您正苦于以下问题:C# Spell类的具体用法?C# Spell怎么用?C# Spell使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Spell类属于DOL.GS命名空间,在下文中一共展示了Spell类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AncientTransmuterSpellHandler
public AncientTransmuterSpellHandler(GameLiving caster, Spell spell, SpellLine line)
: base(caster, spell, line)
{
if (caster is GamePlayer)
{
GamePlayer casterPlayer = caster as GamePlayer;
merchant = new GameMerchant();
//Fill the object variables
merchant.X = casterPlayer.X + Util.Random(20, 40) - Util.Random(20, 40);
merchant.Y = casterPlayer.Y + Util.Random(20, 40) - Util.Random(20, 40);
merchant.Z = casterPlayer.Z;
merchant.CurrentRegion = casterPlayer.CurrentRegion;
merchant.Heading = (ushort)((casterPlayer.Heading + 2048) % 4096);
merchant.Level = 1;
merchant.Realm = casterPlayer.Realm;
merchant.Name = "Ancient Transmuter";
merchant.Model = 993;
merchant.CurrentSpeed = 0;
merchant.MaxSpeedBase = 0;
merchant.GuildName = "";
merchant.Size = 50;
merchant.Flags |= GameNPC.eFlags.PEACE;
merchant.TradeItems = new MerchantTradeItems("ML_transmuteritems");
}
}
示例2: CanChangeCastingSpeed
/// <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;
}
示例3: BuffPlayer
public static void BuffPlayer(GamePlayer player, Spell spell, SpellLine spellLine)
{
Queue m_buffs = new Queue();
Container con = new Container(spell, spellLine, player);
m_buffs.Enqueue(con);
CastBuffs(player, m_buffs);
}
示例4: SummonWoodSpellHandler
public SummonWoodSpellHandler(GameLiving caster, Spell spell, SpellLine line)
: base(caster, spell, line)
{
ItemTemplate template = GameServer.Database.FindObjectByKey<ItemTemplate>("mysticwood_wooden_boards");
if (template != null)
{
item = GameInventoryItem.Create<ItemTemplate>(template);
if (item.IsStackable)
{
item.Count = 100;
}
}
}
示例5: CastSpell
protected override void CastSpell(GameLiving target)
{
if (!target.IsAlive) return;
if (GameServer.ServerRules.IsAllowedToAttack(m_caster, target, true))
{
int dealDamage =damage;
if (getCurrentPulse()<=6)
dealDamage = (int)Math.Round(((double)getCurrentPulse()/6*damage));
dbs.Damage = dealDamage;
s = new Spell(dbs,1);
ISpellHandler dd = ScriptMgr.CreateSpellHandler(m_caster, s, sl);
dd.StartSpell(target);
}
}
示例6: BolsteringRoarSpellHandler
// 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");
}
示例7: SummonWoodSpellHandler
public SummonWoodSpellHandler(GameLiving caster, Spell spell, SpellLine line)
: base(caster, spell, line)
{
ItemTemplate template = GameServer.Database.FindObjectByKey<ItemTemplate>("mysticwood_wooden_boards");
if (template != null)
{
items.Add(GameInventoryItem.Create(template));
foreach (InventoryItem item in items)
{
if (item.IsStackable)
{
item.Count = 1;
item.Weight = item.Count * item.Weight;
}
}
}
}
示例8: CastSpellOnOwnerAndPets
/// <summary>
/// Cast a spell on player and its pets/subpets if available.
/// </summary>
/// <param name="sourceNPC">NPC that is casting the spell</param>
/// <param name="player">Player is the owner and first target of the spell</param>
/// <param name="spell">Casted spell</param>
/// <param name="line">SpellLine the casted spell is derived from</param>
/// <param name="checkLOS">Determines if line of sight is checked</param>
public static void CastSpellOnOwnerAndPets(this GameNPC sourceNPC, GamePlayer player, Spell spell, SpellLine line, bool checkLOS)
{
sourceNPC.TargetObject = player;
sourceNPC.CastSpell(spell, line, checkLOS);
if (player.ControlledBrain != null)
{
sourceNPC.TargetObject = player.ControlledBrain.Body;
sourceNPC.CastSpell(spell, line, checkLOS);
if (player.ControlledBrain.Body.ControlledNpcList != null)
foreach (AI.Brain.IControlledBrain subpet in player.ControlledBrain.Body.ControlledNpcList)
if (subpet != null)
{
sourceNPC.TargetObject = subpet.Body;
sourceNPC.CastSpell(spell, line, checkLOS);
}
}
}
示例9: BuffPlayer
public void BuffPlayer(GamePlayer player, Spell spell, SpellLine spellLine)
{
if (m_buffs == null) m_buffs = new Queue();
m_buffs.Enqueue(new Container(spell, spellLine, player));
//don't forget his pet !
if(BUFFS_PLAYER_PET && player.ControlledBrain != null)
{
if(player.ControlledBrain.Body != null)
{
m_buffs.Enqueue(new Container(spell, spellLine, player.ControlledBrain.Body));
}
}
CastBuffs();
}
示例10: PrescienceNodeSpellHandler
// constructor
public PrescienceNodeSpellHandler(GameLiving caster, Spell spell, SpellLine line)
: base(caster, spell, line)
{
ApplyOnNPC = false;
ApplyOnCombat = true;
//Construct a new font.
font = new GameFont();
font.Model = 2584;
font.Name = spell.Name;
font.Realm = caster.Realm;
font.X = caster.X;
font.Y = caster.Y;
font.Z = caster.Z;
font.CurrentRegionID = caster.CurrentRegionID;
font.Heading = caster.Heading;
font.Owner = (GamePlayer)caster;
// Construct the font spell
dbs = new DBSpell();
dbs.Name = spell.Name;
dbs.Icon = 7312;
dbs.ClientEffect = 7312;
dbs.Damage = spell.Damage;
dbs.DamageType = (int)spell.DamageType;
dbs.Target = "Enemy";
dbs.Radius = 0;
dbs.Type = "Prescience";
dbs.Value = spell.Value;
dbs.Duration = spell.ResurrectHealth;
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 = 2000;
s = new Spell(dbs, 50);
sl = SkillBase.GetSpellLine(GlobalSpellsLines.Reserved_Spells);
heal = ScriptMgr.CreateSpellHandler(m_caster, s, sl);
}
示例11: WallOfFlameBase
public WallOfFlameBase(int damage)
{
dbs = new DBSpell();
dbs.Name = GetStaticName();
dbs.Icon = GetStaticEffect();
dbs.ClientEffect = GetStaticEffect();
dbs.Damage = damage;
dbs.DamageType = (int)eDamageType.Heat;
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;
s = new Spell(dbs, 1);
sl = new SpellLine("RAs", "RealmAbilitys", "RealmAbilitys", true);
}
示例12: StaticTempestBase
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);
}
示例13: ThornweedFieldBase
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);
}
示例14: CreateSpell
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);
}
示例15: CheckInstantSpells
/// <summary>
/// Checks Instant Spells. Handles Taunts, shouts, stuns, etc.
/// </summary>
protected override bool CheckInstantSpells(Spell spell)
{
GameObject lastTarget = Body.TargetObject;
Body.TargetObject = null;
switch (spell.SpellType)
{
case "Taunt":
Body.TargetObject = lastTarget;
break;
}
if (Body.TargetObject != null)
{
if (LivingHasEffect((GameLiving)Body.TargetObject, spell))
return false;
Body.CastSpell(spell, m_mobSpellLine);
Body.TargetObject = lastTarget;
return true;
}
Body.TargetObject = lastTarget;
return false;
}