Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,171 +0,0 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Domain Subradial Casting Conversation
|
||||
//:: prc_domain_conv
|
||||
//:://////////////////////////////////////////////
|
||||
/** @file
|
||||
This allows you to choose which subradial spell to use
|
||||
|
||||
|
||||
@author Stratovarius
|
||||
@date Created - 29.10.2005
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "inc_newspellbook"
|
||||
#include "prc_inc_domain"
|
||||
#include "inc_dynconv"
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constant defintions */
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
const int STAGE_SPELL_CHOICE = 0;
|
||||
const int STAGE_CONFIRMATION = 1;
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Aid functions */
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Main function */
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
/* Get the value of the local variable set by the conversation script calling
|
||||
* this script. Values:
|
||||
* DYNCONV_ABORTED Conversation aborted
|
||||
* DYNCONV_EXITED Conversation exited via the exit node
|
||||
* DYNCONV_SETUP_STAGE System's reply turn
|
||||
* 0 Error - something else called the script
|
||||
* Other The user made a choice
|
||||
*/
|
||||
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
|
||||
// The stage is used to determine the active conversation node.
|
||||
// 0 is the entry node.
|
||||
int nStage = GetStage(oPC);
|
||||
|
||||
// Check which of the conversation scripts called the scripts
|
||||
if(nValue == 0) // All of them set the DynConv_Var to non-zero value, so something is wrong -> abort
|
||||
return;
|
||||
|
||||
if(nValue == DYNCONV_SETUP_STAGE)
|
||||
{
|
||||
// Check if this stage is marked as already set up
|
||||
// This stops list duplication when scrolling
|
||||
if(!GetIsStageSetUp(nStage, oPC))
|
||||
{
|
||||
// variable named nStage determines the current conversation node
|
||||
// Function SetHeader to set the text displayed to the PC
|
||||
// Function AddChoice to add a response option for the PC. The responses are show in order added
|
||||
if(nStage == STAGE_SPELL_CHOICE)
|
||||
{
|
||||
// Set the header
|
||||
SetHeader("Select the subradial option you would like to cast.");
|
||||
|
||||
// Add responses for the PC
|
||||
// Get the subradial options, add them
|
||||
int nSpellID = GetLocalInt(oPC, "DomainOrigSpell");
|
||||
int nSubId1 = StringToInt(Get2DACache("spells", "SubRadSpell1", nSpellID));
|
||||
int nSubId2 = StringToInt(Get2DACache("spells", "SubRadSpell2", nSpellID));
|
||||
int nSubId3 = StringToInt(Get2DACache("spells", "SubRadSpell3", nSpellID));
|
||||
int nSubId4 = StringToInt(Get2DACache("spells", "SubRadSpell4", nSpellID));
|
||||
int nSubId5 = StringToInt(Get2DACache("spells", "SubRadSpell5", nSpellID));
|
||||
|
||||
// All subradials are greater than 0
|
||||
if(nSubId1) AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSubId1))), nSubId1, oPC);
|
||||
if(nSubId2) AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSubId2))), nSubId2, oPC);
|
||||
if(nSubId3) AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSubId3))), nSubId3, oPC);
|
||||
if(nSubId4) AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSubId4))), nSubId4, oPC);
|
||||
if(nSubId5) AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nSubId5))), nSubId5, oPC);
|
||||
|
||||
MarkStageSetUp(STAGE_SPELL_CHOICE, oPC); // This prevents the setup being run for this stage again until MarkStageNotSetUp is called for it
|
||||
SetDefaultTokens(); // Set the next, previous, exit and wait tokens to default values
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)//confirmation
|
||||
{
|
||||
int nChoice = GetLocalInt(oPC, "DomainSubChoice");
|
||||
AddChoice(GetStringByStrRef(4752), TRUE); // "Yes"
|
||||
AddChoice(GetStringByStrRef(4753), FALSE); // "No"
|
||||
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nChoice)));
|
||||
string sText = "You have selected " + sName + " as the subradial to cast.\n";
|
||||
sText += "Is this correct?";
|
||||
|
||||
SetHeader(sText);
|
||||
MarkStageSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
// Do token setup
|
||||
SetupTokens();
|
||||
}
|
||||
// Abort conversation cleanup.
|
||||
// End of conversation cleanup
|
||||
else if(nValue == DYNCONV_ABORTED
|
||||
|| nValue == DYNCONV_EXITED)
|
||||
{
|
||||
// End of conversation cleanup
|
||||
DeleteLocalInt(oPC, "DomainOrigSpell");
|
||||
DeleteLocalInt(oPC, "DomainSubChoice");
|
||||
DeleteLocalInt(oPC, "DomainCastClass");
|
||||
DeleteLocalInt(oPC, "RunscarredLevel");
|
||||
DeleteLocalObject(oPC, "DomainTarget");
|
||||
DeleteLocalLocation(oPC, "DomainTarget");
|
||||
}
|
||||
// Handle PC responses
|
||||
else
|
||||
{
|
||||
// variable named nChoice is the value of the player's choice as stored when building the choice list
|
||||
// variable named nStage determines the current conversation node
|
||||
int nChoice = GetChoice(oPC);
|
||||
if(nStage == STAGE_SPELL_CHOICE)
|
||||
{
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
SetLocalInt(oPC, "DomainSubChoice", nChoice);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)//confirmation
|
||||
{
|
||||
if(nChoice)
|
||||
{
|
||||
// Get the choice
|
||||
int nSub = GetLocalInt(oPC, "DomainSubChoice");
|
||||
int nRunscarred = GetLocalInt(oPC, "RunscarredLevel");
|
||||
object oTarget = GetLocalObject(oPC, "DomainTarget");
|
||||
|
||||
if(nRunscarred)
|
||||
{
|
||||
oTarget = oPC;
|
||||
int nSpellLevel = GetLocalInt(oPC, "Runescar_spell_level_"+IntToString(GetLocalInt(oPC, "DomainOrigSpell")));
|
||||
int nDC = 10 + nSpellLevel + GetAbilityModifier(ABILITY_WISDOM, oPC);
|
||||
ActionCastSpell(nSub, nRunscarred, nDC, 0, METAMAGIC_NONE, CLASS_TYPE_RUNESCARRED, FALSE, FALSE, OBJECT_INVALID, FALSE);
|
||||
}
|
||||
else if(TestSpellTarget(oPC, oTarget, nSub))
|
||||
{
|
||||
int nClass = GetLocalInt(oPC, "DomainCastClass");
|
||||
int nDC = 10 + GetLocalInt(oPC, "DomainCast") + GetDCAbilityModForClass(nClass, oPC);
|
||||
ActionCastSpell(nSub, 0, nDC, 0, METAMAGIC_NONE, nClass, FALSE, FALSE, OBJECT_INVALID, FALSE);
|
||||
}
|
||||
ActionDoCommand(DeleteLocalInt(oPC, "DomainCast"));
|
||||
|
||||
// And we're all done
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
else // Reset
|
||||
{
|
||||
nStage = STAGE_SPELL_CHOICE;
|
||||
MarkStageNotSetUp(STAGE_SPELL_CHOICE, oPC);
|
||||
MarkStageNotSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
|
||||
DeleteLocalInt(oPC, "DomainSubChoice");
|
||||
}
|
||||
|
||||
// Store the stage value. If it has been changed, this clears out the choices
|
||||
SetStage(nStage, oPC);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user