public override bool Run()
{
base.Run();
if (System.Environment.TickCount - mnTick > mnTime)
{
this.ClearThis();
return(false);
}
//会攻击的特效-- 降灵咒雨
if (mnEffID == Define.JIANGLINGZHOUYU)
{
if (System.Environment.TickCount - mnAttackTick > 1000)
{
mnAttackTick = System.Environment.TickCount;
NetMsg.MsgMonsterMagicInjuredInfo magicattack = new NetMsg.MsgMonsterMagicInjuredInfo();
magicattack.roleid = (uint)mnEffID;
magicattack.role_x = this.GetCurrentX();
magicattack.role_y = this.GetCurrentY();
magicattack.tag = 21;
magicattack.magicid = (ushort)Define.JIANGLINGZHOUYU_MAGICID;
magicattack.magiclv = 0;
this.BrocatBuffer(magicattack.GetBuffer());
NetMsg.MsgGroupMagicAttackInfo magicattackex = new NetMsg.MsgGroupMagicAttackInfo();
magicattackex.nID = mPlay.GetTypeId();
magicattackex.nX = this.GetCurrentX();
magicattackex.nY = this.GetCurrentY();
magicattackex.nMagicID = (ushort)Define.JIANGLINGZHOUYU_MAGICID;
magicattackex.nMagicLv = 0;
magicattackex.bDir = this.GetDir();
NetMsg.MsgAttackInfo info = new NetMsg.MsgAttackInfo();
info.tag = 21;
//---攻击 暂时只攻击怪物
foreach (RefreshObject refobj in this.GetVisibleList().Values)
{
BaseObject obj = refobj.obj;
if (obj.type == OBJECTTYPE.MONSTER)
{
if (this.GetPoint().CheckVisualDistance(obj.GetCurrentX(), obj.GetCurrentY(), Define.JIANGLINGZHOUYU_DIS))
{
uint nValue = BattleSystem.AdjustDamage(mPlay, obj, true);
magicattackex.AddObject(obj.GetTypeId(), (int)nValue);
obj.Injured(mPlay, nValue, info);
}
}
}
this.BrocatBuffer(magicattackex.GetBuffer());
}
}
return(true);
}