|
|
public static void ReceiveAttack(
#region Perfection
#region Perfection
if (attacker.EntityFlag == EntityFlag.Entity)
{
#region Perfection
Game.Enums.PerfectionEffect effect = Enums.PerfectionEffect.CalmWind;
byte chance = 0;
new MsgRefineEffect().GenerateEffectandChance(attacker.Owner, ref effect, ref chance);
if (Kernel.Rate(10))
{
new MsgRefineEffect().SendEffect(attacker, attacked, effect);
}
#endregion
}
if (attacker.EntityFlag == EntityFlag.Entity)
{
#region Perfection
byte chance = 0;
new MsgRefineEffect().HandleLuckyStrike(attacker, ref chance);
if (Kernel.Rate(1))
{
Network.Writer.WriteUInt16((ushort)(1 << 10), 36, attack.ToArray());
new MsgRefineEffect().SendEffect(attacker, attacked, Game.Enums.PerfectionEffect.LuckyStrike);
damage *= 2;
}
#endregion
}
if (attacked.EntityFlag == EntityFlag.Entity)
{
#region Perfection
byte chance = 1;
new MsgRefineEffect().HandleStrickeLock(attacker, ref chance);
if (Kernel.Rate(3))
{
Game.Enums.PerfectionEffect effect = Enums.PerfectionEffect.Stricklock;
new MsgRefineEffect().SendEffect(attacked, attacker, effect);
return;
}
#endregion
}
if (attacked.EntityFlag == EntityFlag.Entity)
{
#region Perfection
Game.Enums.PerfectionEffect effect = Enums.PerfectionEffect.MirrorofSin;
byte chance = 0;
new MsgRefineEffect().HandleMirror(attacked, ref chance);
if (Kernel.Rate(1))
{
new MsgRefineEffect().SendEffect(attacked, attacker, effect);
attacked.AddFlag(Network.GamePackets.Update.Flags.XPList);
}
#endregion
}
#endregion
public static void Refinary(Entity attacker, Entity attacked, ref double Damage, ref Attack Packet, bool magic = false)
public static void Refinary(Entity attacker, Entity attacked, ref double Damage, ref Attack Packet, bool magic = false)
{
if (attacker.Name == "Thundercloud") return;
if (attacker.EntityFlag == EntityFlag.Entity)
{
if (!attacker.IsTaoist(attacker.Class))
{
if (attacked.BattlePower > attacker.BattlePower)
{
if (attacker.Breaktrough > 0)
{
if (attacker.Breaktrough > attacked.Counteraction)
{
double Power = (double)(attacker.Breaktrough - attacked.Counteraction);
if (attacker.NobilityRank < ConquerStructures.NobilityRank.King)
{
Power = (double)(Power / 0);
if (MyMath.Success2(Power))
{
Damage += Damage * 0 / 1;
Damage += 15000;
Packet.Effect1 |= Attack.AttackEffects1.Break;
}
else Immu(attacked);
}
else
{
Power = (double)(Power / 0);
if (MyMath.Success(Power))
{
Damage += Damage * 0 / 1;
Packet.Effect1 |= Attack.AttackEffects1.Break;
}
else Immu(attacked);
}
}
else
Immu(attacked);
}
}
if (RateStatus(80))
{
if (!magic)
{
if (attacker.CriticalStrike > 0)
{
if (attacker.CriticalStrike > attacked.Immunity)
{
double Power = (double)(attacker.CriticalStrike - attacked.Immunity);
if (Kernel.ChanceSuccess2(((float)attacker.CriticalStrike / 300f) - ((float)attacked.Immunity / 300f)))
{
Damage += 15000;
Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike;
}
else
Immu(attacked);
}
else
Immu(attacked);
}
}
else
{
if (attacker.Penetration > 0)
{
double Power = (double)(attacker.Penetration / 1);
if (MyMath.Success(Power))
{
Damage += Damage * 0 / 4;
Packet.Effect1 |= Attack.AttackEffects1.Penetration;
}
else if (attacker.SkillCStrike > 0)
{
if (attacker.SkillCStrike >= attacked.Immunity)
{
Power = (double)(attacker.SkillCStrike - attacked.Immunity);
Power = (double)(Power / 100);
if (MyMath.Success(Power))
{
Damage += Damage * 50 / 100;
Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike;
}
else
Immu(attacked);
}
}
else
Immu(attacked);
}
else if (attacker.SkillCStrike > 0)
{
if (attacker.SkillCStrike >= attacked.Immunity)
{
double Power = (double)(attacker.SkillCStrike - attacked.Immunity);
Power = (double)(Power / 100);
if (MyMath.Success(Power))
{
Damage += Damage * 50 / 100;
Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike;
}
else
Immu(attacked);
}
}
else
Immu(attacked);
}
}
}
}
if (attacked.EntityFlag == EntityFlag.Entity)
{
if (RateStatus(5))
{
if (attacked.Block > 0)
{
double Power = (double)(attacked.Block / 2);
if (MyMath.Success(Power))
{
Damage = Damage / 2;
Packet.Effect1 |= Attack.AttackEffects1.Block;
}
}
if (attacked.IsShieldBlock)
{
if (MyMath.Success(attacked.ShieldBlockPercent))
{
Damage = Damage / 2;
Packet.Effect1 |= Attack.AttackEffects1.Block;
}
}
}
}
}
|
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
محتاج الاستريك يطلع بسرعه | disco0o | مشكلات السيرفيرات كونكر الشخصيه | 0 | 2021-08-06 01:39 AM |
ياجماعة عندي ضربة الاستريك عالية عاوز حل | ahmedsamirali | مشكلات السيرفيرات كونكر الشخصيه | 3 | 2020-05-07 11:47 PM |
موضوع مهم | ElSaher | تطوير سيرفرات كونكر | 1 | 2019-10-31 09:52 PM |
موضوع مهم | ElSaher | مشكلات السيرفيرات كونكر الشخصيه | 11 | 2019-08-28 07:27 PM |
طلب التعديل علي الاستريك | ElSaher | مشكلات السيرفيرات كونكر الشخصيه | 4 | 2019-08-27 03:03 PM |