103 lines
3.2 KiB
Plaintext
103 lines
3.2 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
// cv_sr_dopower - Do the Sub-Race Ability
|
|
// By Deva B. Winblood. December 19th, 2008.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//////////////////////////////////
|
|
// FUNCTIONS
|
|
//////////////////////////////////
|
|
#include "prc_inc_racial"
|
|
|
|
void fnSummonHenchman(object oPC,string sResRef)
|
|
{ // PURPOSE: Summon the henchman
|
|
object oWP;
|
|
object oHench;
|
|
int nN;
|
|
float fLast=0.0;
|
|
object oLWP;
|
|
nN=1;
|
|
oWP=GetNearestObject(OBJECT_TYPE_WAYPOINT,oPC,nN);
|
|
while(GetIsObjectValid(oWP)&&GetDistanceBetween(oPC,oWP)<40.0)
|
|
{ // find a semi-distant waypoint
|
|
if (GetDistanceBetween(oPC,oWP)>fLast)
|
|
{ // remember
|
|
oLWP=oWP;
|
|
fLast=GetDistanceBetween(oPC,oWP);
|
|
} // remember
|
|
nN++;
|
|
oWP=GetNearestObject(OBJECT_TYPE_WAYPOINT,oPC,nN);
|
|
} // find a semi-distant waypoint
|
|
oHench=CreateObject(OBJECT_TYPE_CREATURE,sResRef,GetLocation(oLWP));
|
|
AssignCommand(oHench,ActionMoveToObject(oPC,TRUE,3.0));
|
|
AddHenchman(oPC,oHench);
|
|
AssignCommand(oHench,SetIsDestroyable(TRUE,FALSE));
|
|
} // fnSummonHenchman()
|
|
|
|
|
|
void fnCreateItem(object oPC,string sResRef)
|
|
{ // PURPOSE: Create Item on object
|
|
object oItem=CreateItemOnObject(sResRef,oPC);
|
|
} // fnCreateItem()
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////[ MAIN]////////
|
|
void main()
|
|
{
|
|
object oPC=GetPCSpeaker();
|
|
int nParm=GetLocalInt(oPC,"nParm");
|
|
string sRace=GetSubRace(oPC);
|
|
int nRace = MyPRCGetRacialType(oPC);
|
|
int nDay=GetCalendarDay();
|
|
string sResRef;
|
|
int bItem=FALSE;
|
|
SetLocalInt(oPC,"nSubRaceLastUsed"+IntToString(nParm),nDay);
|
|
sRace=GetStringUpperCase(sRace);
|
|
//if (sRace=="KOBOLD")
|
|
if (nRace == RACIAL_TYPE_KOBOLD)
|
|
{ // Kobold Sub-Race
|
|
sResRef="srkohench"+IntToString(nParm);
|
|
} // Kobold Sub-Race
|
|
//else if (sRace=="GOBLIN")
|
|
else if (nRace == RACIAL_TYPE_HUMANOID_GOBLINOID)
|
|
{ // Goblin Sub-Race
|
|
sResRef="srgohench"+IntToString(nParm);
|
|
} // Goblin Sub-Race
|
|
else if (sRace=="SKELETON")
|
|
{ // Skeleton Sub-Race
|
|
sResRef="srskhench"+IntToString(nParm);
|
|
} // Skeleton Sub-Race
|
|
//else if (sRace=="BROWNIE")
|
|
else if (nRace == RACIAL_TYPE_BROWNIE)
|
|
{ // Brownie Sub-Race
|
|
if (nParm<4)
|
|
{ // items
|
|
bItem=TRUE;
|
|
sResRef="rts_srbr"+IntToString(nParm);
|
|
} // items
|
|
else { sResRef="srbrhench"; }
|
|
} // Brownie Sub-Race
|
|
//else if (sRace=="DROW")
|
|
else if (nRace == RACIAL_TYPE_DROW_MALE || nRace == RACIAL_TYPE_DROW_FEMALE)
|
|
{ // Drow Sub-Race
|
|
if (nParm<3)
|
|
{ // items
|
|
bItem=TRUE;
|
|
sResRef="rts_srdr"+IntToString(nParm);
|
|
} // items
|
|
else if (nParm==3) sResRef="srdrhench1";
|
|
else { sResRef="srdrhench2"; }
|
|
} // Drow Sub-Race
|
|
//else if (sRace=="WEMIC")
|
|
else if (nRace == RACIAL_TYPE_WEMIC)
|
|
{ // Wemic Sub-Race
|
|
bItem=TRUE;
|
|
sResRef="rts_srwm"+IntToString(nParm);
|
|
} // Wemic Sub-Race
|
|
if (!bItem) fnSummonHenchman(oPC,sResRef);
|
|
else { fnCreateItem(oPC,sResRef); }
|
|
}
|
|
/////////////////////////////////////////////////////////////////[ MAIN]////////
|