//玩家与玩家pk private static uint AdjustDamage(PlayerObject attack, PlayerObject def, bool isMagicAck = false/*是否是魔法伤害*/) { int attack_soul = attack.GetFightSoul(); int def_soul = def.GetFightSoul(); int dif = attack_soul - def_soul; int nSoulAddAtk = 0; int nSoulAddDef = 0; if(dif > 0) { //一点战斗力+一百点伤害 nSoulAddAtk = dif * 100; }else { //一点战斗力 +一百点防御 nSoulAddDef = Math.Abs(dif) * 100; } int nMaxRand = 50 + attack.GetLuck(); int nAtk = 0; if (IRandom.Random(0, 100) < nMaxRand) { if (isMagicAck && attack.GetBaseAttr().profession == JOB.MAGE) { nAtk = attack.GetMinAck() + IRandom.Random(0, attack.GetMaxMagixAck() - attack.GetMagicAck()) ; } else { nAtk = attack.GetMaxAck() + IRandom.Random(0, attack.GetMaxAck() - attack.GetMinAck()) ; } } else { if (isMagicAck && attack.GetBaseAttr().profession == JOB.MAGE) { nAtk = attack.GetMinAck() + IRandom.Random(0, attack.GetMagicAck() - attack.GetMagicAck()) ; } else { nAtk = attack.GetMinAck() + IRandom.Random(0, attack.GetMaxAck() - attack.GetMinAck()) ; } } nAtk += nSoulAddAtk; int nDef = 0; if (isMagicAck) { nDef = def.GetMagicDefense(); } else { nDef = def.GetDefense(); } nDef += nSoulAddDef; int nDamage = nAtk - nDef; if (attack.type == OBJECTTYPE.PLAYER) { nDamage += attack.GetLevel() / 10; } if (nDamage <= 0) { nDamage = IRandom.Random(1, 100) >= 50 ? 1 : 0; if (!isMagicAck) nDamage = 1; } return (uint)nDamage; }