Updating scripts for PRC.

Updating scripts for PRC.
This commit is contained in:
Jaysyn904 2022-10-07 21:14:47 -04:00
parent 8d97886c3f
commit 55766b63b5
11 changed files with 187 additions and 164 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.mod
*.mod

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,22 +1,29 @@
#include "prc_class_const"
location lTarget; location lTarget;
object oTarget; object oTarget;
//Put this script OnEnter //Put this script OnEnter
void main() void main()
{ {
object oPC = GetEnteringObject();
object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return;
if (!GetIsPC(oPC)) return; int nClass;
nClass = GetLevelByClass(CLASS_TYPE_CLERIC, oPC)
+GetLevelByClass(CLASS_TYPE_FAVOURED_SOUL, oPC)
+GetLevelByClass(CLASS_TYPE_HEALER, oPC)
+GetLevelByClass(CLASS_TYPE_SHAMAN, oPC)
+GetLevelByClass(CLASS_TYPE_ARCHIVIST, oPC);
if ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC)>10)) if (nClass > 10)
{ {
if (GetIsSkillSuccessful(oPC, SKILL_CONCENTRATION, 80)) if (GetIsSkillSuccessful (oPC, SKILL_CONCENTRATION, 80))
{ {
oTarget = GetWaypointByTag("mudslide"); oTarget = GetWaypointByTag("mudslide");
lTarget = GetLocation(oTarget); lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return; if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;

View File

@ -1,140 +1,151 @@
#include "x2_inc_switches" #include "x2_inc_switches"
#include "prc_class_const"
void main() void main()
{ {
object oPC = GetPCItemLastEquippedBy();
object oItem = GetPCItemLastEquipped();
object oPC = GetPCItemLastEquippedBy(); if (!GetIsPC(oPC)) return;
object oItem; //:: If they have the spell Clarity On take off the crown.
oItem = GetPCItemLastEquipped(); if (GetHasSpellEffect(SPELL_CLARITY)== TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
if (!GetIsPC(oPC)) return; //:: Classes with Immunity to Mind Effects take off the crown and stop script.
if ((GetLevelByClass(CLASS_TYPE_MONK, oPC) > 19 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BINDER, oPC) > 18 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BAELNORN, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_LICH, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_PLANT, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_UNDEAD, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BLIGHTLORD, oPC) > 9 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC) > 19 == TRUE))
//If they have the spell Clarity On take off the crown. {
if (GetHasSpellEffect(SPELL_CLARITY)== TRUE) AssignCommand(oPC, ClearAllActions());
{ AssignCommand(oPC, ActionUnequipItem(oItem));
AssignCommand(oPC, ClearAllActions()); FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
AssignCommand(oPC, ActionUnequipItem(oItem)); return;
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC); }
return;
} //:: If they have mind immunity take off the crown and stop script.
//if they are a monk take off the crown and stop script. if (GetIsImmune(oPC, IMMUNITY_TYPE_MIND_SPELLS)== TRUE)
if (GetLevelByClass(CLASS_TYPE_MONK, oPC) >0 == TRUE) {
{ AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, ActionUnequipItem(oItem));
AssignCommand(oPC, ActionUnequipItem(oItem)); FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC); return;
return; }
}
//if they have mind immunity take off the crown and stop script. object oTarget = oPC;
if (GetIsImmune(oPC, IMMUNITY_TYPE_MIND_SPELLS)== TRUE)
{ if (GetItemPossessedBy(oPC, "secret2")== OBJECT_INVALID)
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
object oTarget;
oTarget = oPC;
if (GetItemPossessedBy(oPC, "secret2")== OBJECT_INVALID)
{ {
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectConfused(), oTarget); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectConfused(), oTarget);
} }
effect eEffect;
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_POSITIVE);
eEffect = SupernaturalEffect(eEffect); effect eEffect;
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_POSITIVE);
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_NEGATIVE); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_NEGATIVE);
eEffect = EffectRegenerate(65, 6.0f); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectRegenerate(65, 6.0f);
eEffect = EffectACIncrease(40); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectACIncrease(40);
eEffect = EffectAttackIncrease(20); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectAttackIncrease(20);
eEffect = EffectTemporaryHitpoints(300); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectTemporaryHitpoints(300);
eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY);
eEffect = EffectConcealment(60); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectConcealment(60);
eEffect = EffectSpellResistanceIncrease(50); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectSpellResistanceIncrease(50);
eEffect = EffectSavingThrowIncrease(SAVING_THROW_ALL, 12, SAVING_THROW_TYPE_ALL); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectSavingThrowIncrease(SAVING_THROW_ALL, 12, SAVING_THROW_TYPE_ALL);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 90); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 90);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 90); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 90);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 90); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 90);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 90); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 90);
eEffect = EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT);
eEffect = EffectTrueSeeing(); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectTrueSeeing();
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
} }

