// 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; }