2026/04/27 Update
Fighter was missing Weapon Proficiency: Scythe. Tentative fix for Sweeping Strike + Eldritch Glaive. Fixed Necrocarnum Weapon reducing AB. Updated creature abilities to more closely follow PnP. Updated tlk for Sanctified & Holy Ki Strike.
This commit is contained in:
@@ -696,7 +696,28 @@ void main()
|
||||
if (GetAlignmentGoodEvil(oMeldshaper) == ALIGNMENT_EVIL)
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(DamageTypeToIPConst(GetWeaponDamageType(oItem)), IPDamageConstant((nEssentia*2) + nBonus)), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
}
|
||||
if (GetHasSpellEffect(MELD_NECROCARNUM_WEAPON, oMeldshaper))
|
||||
if (GetHasSpellEffect(MELD_NECROCARNUM_WEAPON, oMeldshaper))
|
||||
{
|
||||
// Get current enhancement bonus
|
||||
int nCurrentEnh = IPGetWeaponEnhancementBonus(oItem, FALSE);
|
||||
|
||||
// Calculate needed enhancement to reach +3 total
|
||||
int nNeededEnh = 3 - nCurrentEnh;
|
||||
if (nNeededEnh > 0)
|
||||
{
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyEnhancementBonus(nNeededEnh), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
// Add matching penalty to keep attack bonus unchanged
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyEnhancementPenalty(nNeededEnh), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
}
|
||||
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_NECROCARNUM_WEAPON) == CHAKRA_HANDS || GetIsMeldBound(oMeldshaper, MELD_NECROCARNUM_WEAPON) == CHAKRA_DOUBLE_HANDS)
|
||||
{
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
AddEventScript(oItem, EVENT_ITEM_ONHIT, "moi_events", TRUE, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
/* if (GetHasSpellEffect(MELD_NECROCARNUM_WEAPON, oMeldshaper))
|
||||
{
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(3), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAttackPenalty(3), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
@@ -706,7 +727,7 @@ void main()
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
AddEventScript(oItem, EVENT_ITEM_ONHIT, "moi_events", TRUE, FALSE);
|
||||
}
|
||||
}
|
||||
} */
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_MAULING_GAUNTLETS) == CHAKRA_ARMS || GetIsMeldBound(oMeldshaper, MELD_MAULING_GAUNTLETS) == CHAKRA_DOUBLE_ARMS)
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyKeen(), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
#include "moi_inc_moifunc"
|
||||
#include "inc_dynconv"
|
||||
|
||||
// Add this function to handle delayed processing
|
||||
void DelayedChakraBindUnequip(object oMeldshaper, object oItem)
|
||||
{
|
||||
// Check if we're still in a valid state
|
||||
if(GetIsObjectValid(oMeldshaper) && GetIsObjectValid(oItem))
|
||||
{
|
||||
ChakraBindUnequip(oMeldshaper, oItem);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
int nEvent = GetRunningEvent();
|
||||
@@ -12,6 +22,7 @@ void main()
|
||||
{
|
||||
case EVENT_ONPLAYERREST_FINISHED: oMeldshaper = GetLastBeingRested(); break;
|
||||
case EVENT_ONCLIENTENTER: oMeldshaper = GetEnteringObject(); break;
|
||||
case EVENT_ONPLAYEREQUIPITEM: oMeldshaper = GetItemLastEquippedBy(); break;
|
||||
|
||||
default:
|
||||
oMeldshaper = OBJECT_SELF;
|
||||
@@ -38,7 +49,7 @@ void main()
|
||||
AssignCommand(oMeldshaper, ClearAllActions(TRUE));
|
||||
SetLocalInt(oMeldshaper, "MeldshapeClass", CLASS_TYPE_INCARNATE);
|
||||
StartDynamicConversation("moi_meldshapecnv", oMeldshaper, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oMeldshaper);
|
||||
}
|
||||
}
|
||||
else if(nEvent == EVENT_ONPLAYEREQUIPITEM)
|
||||
{
|
||||
oMeldshaper = GetItemLastEquippedBy();
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
/*
|
||||
/*
|
||||
|
||||
moi_mld_necrowpn
|
||||
|
||||
20/1/20 by Stratovarius
|
||||
|
||||
Necrocarnum Weapon
|
||||
@@ -58,7 +61,7 @@ void main()
|
||||
effect eLink = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
|
||||
if (nEssentia) eLink = EffectLinkEffects(eLink, NecrocarnumWeapon(nEssentia));
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
DelayCommand(0.1f, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0));
|
||||
|
||||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_NECROCARNUM_WEAPON), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
Reference in New Issue
Block a user