Files
Anphillia_PRC8/_module/nss/hc_inc_summon.nss
Jaysyn904 28cdb617b3 Initial commit
Adding all of the current content for Anphillia Unlimited.
2024-01-04 07:49:38 -05:00

224 lines
10 KiB
Plaintext

// hc_summon_inc - include file for Summon Creature I-IX spells
// Archaegeo, June 28, 2002
// Hardcore Ruleset
// HardCore Summons Table by Jaga Te'lesin
// To use, you must download and import HardCoreERFSU.zip from the
// HCR WWW page for the actual creature files. Then COMMENT OUT
// Line 19
string pick_creature(int nLevel)
{
int nRoll;
string sCreature="";
object oPC = OBJECT_SELF;
int iStringLength;
int iSummonAllow = FALSE;
// Comment the next line to use the summoned creatures tables
return "";
while (iSummonAllow == FALSE)
{
switch(nLevel) // Level of the Summon Creature spell
{
// This is all skipped right now due to the return "" above. remove that line
// when all of the creatures exist.
// Summon Creature I
case 1:
if ( (GetLocalInt(oPC,"hcsumcreat1") >0) && (GetLocalInt(oPC,"hcsumcreat1")<5) ) // to bypass uninitialized var (happened before !)
{
nRoll=GetLocalInt(oPC,"hcsumcreat1");
}
else nRoll=d4();
switch(nRoll)
{
case 1: sCreature="lg_sum_cel_dog"; break; //Celestial Dog+
case 2: sCreature="cg_sum_cel_badger"; break; //Celestial Badger+
case 3: sCreature="le_sum_fie_dir_rat"; break; //Fiendish Dire Rat+
case 4: sCreature="ce_sum_fiend_hawk"; break; //Fiendish Hawk+
}
break;
// Summon Creature II
case 2:
if ( (GetLocalInt(oPC,"hcsumcreat2") >0) && (GetLocalInt(oPC,"hcsumcreat2")<5) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat2");
}
else nRoll=Random(5)+1;
switch(nRoll)
{
case 1: sCreature="cg_sum_cel_eagle"; break; //Celestial Eagle+
case 2: sCreature="le_sum_lemure"; break; //Lemure+
case 3: sCreature="le_sum_fiend_wolf"; break; //Fiendish Wolf+
case 4: sCreature="lg_sum_cel_wolf"; break; //Celestial Wolf+
case 5: sCreature="ce_sum_fiend_hyena"; break; //Fiendish Hyena+
}
break;
// Summon Creature III
case 3:
if ( (GetLocalInt(oPC,"hcsumcreat3") >0) && (GetLocalInt(oPC,"hcsumcreat3")<9) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat3");
}
else nRoll=d8();
switch(nRoll)
{
case 1: sCreature="lg_sum_cel_blk_bear"; break; //Celestial Black Bear+
case 2: sCreature="cg_sum_cel_dir_badg"; break; //Celestial Dire Badger+
case 3: sCreature="ne_sum_fie_boar"; break; //Fiendish Boar+
case 4: sCreature="ce_sum_fie_leopard"; break; //Fiendish Leopard+
case 5: sCreature="nn_sum_sml_air_elem"; break; //Small Air Elemental+
case 6: sCreature="nn_sum_sml_ear_elem"; break; //Small Earth Elemental+
case 7: sCreature="nn_sum_sml_fir_elem"; break; //Small Fire Elemental+
case 8: sCreature="nn_sum_sml_wat_elem"; break; //Small Water Elemental+
}
break;
// Summon Creature IV
case 4:
if ( (GetLocalInt(oPC,"hcsumcreat4") >0) && (GetLocalInt(oPC,"hcsumcreat4")<5) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat4");
}
else nRoll=Random(5)+1;
switch(nRoll)
{
case 1: sCreature="lg_sum_lant_archon"; break; //Lantern Archon+
case 2: sCreature="cg_sum_cel_lion"; break; //Celestial Lion+
case 3: sCreature="le_sum_imp"; break; //Imp+
case 4: sCreature="le_sum_hell_hound"; break; //Hell Hound+
case 5: sCreature="ce_sum_howler"; break; // Howler
}
break;
// Summon Creature V
case 5:
if ( (GetLocalInt(oPC,"hcsumcreat5") >0) && (GetLocalInt(oPC,"hcsumcreat5")<19) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat5");
}
else nRoll=Random(18)+1;
switch(nRoll)
{
case 1: sCreature="lg_sum_cel_brn_bear"; break; //Celestial Brown Bear+
case 2: sCreature="lg_sum_hound_archon"; break; //Hound Archon+
case 3: sCreature="ne_sum_fie_dir_boar"; break; //Fiendish Dire Boar+
case 4: sCreature="ce_sum_fie_panther"; break; //Fiendish Panther+
case 5: sCreature="nn_sum_med_air_elem"; break; //Medium Air Elemental+
case 6: sCreature="nn_sum_med_ear_elem"; break; //Medium Earth Elemental+
case 7: sCreature="nn_sum_med_fir_elem"; break; //Medium Fire Elemental+
case 8: sCreature="nn_sum_med_wat_elem"; break; //Medium Water Elemental+
case 9: sCreature="nn_sum_air_mephit"; break; //Air Mephit+
case 10: sCreature="nn_sum_dust_mephit"; break; //Dust Mephit+
case 11: sCreature="nn_sum_earth_mephit"; break; //Earth Mephit+
case 12: sCreature="nn_sum_fire_mephit"; break; //Fire Mephit+
case 13: sCreature="nn_sum_ice_mephit"; break; //Ice Mephit+
case 14: sCreature="nn_sum_magma_mephit"; break; //Magma Mephit+
case 15: sCreature="nn_sum_ooze_mephit"; break; //Ooze Mephit+
case 16: sCreature="nn_sum_salt_mephit"; break; //Salt Mephi+
case 17: sCreature="nn_sum_steam_mephit"; break; //Steam Mephit+
case 18: sCreature="nn_sum_water_mephit"; break; //Water Mephit+
}
break;
// Summon Creature VI
case 6:
if ( (GetLocalInt(oPC,"hcsumcreat6") >0) && (GetLocalInt(oPC,"hcsumcreat6")<7) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat6");
}
else nRoll=d6();
switch(nRoll)
{
case 1: sCreature="lg_sum_cel_dir_bear"; break; //Celestial Dire Bear+
case 2: sCreature="cn_sum_red_slaad"; break; //Red Slaad+
case 3: sCreature="nn_sum_lrg_air_elem"; break; //Large Air Elemental+
case 4: sCreature="nn_sum_lrg_ear_elem"; break; //Large Earth Elemental+
case 5: sCreature="nn_sum_lrg_fir_elem"; break; //Large Fire Elemental+
case 6: sCreature="nn_sum_lrg_wat_elem"; break; //Large Water Elemental+
}
break;
// Summon Creature VII
case 7:
if ( (GetLocalInt(oPC,"hcsumcreat7") >0) && (GetLocalInt(oPC,"hcsumcreat7")<8) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat7");
}
else nRoll=Random(7)+1;
switch(nRoll)
{
case 1: sCreature="nn_sum_hug_air_elem"; break; //Huge Air Elemental+
case 2: sCreature="nn_sum_hug_ear_elem"; break; //Huge Earth Elemental+
case 3: sCreature="nn_sum_hug_fir_elem"; break; //Huge Fire Elemental+
case 4: sCreature="nn_sum_hug_wat_elem"; break; //Huge Water Elemental+
case 5: sCreature="nn_sum_invis_stalkr"; break; //Invisible Stalker+
case 6: sCreature="cn_sum_blue_slaad"; break; //Blue Slaad+
case 7: sCreature="ce_sum_fie_dir_tigr"; break; //Fiendish Dire Tiger+
}
break;
// Summon Creature VIII
case 8:
if ( (GetLocalInt(oPC,"hcsumcreat8") >0) && (GetLocalInt(oPC,"hcsumcreat8")<6) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat8");
}
else nRoll=Random(5)+1;
switch(nRoll)
{
case 1: sCreature="nn_sum_gre_air_elem"; break; //Greater Air Elemental+
case 2: sCreature="nn_sum_gre_ear_elem"; break; //Greater Earth Elemental+
case 3: sCreature="nn_sum_gre_fir_elem"; break; //Greater Fire Elemental+
case 4: sCreature="nn_sum_gre_wat_elem"; break; //Greater Water Elemental+
case 5: sCreature="ce_sum_succubus"; break; //Succubus+
}
break;
// Summon Creature IX
case 9:
if ( (GetLocalInt(oPC,"hcsumcreat9") >0) && (GetLocalInt(oPC,"hcsumcreat9")<7) )
{
nRoll=GetLocalInt(oPC,"hcsumcreat9");
}
else nRoll=d6(1);
switch(nRoll)
{
case 1: sCreature="nn_sum_eld_air_elem"; break; //Elder Air Elemental+
case 2: sCreature="nn_sum_eld_ear_elem"; break; //Elder Earth Elemental+
case 3: sCreature="nn_sum_eld_fir_elem"; break; //Elder Fire Elemental+
case 4: sCreature="nn_sum_eld_wat_elem"; break; //Elder Water Elemental+
case 5: sCreature="le_sum_rakshasa"; break; //Rakshasa+
case 6: sCreature="ce_sum_vrock"; break; //Vrock+
}
break;
}
/// determine if creature can be summoned
iSummonAllow = TRUE;
iStringLength = GetStringLength(sCreature)-3;
if (GetLevelByClass(CLASS_TYPE_CLERIC,OBJECT_SELF)>0) // aplies only to clerics
{
string sElem1,sElem2;
sElem1 = GetSubString(sCreature,0,1);
sElem2 = GetSubString(sCreature,1,1);
if ((GetAlignmentLawChaos(oPC) == ALIGNMENT_CHAOTIC) && (sElem1 == "l"))
{iSummonAllow = FALSE;}
else if ((GetAlignmentLawChaos(oPC) == ALIGNMENT_LAWFUL) && (sElem1 == "c"))
{iSummonAllow = FALSE;}
if ((GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL) && (sElem2 =="g"))
{iSummonAllow = FALSE;}
if ((GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD) && (sElem2 =="e"))
{iSummonAllow = FALSE;}
}
} // while FALSE
// Return the chosen critter
sCreature = GetSubString(sCreature,3,iStringLength);
return sCreature;
}