PoA_PRC8/_module/nss/rd_level.nss
Jaysyn904 c929e2ff75 Made sure Halloween skeletons are equipping their weapon
Made sure Halloween skeletons are equipping their weapon.  Cleaned extra script calls in NPC AI.  Full compile.  Updated release archive.
2024-10-28 16:42:06 -04:00

175 lines
5.8 KiB
Plaintext

#include "prc_inc_util"
int LevelMob(object oCreature, int iLevels);
int GetPackage(int iClass);
void ActionDoLevelUp(object oCreature, int iLevels);
void ActionDoLevelUp(object oCreature, int iLevels)
{
LevelMob(oCreature, iLevels);
}
int LevelMob(object oCreature, int iLevels)
{
int iNewLevel;
int iIndex;
int iClass;
int iPackage;
if (GetClassByPosition(2,oCreature) == CLASS_TYPE_INVALID)
{
iClass = GetClassByPosition(1,oCreature);
iPackage =PACKAGE_INVALID;
} else {
iClass = CLASS_TYPE_INVALID;
iPackage =PACKAGE_INVALID;
}
iIndex = 1;
while (iIndex <= iLevels)
{
iNewLevel=LevelUpHenchman(oCreature,iClass,TRUE,iPackage);
iIndex++;
}
//Force Rest to mem spells
PRCForceRest(oCreature);
//Give more treasure to be lvl appropriate
//rem this out cuz too much code is running and getting error
//CTG_GenerateNPCTreasure(TREASURE_TYPE_MONSTER, oCreature);
return iNewLevel;
}
//Setup Random Packages, note that Wizards won't get random packages
//so that specific wizard types can be used. Example: Necromancer.
int GetPackage(int iClass)
{
int iPackage;
int iRandom;
iPackage = PACKAGE_INVALID;
switch (iClass)
{
case CLASS_TYPE_SORCERER:
iRandom=Random(10)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_SORCERER; break;
case 2: iPackage = PACKAGE_SORCERER_ABJURATION; break;
case 3: iPackage = PACKAGE_SORCERER_CONJURATION; break;
case 4: iPackage = PACKAGE_SORCERER_DIVINATION; break;
case 5: iPackage = PACKAGE_SORCERER_DRAGONDISCIPLE; break;
case 6: iPackage = PACKAGE_SORCERER_ENCHANTMENT; break;
case 7: iPackage = PACKAGE_SORCERER_EVOCATION; break;
case 8: iPackage = PACKAGE_SORCERER_ILLUSION; break;
case 9: iPackage = PACKAGE_SORCERER_NECROMANCY; break;
case 10: iPackage = PACKAGE_SORCERER_TRANSMUTATION; break;
}
break;
case CLASS_TYPE_CLERIC:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_CLERIC; break;
case 2: iPackage = PACKAGE_CLERIC_BATTLE_PRIEST; break;
case 3: iPackage = PACKAGE_CLERIC_DEADWALKER; break;
case 4: iPackage = PACKAGE_CLERIC_DIVINE; break;
case 5: iPackage = PACKAGE_CLERIC_ELEMENTALIST; break;
case 6: iPackage = PACKAGE_CLERIC_SHAMAN; break;
}
break;
case CLASS_TYPE_DRUID:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_DRUID; break;
case 2: iPackage = PACKAGE_DRUID_DEATH; break;
case 3: iPackage = PACKAGE_DRUID_GRAY; break;
case 4: iPackage = PACKAGE_DRUID_HAWKMASTER; break;
case 5: iPackage = PACKAGE_DRUID_INTERLOPER; break;
case 6: iPackage = PACKAGE_DRUID_SHIFTER; break;
}
break;
case CLASS_TYPE_BARD:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_BARD; break;
case 2: iPackage = PACKAGE_BARD_BLADE; break;
case 3: iPackage = PACKAGE_BARD_GALLANT; break;
case 4: iPackage = PACKAGE_BARD_HARPER; break;
case 5: iPackage = PACKAGE_BARD_JESTER; break;
case 6: iPackage = PACKAGE_BARD_LOREMASTER; break;
}
break;
case CLASS_TYPE_BARBARIAN:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_BARBARIAN; break;
case 2: iPackage = PACKAGE_BARBARIAN_BLACKGUARD; break;
case 3: iPackage = PACKAGE_BARBARIAN_BRUTE; break;
case 4: iPackage = PACKAGE_BARBARIAN_ORCBLOOD; break;
case 5: iPackage = PACKAGE_BARBARIAN_SAVAGE; break;
case 6: iPackage = PACKAGE_BARBARIAN_SLAYER; break;
}
break;
case CLASS_TYPE_FIGHTER:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_FIGHTER; break;
case 2: iPackage = PACKAGE_FIGHTER_COMMANDER; break;
case 3: iPackage = PACKAGE_FIGHTER_FINESSE; break;
case 4: iPackage = PACKAGE_FIGHTER_GLADIATOR; break;
case 5: iPackage = PACKAGE_FIGHTER_PIRATE; break;
case 6: iPackage = PACKAGE_FIGHTER_WEAPONMASTER; break;
}
break;
case CLASS_TYPE_MONK:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_MONK; break;
case 2: iPackage = PACKAGE_MONK_ASSASSIN; break;
case 3: iPackage = PACKAGE_MONK_DEVOUT; break;
case 4: iPackage = PACKAGE_MONK_GIFTED; break;
case 5: iPackage = PACKAGE_MONK_PEASANT; break;
case 6: iPackage = PACKAGE_MONK_SPIRIT; break;
}
break;
case CLASS_TYPE_RANGER:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_RANGER; break;
case 2: iPackage = PACKAGE_RANGER_ARCANEARCHER; break;
case 3: iPackage = PACKAGE_RANGER_GIANTKILLER; break;
case 4: iPackage = PACKAGE_RANGER_MARKSMAN; break;
case 5: iPackage = PACKAGE_RANGER_STALKER; break;
case 6: iPackage = PACKAGE_RANGER_WARDEN; break;
}
break;
case CLASS_TYPE_ROGUE:
iRandom=Random(6)+1;
switch (iRandom)
{
case 1: iPackage = PACKAGE_ROGUE; break;
case 2: iPackage = PACKAGE_ROGUE_BANDIT; break;
case 3: iPackage = PACKAGE_ROGUE_GYPSY; break;
case 4: iPackage = PACKAGE_ROGUE_SCOUT; break;
case 5: iPackage = PACKAGE_ROGUE_SHADOWDANCER; break;
case 6: iPackage = PACKAGE_ROGUE_SWASHBUCKLER; break;
}
break;
}
return iPackage;
}
//:: void main (){}