54 lines
1.4 KiB
Plaintext
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));
|
|
}
|