47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
// advisor - calculate how doing
|
|
#include "advisor_header"
|
|
|
|
void main()
|
|
{
|
|
object oMod=GetModule();
|
|
object oPC=GetPCSpeaker();
|
|
string sTID=GetLocalString(oPC,"sTeamID");
|
|
string sID;
|
|
object oLead;
|
|
int nYourScore=fnScore(oPC);
|
|
int nTotal=nYourScore;
|
|
int nLeaders=1;
|
|
int nAverage;
|
|
int nLow=nYourScore;
|
|
int nHigh=nYourScore;
|
|
int nThis;
|
|
int nC=0;
|
|
while(nC<4)
|
|
{ // each team
|
|
if (nC==0) sID="SPID";
|
|
else if (nC==1) sID="DWF";
|
|
else if (nC==2) sID="UNC";
|
|
else if (nC==3) sID="UND";
|
|
if (sID!=sTID)
|
|
{ // other leader
|
|
oLead=GetLocalObject(oMod,"oTeamLead"+sID);
|
|
if (GetIsPC(oLead)==TRUE)
|
|
{ // valid leader
|
|
nThis=fnScore(oLead);
|
|
nTotal=nTotal+nThis;
|
|
if (nThis<nLow) nLow=nThis;
|
|
if (nThis>nHigh) nHigh=nThis;
|
|
nLeaders++;
|
|
} // valid leader
|
|
} // other leader
|
|
nC++;
|
|
} // each team
|
|
nAverage=nTotal/nLeaders;
|
|
if (nLow==nYourScore) nC=1;
|
|
else if (nHigh=nYourScore) nC=4;
|
|
else if (nYourScore<=nAverage) nC=2;
|
|
else if (nYourScore>nAverage) nC=3;
|
|
else { nC=0; }
|
|
SetLocalInt(oPC,"nStatusRealm",nC);
|
|
}
|