Aschbourne_PRC8/_module/nss/deity_onlevelup.nss

333 lines
14 KiB
Plaintext
Raw Normal View History

2024-06-14 10:48:20 -04:00
#include "deity_include"
void main()
{
object oPC=GetPCLevellingUp();
object oMod=GetModule();
// These statements control the allows for "normal" class leveling as per PHB
if (GetLocalInt(oMod,"Class_Required")==1) // Turn Class Alignment Requirements off with this switch
{
//integers to control normal class leveling
int iPaladinLevel=GetLocalInt(oPC,"PaladinLevel");
int iMonkLevel=GetLocalInt(oPC,"MonkLevel");
int iBarbarianLevel=GetLocalInt(oPC,"BarbarianLevel");
int iBardLevel=GetLocalInt(oPC,"BardLevel");
int iDruidLevel=GetLocalInt(oPC,"DruidLevel");
int iGoodEvil=GetAlignmentGoodEvil(oPC);
int iLawChaos=GetAlignmentLawChaos(oPC);
if (GetLevelByClass(CLASS_TYPE_PALADIN,oPC)>iPaladinLevel)
{
if (iGoodEvil==ALIGNMENT_GOOD&&iLawChaos==ALIGNMENT_LAWFUL)
{
SetLocalInt(oPC,"PaladinLevel",GetLevelByClass(CLASS_TYPE_PALADIN,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have the proper alignment as per the DnD Player's Handbook! Please ask a DM to adjust your alignmnet accordingly.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_MONK,oPC)>iMonkLevel)
{
if (iLawChaos==ALIGNMENT_LAWFUL)
{
SetLocalInt(oPC,"MonkLevel",GetLevelByClass(CLASS_TYPE_MONK,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have the proper alignment as per the DnD Player's Handbook! Please ask a DM to adjust your alignmnet accordingly.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_BARBARIAN,oPC)>iBarbarianLevel)
{
if (iLawChaos!=ALIGNMENT_LAWFUL)
{
SetLocalInt(oPC,"BarbarianLevel",GetLevelByClass(CLASS_TYPE_BARBARIAN,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have the proper alignment as per the DnD Player's Handbook! Please ask a DM to adjust your alignmnet accordingly.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_BARD,oPC)>iBardLevel)
{
if (iLawChaos!=ALIGNMENT_LAWFUL)
{
SetLocalInt(oPC,"BardLevel",GetLevelByClass(CLASS_TYPE_BARD,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have the proper alignment as per the DnD Player's Handbook! Please ask a DM to adjust your alignmnet accordingly.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_DRUID,oPC)>iDruidLevel)
{
if ((iLawChaos==ALIGNMENT_NEUTRAL)||(iGoodEvil==ALIGNMENT_NEUTRAL))
{
SetLocalInt(oPC,"DruidLevel",GetLevelByClass(CLASS_TYPE_DRUID,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have the proper alignment as per the DnD Player's Handbook! Please ask a DM to adjust your alignmnet accordingly.");
Reset_Level(oPC);
}
}
}
// These statements control the allows for cleric leveling based on the pantheon as used in Paramon
if (GetLocalInt(oMod,"Deity_Required")==1) // Turn Cleric Deity Requirements off with this switch
{
//variables to control cleric leveling
int iClericLevel=GetLocalInt(oPC,"ClericLevel");
string sDeity=GetDeity(oPC);
if (GetLevelByClass(CLASS_TYPE_CLERIC,oPC)>iClericLevel)
{
if ((sDeity=="Bahamut")||(sDeity=="Boccob")||(sDeity=="Corellon")||
(sDeity=="Ehlonna")||(sDeity=="Erythnul")||(sDeity=="Fharlanghn")||
(sDeity=="Garl Glittergold")||(sDeity=="Gruumsh")||(sDeity=="Heironeous")||
(sDeity=="Hextor")||(sDeity=="Kord")||(sDeity=="Lolth")||(sDeity=="Moradin")||
(sDeity=="Nerull")||(sDeity=="Obad-Hai")||(sDeity=="Olidammara")||(sDeity=="Pelor")||
(sDeity=="St. Cuthbert")||(sDeity=="Tiamat")||(sDeity=="Vecna")||(sDeity=="Wee Jas")||
(sDeity=="Yondalla")||(sDeity=="Vuldrick"))
SetLocalString(oPC,"Deity",sDeity);
{
Race_Check(oPC);
Align_Check(oPC);
Domain_Check(oPC);
int iRace = GetLocalInt(oPC,"Race");
int iAlign = GetLocalInt(oPC,"Align");
int iDomain = GetLocalInt(oPC,"Domain");
if ((iRace==1)&&(iAlign==1)&&(iDomain==1))
{
SetLocalInt(oPC,"ClericLevel",GetLevelByClass(CLASS_TYPE_CLERIC,oPC));
}
else
{
if (iRace!=1)
{
SendMessageToPC(oPC,"You are not an acceptable race for your deity!");
}
if (iAlign!=1)
{
SendMessageToPC(oPC,"You have fallen from the grace of your deity!");
}
if (iDomain!=1)
{
SendMessageToPC(oPC,"You do not have a proper domain for your deity!");
}
Reset_Level(oPC);
}
}
if (sDeity != "Bahamut" && sDeity != "Boccob" &&
sDeity != "Corellon" && sDeity != "Ehlonna" &&
sDeity != "Erythnul" &&sDeity != "Garl Glittergold" &&
sDeity != "Gruumsh" && sDeity != "Heironeous" &&
sDeity != "Hextor" && sDeity != "Kord" &&
sDeity != "Lolth" && sDeity != "Moradin" &&
sDeity != "Nerull" && sDeity != "Obad-Hai" &&
sDeity != "Olidammara" && sDeity != "Pelor" &&
sDeity != "St. Cuthbert" && sDeity != "Tiamat" &&
sDeity != "Vecna" && sDeity != "Wee Jas" &&
sDeity != "Yondalla" && (sDeity != "Vuldrick"))
{
SendMessageToPC(oPC,"The gods of this world will not allow a cleric of a god from another realm!");
Reset_Level(oPC);
}
}
}
// These statements control the allows for prestige class leveling
if (GetLocalInt(oMod,"Prestige_Allow")==1) // Turn Prestige Class Allowed Requirements off with this switch
{
//integers to control prestige class leveling and allows
int iArcaneArcherLevel=GetLocalInt(oPC,"ArcaneArcherLevel");
int iArcaneArcherAllow=GetLocalInt(oPC,"ArcaneArcherAllow");
int iAssassinLevel=GetLocalInt(oPC,"AssassinLevel");
int iAssassinAllow=GetLocalInt(oPC,"AssassinAllow");
int iBlackGuardLevel=GetLocalInt(oPC,"BlackGuardLevel");
int iBlackGuardAllow=GetLocalInt(oPC,"BlackGuardAllow");
int iDivineChampLevel=GetLocalInt(oPC,"DivineChampLevel");
int iDivineChampAllow=GetLocalInt(oPC,"DivineChampAllow");
int iDragonDiscipleLevel=GetLocalInt(oPC,"DragonDiscipleLevel");
int iDragonDiscipleAllow=GetLocalInt(oPC,"DragonDiscipleAllow");
int iDwarvenDefenderLevel=GetLocalInt(oPC,"DwarvenDefenderLevel");
int iDwarvenDefenderAllow=GetLocalInt(oPC,"DwarvenDefenderAllow");
int iHarperLevel=GetLocalInt(oPC,"HarperLevel");
int iHarperAllow=GetLocalInt(oPC,"HarperAllow");
int iPalemasterLevel=GetLocalInt(oPC,"PalemasterLevel");
int iPalemasterAllow=GetLocalInt(oPC,"PalemasterAllow");
int iShadowDancerLevel=GetLocalInt(oPC,"ShadowDancerLevel");
int iShadowDancerAllow=GetLocalInt(oPC,"ShadowDancerAllow");
int iShifterLevel=GetLocalInt(oPC,"ShifterLevel");
int iShifterAllow=GetLocalInt(oPC,"ShifterAllow");
int iWeaponMasterLevel=GetLocalInt(oPC,"WeaponMasterLevel");
int iWeaponMasterAllow=GetLocalInt(oPC,"WeaponMasterAllow");
if (GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER,oPC)>iArcaneArcherLevel)
{
if((GetItemPossessedBy(oPC, "ArcaneArcherStamp")!= OBJECT_INVALID)
||(GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER,oPC) >= 1)
||(iArcaneArcherAllow == 1))
{
SetLocalInt(oPC,"ArcaneArcherLevel",GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_ASSASSIN,oPC)>iAssassinLevel)
{
if ((GetItemPossessedBy(oPC, "AssassinStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_ASSASSIN,oPC) >= 1)
||(iAssassinAllow == 1))
{
SetLocalInt(oPC,"AssassinLevel",GetLevelByClass(CLASS_TYPE_ASSASSIN,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_BLACKGUARD,oPC)>iBlackGuardLevel)
{
if ((GetItemPossessedBy(oPC, "BlackGuardStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_BLACKGUARD,oPC) >= 1)
||(iBlackGuardAllow == 1))
{
SetLocalInt(oPC,"BlackGuardLevel",GetLevelByClass(CLASS_TYPE_BLACKGUARD,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_DIVINECHAMPION,oPC)>iDivineChampLevel)
{
if ((GetItemPossessedBy(oPC, "DivineChampionStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_DIVINECHAMPION,oPC) >= 1)
||(iDivineChampAllow == 1))
{
SetLocalInt(oPC,"DivineChampLevel",GetLevelByClass(CLASS_TYPE_DIVINECHAMPION,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE,oPC)>iDragonDiscipleLevel)
{
if ((GetItemPossessedBy(oPC, "DragonDiscipleStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE,oPC) >= 1)
||(iDragonDiscipleAllow == 1))
{
SetLocalInt(oPC,"DragonDiscipleLevel",GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER,oPC)>iDwarvenDefenderLevel)
{
if ((GetItemPossessedBy(oPC, "DwarvenDefenderStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER,oPC) >= 1)
||(iDwarvenDefenderAllow == 1))
{
SetLocalInt(oPC,"DwarvenDefenderLevel",GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_HARPER,oPC)>iHarperLevel)
{
if ((GetItemPossessedBy(oPC, "HarperStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_HARPER,oPC) >= 1)
||(iHarperAllow == 1))
{
SetLocalInt(oPC,"HarperLevel",GetLevelByClass(CLASS_TYPE_HARPER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_PALEMASTER,oPC)>iPalemasterLevel)
{
if ((GetItemPossessedBy(oPC, "PalemasterStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_PALEMASTER,oPC) >= 1)
||(iPalemasterAllow == 1))
{
SetLocalInt(oPC,"PalemasterLevel",GetLevelByClass(CLASS_TYPE_PALEMASTER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_SHADOWDANCER,oPC)>iShadowDancerLevel)
{
if ((GetItemPossessedBy(oPC, "ShadowDancerStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_SHADOWDANCER,oPC) >= 1)
||(iShadowDancerAllow == 1))
{
SetLocalInt(oPC,"ShadowDancerLevel",GetLevelByClass(CLASS_TYPE_SHADOWDANCER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_SHIFTER,oPC)>iShifterLevel)
{
if ((GetItemPossessedBy(oPC, "ShifterStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_SHIFTER,oPC) >= 1)
||(iShifterAllow == 1))
{
SetLocalInt(oPC,"ShifterLevel",GetLevelByClass(CLASS_TYPE_SHIFTER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
if (GetLevelByClass(CLASS_TYPE_WEAPON_MASTER,oPC)>iWeaponMasterLevel)
{
if ((GetItemPossessedBy(oPC, "WeaponMasterStamp")!= OBJECT_INVALID)
|| (GetLevelByClass(CLASS_TYPE_WEAPON_MASTER,oPC) >= 1)
||(iWeaponMasterAllow == 1))
{
SetLocalInt(oPC,"WeaponMasterLevel",GetLevelByClass(CLASS_TYPE_WEAPON_MASTER,oPC));
}
else
{
SendMessageToPC(oPC,"You do not have permission to take on that class. Please ask a DM how to go about taking on Prestige Classes.");
Reset_Level(oPC);
}
}
}
ExportSingleCharacter(oPC);
}