61 lines
1.4 KiB
Plaintext
61 lines
1.4 KiB
Plaintext
int fnLevel(object oPC)
|
|
{
|
|
int nRet=GetLevelByPosition(1,oPC);
|
|
nRet=nRet+GetLevelByPosition(2,oPC);
|
|
nRet=nRet+GetLevelByPosition(3,oPC);
|
|
return nRet;
|
|
} // fnLevel()
|
|
|
|
int fnLowestLevel()
|
|
{
|
|
int nRet=41;
|
|
object oPC=GetFirstPC();
|
|
while(oPC!=OBJECT_INVALID)
|
|
{
|
|
if (GetLocalString(oPC,"sTeamID")!=""&&fnLevel(oPC)<nRet&&GetIsDM(oPC)==FALSE&&oPC!=GetPCSpeaker()) nRet=fnLevel(oPC);
|
|
oPC=GetNextPC();
|
|
}
|
|
return nRet;
|
|
} // fnLowestLevel()
|
|
|
|
int fnXP(int nLevel)
|
|
{
|
|
int nRet=0;
|
|
switch (nLevel)
|
|
{
|
|
case 1: { nRet=0; break; }
|
|
case 2: { nRet=1000; break; }
|
|
case 3: { nRet=3000; break; }
|
|
case 4: { nRet=6000; break; }
|
|
case 5: { nRet=10000; break; }
|
|
case 6: { nRet=15000; break; }
|
|
case 7: { nRet=21000; break; }
|
|
case 8: { nRet=28000; break; }
|
|
case 9: { nRet=36000; break; }
|
|
case 10: { nRet=45000; break; }
|
|
case 11: { nRet=55000; break; }
|
|
case 12: { nRet=66000; break; }
|
|
case 13: { nRet=78000; break; }
|
|
case 14: { nRet=91000; break; }
|
|
case 15: { nRet=105000; break; }
|
|
case 16: { nRet=120000; break; }
|
|
case 17: { nRet=136000; break; }
|
|
case 18: { nRet=153000; break; }
|
|
case 19: { nRet=171000; break; }
|
|
case 20: { nRet=190000; break; }
|
|
default: break;
|
|
}
|
|
return nRet;
|
|
}
|
|
|
|
|
|
// level up to 1 less than lowest level
|
|
void main()
|
|
{
|
|
object oPC=GetPCSpeaker();
|
|
int nLevel=fnLowestLevel()-1;
|
|
if (nLevel<1) nLevel=1;
|
|
if (nLevel>20) nLevel=20;
|
|
SetXP(oPC,fnXP(nLevel));
|
|
}
|