67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Allegiance System
|
||
|
// oas_pc_align
|
||
|
// By Don Anderson
|
||
|
// dandersonru@msn.com
|
||
|
//
|
||
|
// Aligns Player with Specific Faction
|
||
|
//
|
||
|
// This is placed in the OnUsed Event of a Sign
|
||
|
//
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#include "oas_inc"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC = GetLastUsedBy();
|
||
|
object oAlign = OBJECT_SELF;
|
||
|
string sName = GetName(oAlign);
|
||
|
string sAlign = GetTag(oAlign);
|
||
|
|
||
|
if(GetIsDM(oPC) == TRUE) return;
|
||
|
|
||
|
//Already has Allegiance
|
||
|
int nAllege = GetLocalInt(oPC,"FACTION");
|
||
|
if(nAllege > 0)
|
||
|
{
|
||
|
if(nAllege == 1) SpeakString("You have already allied yourself with the forces of Good.");
|
||
|
if(nAllege == 2) SpeakString("You have already allied yourself with the forces of Evil.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//Now for which Faction
|
||
|
string sFaction = GetStringLeft(sAlign,7);
|
||
|
if(sFaction == "FACTION")
|
||
|
{
|
||
|
string sFNumber = GetStringRight(sAlign,3);
|
||
|
int nFNumber = StringToInt(sFNumber);
|
||
|
|
||
|
if(nFNumber > 0)
|
||
|
{
|
||
|
//Faction Name can be anywhere in Name Field of Sign
|
||
|
int nGood = FindSubString(sName,"Good");
|
||
|
int nEvil = FindSubString(sName,"Evil");
|
||
|
|
||
|
if(nGood != -1)//Faction 1
|
||
|
{
|
||
|
AlignGood(oPC);
|
||
|
SpeakString("You have allied yourself with the forces of Good.");
|
||
|
SetCampaignInt("ALLEGIANCE","FACTION",nFNumber,oPC);
|
||
|
SetLocalInt(oPC,"FACTION",1);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if(nEvil != -1)//Faction 2
|
||
|
{
|
||
|
AlignEvil(oPC);
|
||
|
SpeakString("You have allied yourself with the forces of Evil.");
|
||
|
SetCampaignInt("ALLEGIANCE","FACTION",nFNumber,oPC);
|
||
|
SetLocalInt(oPC,"FACTION",2);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|