Random70 wrote...
If you're willing to post detailed directions on how to extract this data, I'll take a crack at it myself. But please be concise as the last programming I did was on my Apple //C in 1985. 
Random - you have always been helpful, so sure here is how to do it. In just a couple of easy steps.

(I am assuming you have the console enabled for this. If not, I can walk you through that)
1. Download this mod to save yourself from pulling out your hair! This mod simply makes the console commands visible.
http://www.dragonage...ile.php?id=11102. Turn on the Script Logging. From the builder Wiki:
To enable script logging, edit or create \\bin_ship\\ECLog.ini and set Script=1 in the [LogTypes] section.
You may have to create the file. Make sure Script=1 is continuous with no spaces. The path is in your Dragon Age install directory in the Program Files
This will now allow scripts to post to the debug log. The debug log normally shows up under:
My Documents\\BioWare\\Dragon Age\\Logs
3. Open the toolset and do File - New - Script. Call the script whatever you want. Something short is recommended cause you will have to type it.
4. Copy and paste the following into the script window. Save and compile
#include "attributes_h"
void dumpstats(object oCreature)
{
// Attribute_DumpCharacterSheetToLog( OBJECT_SELF );
string sTag = GetTag(oCreature);
int TABLE_PROPERTIES = 98;
int i;
PrintToLog("--- Dumping Stats for "+ sTag + " ---");
string sName;
int nType;
string sValue;
for (i = 1; i <= 40; i++)
{
sName = GetM2DAString(TABLE_PROPERTIES,"Stat",i);
nType = GetCreaturePropertyType(oCreature,i);
switch (nType)
{
case PROPERTY_TYPE_ATTRIBUTE:
sValue = " Total: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_TOTAL));
sValue += " Base: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_BASE));
sValue += " Mod: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_MODIFIER));
sValue += " (Attribute)";
break;
case PROPERTY_TYPE_SIMPLE:
sValue = " Total: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_TOTAL));
sValue += " Base: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_BASE));
sValue += " Mod: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_MODIFIER));
sValue += " (Simple)";
break;
case PROPERTY_TYPE_DERIVED:
sValue = " Total: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_TOTAL));
sValue += " Base: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_BASE));
sValue += " Mod: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_MODIFIER));
sValue += " (Derived)";
break;
case PROPERTY_TYPE_DEPLETABLE:
sValue = " Max: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_TOTAL));
sValue += " Base: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_BASE));
sValue += " Current: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_CURRENT));
sValue += " Mod: " + FloatToString(GetCreatureProperty(oCreature,i, PROPERTY_VALUE_MODIFIER));
sValue += " (Depletable)";
break;
}
PrintToLog(ToString(i) + " " + sName + sValue);
}
Log_Msg(LOG_CHANNEL_TEMP, "CanDiePermanently:" + ToString(GetCanDiePermanently(oCreature)));
Log_Msg(LOG_CHANNEL_TEMP, "Rank:"+ ToString(GetCreatureRank(oCreature)));
Log_Msg(LOG_CHANNEL_TEMP, " ---- ");
}
void main()
{
object[] objects = GetNearestObject(OBJECT_SELF,OBJECT_TYPE_CREATURE,20,TRUE);
int nCount = GetArraySize(objects);
int i;
for (i = 0; i < nCount; i++)
{
dumpstats(objects[i]);
}
5. Now when you play the game and want to record the stats of a monster. Just open the console and type: runscript randoms_script
This will now post all of the details for every character that is nearby. Including the party. I think there are about 40 attributes show for each character - so it can get long. But it includes just about everything you could ever want to know. Send me a PM if you have any trouble. Easy right?
Modifié par beancounter501, 24 mai 2010 - 03:00 .