PRC8_fork/trunk/newspellbook/true_truenamer.nss

56 lines
1.7 KiB
Plaintext
Raw Normal View History

/*
----------------
Truenamer Passives
true_truenamer
----------------
4/9/06 by Stratovarius
*/ /** @file
Gives him the +3 (or greater) Lore bonus at the appropriate levels.
*/
#include "true_inc_trufunc"
#include "inc_dynconv"
void main()
{
int nEvent = GetRunningEvent();
if(DEBUG) DoDebug("true_truenamer running, event: " + IntToString(nEvent));
// Get the PC. This is event-dependent
object oPC;
switch(nEvent)
{
case EVENT_ONPLAYERREST_FINISHED: oPC = GetLastBeingRested(); break;
default:
oPC = OBJECT_SELF;
}
object oSkin = GetPCSkin(oPC);
int nClass = GetLevelByClass(CLASS_TYPE_TRUENAMER, oPC);
int nLore;
// We aren't being called from any event, instead from EvalPRCFeats
if(nEvent == FALSE)
{
// Add eventhook to OnRestFinished to reset the used marker
AddEventScript(oPC, EVENT_ONPLAYERREST_FINISHED, "true_truenamer", FALSE, FALSE);
if (nClass >= 14) nLore = 12;
else if (nClass >= 10 && nClass < 14) nLore = 9;
else if (nClass >= 7 && nClass < 10) nLore = 6;
else if (nClass >= 2 && nClass < 7) nLore = 3;
SetCompositeBonus(oSkin, "TruenamerLore", nLore, ITEM_PROPERTY_SKILL_BONUS, SKILL_LORE);
}
else if(nEvent == EVENT_ONPLAYERREST_FINISHED)
{
if ((!GetPersistantLocalInt(oPC, "SilverTongueLesser") && GetGold(oPC) >= 2500) || (!GetPersistantLocalInt(oPC, "SilverTongueGreater") && GetGold(oPC) >= 10000))
{
AssignCommand(oPC, ClearAllActions(TRUE));
StartDynamicConversation("true_tru_silver", oPC, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oPC);
}
}
}