333 lines
14 KiB
Plaintext
333 lines
14 KiB
Plaintext
|
#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);
|
||
|
}
|