Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Content/extensions/Duel Realm/json/realms/realm/duels.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"IsNeutralZone": true,
"CanInteractWithNeutralZone": true,
"HideoutEnabled": false
}
},
"apply_rulesets": [ "pvp-damage" ]
}
92 changes: 92 additions & 0 deletions Content/extensions/Duel Realm/json/realms/ruleset/pvp-damage.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"name": "Pvp Damage Ruleset",
"type": "Ruleset",
"properties": {
"Core": {
"Realm": {
"Description": "This server has custom pvp damage configurable options."
}
},
"Pvp": {
"Damage": {
"IgnoreMagicArmorPvpScalar": 1,
"IgnoreMagicResistPvpScalar": 1,
"CloakMaxDmgMitigation": 50,
"CsCritrateMod": 1,
"DmgMod2h": 1.1,
"DmgMod2hAr": 1,
"DmgMod2hCb": 2,
"DmgMod2hCbCrit": 0.55,
"DmgMod2hCs": 1.65,
"DmgMod2hHollow": 1,
"DmgMod2hPhantom": 1,
"DmgModAr": 1,
"DmgModCb": 1,
"DmgModCs": 1,
"DmgModHollow": 0.7,
"DmgModPhantom": 0.8,
"DmgModBow": 1.2,
"DmgModBowAr": 1.05,
"DmgModBowCb": 1.3,
"DmgModBowCbCrit": 0.92,
"DmgModBowCs": 1.85,
"DmgModBowHollow": 1,
"DmgModBowPhantom": 1,
"DmgModFw": 1.1,
"DmgModFwAr": 1,
"DmgModFwCb": 1.5,
"DmgModFwCbCrit": 0.8,
"DmgModFwCs": 1.55,
"DmgModFwHollow": 1,
"DmgModFwPhantom": 1,
"DmgModHw": 1.1,
"DmgModHwAr": 1.05,
"DmgModHwCb": 1.5,
"DmgModHwCbCrit": 0.8,
"DmgModHwCbCritMultistrike": 0.9,
"DmgModHwCs": 1.55,
"DmgModHwHollow": 1,
"DmgModHwMultistrike": 0.9,
"DmgModHwPhantom": 1,
"DmgModLw": 1.1,
"DmgModLwAr": 1,
"DmgModLwCb": 1.5,
"DmgModLwCbCrit": 0.8,
"DmgModLwCbCritTriplestrike": 0.9,
"DmgModLwCs": 1.55,
"DmgModLwHollow": 1,
"DmgModLwPhantom": 1,
"DmgModLwTriplestrike": 0.97,
"DmgModTw": 1.2,
"DmgModTwAr": 1.05,
"DmgModTwCb": 1.3,
"DmgModTwCbCrit": 0.92,
"DmgModTwCs": 1.85,
"DmgModTwHollow": 1,
"DmgModTwPhantom": 1,
"DmgModXbow": 1.2,
"DmgModXbowAr": 1.05,
"DmgModXbowCb": 1.3,
"DmgModXbowCbCrit": 0.92,
"DmgModXbowCs": 1.85,
"DmgModXbowHollow": 1,
"DmgModXbowPhantom": 1,
"DmgModVoid": 0.85,
"DmgModVoidCbCrit": 0.45,
"DmgModVoidCrit": 1,
"DmgModVoidDot": 0.65,
"DmgModVoidDotRatingReduction": 0.25,
"DmgModVoidStreak": 0.45,
"DmgModVoidVariance": 0.5,
"VoidHybridMod": 0.65,
"DmgModWar": 1.1,
"DmgModWarBlast": 0.6,
"DmgModWarCbCrit": 0.45,
"DmgModWarCsCrit": 0.95,
"DmgModWarCsDmg": 1.1,
"DmgModWarStreak": 0.68,
"DmgModWarVariance": 0.4
}
}
}
}
1 change: 1 addition & 0 deletions Source/ACE.Entity/Models/PropertiesEnchantmentRegistry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ public class PropertiesEnchantmentRegistry
public uint StatModKey { get; set; }
public float StatModValue { get; set; }
public EquipmentSet SpellSetId { get; set; }
public bool IsPvP { get; internal set; }
}
}
3 changes: 2 additions & 1 deletion Source/ACE.Server/Command/Handlers/AdminCommands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4455,7 +4455,8 @@ public static void HandleModifyServerBoolProperty(ISession session, params strin

if (parameters[0] == "pk_server" || parameters[0] == "pkl_server")
{
PlayerManager.UpdatePKStatusForAllPlayers(parameters[0], boolVal);
// ACRealms derives PK-only status from realm rulesets; do not apply server-wide PK status changes here.
//PlayerManager.UpdatePKStatusForAllPlayers(parameters[0], boolVal);
}
}
else
Expand Down
2 changes: 1 addition & 1 deletion Source/ACE.Server/Command/Handlers/AdvocateCommands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public static void HandleBestow(ISession session, params string[] parameters)
// return;
//}

if (player.IsPK || PropertyManager.GetBool("pk_server").Item)
if (player.IsPK || player.IsInPkServerRealm)
{
session.Network.EnqueueSend(new GameMessageSystemChat($"{playerToFind.Name} in a Player Killer and cannot be an Advocate.", ChatMessageType.Broadcast));
return;
Expand Down
3 changes: 2 additions & 1 deletion Source/ACE.Server/Entity/Cloak.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using ACE.Server.Managers;
using ACE.Server.Network.GameMessages.Messages;
using ACE.Server.WorldObjects;
using ACRealms;

namespace ACE.Server.Entity
{
Expand Down Expand Up @@ -206,7 +207,7 @@ public static int GetDamageReductionAmount(WorldObject source)
// https://asheron.fandom.com/wiki/Master_of_Arms
// Cloaks with the chance to reduce incoming damage by 200 have been reduced to 100 for PvP circumstances.
if (source is Player)
damageReductionAmount /= 2;
damageReductionAmount = (int)Math.Round(Props.Pvp.Damage.CloakMaxDmgMitigation(source.RealmRuleset));

return damageReductionAmount;
}
Expand Down
Loading