Changed folder name.
Changed folder name.
This commit is contained in:
101
_module/nss/gc_add_save.nss
Normal file
101
_module/nss/gc_add_save.nss
Normal file
@@ -0,0 +1,101 @@
|
||||
//Script Name: gc_add_save
|
||||
//////////////////////////////////////////
|
||||
//Created By: Genisys (Guile)
|
||||
//Created On: 8/30/08
|
||||
/////////////////////////////////////////
|
||||
/*
|
||||
This script goes in the ActionTaken
|
||||
Event of a Conversation line, it will
|
||||
Add AC to the item we are looking at
|
||||
which an item the PC possessoses has
|
||||
in it..
|
||||
*/
|
||||
////////////////////////////////////////
|
||||
#include "x2_inc_itemprop"
|
||||
|
||||
|
||||
//Main Script
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
int nSlot = GetLocalInt(oPC, "CRAFT_SLOT");
|
||||
object oCraft = GetItemInSlot(nSlot ,oPC);
|
||||
int nCost = GetLocalInt(oPC, "CRAFT_PAYMENT");
|
||||
effect eEffect;
|
||||
|
||||
if (!GetIsObjectValid(oCraft))
|
||||
{
|
||||
FloatingTextStringOnCreature("Your not wearing the item!!", oPC, FALSE);
|
||||
AssignCommand(oPC, ClearAllActions());
|
||||
return;
|
||||
}
|
||||
|
||||
if(GetGold(oPC)<nCost)
|
||||
{
|
||||
FloatingTextStringOnCreature("You do not have enough gold!", oPC, FALSE);
|
||||
AssignCommand(oPC, ClearAllActions()); //End the conversation!
|
||||
return;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
//Take the cost to craft..
|
||||
TakeGoldFromCreature(nCost, oPC, TRUE);
|
||||
eEffect = EffectVisualEffect(VFX_IMP_HOLY_AID);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC, 0.0f);
|
||||
FloatingTextStringOnCreature("Your item has been crafted.", oPC, FALSE);
|
||||
}
|
||||
|
||||
//Determine how much AC we are adding..
|
||||
int nType = GetLocalInt(oPC, "CRAFT_SAVE");
|
||||
int nBonus = GetLocalInt(oPC, "CRAFT_REGEN_TOTAL");
|
||||
|
||||
//What we are adding is AC
|
||||
itemproperty ipAddAC;
|
||||
|
||||
|
||||
if(nType != IP_CONST_SAVEVS_UNIVERSAL)
|
||||
{
|
||||
int nR;
|
||||
|
||||
if(nType == SAVING_THROW_FORT)
|
||||
nR = IP_CONST_SAVEBASETYPE_FORTITUDE;
|
||||
else if(nType == SAVING_THROW_REFLEX)
|
||||
nR = IP_CONST_SAVEBASETYPE_REFLEX;
|
||||
else if(nType == SAVING_THROW_WILL)
|
||||
nR = IP_CONST_SAVEBASETYPE_WILL;
|
||||
|
||||
ipAddAC = ItemPropertyBonusSavingThrow(nR, nBonus);
|
||||
|
||||
//If you want to remove the existing first...
|
||||
//IPRemoveMatchingItemProperties(oCraft, ITEM_PROPERTY_SAVING_THROW_BONUS, DURATION_TYPE_PERMANENT, nR);
|
||||
//IPRemoveMatchingItemProperties(oCraft, ITEM_PROPERTY_SAVING_THROW_BONUS, DURATION_TYPE_PERMANENT, -1);
|
||||
|
||||
//AddItemProperty(DURATION_TYPE_PERMANENT, ipAddAC, oCraft);
|
||||
|
||||
IPSafeAddItemProperty(oCraft, ipAddAC, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||
}
|
||||
|
||||
else if(nType == IP_CONST_SAVEVS_UNIVERSAL)
|
||||
{
|
||||
|
||||
ipAddAC = ItemPropertyBonusSavingThrowVsX(nType, nBonus);
|
||||
|
||||
//Disabled...
|
||||
//Remove ALL Fort / Reflex / Will Saves
|
||||
//IPRemoveMatchingItemProperties(oCraft, ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC, DURATION_TYPE_PERMANENT, -1);
|
||||
|
||||
//Remove ALL Universal Saves as well..
|
||||
//IPRemoveMatchingItemProperties(oCraft, ITEM_PROPERTY_SAVING_THROW_BONUS, DURATION_TYPE_PERMANENT, -1);
|
||||
|
||||
//Add the saving bonus, replacing all exact matching similar properties!
|
||||
IPSafeAddItemProperty(oCraft, ipAddAC, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//We don't want to delete this intergal because we can change it later..
|
||||
//DeleteLocalInt(oPC, "CRAFT_TYPE");
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user