HoS_PRC8/_mod/_module/nss/ipj_levelup.nss
Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

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