View File

@ -1,18 +1,19 @@
//Created by Genisys / Guile 5/20/08 //Created by Genisys / Guile 5/20/08
#include "x2_inc_switches" #include "x2_inc_switches"
void main() #include "prc_class_const"
{
object oPC;
oPC = GetPCItemLastEquippedBy();
object ranger = oPC;
object oItem;
int nSlot;
int a =GetLevelByClass(CLASS_TYPE_RANGER, ranger);
//If not level 21 ranger unequip it! void main()
if(a<=20) {
{ object oPC = GetPCItemLastEquippedBy();
//Tell the PC why they can't equip it.. object oItem;
int nSlot;
int nRanger = GetLevelByClass(CLASS_TYPE_RANGER, oPC);
//:: If not level 21 ranger unequip it!
if(nRanger <= 20)
{
//:: Tell the PC why they can't equip it..
FloatingTextStringOnCreature("You must be at least a level 21 ranger to use this item!", oPC, FALSE); FloatingTextStringOnCreature("You must be at least a level 21 ranger to use this item!", oPC, FALSE);
for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++) for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++)
@ -21,17 +22,17 @@ if(a<=20)
if (GetIsObjectValid(oItem)) if (GetIsObjectValid(oItem))
{ {
//Unequip all item tag named "artifact" //: Unequip all item tag named "artifact"
if(GetTag(oItem) == "ranger") if(GetTag(oItem) == "ranger")
{ {
AssignCommand(oPC, ActionUnequipItem(oItem)); AssignCommand(oPC, ActionUnequipItem(oItem));
} }
else else
{ } {
FloatingTextStringOnCreature("You feel the power of nature flowing through you!", oPC, FALSE);
}
}
} }
} }
} }
//End Script
}

View File

@ -1,30 +1,31 @@
#include "x2_inc_switches" #include "x2_inc_switches"
void main() void main()
{ {
int nEvent =GetUserDefinedItemEventNumber(); int nEvent = GetUserDefinedItemEventNumber();
switch (nEvent)
switch (nEvent)
{ {
case X2_ITEM_EVENT_ACTIVATE: case X2_ITEM_EVENT_ACTIVATE:
ExecuteScript("ac_"+GetTag(GetItemActivated()), ExecuteScript("ac_"+GetTag(GetItemActivated()), OBJECT_SELF); break;
OBJECT_SELF); break;
case X2_ITEM_EVENT_EQUIP: case X2_ITEM_EVENT_EQUIP:
ExecuteScript("eq_"+GetTag(GetPCItemLastEquipped()), ExecuteScript("eq_"+GetTag(GetPCItemLastEquipped()), OBJECT_SELF); break;
OBJECT_SELF); break;
case X2_ITEM_EVENT_UNEQUIP: case X2_ITEM_EVENT_UNEQUIP:
ExecuteScript("ue_"+GetTag(GetPCItemLastUnequipped()) ExecuteScript("ue_"+GetTag(GetPCItemLastUnequipped()), OBJECT_SELF); break;
, OBJECT_SELF); break;
case X2_ITEM_EVENT_ACQUIRE: case X2_ITEM_EVENT_ACQUIRE:
ExecuteScript("aq_"+GetTag(GetModuleItemAcquired()), ExecuteScript("aq_"+GetTag(GetModuleItemAcquired()), OBJECT_SELF); break;
OBJECT_SELF); break;
case X2_ITEM_EVENT_UNACQUIRE: case X2_ITEM_EVENT_UNACQUIRE:
ExecuteScript("ua_"+GetTag(GetModuleItemLost()), ExecuteScript("ua_"+GetTag(GetModuleItemLost()), OBJECT_SELF); break;
OBJECT_SELF); break;
case X2_ITEM_EVENT_SPELLCAST_AT: case X2_ITEM_EVENT_SPELLCAST_AT:
ExecuteScript("sp_"+GetTag(GetModuleItemLost()), ExecuteScript("sp_"+GetTag(GetModuleItemLost()), OBJECT_SELF); break;
OBJECT_SELF); break;
case X2_ITEM_EVENT_ONHITCAST: case X2_ITEM_EVENT_ONHITCAST:
ExecuteScript("on_"+GetTag(GetSpellCastItem()), ExecuteScript("on_"+GetTag(GetSpellCastItem()), OBJECT_SELF); break;
OBJECT_SELF); break;
} }
} }

Binary file not shown.