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,33 +1,40 @@
#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 (nClass > 10)
{
if (GetIsSkillSuccessful (oPC, SKILL_CONCENTRATION, 80))
{
oTarget = GetWaypointByTag("mudslide");
lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionJumpToLocation(lTarget));
DelayCommand(1.0, FloatingTextStringOnCreature("You found a magical entrance to a small cave!", oPC));
if ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC)>10)) }
{ }
if (GetIsSkillSuccessful(oPC, SKILL_CONCENTRATION, 80))
{
oTarget = GetWaypointByTag("mudslide");
lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionJumpToLocation(lTarget));
DelayCommand(1.0, FloatingTextStringOnCreature("You found a magical entrance to a small cave!", oPC));
}
}
} }

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 are a monk take off the crown and stop script.
if (GetLevelByClass(CLASS_TYPE_MONK, oPC) >0 == TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
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 (GetIsImmune(oPC, IMMUNITY_TYPE_MIND_SPELLS)== TRUE)
{
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);
}
effect eEffect;
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_POSITIVE);
eEffect = SupernaturalEffect(eEffect); //:: If they have mind immunity take off the crown and stop script.
if (GetIsImmune(oPC, IMMUNITY_TYPE_MIND_SPELLS)== TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); object oTarget = oPC;
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_NEGATIVE); if (GetItemPossessedBy(oPC, "secret2")== OBJECT_INVALID)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectConfused(), oTarget);
}
eEffect = SupernaturalEffect(eEffect); effect eEffect;
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_POSITIVE);
eEffect = EffectRegenerate(65, 6.0f); 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 = EffectACIncrease(40); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectRegenerate(65, 6.0f);
eEffect = EffectAttackIncrease(20); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectACIncrease(40);
eEffect = EffectTemporaryHitpoints(300); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectAttackIncrease(20);
eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectTemporaryHitpoints(300);
eEffect = EffectConcealment(60); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY);
eEffect = EffectSpellResistanceIncrease(50); eEffect = SupernaturalEffect(eEffect);
eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); eEffect = EffectConcealment(60);
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 = EffectSpellResistanceIncrease(50);
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 = EffectSavingThrowIncrease(SAVING_THROW_ALL, 12, SAVING_THROW_TYPE_ALL);
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_BLUDGEONING, 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_PIERCING, 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_SLASHING, 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 = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 90);
eEffect = EffectTrueSeeing(); 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 = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectTrueSeeing();
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
} }

View File

@ -1,37 +1,38 @@
//Created by Genisys / Guile 5/20/08 //Created by Genisys / Guile 5/20/08
#include "x2_inc_switches" #include "x2_inc_switches"
#include "prc_class_const"
void main() void main()
{ {
object oPC; object oPC = GetPCItemLastEquippedBy();
oPC = GetPCItemLastEquippedBy(); object oItem;
object ranger = oPC;
object oItem;
int nSlot;
int a =GetLevelByClass(CLASS_TYPE_RANGER, ranger);
//If not level 21 ranger unequip it! int nSlot;
if(a<=20) int nRanger = GetLevelByClass(CLASS_TYPE_RANGER, oPC);
{
//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);
for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++) //:: If not level 21 ranger unequip it!
{ if(nRanger <= 20)
oItem=GetItemInSlot(nSlot, oPC); {
//:: 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);
if (GetIsObjectValid(oItem)) for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++)
{ {
//Unequip all item tag named "artifact" oItem=GetItemInSlot(nSlot, oPC);
if(GetTag(oItem) == "ranger")
{
AssignCommand(oPC, ActionUnequipItem(oItem));
} if (GetIsObjectValid(oItem))
{
//: Unequip all item tag named "artifact"
if(GetTag(oItem) == "ranger")
{
AssignCommand(oPC, ActionUnequipItem(oItem));
}
else
{
FloatingTextStringOnCreature("You feel the power of nature flowing through you!", oPC, FALSE);
}
else }
{ } }
} }
}
}
//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)
{
case X2_ITEM_EVENT_ACTIVATE:
ExecuteScript("ac_"+GetTag(GetItemActivated()),
OBJECT_SELF); break;
case X2_ITEM_EVENT_EQUIP:
ExecuteScript("eq_"+GetTag(GetPCItemLastEquipped()),
OBJECT_SELF); break;
case X2_ITEM_EVENT_UNEQUIP:
ExecuteScript("ue_"+GetTag(GetPCItemLastUnequipped())
, OBJECT_SELF); break;
case X2_ITEM_EVENT_ACQUIRE:
ExecuteScript("aq_"+GetTag(GetModuleItemAcquired()),
OBJECT_SELF); break;
case X2_ITEM_EVENT_UNACQUIRE:
ExecuteScript("ua_"+GetTag(GetModuleItemLost()),
OBJECT_SELF); break;
case X2_ITEM_EVENT_SPELLCAST_AT:
ExecuteScript("sp_"+GetTag(GetModuleItemLost()),
OBJECT_SELF); break;
case X2_ITEM_EVENT_ONHITCAST:
ExecuteScript("on_"+GetTag(GetSpellCastItem()),
OBJECT_SELF); break;
}
}
switch (nEvent)
{
case X2_ITEM_EVENT_ACTIVATE:
ExecuteScript("ac_"+GetTag(GetItemActivated()), OBJECT_SELF); break;
case X2_ITEM_EVENT_EQUIP:
ExecuteScript("eq_"+GetTag(GetPCItemLastEquipped()), OBJECT_SELF); break;
case X2_ITEM_EVENT_UNEQUIP:
ExecuteScript("ue_"+GetTag(GetPCItemLastUnequipped()), OBJECT_SELF); break;
case X2_ITEM_EVENT_ACQUIRE:
ExecuteScript("aq_"+GetTag(GetModuleItemAcquired()), OBJECT_SELF); break;
case X2_ITEM_EVENT_UNACQUIRE:
ExecuteScript("ua_"+GetTag(GetModuleItemLost()), OBJECT_SELF); break;
case X2_ITEM_EVENT_SPELLCAST_AT:
ExecuteScript("sp_"+GetTag(GetModuleItemLost()), OBJECT_SELF); break;
case X2_ITEM_EVENT_ONHITCAST:
ExecuteScript("on_"+GetTag(GetSpellCastItem()), OBJECT_SELF); break;
}
}

Binary file not shown.