Further file organization
Further file organization
This commit is contained in:
60
nwn/nwnprc/trunk/scripts/prc_ad_chosewep.nss
Normal file
60
nwn/nwnprc/trunk/scripts/prc_ad_chosewep.nss
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "prc_alterations"
|
||||
#include "prc_class_const"
|
||||
|
||||
void ChooseWeapon(object oPC, object oWeapon)
|
||||
{
|
||||
string sName = GetName(oWeapon);
|
||||
|
||||
SetLocalInt(oPC, "HAS_CHOSEN_WEAPON", 2);
|
||||
SetLocalInt(oWeapon, "CHOSEN_WEAPON", 2);
|
||||
SetLocalObject(oPC, "CHOSEN_WEAPON", oWeapon);
|
||||
if (GetPlotFlag(oWeapon) == FALSE)
|
||||
{
|
||||
SetLocalInt(oWeapon, "CHOSEN_WEAPON_PLOT", TRUE);
|
||||
SetPlotFlag(oWeapon, TRUE);
|
||||
}
|
||||
SendMessageToPC(oPC, "You have chosen "+sName+" to be your chosen weapon.");
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyVisualEffect(ITEM_VISUAL_HOLY), oWeapon, 0.0);
|
||||
|
||||
DelayCommand(0.1, ExecuteScript("prc_arcduel", oPC)); // reevaluate things so the weapon bonus is applied.
|
||||
}
|
||||
|
||||
void UnchooseWeapon(object oPC)
|
||||
{
|
||||
object oWeapon = GetLocalObject(oPC, "CHOSEN_WEAPON");
|
||||
string sName = GetName(oWeapon);
|
||||
|
||||
DeleteLocalInt(oWeapon, "CHOSEN_WEAPON");
|
||||
if (GetLocalInt(oWeapon, "CHOSEN_WEAPON_PLOT"))
|
||||
{
|
||||
DeleteLocalInt(oWeapon, "CHOSEN_WEAPON_PLOT");
|
||||
SetPlotFlag(oWeapon, FALSE);
|
||||
}
|
||||
SendMessageToPC(oPC, sName+" is no longer your chosen weapon.");
|
||||
RemoveSpecificProperty(oWeapon, ITEM_PROPERTY_VISUALEFFECT);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oWeapon = PRCGetSpellTargetObject();
|
||||
object oPC = OBJECT_SELF;
|
||||
int iChosen = GetLocalInt(oPC, "HAS_CHOSEN_WEAPON");
|
||||
|
||||
if (iChosen == 2)
|
||||
{
|
||||
if (oWeapon == GetLocalObject(oPC, "CHOSEN_WEAPON"))
|
||||
{
|
||||
SendMessageToPC(oPC, "That weapon is already your chosen weapon.");
|
||||
return;
|
||||
}
|
||||
|
||||
SendMessageToPC(oPC, "You begin to bond with the new weapon. It will be your chosen weapon in 20 turns.");
|
||||
DelayCommand(TurnsToSeconds(20)+0.0, UnchooseWeapon(oPC));
|
||||
DelayCommand(TurnsToSeconds(20)+0.1, ChooseWeapon(oPC, oWeapon));
|
||||
}
|
||||
else
|
||||
{
|
||||
ChooseWeapon(oPC, oWeapon);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user