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