Code:
#region Cannon Barrage
case 11050:
{
if (attacker.Owner.Player.ContainsFlag((ulong)MsgUpdate.Flags.XPList))
{
attacker.Owner.Player.RemoveFlag((ulong)MsgUpdate.Flags.XPList);
attacker.Owner.Player.AddFlag((ulong)MsgUpdate.Flags.CannonBarrage, spell.Duration, true);
attacker.Owner.Player.CannonBarrageStamp = Time32.Now;
return;
}
PrepareSpell(spell, attacker.Owner);
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.X = X;
suse.Y = Y;
//suse.SpellLevelHu = client_Spell.LevelHu2;
MsgMagicEffect.DamageClass tar = new MsgMagicEffect.DamageClass();
foreach (var t in attacker.Owner.Screen.Objects)
{
if (t == null)
continue;
if (t.MapObjType == MapObjectType.Player || t.MapObjType == MapObjectType.Monster)
{
var target = t as Player;
if (Kernel.GetDistance(attacker.Owner.Player.X, attacker.Owner.Player.Y, target.X, target.Y) <= spell.Range)
{
if (CanAttack(attacker, target, spell, false))
{
tar.Damage = Calculate.Ranged(attacker, target, ref attack);
ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);
suse.AddTarget(target.UID, tar.Damage, attack);
}
}
}
}
if (attacker.PlayerFlag == PlayerFlag.Player)
attacker.Owner.SendScreen(suse, true);
break;
}
#endregion
Code:
public enum Flags : ulong
{
FlashingName = 0,
Poisoned = 1,
Invisible = 2,
Normal = 3,
XPList = 4,
Dead = 5,
TeamLeader = 6,
StarOfAccuracy = 7,
MagicShield = 8,
Stigma = 9,
Ghost = 10,
FadeAway = 11,
RedName = 14,
BlackName = 15,
ReflectMelee = 17,
Superman = 18,
Ball = 19,
Ball2 = 20,
Invisibility = 22,
Cyclone = 23,
Dodge = 26,
Fly = 27,
Intensify = 28,
CastPray = 30,
Praying = 31,
Cursed = 32,
HeavenBlessing = 33,
TopGuildLeader = 34,
TopDeputyLeader = 35,
MonthlyPKChampion = 36,
WeeklyPKChampion = 37,
TopWarrior = 38,
TopTrojan = 39,
TopArcher = 40,
TopWaterTaoist = 41,
TopFireTaoist = 42,
TopNinja = 43,
ShurikenVortex = 46,
FatalStrike = 47,
Flashy = 48,
Ride = 50,
TopSpouse = 51,
OrangeSparkles = 52,
PurpleSparkles = 53,
FreezeSmall = 54,
SpeedIncreased = 55,
IncMoveSpeed = 56,
GodlyShield = 57,
Stun = 58,
Freeze = 59,
ChaosCycle = 60,
Top2Weekly = 65,
Top2Monthly = 68,
Top2Fire = 71,
Top2Water = 74,
Top2Ninja = 77,
top3ninja = 78,
Top2Warrior = 80,
Top2Trojan = 83,
top8trojan = 84,
Top2Archer = 86,
Contestant = 91,
ChainBoltActive = 92,
AzureShield = 93,
ScurvyBomb = 96,
TyrantAuraIcon = 97,
TyrantAura = 98,
FendAuraIcon = 99,
FendAura = 100,
MetalAuraIcon = 101,
MetalAura = 102,
WoodAuraIcon = 103,
WoodAura = 104,
WaterAuraIcon = 105,
WaterAura = 106,
FireAuraIcon = 107,
FireAura = 108,
EarthAuraIcon = 109,
EarthAura = 110,
SoulShackle = 111,
Oblivion = 112,
ShieldBlock = 113,
TopMonk = 114,
Top2Monk = 116,
CarryingFlag = 118,
PoisonStar = 119,
CannonBarrage = 120,
BlackbeardsRage = 121,
TopPirate = 122,
TopPirate2 = 124,
DefensiveStance = 126,
MagicDefenderIcon = 127,
MagicDefender = 128,
PurpleBall = 131,
BlueBall = 132,
PathOfShadow = 145,
BladeFlurry = 146,
KineticSpark = 147,
DragonFlow = 148,
SuperCyclone = 150,
ConuqerSuperYellow = 151,
ConuqerSuperBlue = 152,
ConuqerSuperUnderBlue = 153,
DragonWarriorTop = 154,
AutoHunting = 155,
DragonFury = 158,
DragonCyclone = 159,
DragonSwing = 160,
MrConquer = 166,
MsConquer = 167,
FlameLayer = 168,
FlameLayer2 = 169,
FlameLayer3 = 170,
FlameLayer4 = 171,
AuroraLotus = 172,
FlameLotus = 173,
ShieldBreak = 176,
DivineGuard = 177,
XPWarrior = 178,
BackFire = 179,
ManiacDance = 181,
WarriorEpicShield = 183,
CrossElite_PK_Champion_High = 184,
CrossElite_PK_2nd_High = 185,
CrossElite_PK_3rd_High = 186,
CrossElite_PK_Top8_High = 187,
CrossElite_PK_Champion_Low = 188,
CrossElite_PK_2nd_Low = 189,
CrossElite_PK_3rd_Low = 190,
CrossElite_PK_Top8_Low = 191,
Omnipotence = 192,
OmnipotenceDamage = 193,
JusticeChant = 194,
BlockFrostGaze = 195,
HealingSnow = 196,
ChillingSnow = 197,
xChillingSnow = 198,
FreezingPelter = 200,
xFreezingPelter = 201,
RevengeTaill = 202,
LightningShield = 237,
WindwalkerTop = 203,
ShadowofChaser = 204,
Sacrifice = 211,
FineRain = 212,
FineRain2 = 212,
Rampage = 214,
Infinity = 215,
Absolution = 216,
IronShield = 217,
Slayer = 218,
FrostArrows = 219,
ImmortalForce = 220,
//Irreconocibles
TopPanda = 89,
TopZorro = 90,
GoldBrickNormal = 161,
GoldBrickRefined = 162,
GoldBrickUnique = 163,
GoldBrickElite = 164,
GoldBrickSuper = 165,
Top2Candy = 81,
Top2Mujer = 83,
Top2Hombre = 84,
TopFamoso = 88,
TopMarcial = 124,
TopFantasma = 125,
TopHombreloco = 77,
TopConejo = 76,
TopHada = 78,
VIP8Slayer = 185,
VIP7Slayer = 186,
VIP6Slayer = 187,
VIP5Slayer = 188,
VIP4Slayer = 189,
JQ_dunpaichuantou = 176,// top campeon
Top3Water = 11,
rygh_hglx = 174,
rygh_syzs = 175,
TopConde = 73, // top conde
TopDuke = 115,// Top Duke
TopPrincipe = 116, // top Principe
TopRey = 117,// top rey
}
Code:
case 11050:
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.X = X;
suse.Y = Y;
if (attacker.Owner.Player.ContainsFlag((ulong)MsgUpdate.Flags.XPList))
{
attacker.RemoveFlag((ulong)MsgUpdate.Flags.XPList);
attacker.AddFlag((ulong)MsgUpdate.Flags.CannonBarrage, spell.Duration, true);
attacker.CannonBarrageStamp = Time32.Now;
return;
}
//PrepareSpell(spell, attacker.Owner);
MsgMagicEffect.DamageClass tar = new MsgMagicEffect.DamageClass();
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)//var t in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
if (_obj.MapObjType == MapObjectType.Player || _obj.MapObjType == MapObjectType.Monster)
{
var target = _obj as Player;
if (Kernel.GetDistance(attacker.X, attacker.Y, target.X, target.Y) <= spell.Range)
{
if (CanAttack(attacker, target, spell, attack.InteractType == MsgInteract.Magic))
{
//attack.Effect = MsgInteract.InteractEffects.None;
tar.Damage = (Calculate.Ranged(attacker, target, ref attack) / 2);
//suse.Effect = attack.Effect;
suse.AddTarget(target.UID, tar, attack);
ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);
}
}
}
}
if (attacker.PlayerFlag == PlayerFlag.Player)
attacker.Owner.SendScreen(suse, true);
break;
}






