//////////////////////////////////////////////////////////////////////// // Real Time Strategy - NWN - Ancient Tome of Rebirth //====================================================================== // By Deva Bryson Winblood. 02/28/2003 //////////////////////////////////////////////////////////////////////// void fnPurgeShadowItems() { object oPC=OBJECT_SELF; object oItem=GetFirstItemInInventory(oPC); string sTag; while(oItem!=OBJECT_INVALID) { sTag=GetTag(oItem); if (sTag=="rts_it_light"||sTag=="rts_it_blast"||sTag=="rts_it_negprot") DelayCommand(1.0,DestroyObject(oItem)); else if(sTag=="rts_it_shd1"||sTag=="rts_it_shd2"||sTag=="rts_it_shd3"||sTag=="rts_it_shd3"||sTag=="rts_it_shd5") DelayCommand(1.0,DestroyObject(oItem)); oItem=GetNextItemInInventory(oPC); } oItem=GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC); sTag=GetTag(oItem); if (sTag=="rts_it_light"||sTag=="rts_it_blast"||sTag=="rts_it_negprot"|| sTag=="rts_it_shd1"||sTag=="rts_it_shd2"||sTag=="rts_it_shd3"|| sTag=="rts_it_shd3"||sTag=="rts_it_shd5") DelayCommand(1.0,DestroyObject(oItem)); } int fnLevel(object oPC) { // get level int nRet=GetLevelByPosition(1,oPC); nRet=nRet+GetLevelByPosition(2,oPC); nRet=nRet+GetLevelByPosition(3,oPC); return nRet; } // fnLevel void main() { object oPC=GetItemActivator(); object oItem=GetItemActivated(); object oCreature=GetObjectByTag("Rotund"); int nCost; string sID=GetLocalString(oPC,"sTeamID"); int nAmount=GetLocalInt(GetModule(),"nTOMEREBIRTH"); if (nAmount==0) nAmount=500; nCost=fnLevel(oPC)*nAmount; if (GetGold(oPC)>=nCost) { // freedom AssignCommand(oCreature,TakeGoldFromCreature(nCost,oPC,TRUE)); DestroyObject(oItem); /// teleport to the waking world fnPurgeShadowItems(); oItem=GetWaypointByTag(sID+"_START"); AssignCommand(oPC,JumpToObject(oItem)); SetLocalInt(oPC,"nDied",0); } // freedom else { // gold SendMessageToPC(oPC,"This item requires "+IntToString(nCost)+" gold to use at your current level!"); } // gold }