本文整理汇总了C#中GamePlayer.StopCurrentSpellcast方法的典型用法代码示例。如果您正苦于以下问题:C# GamePlayer.StopCurrentSpellcast方法的具体用法?C# GamePlayer.StopCurrentSpellcast怎么用?C# GamePlayer.StopCurrentSpellcast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GamePlayer
的用法示例。
在下文中一共展示了GamePlayer.StopCurrentSpellcast方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public override void Execute(GameLiving living)
{
if (CheckPreconditions(living, DEAD | SITTING | MEZZED | STUNNED)) return;
GamePlayer player = living as GamePlayer;
if (player == null)
return;
if (player.IsMoving)
{
player.Out.SendMessage("You must be standing still to use this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
}
if (player.GroundTarget == null )
{
player.Out.SendMessage( "You must set a ground target to use this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow );
return;
}
else if(!player.IsWithinRadius( player.GroundTarget, 1500 ))
{
player.Out.SendMessage("Your ground target is too far away to use this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
}
this.player = player;
if (player.AttackState)
{
player.StopAttack();
}
player.StopCurrentSpellcast();
switch (Level)
{
case 1: dmgValue = 25; duration = 10; break;
case 2: dmgValue = 100; duration = 20; break;
case 3: dmgValue = 250; duration = 30; break;
default: return;
}
foreach (GamePlayer i_player in player.GetPlayersInRadius(WorldMgr.INFO_DISTANCE))
{
if (i_player == player) i_player.Out.SendMessage("You cast " + this.Name + "!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
else i_player.Out.SendMessage(player.Name + " casts a spell!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
i_player.Out.SendSpellCastAnimation(player, 7028, 20);
}
if (player.RealmAbilityCastTimer != null)
{
player.RealmAbilityCastTimer.Stop();
player.RealmAbilityCastTimer = null;
player.Out.SendMessage("You cancel your Spell!", eChatType.CT_SpellResisted, eChatLoc.CL_SystemWindow);
}
player.RealmAbilityCastTimer = new RegionTimer(player);
player.RealmAbilityCastTimer.Callback = new RegionTimerCallback(EndCast);
player.RealmAbilityCastTimer.Start(2000);
}
示例2: Execute
public override void Execute(GameLiving living)
{
if (CheckPreconditions(living, DEAD | SITTING | MEZZED | STUNNED)) return;
GamePlayer player = living as GamePlayer;
if (player.IsMoving)
{
player.Out.SendMessage("You must be standing still to use this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
}
if (player.GroundTarget == null || !player.IsWithinRadius(player.GroundTarget, 1500))
{
player.Out.SendMessage("You groundtarget is too far away to use this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
}
if (player.TempProperties.getProperty(IS_CASTING, false))
{
player.Out.SendMessage("You are already casting an ability.", eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
}
this.player = player;
if (player.AttackState)
{
player.StopAttack();
}
player.StopCurrentSpellcast();
switch (Level)
{
case 1: dmgValue = 120; break;
case 2: dmgValue = 240; break;
case 3: dmgValue = 360; break;
default: return;
}
duration = 30;
foreach (GamePlayer i_player in player.GetPlayersInRadius(WorldMgr.INFO_DISTANCE))
{
if (i_player == player) i_player.Out.SendMessage("You cast " + this.Name + "!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
else i_player.Out.SendMessage(player.Name + " casts a spell!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
i_player.Out.SendSpellCastAnimation(player, 7027, 20);
}
player.TempProperties.setProperty(IS_CASTING, true);
player.TempProperties.setProperty(NM_CAST_SUCCESS, true);
GameEventMgr.AddHandler(player, GamePlayerEvent.Moving, new DOLEventHandler(CastInterrupted));
GameEventMgr.AddHandler(player, GamePlayerEvent.AttackFinished, new DOLEventHandler(CastInterrupted));
GameEventMgr.AddHandler(player, GamePlayerEvent.Dying, new DOLEventHandler(CastInterrupted));
if (player != null)
{
new RegionTimer(player, new RegionTimerCallback(EndCast), 2000);
}
}