generated from Jaysyn/ModuleTemplate
Initial upload
Initial upload
This commit is contained in:
358
_mod/_module/nss/deep_debug_dump.nss
Normal file
358
_mod/_module/nss/deep_debug_dump.nss
Normal file
@@ -0,0 +1,358 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// DEEP DEBUG DUMP - By Deva Bryson Winblood
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// this will dump a huge amount of information to the logs
|
||||
// related to this module at the time the deep debug was called
|
||||
// it will space out many of the parts with delays to prevent TMI errors
|
||||
// and hopefully cause less of an impact on the module.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Make sure a waypoint with the tag AREA_DEBUG is dropped into each area of
|
||||
// the module. Drop only one per area or the stats for that area will be
|
||||
// counted twice.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
const string sBanner="//////////////////////////////////////////////////////////";
|
||||
const string sSeparater="----------------------------------------------------------";
|
||||
const string sDumpPre="DEEPDUMPPREFIX";
|
||||
|
||||
void fnBeginDump(); // main dump routine
|
||||
void fnStatsByArea(int nMainC,int nC,object oArea=OBJECT_INVALID);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////// MAIN
|
||||
void main()
|
||||
{
|
||||
string sMsg;
|
||||
object oOb;
|
||||
int nC;
|
||||
sMsg="DEEP DEBUG DUMP for Module '"+GetName(GetModule())+"'";
|
||||
PrintString(" ");
|
||||
PrintString(sBanner);
|
||||
PrintString(sMsg);
|
||||
PrintString(sSeparater);
|
||||
sMsg="TIME DUMP BEGAN: "+IntToString(GetTimeHour())+":"+IntToString(GetTimeMinute());
|
||||
sMsg=sMsg+" Day:"+IntToString(GetCalendarDay())+" Year:"+IntToString(GetCalendarYear());
|
||||
PrintString(sMsg);
|
||||
PrintString(sBanner);
|
||||
DelayCommand(1.0,fnBeginDump());
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////// MAIN
|
||||
|
||||
////////////////////////////////
|
||||
// FUNCTIONS
|
||||
////////////////////////////////
|
||||
|
||||
|
||||
void fnCleanupVariables()
|
||||
{ // delete locals used by this script
|
||||
object oMod=GetModule();
|
||||
DeleteLocalInt(oMod,sDumpPre+"creatures");
|
||||
DeleteLocalInt(oMod,sDumpPre+"placeables");
|
||||
DeleteLocalInt(oMod,sDumpPre+"useables");
|
||||
DeleteLocalInt(oMod,sDumpPre+"plots");
|
||||
DeleteLocalInt(oMod,sDumpPre+"containers");
|
||||
DeleteLocalInt(oMod,sDumpPre+"items");
|
||||
DeleteLocalInt(oMod,sDumpPre+"triggers");
|
||||
DeleteLocalInt(oMod,sDumpPre+"ttrans");
|
||||
DeleteLocalInt(oMod,sDumpPre+"dtrans");
|
||||
DeleteLocalInt(oMod,sDumpPre+"doors");
|
||||
DeleteLocalInt(oMod,sDumpPre+"players");
|
||||
DeleteLocalInt(oMod,sDumpPre+"dms");
|
||||
DeleteLocalInt(oMod,sDumpPre+"waypoints");
|
||||
DeleteLocalInt(oMod,sDumpPre+"stores");
|
||||
DeleteLocalInt(oMod,sDumpPre+"other");
|
||||
DeleteLocalInt(oMod,sDumpPre+"areas");
|
||||
} // fnCleanupVariables()
|
||||
|
||||
void fnCleanupVariablesA()
|
||||
{ // delete locals used by this script
|
||||
object oMod=GetModule();
|
||||
DeleteLocalInt(oMod,sDumpPre+"Acreatures");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Aplaceables");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Auseables");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Aplots");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Acontainers");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Aitems");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Atriggers");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Adoors");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Attrans");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Adtrans");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Aplayers");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Adms");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Awaypoints");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Astores");
|
||||
DeleteLocalInt(oMod,sDumpPre+"Aother");
|
||||
} // fnCleanupVariables()
|
||||
|
||||
void fnModuleStats()
|
||||
{
|
||||
object oMod=GetModule();
|
||||
int nC;
|
||||
string sMsg;
|
||||
PrintString(sSeparater);
|
||||
PrintString("[=====================[ MODULE WIDE TOTAL ]=================]");
|
||||
PrintString(sSeparater);
|
||||
nC=GetLocalInt(oMod,sDumpPre+"creatures");
|
||||
PrintString("CREATURES :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"players");
|
||||
PrintString("CREATURES Players :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"dms");
|
||||
PrintString("CREATURES Players/DMs :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"placeables");
|
||||
PrintString("PLACEABLES :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"plots");
|
||||
PrintString("PLACEABLES Plot :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"useables");
|
||||
PrintString("PLACEABLES Useable :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"containers");
|
||||
PrintString("PLACEABLES Containers :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"items");
|
||||
PrintString("ITEMS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"triggers");
|
||||
PrintString("TRIGGERS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"ttrans");
|
||||
PrintString("TRIGGERS Transitions :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"doors");
|
||||
PrintString("DOORS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"dtrans");
|
||||
PrintString("DOORS Transitions :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"waypoints");
|
||||
PrintString("WAYPOINTS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"stores");
|
||||
PrintString("STORES :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"other");
|
||||
PrintString("OTHER [unclassified] :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"areas");
|
||||
PrintString("AREAS :"+IntToString(nC));
|
||||
PrintString(sBanner);
|
||||
sMsg="TIME DUMP COMPLETED: "+IntToString(GetTimeHour())+":"+IntToString(GetTimeMinute());
|
||||
sMsg=sMsg+" Day:"+IntToString(GetCalendarDay())+" Year:"+IntToString(GetCalendarYear());
|
||||
PrintString(sMsg);
|
||||
PrintString(sBanner);
|
||||
fnCleanupVariables();
|
||||
oMod=GetLocalObject(oMod,"oRTSVoteInitiate");
|
||||
if (oMod!=OBJECT_INVALID) SendMessageToPC(oMod,"The DEEP DEBUG DUMP that was voted on is COMPLETE!");
|
||||
} // fnModuleStats()
|
||||
|
||||
|
||||
void fnOutputAreaStats()
|
||||
{ // print the area stats
|
||||
object oMod=GetModule();
|
||||
int nC;
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Acreatures");
|
||||
PrintString("CREATURES :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Aplayers");
|
||||
PrintString("CREATURES Players :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Adms");
|
||||
PrintString("CREATURES Players/DMs :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Aplaceables");
|
||||
PrintString("PLACEABLES :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Aplots");
|
||||
PrintString("PLACEABLES Plot :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Auseables");
|
||||
PrintString("PLACEABLES Useable :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Acontainers");
|
||||
PrintString("PLACEABLES Containers :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Aitems");
|
||||
PrintString("ITEMS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Atriggers");
|
||||
PrintString("TRIGGERS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Attrans");
|
||||
PrintString("TRIGGERS Transitions :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Adoors");
|
||||
PrintString("DOORS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Adtrans");
|
||||
PrintString("DOORS Transitions :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Awaypoints");
|
||||
PrintString("WAYPOINTS :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Astores");
|
||||
PrintString("STORES :"+IntToString(nC));
|
||||
nC=GetLocalInt(oMod,sDumpPre+"Aother");
|
||||
PrintString("OTHER [unclassified] :"+IntToString(nC));
|
||||
fnCleanupVariablesA();
|
||||
} // fnOutputAreaStats()
|
||||
|
||||
void fnStatsByArea(int nMainC,int nC,object oArea=OBJECT_INVALID)
|
||||
{ // fnStatsByArea
|
||||
object oOb;
|
||||
object oWP;
|
||||
object oMod=GetModule();
|
||||
int nCount;
|
||||
int nOT;
|
||||
if (oArea==OBJECT_INVALID&&nMainC!=-1)
|
||||
{ // new area
|
||||
oWP=GetObjectByTag("AREA_DEBUG",nMainC);
|
||||
if (oWP!=OBJECT_INVALID)
|
||||
{ // new area
|
||||
PrintString(sSeparater);
|
||||
PrintString("[ Area statistics for area '"+GetName(GetArea(oWP))+"' TAG:"+GetTag(GetArea(oWP))+" RESREF:"+GetResRef(GetArea(oWP))+" ]");
|
||||
PrintString(sSeparater);
|
||||
fnCleanupVariablesA();
|
||||
DelayCommand(1.0,fnStatsByArea(nMainC,0,GetArea(oWP)));
|
||||
} // new area
|
||||
else
|
||||
{ // done with area stats
|
||||
DelayCommand(1.0,fnModuleStats());
|
||||
} // done with area stats
|
||||
} // new area
|
||||
else
|
||||
{ // count items
|
||||
oOb=GetFirstObjectInArea(oArea);
|
||||
nCount=0;
|
||||
while(oOb!=OBJECT_INVALID)
|
||||
{ // count objects
|
||||
nOT=GetObjectType(oOb);
|
||||
if (nOT==OBJECT_TYPE_CREATURE)
|
||||
{ // creature
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"creatures");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"creatures",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Acreatures");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Acreatures",nCount);
|
||||
if (GetIsPC(oOb)==TRUE)
|
||||
{ // PC
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"players");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"players",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Aplayers");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Aplayers",nCount);
|
||||
} // PC
|
||||
if (GetIsDM(oOb)==TRUE)
|
||||
{ // DM
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"dms");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"dms",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Adms");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Adms",nCount);
|
||||
} // DM
|
||||
} // creature
|
||||
else if (nOT==OBJECT_TYPE_ITEM)
|
||||
{ // item
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"items");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"items",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Aitems");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Aitems",nCount);
|
||||
} // item
|
||||
else if (nOT==OBJECT_TYPE_PLACEABLE)
|
||||
{ // placeable
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"placeables");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"placeables",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Aplaceables");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Aplaceables",nCount);
|
||||
if (GetPlotFlag(oOb)==TRUE)
|
||||
{ // plot
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"plots");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"plots",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Aplots");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Aplots",nCount);
|
||||
} // plot
|
||||
if (GetHasInventory(oOb)==TRUE)
|
||||
{ // container
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"containers");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"containers",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Acontainers");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Acontainers",nCount);
|
||||
} // container
|
||||
if (GetUseableFlag(oOb)==TRUE)
|
||||
{ // useable
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"usables");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"usables",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Ausables");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Ausables",nCount);
|
||||
} // useable
|
||||
} // placeable
|
||||
else if (nOT==OBJECT_TYPE_STORE)
|
||||
{ // store
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"stores");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"stores",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Astores");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Astores",nCount);
|
||||
} // store
|
||||
else if (nOT==OBJECT_TYPE_TRIGGER)
|
||||
{ // trigger
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"triggers");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"triggers",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Atriggers");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Atriggers",nCount);
|
||||
if (GetTransitionTarget(oOb)!=OBJECT_INVALID)
|
||||
{ // transition
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"ttrans");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"ttrans",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Attrans");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Attrans",nCount);
|
||||
} // transition
|
||||
} // trigger
|
||||
else if (nOT==OBJECT_TYPE_DOOR)
|
||||
{ // door
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"doors");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"doors",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Adoors");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Adoors",nCount);
|
||||
if (GetTransitionTarget(oOb)!=OBJECT_INVALID)
|
||||
{ // transition
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"dtrans");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"dtrans",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Adtrans");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Adtrans",nCount);
|
||||
} // transition
|
||||
} // door
|
||||
else if (nOT==OBJECT_TYPE_WAYPOINT)
|
||||
{ // waypoints
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"waypoints");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"waypoints",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Awaypoints");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Awaypoints",nCount);
|
||||
} // waypoints
|
||||
else
|
||||
{ // other
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"other");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"other",nCount);
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"Aother");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"Aother",nCount);
|
||||
} // other
|
||||
oOb=GetNextObjectInArea(oArea);
|
||||
} // count objects
|
||||
nCount=GetLocalInt(oMod,sDumpPre+"areas");
|
||||
nCount++;
|
||||
SetLocalInt(oMod,sDumpPre+"areas",nCount);
|
||||
DelayCommand(1.0,fnOutputAreaStats());
|
||||
DelayCommand(1.5,fnStatsByArea(nMainC+1,0,OBJECT_INVALID)); // next area
|
||||
} // count items
|
||||
} // fnStatsByArea
|
||||
|
||||
|
||||
|
||||
void fnBeginDump()
|
||||
{ // initiate the dump
|
||||
object oMod=GetModule();
|
||||
SendMessageToPC(GetLocalObject(oMod,"oRTSVoteInitiate"),"The DEEP DEBUG DUMP has begun. You will be notified when it is complete.");
|
||||
fnCleanupVariables();
|
||||
PrintString("[--- STATISTICS BROKEN DOWN BY AREA ---]");
|
||||
fnStatsByArea(0,0,OBJECT_INVALID);
|
||||
} // initiate the dump
|
||||
|
||||
Reference in New Issue
Block a user