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

54 lines
1.4 KiB
Plaintext

// sacrifice_do - Sacrifice items
#include "rtsh_multiplay"
int fnGetHighestLevel()
{ // PURPOSE: Return highest level in game
int nRet=0;
int nLevel;
object oPC=GetFirstPC();
while(oPC!=OBJECT_INVALID)
{ // check levels
if (GetIsDM(oPC)==FALSE)
{ // not DM
nLevel=GetLevelByPosition(1,oPC)+GetLevelByPosition(2,oPC)+GetLevelByPosition(3,oPC);
if (nLevel>nRet) nRet=nLevel;
} // not DM
oPC=GetNextPC();
} // check levels
return nRet;
} // fnGetHighestLevel()
void main()
{
object oMe=OBJECT_SELF;
string sID=GetLocalString(oMe,"sTeamID");
int nVV;
object oMod=GetModule();
object oLeader=GetLocalObject(oMod,"oTeamLead"+sID);
object oItem;
int nMana;
int nWorth;
int nMax;
int bROTOO=GetLocalInt(oMod,"bROTOOMode");
int nHighest=fnGetHighestLevel();
nMax=nHighest*15;
if (bROTOO) nMax=nHighest*40;
nMana=fnGetTeamMana(oLeader);
oItem=GetFirstItemInInventory(oMe);
while(oItem!=OBJECT_INVALID)
{ // process items
SetIdentified(oItem,TRUE);
nVV=GetGoldPieceValue(oItem);
DelayCommand(1.0,DestroyObject(oItem));
nVV=nVV/110;
if (nVV>nMax) nVV=nMax;
nWorth=nWorth+nVV;
oItem=GetNextItemInInventory(oMe);
} // process items
if (nWorth>0)
{ // process
nMana=nMana+nWorth;
fnSetTeamMana(oLeader,nMana);
} // process
DelayCommand(3.0,DestroyObject(oMe));
}