#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); }